GuiLite/workspace/widgets_include/keyboard.h

58 lines
1.1 KiB
C
Raw Normal View History

2019-08-19 16:03:27 +08:00
#ifndef GUILITE_WIDGETS_INCLUDE_KEYBOARD_H
#define GUILITE_WIDGETS_INCLUDE_KEYBOARD_H
2017-12-06 21:43:47 +08:00
#define KEYBORAD_CLICK 0x5014
2019-12-17 10:45:15 +08:00
#define ON_KEYBORAD_UPDATE(func) \
{MSG_TYPE_WND, KEYBORAD_CLICK, 0, msgCallback(&func)},
2017-12-06 21:43:47 +08:00
typedef enum
{
STATUS_UPPERCASE,
STATUS_LOWERCASE
}KEYBOARD_STATUS;
typedef enum
{
STYLE_ALL_BOARD,
STYLE_NUM_BOARD
}KEYBOARD_STYLE;
typedef enum
{
CLICK_CHAR,
CLICK_ENTER,
CLICK_ESC
}CLICK_STATUS;
class c_keyboard: public c_wnd
{
public:
2019-06-14 14:00:23 +08:00
virtual int connect(c_wnd *user, unsigned short resource_id, KEYBOARD_STYLE style);
2017-12-06 21:43:47 +08:00
KEYBOARD_STATUS get_cap_status(){return m_cap_status;}
char* get_str() { return m_str; }
protected:
virtual void pre_create_wnd();
2019-06-14 14:00:23 +08:00
virtual void on_paint();
2017-12-06 21:43:47 +08:00
2019-12-17 10:45:15 +08:00
void on_key_clicked(int id, int param);
void on_char_clicked(int id, int param);
void on_del_clicked(int id, int param);
void on_caps_clicked(int id, int param);
void on_enter_clicked(int id, int param);
void on_esc_clicked(int id, int param);
2017-12-06 21:43:47 +08:00
2018-12-02 22:39:43 +08:00
GL_DECLARE_MESSAGE_MAP()
2017-12-06 21:43:47 +08:00
private:
char m_str[32];
int m_str_len;
KEYBOARD_STATUS m_cap_status;
};
class c_keyboard_button : public c_button
{
protected:
virtual void on_paint();
};
#endif /* KEYBOARD_H_ */