You are right. even though I've been aware of C++'s existence for some years 
this is the first time I actually code in it so it takes some while to get used 
to the inheritance and virtual (derived) methods concepts, and considering 
there's been a lot on my mind lately besides coding I'm not surprised myself 
about the mistakes one after another I tend to make in me presumptions.


> On 06/05/11 15:28, anon wrote:
> > I have to LOL a bit here on what I wrote about resize() (bug) as I include 
> > it's definition here:
> >
> > void Fl_Widget::resize(int X, int Y, int W, int H) {
> >   x_ = X; y_ = Y; w_ = W; h_ = H;
> > }
> >
> > :D
> > Ok, my mind is still wandering and wondering :(
>
>       Yes, Fl_Widget is the lowest class in the FLTK widget
>       chain, so that's all it would do.
>
>       But unless your class is deriving from Fl_Widget,
>       you wouldn't use that as an example.
>
>       You're probably deriving from an Fl_Group or Fl_Window,
>       which has to manage children as well as itself.
>       And like in real life, when children are involved,
>       things are more complicated.
>
>       And I have to assume in your case your class has children,
>       since you mention two or more boxes that you're changing
>       the size of, so they must be children to your parenting
>       group widget that is handling their resizing.
>
>       As an example; if you make a widget called YourWidget
>       that derives from Fl_Window, and it has two children,
>       box1 and box2, YourWidget::resize() should look something
>       like:
>
> YourWidget::resize(int X, int Y, int W, int H) {
>     box1->resize(...);                // whatever logic you want to resize 
> this specific widget
>     box2->resize(...);                // whatever logic you want to resize 
> this specific widget
>     init_sizes();             // tell the base class to recalculate the 
> changes
> }
>
>       If YourWidget has more than just two children, eg.
>       a menu bar, some buttons, as well as the two boxes,
>       then you should really do this:
>
> YourWidget::resize(int X, int Y, int W, int H) {
>     Fl_Window::resize(X,Y,W,H);       // let subclass resize all children
>     box1->resize(...);                // make your specific changes after that
>     box2->resize(...);                // "" ""
>     init_sizes();             // tell the base class to recalculate the 
> changes
> }

_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to