gwenhywfar  4.3.1
theme.h
Go to the documentation of this file.
00001 
00002 /* These widgets have initially been created by Martin Oberzalek who gave them into
00003  * the public domain via an email to the mailing list foxgui-users on 17th of June, 2010
00004  * ("here the source. Free to use for alll.").
00005  * I (Martin Preuss) adapted them to be usable with FOX 1.6 and also added some widgets of
00006  * my own (for now: ThemeHeaderItem).
00007  */
00008 
00009 #ifndef THEME_H
00010 #define THEME_H
00011 
00012 #include <fx.h>
00013 
00019 #include <gwen-gui-fox16/fox16_gui.hpp>
00020 
00021 
00022 
00023 #define THEMEBUTTON          ThemeButton
00024 #define THEMETEXTFIELD       ThemeTextField
00025 #define THEMECOMBOBOX        ThemeComboBox
00026 #define THEMELABEL           ThemeLabel
00027 #define THEMEVERTICALFRAME   ThemeVerticalFrame
00028 #define THEMEHORIZONTALFRAME ThemeHorizontalFrame
00029 #define THEMEMENUBUTTON      ThemeMenuButton
00030 #define THEMEHEADERITEM      ThemeHeaderItem
00031 #define THEMETABITEM         ThemeTabItem
00032 
00033 
00034 
00035 class FOX16GUI_API ThemeButton : public FXButton {
00036   FXDECLARE( ThemeButton );
00037 
00038 protected:
00039   ThemeButton() {}
00040 
00041 public: 
00042   ThemeButton(FXComposite* p,const FXString& text,FXIcon* ic=NULL,
00043               FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=BUTTON_NORMAL,
00044               FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_PAD,
00045               FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00046 
00047   long onPaint(FXObject*,FXSelector,void* ptr);
00048 };
00049 
00050 
00051 
00052 class FOX16GUI_API ThemeTextField : public FXTextField {
00053   FXDECLARE( ThemeTextField );
00054 
00055 protected:
00056   ThemeTextField() {}
00057 
00058 public:
00059   ThemeTextField(FXComposite* p,FXint ncols,FXObject* tgt=NULL,FXSelector sel=0,
00060                  FXuint opts=TEXTFIELD_NORMAL,FXint x=0,FXint y=0,FXint w=0,
00061                  FXint h=0,FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00062 
00063   long onPaint(FXObject*,FXSelector,void* ptr);
00064 
00065 protected:
00066   void drawFrame(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
00067 };
00068 
00069 
00070 
00071 
00072 FOX16GUI_API void init_theme( FXApp *app );
00073 
00074 
00075 
00076 
00077 class FOX16GUI_API ThemeComboBox : public FXComboBox {
00078   FXDECLARE( ThemeComboBox );
00079 
00080 protected:
00081   ThemeComboBox() {}
00082 
00083 public:
00084   ThemeComboBox(FXComposite *p,FXint cols,FXObject* tgt=NULL,FXSelector sel=0,
00085                 FXuint opts=COMBOBOX_NORMAL,FXint x=0,FXint y=0,FXint w=0,FXint h=0,
00086                 FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00087 
00088   long onPaint(FXObject*,FXSelector,void* ptr);
00089 };
00090 
00091 
00092 
00093 
00094 class FOX16GUI_API ThemeLabel : public FXLabel {
00095   FXDECLARE( ThemeLabel );
00096 
00097 protected:
00098   ThemeLabel() {}
00099 
00100 public:
00101   ThemeLabel(FXComposite* p,const FXString& text,FXIcon* ic=0,FXuint opts=LABEL_NORMAL,
00102              FXint x=0,FXint y=0,FXint w=0,FXint h=0,
00103              FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00104 
00105   long onPaint(FXObject*,FXSelector,void* ptr);
00106 };
00107 
00108 
00109 
00110 
00111 class FOX16GUI_API ThemeTabItem : public FXTabItem {
00112   FXDECLARE( ThemeTabItem );
00113 
00114 protected:
00115   ThemeTabItem() {}
00116 
00117 public:
00118   ThemeTabItem(FXTabBar* p,const FXString& text,FXIcon* ic=0,
00119                FXuint opts=TAB_TOP_NORMAL,
00120                FXint x=0,FXint y=0,FXint w=0,FXint h=0,
00121                FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,
00122                FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00123 };
00124 
00125 
00126 
00127 
00128 class FOX16GUI_API ThemeVerticalFrame : public FXVerticalFrame {
00129 protected:
00130   ThemeVerticalFrame() {}
00131 
00132 public:
00133   ThemeVerticalFrame(FXComposite *p,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0,
00134                      FXint pl=DEFAULT_SPACING,FXint pr=DEFAULT_SPACING,FXint pt=DEFAULT_SPACING,
00135                      FXint pb=DEFAULT_SPACING,FXint hs=DEFAULT_SPACING,FXint vs=DEFAULT_SPACING);
00136 };
00137 
00138 
00139 
00140 
00141 class FOX16GUI_API ThemeHorizontalFrame : public FXHorizontalFrame {
00142 protected:
00143   ThemeHorizontalFrame() {}
00144 
00145 public:
00146   ThemeHorizontalFrame(FXComposite *p,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint
00147                        pl=DEFAULT_SPACING,FXint pr=DEFAULT_SPACING,FXint pt=DEFAULT_SPACING,
00148                        FXint pb=DEFAULT_SPACING,FXint hs=DEFAULT_SPACING,FXint vs=DEFAULT_SPACING);
00149 };
00150 
00151 
00152 
00153 
00154 class FOX16GUI_API ThemeMenuButton : public FXMenuButton {
00155   FXDECLARE( ThemeMenuButton );
00156 
00157 protected:
00158   ThemeMenuButton() {}
00159 
00160 public:
00161   ThemeMenuButton(FXComposite* p,const FXString& text,FXIcon* ic=NULL,
00162                   FXPopup* pup=NULL,
00163                   FXuint opts=JUSTIFY_NORMAL|ICON_BEFORE_TEXT|MENUBUTTON_DOWN,
00164                   FXint x=0,FXint y=0,FXint w=0,FXint h=0,
00165                   FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,
00166                   FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00167 
00168 
00169   long onPaint(FXObject*,FXSelector,void* ptr);
00170 
00171   FXint getDefaultWidth();
00172 };
00173 
00174 
00175 
00176 class FOX16GUI_API ThemeHeaderItem : public FXHeaderItem {
00177 protected:
00178   ThemeHeaderItem() {}
00179 
00180 public:
00181   ThemeHeaderItem(const FXString& text, FXIcon* ic=NULL, FXint s=0, void* ptr=NULL);
00182 
00183   void draw(const FXHeader* header,FXDC& dc,FXint x,FXint y,FXint w,FXint h);
00184 
00185 };
00186 
00187 
00188 
00189 #endif
00190