X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bdb5436554c910fe850db1470514ee83ded76db3..8c9f8f91cd62335261ee29762747218f28d129de:/include/wx/palmos/control.h diff --git a/include/wx/palmos/control.h b/include/wx/palmos/control.h index db397571b0..94931bcce2 100644 --- a/include/wx/palmos/control.h +++ b/include/wx/palmos/control.h @@ -22,7 +22,7 @@ class WXDLLEXPORT wxControl : public wxControlBase { public: - wxControl() { } + wxControl() { Init(); } wxControl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, @@ -30,6 +30,7 @@ public: const wxValidator& validator = wxDefaultValidator, const wxString& name = wxControlNameStr) { + Init(); Create(parent, id, pos, size, style, validator, name); } @@ -71,27 +72,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 + FormType* GetParentForm() const; + FormType* 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, 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, + JustificationType 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 +132,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( RectangleType &rect ) const; + virtual void DoSetBounds( RectangleType &rect ); + DECLARE_DYNAMIC_CLASS_NO_COPY(wxControl) DECLARE_EVENT_TABLE() };