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:
parent
69b85ca49b
commit
e71a0aa95f
@ -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);
|
||||
// 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 ) ;
|
||||
|
||||
// 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 ) ;
|
||||
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());
|
||||
|
Loading…
Reference in New Issue
Block a user