00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _GUMP_TOGGLEBUTTON_H
00020 #define _GUMP_TOGGLEBUTTON_H
00021
00022 #include "Gump_button.h"
00023 #include "Text_button.h"
00024
00025
00026
00027
00028
00029 class Gump_ToggleButton : public Gump_button
00030 {
00031 public:
00032 Gump_ToggleButton(Gump *par, int px, int py, int shapenum,
00033 int selectionnum, int numsel)
00034 : Gump_button(par, shapenum, px, py, SF_EXULT_FLX),
00035 numselections(numsel)
00036 {
00037 set_frame(2 * selectionnum);
00038 }
00039
00040 virtual void activate();
00041
00042 int getselection() const { return get_framenum()/2; }
00043 virtual void toggle(int state) = 0;
00044
00045 private:
00046 int numselections;
00047 };
00048
00049
00050
00051
00052
00053 class Gump_ToggleTextButton : public Text_button
00054 {
00055 public:
00056 Gump_ToggleTextButton(Gump *par, std::string *s, int selectionnum, int numsel,
00057 int px, int py, int width, int height = 0)
00058 : Text_button(par, "", px, py, width, height), selections(s),
00059 numselections(numsel)
00060 {
00061 set_frame(selectionnum);
00062 text = selections[selectionnum];
00063 init();
00064 }
00065
00066 virtual ~Gump_ToggleTextButton()
00067 {
00068 delete [] selections;
00069 }
00070 virtual void activate();
00071
00072 int getselection() const { return get_framenum(); }
00073 virtual void toggle(int state) = 0;
00074
00075 private:
00076 int numselections;
00077 std::string *selections;
00078 };
00079
00080
00081 #endif