00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef INC_MGUI_FORMBTXT_H
00025 #define INC_MGUI_FORMBTXT_H
00026
00027 #ifndef INC_MGUI_CTRL_H
00028 #include <mgui/ctrl.h>
00029 #endif
00030
00031
00032 namespace MGUI {
00033
00034
00035
00036 class FORM_BUTTONTEXT : public MGUI::FORM_COMPOSITE {
00037 public:
00038
00039
00040 FORM_BUTTONTEXT (
00041 );
00042
00043
00044 void ClearText (
00045 ) {
00046 #ifdef WIN32_MFC
00047 m_Text.SetWindowText("");
00048 #else
00049 m_Text.ClearValue(false);
00050 #endif
00051 }
00052
00053
00054 void Create (
00055 MGUI::LAYOUT_PANE_BASE& ParentPane,
00056 const char *label,
00057 int width = 0,
00058 MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_Expand
00059 );
00060
00061
00062 void Create (
00063 MGUI::LAYOUT_PANE_BASE& ParentPane,
00064 const UNICODE *label,
00065 int width = 0,
00066 MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_Expand
00067 );
00068
00069
00070 CTRL_PUSHBUTTON& GetButton (
00071 ) { return (m_Button); }
00072
00073
00074 void SetText (
00075 const UNICODE* string
00076 ) {
00077 #ifdef WIN32_MFC
00078 m_Text.SetWindowText(CString(string));
00079 #else
00080 m_Text.SetValue(string,false);
00081 #endif
00082 }
00083
00084 protected:
00085
00086 virtual void OnPressed (
00087 ) = 0;
00088
00089 private:
00090 #ifndef GENERATING_DOXYGEN_OUTPUT
00091 #ifdef WIN32_MFC
00092 class MyEdit : public CEdit {
00093 public:
00094 virtual BOOL PreCreateWindow (CREATESTRUCT& cs);
00095 };
00096 MyEdit m_Text;
00097 #else
00098 CTRL_EDIT_STRING m_Text;
00099 #endif
00100
00101 CTRL_PUSHBUTTON_T<FORM_BUTTONTEXT> m_Button;
00102
00103 void CreateText (int width, LAYOUT_SIZEALIGN sizealign);
00104
00105 FORM_BUTTONTEXT (const FORM_BUTTONTEXT&);
00106 FORM_BUTTONTEXT& operator= (const FORM_BUTTONTEXT&);
00107 #endif // GENERATING_DOXYGEN_OUTPUT
00108 };
00109
00110
00111
00112
00113 template <class _CT> class FORM_BUTTONTEXT_T : public MGUI::FORM_BUTTONTEXT {
00114 public:
00115
00116
00117 FORM_BUTTONTEXT_T (
00118 ): m_pContainer(0), m_pfOnPressed(0) { }
00119
00120
00121 void Create (
00122 MGUI::LAYOUT_PANE_BASE& ParentPane,
00123 const char* label,
00124 _CT *pContainer,
00125 void (_CT::*pfOnPressed)(),
00126 int width = 0,
00127 MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_Expand
00128 ) {
00129 m_pContainer = pContainer;
00130 m_pfOnPressed = pfOnPressed;
00131 FORM_BUTTONTEXT::Create(ParentPane,label,width,sizealign);
00132 return;
00133 }
00134
00135
00136 void Create (
00137 MGUI::LAYOUT_PANE_BASE& ParentPane,
00138 const UNICODE* label,
00139 _CT *pContainer,
00140 void (_CT::*pfOnPressed)(),
00141 int width = 0,
00142 MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_Expand
00143 ) {
00144 m_pContainer = pContainer;
00145 m_pfOnPressed = pfOnPressed;
00146 FORM_BUTTONTEXT::Create(ParentPane,label,width,sizealign);
00147 return;
00148 }
00149
00150 private:
00151 #ifndef GENERATING_DOXYGEN_OUTPUT
00152 _CT *m_pContainer;
00153 void (_CT::*m_pfOnPressed)();
00154
00155
00156 virtual void OnPressed (
00157 ) { (m_pContainer->*m_pfOnPressed)(); }
00158 #endif // GENERATING_DOXYGEN_OUTPUT
00159 };
00160
00161
00162
00163
00164 }
00165
00166 #endif // INC_MGUI_FORMBTXT_H