📄 mgwidget.h
字号:
#ifndef _MGWIDGET_H_#define _MGWIDGET_H_class MGFont;class MGSize;#include "mgrect.h"namespace khtml { class RenderFormElement;};class MGWidget{public: MGWidget(); MGWidget(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidget(); #if( _CURRENT_PLATFORM == _PLATFORM_MINIGUI ) HDC getHdc() const; inline HWND getHwnd() const {return m_hWnd;} inline HWND getParent() const {return m_hWndParent;}#endif inline virtual int ProcNotification (int code) {return 0;}; virtual void clicked(); virtual void initWindow(); virtual int width() const; virtual int height() const; virtual MGSize sizeHint() const; virtual int x() const; virtual int y() const; virtual void show(); virtual void hide(); virtual void resize( int w, int h ); virtual void moveWindow( int x, int y ); virtual void setFocus(); virtual void clearFocus(); virtual void setFont( const MGFont& font ); void setText( const char * str ); virtual void layout(); bool isVisible() const { return m_bShowIt; } void setVisible( bool show ) { m_bShowIt = show; }protected:#if( _CURRENT_PLATFORM == _PLATFORM_MINIGUI ) HWND m_hWnd, m_hWndParent; MGRect m_rectWnd; MGSize m_size;#endif bool m_bShowIt; khtml::RenderFormElement * m_renderer;};//--------------------------------------------------------------------------------------------------------------------Buttonclass MGWidgetButton : public MGWidget{public: MGWidgetButton(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetButton(); inline virtual int ProcNotification (int code) { if (code == BN_CLICKED) clicked(); return 0;} virtual MGSize sizeHint() const; virtual void clicked(); virtual void initWindow();};//--------------------------------------------------------------------------------------------------------------------Radioclass MGWidgetRadio : public MGWidget{public: MGWidgetRadio(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetRadio(); inline virtual int ProcNotification (int code) { if (code == BN_CLICKED) clicked(); return 0;} virtual MGSize sizeHint() const; virtual void clicked(); void setChecked(bool b); virtual void initWindow();};//--------------------------------------------------------------------------------------------------------------------Checkclass MGWidgetCheck : public MGWidget{public: MGWidgetCheck(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetCheck(); inline virtual int ProcNotification (int code) { if (code == BN_CLICKED) clicked(); return 0;} virtual MGSize sizeHint() const; virtual void clicked(); void setChecked(bool b); virtual void initWindow();};//--------------------------------------------------------------------------------------------------------------------Editclass MGWidgetEdit : public MGWidget{public: MGWidgetEdit(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetEdit(); virtual int ProcNotification (int code); virtual void clicked(); virtual void initWindow();};//--------------------------------------------------------------------------------------------------------------------Passwordclass MGWidgetEditPassword : public MGWidgetEdit{public: MGWidgetEditPassword(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetEditPassword(); virtual void initWindow();};//--------------------------------------------------------------------------------------------------------------------Staticclass MGWidgetStatic : public MGWidget{public: MGWidgetStatic(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetStatic(); inline virtual int ProcNotification (int code) { if (code == STN_CLICKED) clicked(); return 0;} virtual void clicked(); virtual void initWindow();};//--------------------------------------------------------------------------------------------------------------------Parentclass MGWidgetParent : public MGWidget{# define BUTTON_ID 0public: MGWidgetParent(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetParent(); virtual void clicked(); virtual void initWindow(); virtual void show(); virtual void hide(); MGWidgetEdit * getEdit(){ return m_Edit; }; virtual MGSize sizeHint() const;private: MGWidgetEdit * m_Edit; HWND m_hButton; HWND m_hEdit; int m_ButtonID; static int ParentProc( HWND hWnd, int message, WPARAM wParam, LPARAM lParam ); bool createParentWnd( int x, int y, int w, int h, bool visible, HWND hParent );};//-----------------------------------------------------------------------------------------------------------ComboBoxclass MGWidgetComboBox : public MGWidget{public: MGWidgetComboBox(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetComboBox(); virtual int ProcNotification(int code); virtual void clicked(); virtual void initWindow(); void insertItem(const char * str, int index); void clear(); int currentItem(); void setCurrentItem(int index);};//-----------------------------------------------------------------------------------------------------------Listclass MGWidgetList : public MGWidget{public: MGWidgetList(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetList(); virtual int ProcNotification(int code); virtual void clicked(); virtual void initWindow(); virtual MGSize sizeHint() const; void insertItem(const char * str, int index); void clear(); bool isSelected( int index ); void setSelected( int index, bool );};//------------------------------------------------------------------------------------------------------------------TextAreaclass MGWidgetTextArea : public MGWidget{public: MGWidgetTextArea(HWND hWndParent, khtml::RenderFormElement * renderer); virtual ~MGWidgetTextArea(); virtual int ProcNotification(int code); virtual void initWindow(); virtual MGSize sizeHint() const; QString text();};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -