Author: matt Date: 2011-06-09 13:28:34 -0700 (Thu, 09 Jun 2011) New Revision: 8798 Log: 123: TabGroup wrapped by Fl_Tabs
Modified: branches/branch-3.0/FL/Fl_Tabs.H Modified: branches/branch-3.0/FL/Fl_Tabs.H =================================================================== --- branches/branch-3.0/FL/Fl_Tabs.H 2011-06-09 16:21:40 UTC (rev 8797) +++ branches/branch-3.0/FL/Fl_Tabs.H 2011-06-09 20:28:34 UTC (rev 8798) @@ -1,10 +1,10 @@ -#error header has not been ported to 3.0 yet // // "$Id$" // // Tab header file for the Fast Light Tool Kit (FLTK). +// FLTK 123 wrapper finished // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2011 by Bill Spitzak and others. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Library General Public @@ -26,66 +26,60 @@ // http://www.fltk.org/str.php // -/* \file - Fl_Tabs widget . */ - #ifndef Fl_Tabs_H #define Fl_Tabs_H +#include <fltk3/TabGroup.h> #include "Fl_Group.H" -/** - The Fl_Tabs widget is the "file card tabs" - interface that allows you to put lots and lots of buttons and - switches in a panel, as popularized by many toolkits. - - \image html tabs.png - \image latex tabs.png "Fl_Tabs" width=8cm - - Clicking the tab makes a child visible() by calling - show() on it, and all other children are made invisible - by calling hide() on them. Usually the children are Fl_Group widgets - containing several widgets themselves. - - Each child makes a card, and its label() is printed - on the card tab, including the label font and style. The - selection color of that child is used to color the tab, while - the color of the child determines the background color of the pane. - - The size of the tabs is controlled by the bounding box of the - children (there should be some space between the children and - the edge of the Fl_Tabs), and the tabs may be placed - "inverted" on the bottom - this is determined by which - gap is larger. It is easiest to lay this out in fluid, using the - fluid browser to select each child group and resize them until - the tabs look the way you want them to. -*/ class FL_EXPORT Fl_Tabs : public Fl_Group { - Fl_Widget *value_; - Fl_Widget *push_; - int *tab_pos; // array of x-offsets of tabs per child + 1 - int *tab_width; // array of widths of tabs per child + 1 - int tab_count; // array size - int tab_positions(); // allocate and calculate tab positions - void clear_tab_positions(); - int tab_height(); - void draw_tab(int x1, int x2, int W, int H, Fl_Widget* o, int sel=0); + protected: - void redraw_tabs(); - void draw(); + + void redraw_tabs() { + ((fltk3::TabGroup*)_p)->redraw_tabs(); + } + + FLTK3_WRAPPER_VCALLS_OBJECT(TabGroup, draw(), draw(), Draw) public: - int handle(int); - Fl_Widget *value(); - int value(Fl_Widget *); - Fl_Widget *push() const {return push_;} - int push(Fl_Widget *); - Fl_Tabs(int,int,int,int,const char * = 0); - Fl_Widget *which(int event_x, int event_y); - ~Fl_Tabs(); - void client_area(int &rx, int &ry, int &rw, int &rh, int tabh=0); + + FLTK3_WRAPPER_VCALLS_OBJECT_INT(TabGroup, handle(int event), handle(event), Handle) + + Fl_Widget *value() { + return fltk3::_3to1_widget( ((fltk3::TabGroup*)_p)->value() ); + } + + int value(Fl_Widget *w) { + return ((fltk3::TabGroup*)_p)->value( fltk3::_1to3_widget(w) ); + } + + Fl_Widget *push() const { + return fltk3::_3to1_widget( ((fltk3::TabGroup*)_p)->push() ); + } + + int push(Fl_Widget *w) { + return ((fltk3::TabGroup*)_p)->push( fltk3::_1to3_widget(w) ); + } + + Fl_Tabs() {} + + Fl_Tabs(int x, int y, int w, int h, const char *label=0) { + _p = new fltk3::TabGroup(x, y, w, h, label); + _p->wrapper(this); + } + + Fl_Widget *which(int event_x, int event_y) { + return fltk3::_3to1_widget( ((fltk3::TabGroup*)_p)->which(event_x, event_y) ); + } + + void client_area(int &rx, int &ry, int &rw, int &rh, int tabh=0) { + ((fltk3::TabGroup*)_p)->client_area(rx, ry, rw, rh, tabh); + } + }; + #endif // _______________________________________________ fltk-commit mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk-commit
