00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef FXOPTIONMENU_H
00025 #define FXOPTIONMENU_H
00026
00027 #ifndef FXLABEL_H
00028 #include "FXLabel.h"
00029 #endif
00030
00031 namespace FX {
00032
00033
00034 class FXPopup;
00035
00036
00038 class FXAPI FXOption : public FXLabel {
00039 FXDECLARE(FXOption)
00040 protected:
00041 FXColor selbackColor;
00042 FXColor seltextColor;
00043 protected:
00044 FXOption();
00045 private:
00046 FXOption(const FXOption&);
00047 FXOption &operator=(const FXOption&);
00048 public:
00049 long onPaint(FXObject*,FXSelector,void*);
00050 long onEnter(FXObject*,FXSelector,void*);
00051 long onLeave(FXObject*,FXSelector,void*);
00052 long onLeftBtnPress(FXObject*,FXSelector,void*);
00053 long onLeftBtnRelease(FXObject*,FXSelector,void*);
00054 long onKeyPress(FXObject*,FXSelector,void*);
00055 long onKeyRelease(FXObject*,FXSelector,void*);
00056 long onHotKeyPress(FXObject*,FXSelector,void*);
00057 long onHotKeyRelease(FXObject*,FXSelector,void*);
00058 public:
00059
00061 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);
00062
00064 virtual FXint getDefaultWidth();
00065
00067 virtual FXint getDefaultHeight();
00068
00070 virtual bool canFocus() const;
00071
00073 virtual void setFocus();
00074
00076 virtual void killFocus();
00077
00079 void setSelBackColor(FXColor clr);
00080
00082 FXColor getSelBackColor() const { return selbackColor; }
00083
00085 void setSelTextColor(FXColor clr);
00086
00088 FXColor getSelTextColor() const { return seltextColor; }
00089
00091 virtual ~FXOption();
00092 };
00093
00094
00095
00097 class FXAPI FXOptionMenu : public FXLabel {
00098 FXDECLARE(FXOptionMenu)
00099 protected:
00100 FXPopup *pane;
00101 FXOption *current;
00102 protected:
00103 FXOptionMenu(){}
00104 private:
00105 FXOptionMenu(const FXOptionMenu&);
00106 FXOptionMenu &operator=(const FXOptionMenu&);
00107 public:
00108 long onPaint(FXObject*,FXSelector,void*);
00109 long onLeftBtnPress(FXObject*,FXSelector,void*);
00110 long onLeftBtnRelease(FXObject*,FXSelector,void*);
00111 long onFocusIn(FXObject*,FXSelector,void*);
00112 long onFocusOut(FXObject*,FXSelector,void*);
00113 long onMotion(FXObject*,FXSelector,void*);
00114 long onKeyPress(FXObject*,FXSelector,void*);
00115 long onKeyRelease(FXObject*,FXSelector,void*);
00116 long onCmdPost(FXObject*,FXSelector,void*);
00117 long onCmdUnpost(FXObject*,FXSelector,void*);
00118 long onQueryHelp(FXObject*,FXSelector,void*);
00119 long onQueryTip(FXObject*,FXSelector,void*);
00120 long onCmdSetValue(FXObject*,FXSelector,void*);
00121 long onCmdSetIntValue(FXObject*,FXSelector,void*);
00122 long onCmdGetIntValue(FXObject*,FXSelector,void*);
00123 long onMouseWheel(FXObject*,FXSelector,void*);
00124 public:
00125
00127 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);
00128
00130 virtual void create();
00131
00133 virtual void detach();
00134
00136 virtual void destroy();
00137
00139 virtual void layout();
00140
00142 virtual void killFocus();
00143
00145 virtual FXint getDefaultWidth();
00146
00148 virtual FXint getDefaultHeight();
00149
00151 virtual bool contains(FXint parentx,FXint parenty) const;
00152
00154 void setCurrent(FXOption *win,FXbool notify=FALSE);
00155
00157 FXOption* getCurrent() const { return current; }
00158
00160 void setCurrentNo(FXint no,FXbool notify=FALSE);
00161
00163 FXint getCurrentNo() const;
00164
00166 FXint getNumOptions() const;
00167
00169 void setMenu(FXPopup *pup);
00170
00172 FXPopup* getMenu() const { return pane; }
00173
00175 virtual bool canFocus() const;
00176
00178 FXbool isPopped() const;
00179
00181 virtual void save(FXStream& store) const;
00182
00184 virtual void load(FXStream& store);
00185
00187 virtual ~FXOptionMenu();
00188 };
00189
00190 }
00191
00192 #endif