changing inheritance and delegation

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2003-06-07 20:34:29 +00:00
parent 69b85ca49b
commit e71a0aa95f
3 changed files with 111 additions and 54 deletions

View File

@@ -23,7 +23,7 @@ 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)
@@ -65,14 +65,16 @@ class WXDLLEXPORT wxComboBox: public wxChoice
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 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
@@ -92,8 +94,17 @@ class WXDLLEXPORT wxComboBox: public wxChoice
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 ) ;
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;

View 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 ) ;
}
if (!item.IsEmpty())
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 ) ;
}
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());

View 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 ) ;
}
if (!item.IsEmpty())
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 ) ;
}
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());