]> git.saurik.com Git - wxWidgets.git/blob - include/wx/os2/control.h
Introduce a convenience class for g_freeing a gchar* on scope exit automatically...
[wxWidgets.git] / include / wx / os2 / control.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/os2/control.h
3 // Purpose: wxControl class
4 // Author: David Webster
5 // Modified by:
6 // Created: 09/17/99
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_CONTROL_H_
13 #define _WX_CONTROL_H_
14
15 #include "wx/dynarray.h"
16
17 // General item class
18 class WXDLLEXPORT wxControl : public wxControlBase
19 {
20 DECLARE_ABSTRACT_CLASS(wxControl)
21
22 public:
23 wxControl();
24 wxControl( wxWindow* pParent
25 ,wxWindowID vId
26 ,const wxPoint& rPos = wxDefaultPosition
27 ,const wxSize& rSize = wxDefaultSize
28 ,long lStyle = 0
29 ,const wxValidator& rValidator = wxDefaultValidator
30 ,const wxString& rsName = wxControlNameStr
31 )
32 {
33 Create( pParent, vId, rPos, rSize, lStyle, rValidator, rsName );
34 }
35 virtual ~wxControl();
36
37 bool Create( wxWindow* pParent
38 ,wxWindowID vId
39 ,const wxPoint& rPos = wxDefaultPosition
40 ,const wxSize& rSize = wxDefaultSize
41 ,long lStyle = 0
42 ,const wxValidator& rValidator = wxDefaultValidator
43 ,const wxString& rsName = wxControlNameStr
44 );
45
46 virtual void SetLabel(const wxString& rsLabel);
47 virtual wxString GetLabel() const { return m_label; }
48
49 //
50 // Simulates an event
51 //
52 virtual void Command(wxCommandEvent& rEvent) { ProcessCommand(rEvent); }
53
54 //
55 // Implementation from now on
56 // --------------------------
57 //
58
59 //
60 // Calls the callback and appropriate event handlers
61 //
62 bool ProcessCommand(wxCommandEvent& rEvent);
63
64 //
65 // For ownerdraw items
66 //
67 virtual bool OS2OnDraw(WXDRAWITEMSTRUCT* WXUNUSED(pItem)) { return false; };
68 virtual long OS2OnMeasure(WXMEASUREITEMSTRUCT* WXUNUSED(pItem)) { return 0L; };
69
70 wxArrayLong& GetSubcontrols() { return m_aSubControls; }
71 void OnEraseBackground(wxEraseEvent& rEvent);
72 virtual WXHBRUSH OnCtlColor( WXHDC hDC
73 ,WXHWND pWnd
74 ,WXUINT nCtlColor
75 ,WXUINT uMessage
76 ,WXWPARAM wParam
77 ,WXLPARAM lParam
78 );
79
80 public:
81 //
82 // For controls like radiobuttons which are really composite
83 //
84 wxArrayLong m_aSubControls;
85
86 virtual wxSize DoGetBestSize(void) const;
87
88 //
89 // Create the control of the given PM class
90 //
91 bool OS2CreateControl( const wxChar* zClassname
92 ,const wxString& rsLabel
93 ,const wxPoint& rPos
94 ,const wxSize& rSize
95 ,long lStyle
96 );
97 //
98 // Create the control of the given class with the given style, returns false
99 // if creation failed.
100 //
101 bool OS2CreateControl( const wxChar* zClassname
102 ,WXDWORD dwStyle
103 ,const wxPoint& rPos = wxDefaultPosition
104 ,const wxSize& rSize = wxDefaultSize
105 ,const wxString& rsLabel = wxEmptyString
106 ,WXDWORD dwExstyle = (WXDWORD)-1
107 );
108
109 //
110 // Default style for the control include WS_TABSTOP if it AcceptsFocus()
111 //
112 virtual WXDWORD OS2GetStyle( long lStyle
113 ,WXDWORD* pdwExstyle
114 ) const;
115
116 inline int GetXComp(void) const {return m_nXComp;}
117 inline int GetYComp(void) const {return m_nYComp;}
118 inline void SetXComp(const int nXComp) {m_nXComp = nXComp;}
119 inline void SetYComp(const int nYComp) {m_nYComp = nYComp;}
120
121 private:
122 int m_nXComp;
123 int m_nYComp;
124
125 wxString m_label;
126 WXDWORD m_dwStyle;
127
128 DECLARE_EVENT_TABLE()
129 }; // end of wxControl
130
131 #endif // _WX_CONTROL_H_