00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _GUMP_WIDGET_H_
00020 #define _GUMP_WIDGET_H_
00021
00022 #include "exceptions.h"
00023 #include "gump_types.h"
00024 #include "shapeid.h"
00025 #include "rect.h"
00026
00027 class Gump;
00028 class Game_window;
00029
00030
00031
00032
00033 class Gump_widget : public ShapeID
00034 {
00035 UNREPLICATABLE_CLASS(Gump_widget);
00036
00037 protected:
00038 Gump_widget() : parent(0) { }
00039 Gump *parent;
00040 short x, y;
00041
00042 public:
00043 friend class Gump;
00044 friend class Spellbook_gump;
00045 friend class Spellscroll_gump;
00046 Gump_widget(Gump *par, int shnum, int px, int py, ShapeFile shfile = SF_GUMPS_VGA)
00047 : ShapeID(shnum, 0, shfile), parent(par), x(px), y(py)
00048 { }
00049
00050 virtual int on_widget(int mx, int my);
00051
00052 virtual void paint();
00053
00054 virtual Rectangle get_rect();
00055
00056 virtual void update_widget() { }
00057
00058 virtual bool is_draggable() { return true; }
00059
00060 };
00061
00062 #endif