00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _Fl_Tabs_H_
00023 #define _Fl_Tabs_H_
00024
00025 #include "Fl_Group.h"
00026
00027 class Fl_Scroll;
00028 class Fl_Tabs_Matrix;
00029 class Fl_Tab_Info;
00030
00032 class FL_API Fl_Tabs : public Fl_Group {
00033 friend class Fl_Tabs_Matrix;
00034 public:
00035 static Fl_Named_Style* default_style;
00036
00038 Fl_Tabs(int x,int y,int w,int h,const char *label = 0);
00039
00041 Fl_Tabs(const char* l = 0,int layout_size=30,Fl_Align layout_al=FL_ALIGN_TOP,int label_w=-1);
00042
00044 virtual ~Fl_Tabs();
00045
00046 Fl_Group* new_group(const char *label);
00047 Fl_Scroll* new_scroll(const char *label);
00048 Fl_Group* new_page(const char *label) { return (Fl_Group*)new_scroll(label); }
00049
00050 Fl_Widget *value();
00051 int value(Fl_Widget *);
00052
00053 Fl_Widget *push() const {return push_;}
00054 int push(Fl_Widget *);
00055
00056 Fl_Widget *which(int event_x, int event_y);
00057
00058 void show_tabs(bool st);
00059 bool show_tabs() { return m_showTabs; }
00060
00061 void tabs_mode(Fl_Align tm);
00062 Fl_Align tabs_mode() { return m_tabsMode; }
00063
00064 virtual void draw();
00065 virtual void layout();
00066 virtual int handle(int);
00067
00068 protected:
00069 bool m_showTabs;
00070 int m_tabsWidth;
00071 int m_tabsHeight;
00072 int m_rowHeight;
00073 void draw_tab(Fl_Tab_Info *tab, Fl_Flags flags);
00074 Fl_Group* last_tab();
00075
00076 void resize_tabs();
00077 void extend_tabs();
00078
00079 Fl_Scroll* create_new_scroll(const char *label);
00080 Fl_Group* create_new_group(const char *label);
00081
00082 private:
00083 void ctor_init();
00084
00085 Fl_Widget *value_;
00086 Fl_Widget *push_;
00087 Fl_Tabs_Matrix *m_tabsMatrix;
00088 int m_autoColorIndex;
00089 Fl_Align m_tabsMode;
00090 };
00091
00092 #endif