gwenhywfar
4.3.3
|
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