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:
@@ -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;
|
||||
|
@@ -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());
|
||||
|
@@ -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());
|
||||
|
Reference in New Issue
Block a user