Author Topic: Was the width of top view saved in CC configure file?  (Read 29748 times)

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: Was the width of top view saved in CC configure file?
« Reply #15 on: January 18, 2010, 09:07:59 am »
I open "default.conf", and can not find a key named "splitterWin".
You have to look for "splitter_pos" in the config file. splitterWin is the ID of the control in the XRC file.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5915
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Was the width of top view saved in CC configure file?
« Reply #16 on: January 18, 2010, 01:38:44 pm »
Find a discussion about setting sash bar: Nabble - wxPython-users - When to SetSashPosition of splitter ?
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5915
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Was the width of top view saved in CC configure file?
« Reply #17 on: January 19, 2010, 07:41:46 am »
Just a reminder, I get the wrong behavior in both "float window of Symbols browser" or "docked inside the management pane". Windows XP.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5915
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Was the width of top view saved in CC configure file?
« Reply #18 on: February 26, 2010, 06:27:05 am »
In windows, I have debug these code in the constructor of ClassBrowser class:

Code
    int pos = cfg->ReadInt(_T("/splitter_pos"), 250);
    XRCCTRL(*this, "splitterWin", wxSplitterWindow)->SetMinSize(wxSize(-1, 200));
    wxSize minSize;
    minSize = XRCCTRL(*this, "splitterWin", wxSplitterWindow)->GetMinSize();
    pos = XRCCTRL(*this, "splitterWin", wxSplitterWindow)->GetSashPosition();
    XRCCTRL(*this, "splitterWin", wxSplitterWindow)->SetSashPosition(450, false);
    pos = XRCCTRL(*this, "splitterWin", wxSplitterWindow)->GetSashPosition();

it is quite strange:
I try to write the "450", but the next statement, I GetSashPosition, it is "pos=96".....


If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline Jenna

  • Administrator
  • Lives here!
  • *****
  • Posts: 7255
Re: Was the width of top view saved in CC configure file?
« Reply #19 on: February 26, 2010, 07:15:43 am »
In windows, I have debug these code in the constructor of ClassBrowser class:

Code
    int pos = cfg->ReadInt(_T("/splitter_pos"), 250);
    XRCCTRL(*this, "splitterWin", wxSplitterWindow)->SetMinSize(wxSize(-1, 200));
    wxSize minSize;
    minSize = XRCCTRL(*this, "splitterWin", wxSplitterWindow)->GetMinSize();
    pos = XRCCTRL(*this, "splitterWin", wxSplitterWindow)->GetSashPosition();
    XRCCTRL(*this, "splitterWin", wxSplitterWindow)->SetSashPosition(450, false);
    pos = XRCCTRL(*this, "splitterWin", wxSplitterWindow)->GetSashPosition();

it is quite strange:
I try to write the "450", but the next statement, I GetSashPosition, it is "pos=96".....




As I posted before:

The cause for the issue is, that wxWidgets checks if the requested sash position fits inside the windows actual or min-size.

Normally the min-size of the splitter window is the default min size (-1,-1) and the actual size is very small (If I remeber correctly it'S 20 or something like this).

That only happens for the symbols-browser if it is docked inside the management pane, not if it is free-floating.

For me it was enough to set min-height to 200, even if the requested sash-position is greater than 200.
If the min-height is to large, the sash might get hidden, if the management pane is resized.


As we see that does not work on windows.
I can debug this issue on windows, if I find the time.
Maybe it's possible to work around this issue.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5915
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Was the width of top view saved in CC configure file?
« Reply #20 on: February 26, 2010, 07:33:23 am »
Thanks jens. Hope we can find a wrokaround under Windows.

By the way:
I have tried:
Code
    XRCCTRL(*this, "splitterWin", wxSplitterWindow)->SetSashGravity(1.0);
    XRCCTRL(*this, "splitterWin", wxSplitterWindow)->SetSashPosition(0, false);
It is expect that the top window will be resized referring to

http://docs.wxwidgets.org/2.8/wx_wxsplitterwindow.html#wxsplitterwindowsetsashgravity

But the result is still the same, the bottom pane get resized.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline GeO

  • Multiple posting newcomer
  • *
  • Posts: 51
Re: Was the width of top view saved in CC configure file?
« Reply #21 on: March 28, 2010, 05:16:38 pm »
Hi all,
the problem lies in this code:

Code
m_pClassBrowser = new ClassBrowser(Manager::Get()->GetProjectManager()->GetNotebook(), this);
Manager::Get()->GetProjectManager()->GetNotebook()->AddPage(m_pClassBrowser, _("Symbols"));

First the classbrowser is created only as a child of the Notebook (wrong size)
and then it get assigned to the notebook as page and classbrowser will be resized to the right size.
So i made a patch, where the sashposition will be set after the assigned to the notebook as a page.

I hope you understand, what i would like to say  :lol:

greets GeO

[attachment deleted by admin]

Offline Loaden

  • Lives here!
  • ****
  • Posts: 1014
Re: Was the width of top view saved in CC configure file?
« Reply #22 on: March 29, 2010, 01:06:19 am »
Works well now!
Thanks!

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5915
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Was the width of top view saved in CC configure file?
« Reply #23 on: March 29, 2010, 10:03:56 am »
@GeO
Thanks a branch!!!
I have applied in my local copy, and it works quite well!!!

I say: this is a bug fix, and should be applied in the trunk before the next official release. :D
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5915
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Was the width of top view saved in CC configure file?
« Reply #24 on: April 27, 2010, 07:23:50 am »
@jens or Morten

Just a reminder, can you apply this patch to solve the sash bar problem before the next stable C::B release?

Thanks.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline Jenna

  • Administrator
  • Lives here!
  • *****
  • Posts: 7255
Re: Was the width of top view saved in CC configure file?
« Reply #25 on: April 27, 2010, 08:42:40 am »
@jens or Morten

Just a reminder, can you apply this patch to solve the sash bar problem before the next stable C::B release?

Thanks.
I just tested it on linux: and it does not work !
Don't know why, no time to digg into it deeper at the moment.

So I am against using it at the moment.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5915
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: Was the width of top view saved in CC configure file?
« Reply #26 on: April 27, 2010, 08:45:30 am »
Ok, this patch at least works under Windows. :D
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline Jenna

  • Administrator
  • Lives here!
  • *****
  • Posts: 7255
Re: Was the width of top view saved in CC configure file?
« Reply #27 on: April 27, 2010, 09:27:34 am »
Ok, this patch at least works under Windows. :D
For me it works without this patch on windows (xp sp3, wx2.8.10, gcc 4.4)

Offline Loaden

  • Lives here!
  • ****
  • Posts: 1014
Re: Was the width of top view saved in CC configure file?
« Reply #28 on: April 27, 2010, 12:31:22 pm »
Until apply this patch, it's works well now. (XPSP3)
Tonight, I will test it in ArchLinux. and will report that.

Offline GeO

  • Multiple posting newcomer
  • *
  • Posts: 51
Re: Was the width of top view saved in CC configure file?
« Reply #29 on: April 27, 2010, 02:30:21 pm »
Jens, could it be that you are using the symbol browser as a floating pane on linux?
If so this patch should solve it too.

HTH GeO

[attachment deleted by admin]