Barry Branham wrote:
>> Barry Branham wrote:
>>> I'm trying to implement a sidebar that you can hide and show again.
>>> I'm using fltk-2.0.x-r5864.
>>>
>>> To do that I hide the sidebar group, then resize the group on the left to
>>> have the full window width with position x==0. The left group is the
>>> window resizeable. To make this happen I had to call Window->init_sizes().
>>> Then to unhide (show) the sidebar again, I resize the left group to
>>> x==sidebar_width and w==(window->w()-sidebar_width). Again I call
>>> Window->init_sizes().
>> That seems okay so far. Calling init_sizes() is the right way to go.
>>
>>> This works fine, but if I resize the main window after hiding the sidebar,
>>> then show the sidebar, it's width is changed. If the window was widened,
>>> the sidebar is wider and vice versa.
>> You didn't tell us, what "sidebar_width" is. A constant? Something you
>> calculate?
>>
>>> Am I doing something wrong or is this a bug?
>>> I have an example program (a revision of the test/resizable program)
>> Posting a short example program would be helpful.
>>
>
> Thanks for your reply. sidebar_width is a constant (95 in example).
>
> Here's the example program inline, don't see how to attach it.
> I replaced the arrow buttons at the lower right in the original resizable
> program with a 'Show' button for showing the hidden sidebar.
> You click the red 'X' to hide it.
Sorry, I can't really help you more. I don't have FLTK 2.0 installed.
However, I'd suggest that you also resize your sidebar in showCB:
void showCB(fltk::Widget *w, void *g)
{
((fltk::Group *)g)->show();
((fltk::Group *)g)->resize(0,0,95,win->h(); // *** added ***
bigbox->resize( 95, 25, win->w()-95, bigbox->h());
rbox->resize( 95, 150, rbox->w()-95, rbox->h());
win->init_sizes();
}
Maybe someone else with FLTK 2.0 can help.
Albrecht
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk