]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/palmos/control.h
Move wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW out of the common section in
[wxWidgets.git] / include / wx / palmos / control.h
index 82fb415c0e107ce7da2412b49abf48da331d55fb..94931bcce238408a29eec5ea8c81214b99b4dd86 100644 (file)
@@ -2,10 +2,10 @@
 // Name:        wx/palmos/control.h
 // Purpose:     wxControl class
 // Author:      William Osborne - minimal working wxPalmOS port
-// Modified by:
+// Modified by: Wlodzimierz ABX Skiba - native implementation
 // Created:     10/13/04
 // RCS-ID:      $Id$
-// Copyright:   (c) William Osborne
+// Copyright:   (c) William Osborne, Wlodzimierz Skiba
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -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);
     }
 
@@ -50,6 +51,9 @@ public:
     virtual bool Show( bool show = true );
     virtual bool IsShown() const;
 
+    virtual void SetLabel(const wxString& label);
+    virtual wxString GetLabel();
+
     // implementation from now on
     // --------------------------
 
@@ -68,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
@@ -102,10 +132,25 @@ protected:
     // holds the ids (not HWNDs!) of the sub controls
     wxArrayLong m_subControls;
 
-    ControlType *m_control;
-    uint16_t m_objectIndex;
+    // 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()
 };