Hi, > On 6 Feb 2009, at 17:44, Fabio Bracci wrote: > > > Indeed what I am aiming for is to print/screen capture/etc a whole > > widgets hierarchy contained in a Fl_Scroll (so a Fl_Group); I > > already was thinking about providing a draw() function to a derived > > class and enclose the Fl_Scroll::draw() with the offscreen > > operations, thanx for the example! > > > > The problem I am facing now is that I have generated with fluid a > > window with a scroll with a group; the group is the one holding the > > complex widget structure. > > Yes, that was what I had inferred from your previous comments, so > that was what I tried to illustrate in my example. Was I right?
Yes, it's correct > > In my case I should wrap the group's draw() call with the offscreen > > code ... but I can't! > > /usr/include/FL/Fl_Group.H:56: error: virtual void Fl_Group::draw > > () is protected > > Is there a way to trigger the draw() method of a group from the > > outside? > > The alternative would be again deriving Fl_Group to customize draw > > (), but fluid doesn't know anything about my custom widgets, so I > > will not be able to use a Group with offscreen code from fluid. > > This is exactly what I would do, though. It is very easy to make a > derived version of Fl_Group (as per my example) and then tell fluid > to use that class for the container group. > > All you have to do is: > > - Construct your widget hierarchy in fluid as usual > > - Construct your derived group, and store it in a .cxx/.h pair of > files with the text editor of your choice (just cut 'n paste from my > example as a starting point!) > > - add a #include for the .h file to the top of the fluid tree (using > the fluid New->Code->Declaration menu entry) > - select the properties of your enclosing Fl_Group, go to the C++ tab > and fill in the CLASS entry with the name of your derived class. > Thereafter, fluid will use your derived class for that widget, rather > than a "regular" Fl_Group, thereby making access to its draw method > for custom effects straightforward. > > > > In short: how is it possible to trigger the protected draw() of the > > inner Group without dismantling the complex widget (built with fluid)? > > See above. > I use this approach fairly often, and it is very straightforward, > providing a flexible and powerful way to "tweak" any existing widget. > -- > Ian > see my other reply about this _______________________________________________ fltk mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk

