00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef FXOPTIONMENU_H
00022 #define FXOPTIONMENU_H
00023
00024 #ifndef FXLABEL_H
00025 #include "FXLabel.h"
00026 #endif
00027
00028 namespace FX {
00029
00030
00031 class FXPopup;
00032
00033
00035 enum {
00036 OPTIONMENU_TOOLBAR = 0x00800000,
00037 OPTIONMENU_NOGLYPH = 0x01000000,
00038 };
00039
00040
00042 class FXAPI FXOption : public FXLabel {
00043 FXDECLARE(FXOption)
00044 protected:
00045 FXColor selbackColor;
00046 FXColor seltextColor;
00047 protected:
00048 FXOption();
00049 private:
00050 FXOption(const FXOption&);
00051 FXOption &operator=(const FXOption&);
00052 public:
00053 long onPaint(FXObject*,FXSelector,void*);
00054 long onEnter(FXObject*,FXSelector,void*);
00055 long onLeave(FXObject*,FXSelector,void*);
00056 long onLeftBtnPress(FXObject*,FXSelector,void*);
00057 long onLeftBtnRelease(FXObject*,FXSelector,void*);
00058 long onKeyPress(FXObject*,FXSelector,void*);
00059 long onKeyRelease(FXObject*,FXSelector,void*);
00060 long onHotKeyPress(FXObject*,FXSelector,void*);
00061 long onHotKeyRelease(FXObject*,FXSelector,void*);
00062 public:
00063
00065 FXOption(FXComposite* p,const FXString& text,FXIcon* ic=NULL,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=JUSTIFY_NORMAL|ICON_BEFORE_TEXT,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00066
00068 virtual FXint getDefaultWidth();
00069
00071 virtual FXint getDefaultHeight();
00072
00074 virtual FXbool canFocus() const;
00075
00077 virtual void setFocus();
00078
00080 virtual void killFocus();
00081
00083 void setSelBackColor(FXColor clr);
00084
00086 FXColor getSelBackColor() const { return selbackColor; }
00087
00089 void setSelTextColor(FXColor clr);
00090
00092 FXColor getSelTextColor() const { return seltextColor; }
00093
00095 virtual ~FXOption();
00096 };
00097
00098
00099
00101 class FXAPI FXOptionMenu : public FXLabel {
00102 FXDECLARE(FXOptionMenu)
00103 protected:
00104 FXPopup *pane;
00105 FXOption *current;
00106 protected:
00107 FXOptionMenu(){}
00108 private:
00109 FXOptionMenu(const FXOptionMenu&);
00110 FXOptionMenu &operator=(const FXOptionMenu&);
00111 public:
00112 long onPaint(FXObject*,FXSelector,void*);
00113 long onLeftBtnPress(FXObject*,FXSelector,void*);
00114 long onLeftBtnRelease(FXObject*,FXSelector,void*);
00115 long onEnter(FXObject*,FXSelector,void*);
00116 long onLeave(FXObject*,FXSelector,void*);
00117 long onFocusIn(FXObject*,FXSelector,void*);
00118 long onFocusOut(FXObject*,FXSelector,void*);
00119 long onMotion(FXObject*,FXSelector,void*);
00120 long onKeyPress(FXObject*,FXSelector,void*);
00121 long onKeyRelease(FXObject*,FXSelector,void*);
00122 long onCmdPost(FXObject*,FXSelector,void*);
00123 long onCmdUnpost(FXObject*,FXSelector,void*);
00124 long onQueryHelp(FXObject*,FXSelector,void*);
00125 long onQueryTip(FXObject*,FXSelector,void*);
00126 long onCmdSetValue(FXObject*,FXSelector,void*);
00127 long onCmdSetIntValue(FXObject*,FXSelector,void*);
00128 long onCmdGetIntValue(FXObject*,FXSelector,void*);
00129 long onMouseWheel(FXObject*,FXSelector,void*);
00130 public:
00131
00133 FXOptionMenu(FXComposite* p,FXPopup* pup=NULL,FXuint opts=JUSTIFY_NORMAL|ICON_BEFORE_TEXT,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00134
00136 virtual void create();
00137
00139 virtual void detach();
00140
00142 virtual void destroy();
00143
00145 virtual void layout();
00146
00148 virtual void killFocus();
00149
00151 virtual FXint getDefaultWidth();
00152
00154 virtual FXint getDefaultHeight();
00155
00157 virtual FXbool contains(FXint parentx,FXint parenty) const;
00158
00160 FXOption *getItem(FXint index) const;
00161
00163 void setCurrent(FXOption *win,FXbool notify=false);
00164
00166 FXOption* getCurrent() const { return current; }
00167
00169 void setCurrentNo(FXint no,FXbool notify=false);
00170
00172 FXint getCurrentNo() const;
00173
00175 FXint getNumOptions() const;
00176
00178 void setMenu(FXPopup *pup);
00179
00181 FXPopup* getMenu() const { return pane; }
00182
00184 virtual FXbool canFocus() const;
00185
00187 FXbool isPopped() const;
00188
00190 virtual void save(FXStream& store) const;
00191
00193 virtual void load(FXStream& store);
00194
00196 virtual ~FXOptionMenu();
00197 };
00198
00199 }
00200
00201 #endif