X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a5569657a0667008c72459f3ec09d7750eb7343a..2209baaee3a8578450e204593b79ed155f340f68:/include/wx/os2/control.h diff --git a/include/wx/os2/control.h b/include/wx/os2/control.h index 604e2f1a79..41ba89cc41 100644 --- a/include/wx/os2/control.h +++ b/include/wx/os2/control.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: control.h +// Name: wx/os2/control.h // Purpose: wxControl class // Author: David Webster // Modified by: @@ -12,7 +12,7 @@ #ifndef _WX_CONTROL_H_ #define _WX_CONTROL_H_ -WXDLLEXPORT_DATA(extern const wxChar*) wxControlNameStr; +#include "wx/dynarray.h" // General item class class WXDLLEXPORT wxControl : public wxControlBase @@ -21,96 +21,111 @@ class WXDLLEXPORT wxControl : public wxControlBase public: wxControl(); - wxControl(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, -#if wxUSE_VALIDATORS - const wxValidator& validator = wxDefaultValidator, -#endif - const wxString& name = wxControlNameStr) + wxControl( wxWindow* pParent + ,wxWindowID vId + ,const wxPoint& rPos = wxDefaultPosition + ,const wxSize& rSize = wxDefaultSize + ,long lStyle = 0 + ,const wxValidator& rValidator = wxDefaultValidator + ,const wxString& rsName = wxControlNameStr + ) { - Create(parent, id, pos, size, style, validator, name); + Create( pParent, vId, rPos, rSize, lStyle, rValidator, rsName ); } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, -#if wxUSE_VALIDATORS - const wxValidator& validator = wxDefaultValidator, -#endif - const wxString& name = wxControlNameStr); virtual ~wxControl(); - // Simulates an event - virtual void Command(wxCommandEvent& event) { ProcessCommand(event); } - - // implementation from now on - // -------------------------- - - // Calls the callback and appropriate event handlers - bool ProcessCommand(wxCommandEvent& event); - - // OS2-specific - virtual bool OS2OnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - // For ownerdraw items - virtual bool OS2OnDraw(WXDRAWITEMSTRUCT *WXUNUSED(item)) { return FALSE; }; - virtual bool OS2OnMeasure(WXMEASUREITEMSTRUCT *WXUNUSED(item)) { return FALSE; }; - - wxList& GetSubcontrols() { return m_subControls; } - - void OnEraseBackground(wxEraseEvent& event); - -#if WXWIN_COMPATIBILITY - virtual void SetButtonColour(const wxColour& WXUNUSED(col)) { } - wxColour* GetButtonColour() const { return NULL; } + bool Create( wxWindow* pParent + ,wxWindowID vId + ,const wxPoint& rPos = wxDefaultPosition + ,const wxSize& rSize = wxDefaultSize + ,long lStyle = 0 + ,const wxValidator& rValidator = wxDefaultValidator + ,const wxString& rsName = wxControlNameStr + ); + + virtual void SetLabel(const wxString& rsLabel); + virtual wxString GetLabel() const { return m_label; } + + // + // Simulates an event + // + virtual void Command(wxCommandEvent& rEvent) { ProcessCommand(rEvent); } + + // + // Implementation from now on + // -------------------------- + // + + // + // Calls the callback and appropriate event handlers + // + bool ProcessCommand(wxCommandEvent& rEvent); + + // + // For ownerdraw items + // + virtual bool OS2OnDraw(WXDRAWITEMSTRUCT* WXUNUSED(pItem)) { return false; }; + virtual long OS2OnMeasure(WXMEASUREITEMSTRUCT* WXUNUSED(pItem)) { return 0L; }; + + wxArrayLong& GetSubcontrols() { return m_aSubControls; } + void OnEraseBackground(wxEraseEvent& rEvent); + virtual WXHBRUSH OnCtlColor( WXHDC hDC + ,WXHWND pWnd + ,WXUINT nCtlColor + ,WXUINT uMessage + ,WXWPARAM wParam + ,WXLPARAM lParam + ); - inline virtual void SetLabelFont(const wxFont& font); - inline virtual void SetButtonFont(const wxFont& font); - inline wxFont& GetLabelFont() const; - inline wxFont& GetButtonFont() const; - - // Adds callback - inline void Callback(const wxFunction function); - - wxFunction GetCallback() { return m_callback; } - -protected: - wxFunction m_callback; // Callback associated with the window -#endif // WXWIN_COMPATIBILITY - -protected: - // For controls like radiobuttons which are really composite - wxList m_subControls; - - virtual wxSize DoGetBestSize() const; - - // create the control of the given class with the given style, returns FALSE - // if creation failed - bool OS2CreateControl(const wxChar *classname, WXDWORD style, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& label = wxEmptyString, - WXDWORD exstyle = (WXDWORD)-1); - - // determine the extended styles combination for this window (may slightly - // modify styl parameter) - WXDWORD GetExStyle(WXDWORD& style) const; +public: + // + // For controls like radiobuttons which are really composite + // + wxArrayLong m_aSubControls; + + virtual wxSize DoGetBestSize(void) const; + + // + // Create the control of the given PM class + // + bool OS2CreateControl( const wxChar* zClassname + ,const wxString& rsLabel + ,const wxPoint& rPos + ,const wxSize& rSize + ,long lStyle + ); + // + // Create the control of the given class with the given style, returns false + // if creation failed. + // + bool OS2CreateControl( const wxChar* zClassname + ,WXDWORD dwStyle + ,const wxPoint& rPos = wxDefaultPosition + ,const wxSize& rSize = wxDefaultSize + ,const wxString& rsLabel = wxEmptyString + ,WXDWORD dwExstyle = (WXDWORD)-1 + ); + + // + // Default style for the control include WS_TABSTOP if it AcceptsFocus() + // + virtual WXDWORD OS2GetStyle( long lStyle + ,WXDWORD* pdwExstyle + ) const; + + inline int GetXComp(void) const {return m_nXComp;} + inline int GetYComp(void) const {return m_nYComp;} + inline void SetXComp(const int nXComp) {m_nXComp = nXComp;} + inline void SetYComp(const int nYComp) {m_nYComp = nYComp;} private: - DECLARE_EVENT_TABLE() -}; + int m_nXComp; + int m_nYComp; + wxString m_label; + WXDWORD m_dwStyle; -#if WXWIN_COMPATIBILITY - inline void wxControl::Callback(const wxFunction f) { m_callback = f; }; - inline wxFont& wxControl::GetLabelFont() const { return GetFont(); } - inline wxFont& wxControl::GetButtonFont() const { return GetFont(); } - inline void wxControl::SetLabelFont(const wxFont& font) { SetFont(font); } - inline void wxControl::SetButtonFont(const wxFont& font) { SetFont(font); } -#endif // WXWIN_COMPATIBILITY + DECLARE_EVENT_TABLE() +}; // end of wxControl -#endif - // _WX_CONTROL_H_ +#endif // _WX_CONTROL_H_