X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bdb5436554c910fe850db1470514ee83ded76db3..9243700fb212c2508c4d4c80fb8eb968e565e44d:/include/wx/palmos/control.h diff --git a/include/wx/palmos/control.h b/include/wx/palmos/control.h index db397571b0..849ad78d26 100644 --- a/include/wx/palmos/control.h +++ b/include/wx/palmos/control.h @@ -12,17 +12,13 @@ #ifndef _WX_CONTROL_H_ #define _WX_CONTROL_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma interface "control.h" -#endif - #include "wx/dynarray.h" // General item class class WXDLLEXPORT wxControl : public wxControlBase { public: - wxControl() { } + wxControl() { Init(); } wxControl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, @@ -30,6 +26,7 @@ public: const wxValidator& validator = wxDefaultValidator, const wxString& name = wxControlNameStr) { + Init(); Create(parent, id, pos, size, style, validator, name); } @@ -51,7 +48,7 @@ public: virtual bool IsShown() const; virtual void SetLabel(const wxString& label); - virtual wxString GetLabel(); + //virtual wxString GetLabel(); // implementation from now on // -------------------------- @@ -71,27 +68,53 @@ public: void OnEraseBackground(wxEraseEvent& event); - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - protected: + // regardless how deeply we are in wxWidgets hierarchy always get correct form + WXFORMPTR GetParentForm() const; + WXFORMPTR GetObjectFormIndex(uint16_t& index) const; + void* GetObjectPtr() const; + // choose the default border for this window virtual wxBorder GetDefaultBorder() const; + // on/off-like controls + void SetBoolValue(bool value); + bool GetBoolValue() const; + void SetIntValue(int val); + + // native labels access + void SetFieldLabel(const wxString& label); + void SetControlLabel(const wxString& label); + wxString GetFieldLabel(); + wxString GetControlLabel(); + // return default best size (doesn't really make any sense, override this) virtual wxSize DoGetBestSize() const; + // getting and setting sizes + virtual void DoGetPosition( int *x, int *y ) const; + virtual void DoGetSize( int *width, int *height ) const; + virtual void DoMoveWindow(int x, int y, int width, int height); + // create the control of the given ControlStyleType: this is typically called // from Create() method of the derived class passing its label, pos and // size parameter (style parameter is not needed because m_windowStyle is // supposed to had been already set and so is used instead when this // function is called) - bool PalmCreateControl(ControlStyleType style, - wxWindow *parent, - wxWindowID id, + bool PalmCreateControl(int palmStyle, const wxString& label, const wxPoint& pos, - const wxSize& size); + const wxSize& size, + uint8_t groupID = 0); + inline bool IsPalmControl() const { return m_palmControl; } + + bool PalmCreateField(const wxString& label, + const wxPoint& pos, + const wxSize& size, + bool editable, + bool underlined, + int justification); + inline bool IsPalmField() const { return m_palmField; } // this is a helper for the derived class GetClassDefaultAttributes() // implementation: it returns the right colours for the classes which @@ -105,9 +128,25 @@ protected: // holds the ids (not HWNDs!) of the sub controls wxArrayLong m_subControls; - ControlType *m_control; + // m_label stores label in case of wxButton, wxCheckBox, wxToggleButton etc. + // We must ensure that it persists for as long as it is being displayed + // (that is, for as long as the control is displayed or until we call + // CtlSetLabel() with a new string), and we must free the string after + // it is no longer in use (typically after the form containing the + // control is freed). + wxString m_label; private: + + bool m_palmControl:1; + bool m_palmField:1; + + // common part of all ctors + void Init(); + + virtual void DoGetBounds( WXRECTANGLEPTR rect ) const; + virtual void DoSetBounds( WXRECTANGLEPTR rect ); + DECLARE_DYNAMIC_CLASS_NO_COPY(wxControl) DECLARE_EVENT_TABLE() };