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: control.h 36684 2006-01-04 22:46:06Z SN $ 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 18class WXDLLEXPORT wxControl : public wxControlBase 19{ 20 DECLARE_ABSTRACT_CLASS(wxControl) 21 22public: 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 80public: 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 121private: 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_ 132