00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_GLWDropDownh_INCLUDE__)
00022 #define __INCLUDE_GLWDropDownh_INCLUDE__
00023
00024 #include <list>
00025 #include <string>
00026 #include <GLW/GLWPushButton.h>
00027 #include <GLW/GLWidget.h>
00028 #include <GLW/GLWSelector.h>
00029
00030 class GLWDropDownI
00031 {
00032 public:
00033 virtual ~GLWDropDownI();
00034
00035 virtual void select(unsigned int id, const int pos, GLWSelectorEntry value) = 0;
00036 };
00037
00038 class GLWDropDown : public GLWidget, public GLWSelectorI, public GLWPushButtonI
00039 {
00040 public:
00041 GLWDropDown(float x = 0.0f, float y = 0.0f, float w = 0.0f);
00042 virtual ~GLWDropDown();
00043
00044 void setHandler(GLWDropDownI *handler);
00045 void addEntry(GLWSelectorEntry text);
00046
00047 void setCurrentPosition(int pos);
00048 int getCurrentPosition();
00049 GLWSelectorEntry *getCurrentEntry();
00050
00051
00052 virtual void draw();
00053 virtual void mouseDown(int button, float x, float y, bool &skipRest);
00054 virtual void mouseUp(int button, float x, float y, bool &skipRest);
00055 virtual void setX(float x);
00056 virtual void setY(float y);
00057
00058
00059 virtual void itemSelected(GLWSelectorEntry *entry, int position);
00060 virtual void noItemSelected();
00061
00062
00063 virtual void buttonDown(unsigned int id);
00064 virtual void buttonUp(unsigned int id);
00065
00066 void clear();
00067
00068 REGISTER_CLASS_HEADER(GLWDropDown);
00069 protected:
00070 std::list<GLWSelectorEntry> texts_;
00071 GLWSelectorEntry *current_;
00072 GLWPushButton button_;
00073 GLWDropDownI *handler_;
00074
00075 };
00076
00077 #endif