Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members

/home/jeroen/FOX/fox/fox-1.7.33/include/FXOptionMenu.h
00001 /********************************************************************************
00002 *                                                                               *
00003 *                             O p t i o n   M e n u                             *
00004 *                                                                               *
00005 *********************************************************************************
00006 * Copyright (C) 1997,2012 by Jeroen van der Zijp.   All Rights Reserved.        *
00007 *********************************************************************************
00008 * This library is free software; you can redistribute it and/or modify          *
00009 * it under the terms of the GNU Lesser General Public License as published by   *
00010 * the Free Software Foundation; either version 3 of the License, or             *
00011 * (at your option) any later version.                                           *
00012 *                                                                               *
00013 * This library is distributed in the hope that it will be useful,               *
00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of                *
00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                 *
00016 * GNU Lesser General Public License for more details.                           *
00017 *                                                                               *
00018 * You should have received a copy of the GNU Lesser General Public License      *
00019 * along with this program.  If not, see <http://www.gnu.org/licenses/>          *
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

Copyright © 1997-2011 Jeroen van der Zijp