]> git.saurik.com Git - wxWidgets.git/commitdiff
changing inheritance and delegation
authorStefan Csomor <csomor@advancedconcepts.ch>
Sat, 7 Jun 2003 20:34:29 +0000 (20:34 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Sat, 7 Jun 2003 20:34:29 +0000 (20:34 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/mac/combobox.h
src/mac/carbon/combobox.cpp
src/mac/combobox.cpp

index a70341e7f63ed0aefa6ca2f134bf74dff0ce950e..5b73bc2b6b45f3d53e3d6951574c793a3de4ea2c 100644 (file)
@@ -23,12 +23,12 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxComboBoxNameStr;
 WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
 
 // Combobox item
-class WXDLLEXPORT wxComboBox: public wxChoice
+class WXDLLEXPORT wxComboBox: public wxComboBoxBase , public wxControl
 {
   DECLARE_DYNAMIC_CLASS(wxComboBox)
 
  public:
-  inline wxComboBox() {}
+    inline wxComboBox() {}
     virtual ~wxComboBox();
     // override the base class virtuals involved in geometry calculations
     virtual wxSize DoGetBestSize() const;
@@ -43,7 +43,7 @@ class WXDLLEXPORT wxComboBox: public wxChoice
     virtual void DelegateTextChanged( const wxString& value );
     virtual void DelegateChoice( const wxString& value );
 
-  inline wxComboBox(wxWindow *parent, wxWindowID id,
+    inline wxComboBox(wxWindow *parent, wxWindowID id,
            const wxString& value = wxEmptyString,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
@@ -51,11 +51,11 @@ class WXDLLEXPORT wxComboBox: public wxChoice
            long style = 0,
            const wxValidator& validator = wxDefaultValidator,
            const wxString& name = wxComboBoxNameStr)
-  {
+    {
     Create(parent, id, value, pos, size, n, choices, style, validator, name);
-  }
+    }
 
-  bool Create(wxWindow *parent, wxWindowID id,
+    bool Create(wxWindow *parent, wxWindowID id,
            const wxString& value = wxEmptyString,
            const wxPoint& pos = wxDefaultPosition,
            const wxSize& size = wxDefaultSize,
@@ -64,36 +64,47 @@ class WXDLLEXPORT wxComboBox: public wxChoice
            const wxValidator& validator = wxDefaultValidator,
            const wxString& name = wxComboBoxNameStr);
 
-  // List functions
-  virtual void Append(const wxString& item);
-  virtual void Delete(int n);
-  virtual void Clear();
-  virtual int GetSelection() const ;
-  virtual void SetSelection(int n);
-  virtual int FindString(const wxString& s) const;
-  virtual wxString GetString(int n) const ;
-  virtual wxString GetStringSelection() const ;
-  virtual bool SetStringSelection(const wxString& sel);
-  
-  // Text field functions
-  virtual wxString GetValue() const ;
-  virtual void SetValue(const wxString& value);
-
-  // Clipboard operations
-  virtual void Copy();
-  virtual void Cut();
-  virtual void Paste();
-  virtual void SetInsertionPoint(long pos);
-  virtual void SetInsertionPointEnd();
-  virtual long GetInsertionPoint() const ;
-  virtual long GetLastPosition() const ;
-  virtual void Replace(long from, long to, const wxString& value);
-  virtual void Remove(long from, long to);
-  virtual void SetSelection(long from, long to);
-  virtual void SetEditable(bool editable);
-  virtual int GetCount() const { return m_choice->GetCount() ; }
-  void MacHandleControlClick( WXWidget control , wxInt16 controlpart ) ;
+    // List functions
+    virtual void Delete(int n);
+    virtual void Clear();
+
+    virtual int GetSelection() const ;
+    virtual void SetSelection(int n);
+    virtual void Select(int n) { SetSelection(n) ; }
+    virtual int FindString(const wxString& s) const;
+    virtual wxString GetString(int n) const ;
+    virtual wxString GetStringSelection() const ;
+    virtual void SetString(int n, const wxString& s) ;
+    virtual bool SetStringSelection(const wxString& sel);
+
+    // Text field functions
+    virtual wxString GetValue() const ;
+    virtual void SetValue(const wxString& value);
+
+    // Clipboard operations
+    virtual void Copy();
+    virtual void Cut();
+    virtual void Paste();
+    virtual void SetInsertionPoint(long pos);
+    virtual void SetInsertionPointEnd();
+    virtual long GetInsertionPoint() const ;
+    virtual long GetLastPosition() const ;
+    virtual void Replace(long from, long to, const wxString& value);
+    virtual void Remove(long from, long to);
+    virtual void SetSelection(long from, long to);
+    virtual void SetEditable(bool editable);
+    virtual int GetCount() const { return m_choice->GetCount() ; }
+    void MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown ) ;
+
 protected:
+    virtual int DoAppend(const wxString& item) ;
+    virtual int DoInsert(const wxString& item, int pos) ;
+
+    virtual void DoSetItemClientData(int n, void* clientData) ;
+    virtual void* DoGetItemClientData(int n) const ;
+    virtual void DoSetItemClientObject(int n, wxClientData* clientData) ;
+    virtual wxClientData* DoGetItemClientObject(int n) const ;
+
     // the subcontrols
     wxTextCtrl*     m_text;
     wxChoice*       m_choice;
index 8ffecd04894a536061a63694480cbb66d4aabaed..830e8564a77c5e1a1895c39b4366c3b6f0c278b4 100644 (file)
@@ -402,21 +402,38 @@ void wxComboBox::SetSelection(long from, long to)
     // TODO
 }
 
-void wxComboBox::Append(const wxString& item)
+int wxComboBox::DoAppend(const wxString& item) 
 {
-    // I am not sure what other ports do,
-    // but wxMac chokes on empty entries.
+    return m_choice->DoAppend( item ) ;
+}
+
+int wxComboBox::DoInsert(const wxString& item, int pos) 
+{
+    return m_choice->DoInsert( item , pos ) ;
+}
+
+void wxComboBox::DoSetItemClientData(int n, void* clientData) 
+{
+    return m_choice->SetClientData( n , clientData ) ;
+}
+
+void* wxComboBox::DoGetItemClientData(int n) const
+{
+    return m_choice->GetClientData( n ) ;
+}
 
-    if (!item.IsEmpty())
-        m_choice->DoAppend( item );
+void wxComboBox::DoSetItemClientObject(int n, wxClientData* clientData)
+{
+    return m_choice->SetClientObject( n , clientData ) ;
+}
+
+wxClientData* wxComboBox::DoGetItemClientObject(int n) const 
+{
+    return m_choice->GetClientObject( n ) ;
 }
 
 void wxComboBox::Delete(int n)
 {
-    if ( HasClientObjectData() )
-    {
-        SetClientObject(n, NULL);
-    }
     m_choice->Delete( n );
 }
 
@@ -471,7 +488,13 @@ bool wxComboBox::SetStringSelection(const wxString& sel)
         return FALSE;
 }
 
-void wxComboBox::MacHandleControlClick( WXWidget WXUNUSED(control) , wxInt16 WXUNUSED(controlpart) ) 
+void wxComboBox::SetString(int n, const wxString& s) 
+{
+    m_choice->SetString( n , s ) ;
+}
+
+
+void wxComboBox::MacHandleControlClick( WXWidget WXUNUSED(control) , wxInt16 WXUNUSED(controlpart) , bool WXUNUSED(mouseStillDown)) 
 {
     wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, m_windowId );
     event.SetInt(GetSelection());
index 8ffecd04894a536061a63694480cbb66d4aabaed..830e8564a77c5e1a1895c39b4366c3b6f0c278b4 100644 (file)
@@ -402,21 +402,38 @@ void wxComboBox::SetSelection(long from, long to)
     // TODO
 }
 
-void wxComboBox::Append(const wxString& item)
+int wxComboBox::DoAppend(const wxString& item) 
 {
-    // I am not sure what other ports do,
-    // but wxMac chokes on empty entries.
+    return m_choice->DoAppend( item ) ;
+}
+
+int wxComboBox::DoInsert(const wxString& item, int pos) 
+{
+    return m_choice->DoInsert( item , pos ) ;
+}
+
+void wxComboBox::DoSetItemClientData(int n, void* clientData) 
+{
+    return m_choice->SetClientData( n , clientData ) ;
+}
+
+void* wxComboBox::DoGetItemClientData(int n) const
+{
+    return m_choice->GetClientData( n ) ;
+}
 
-    if (!item.IsEmpty())
-        m_choice->DoAppend( item );
+void wxComboBox::DoSetItemClientObject(int n, wxClientData* clientData)
+{
+    return m_choice->SetClientObject( n , clientData ) ;
+}
+
+wxClientData* wxComboBox::DoGetItemClientObject(int n) const 
+{
+    return m_choice->GetClientObject( n ) ;
 }
 
 void wxComboBox::Delete(int n)
 {
-    if ( HasClientObjectData() )
-    {
-        SetClientObject(n, NULL);
-    }
     m_choice->Delete( n );
 }
 
@@ -471,7 +488,13 @@ bool wxComboBox::SetStringSelection(const wxString& sel)
         return FALSE;
 }
 
-void wxComboBox::MacHandleControlClick( WXWidget WXUNUSED(control) , wxInt16 WXUNUSED(controlpart) ) 
+void wxComboBox::SetString(int n, const wxString& s) 
+{
+    m_choice->SetString( n , s ) ;
+}
+
+
+void wxComboBox::MacHandleControlClick( WXWidget WXUNUSED(control) , wxInt16 WXUNUSED(controlpart) , bool WXUNUSED(mouseStillDown)) 
 {
     wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, m_windowId );
     event.SetInt(GetSelection());