#ifndef BUTTON_H #define BUTTON_H #define GL_BN_CLICKED 0x1111 #define ON_GL_BN_CLICKED(ctrlId, func) \ {MSG_TYPE_WND, GL_BN_CLICKED, (c_cmd_target*)ctrlId, MSG_CALLBACK_VWV, (MsgFuncVV)(static_cast(&func))}, typedef struct struct_bitmap_info BITMAP_INFO; class c_button : public c_wnd { public: virtual const char* get_class_name() const {return "c_button";} virtual c_wnd* clone(){return new c_button();} void set_bitmap(const BITMAP_INFO *pBitmap) { m_bitmap_normal = pBitmap; } void set_focus_bitmap(const BITMAP_INFO *pBitmap) { m_bitmap_focus = pBitmap; } void set_pushed_bitmap(const BITMAP_INFO *pBitmap) { m_bitmap_pushed = pBitmap; } void set_disable_bitmap(const BITMAP_INFO *pBitmap) { m_bitmap_disable = pBitmap; } protected: virtual void on_paint(); virtual void on_focus(); virtual void on_kill_focus(); virtual void pre_create_wnd(); virtual bool on_touch(int x, int y, TOUCH_ACTION action); virtual bool on_key(KEY_TYPE key); const BITMAP_INFO* m_bitmap_normal; const BITMAP_INFO* m_bitmap_focus; const BITMAP_INFO* m_bitmap_pushed; const BITMAP_INFO* m_bitmap_disable; }; #endif