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
00037
00038 class FXAPI FXOption : public FXLabel {
00039 FXDECLARE(FXOption)
00040 protected:
00041 FXOption(){}
00042 private:
00043 FXOption(const FXOption&);
00044 FXOption &operator=(const FXOption&);
00045 public:
00046 long onPaint(FXObject*,FXSelector,void*);
00047 long onEnter(FXObject*,FXSelector,void*);
00048 long onLeave(FXObject*,FXSelector,void*);
00049 long onLeftBtnPress(FXObject*,FXSelector,void*);
00050 long onLeftBtnRelease(FXObject*,FXSelector,void*);
00051 long onKeyPress(FXObject*,FXSelector,void*);
00052 long onKeyRelease(FXObject*,FXSelector,void*);
00053 long onHotKeyPress(FXObject*,FXSelector,void*);
00054 long onHotKeyRelease(FXObject*,FXSelector,void*);
00055 public:
00056
00057
00058 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);
00059
00060
00061 virtual FXint getDefaultWidth();
00062
00063
00064 virtual FXint getDefaultHeight();
00065
00066
00067 virtual FXbool canFocus() const;
00068
00069
00070 virtual void setFocus();
00071
00072
00073 virtual void killFocus();
00074
00075
00076 virtual ~FXOption();
00077 };
00078
00079
00080
00081
00082 class FXAPI FXOptionMenu : public FXLabel {
00083 FXDECLARE(FXOptionMenu)
00084 protected:
00085 FXPopup *pane;
00086 FXOption *current;
00087 protected:
00088 FXOptionMenu(){}
00089 private:
00090 FXOptionMenu(const FXOptionMenu&);
00091 FXOptionMenu &operator=(const FXOptionMenu&);
00092 public:
00093 long onPaint(FXObject*,FXSelector,void*);
00094 long onLeftBtnPress(FXObject*,FXSelector,void*);
00095 long onLeftBtnRelease(FXObject*,FXSelector,void*);
00096 long onFocusIn(FXObject*,FXSelector,void*);
00097 long onFocusOut(FXObject*,FXSelector,void*);
00098 long onMotion(FXObject*,FXSelector,void*);
00099 long onKeyPress(FXObject*,FXSelector,void*);
00100 long onKeyRelease(FXObject*,FXSelector,void*);
00101 long onCmdPost(FXObject*,FXSelector,void*);
00102 long onCmdUnpost(FXObject*,FXSelector,void*);
00103 long onQueryHelp(FXObject*,FXSelector,void*);
00104 long onQueryTip(FXObject*,FXSelector,void*);
00105 long onCmdSetValue(FXObject*,FXSelector,void*);
00106 long onCmdSetIntValue(FXObject*,FXSelector,void*);
00107 long onCmdGetIntValue(FXObject*,FXSelector,void*);
00108 public:
00109
00110
00111 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);
00112
00113
00114 virtual void create();
00115
00116
00117 virtual void detach();
00118
00119
00120 virtual void destroy();
00121
00122
00123 virtual void layout();
00124
00125
00126 virtual void killFocus();
00127
00128
00129 virtual FXint getDefaultWidth();
00130
00131
00132 virtual FXint getDefaultHeight();
00133
00134
00135 virtual FXbool contains(FXint parentx,FXint parenty) const;
00136
00137
00138 void setCurrent(FXOption *win,FXbool notify=FALSE);
00139
00140
00141 FXOption* getCurrent() const { return current; }
00142
00143
00144 void setCurrentNo(FXint no,FXbool notify=FALSE);
00145
00146
00147 FXint getCurrentNo() const;
00148
00149
00150 FXint getNumOptions() const;
00151
00152
00153 void setMenu(FXPopup *pup);
00154
00155
00156 FXPopup* getMenu() const { return pane; }
00157
00158
00159 virtual FXbool canFocus() const;
00160
00161
00162 FXbool isPopped() const;
00163
00164
00165 virtual void save(FXStream& store) const;
00166
00167
00168 virtual void load(FXStream& store);
00169
00170
00171 virtual ~FXOptionMenu();
00172 };
00173
00174 }
00175
00176 #endif