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,12 +23,12 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxComboBoxNameStr;
|
|||||||
WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
|
WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
|
||||||
|
|
||||||
// Combobox item
|
// Combobox item
|
||||||
class WXDLLEXPORT wxComboBox: public wxChoice
|
class WXDLLEXPORT wxComboBox: public wxComboBoxBase , public wxControl
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxComboBox)
|
DECLARE_DYNAMIC_CLASS(wxComboBox)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
inline wxComboBox() {}
|
inline wxComboBox() {}
|
||||||
virtual ~wxComboBox();
|
virtual ~wxComboBox();
|
||||||
// override the base class virtuals involved in geometry calculations
|
// override the base class virtuals involved in geometry calculations
|
||||||
virtual wxSize DoGetBestSize() const;
|
virtual wxSize DoGetBestSize() const;
|
||||||
@@ -43,7 +43,7 @@ class WXDLLEXPORT wxComboBox: public wxChoice
|
|||||||
virtual void DelegateTextChanged( const wxString& value );
|
virtual void DelegateTextChanged( const wxString& value );
|
||||||
virtual void DelegateChoice( 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 wxString& value = wxEmptyString,
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
const wxSize& size = wxDefaultSize,
|
const wxSize& size = wxDefaultSize,
|
||||||
@@ -51,11 +51,11 @@ class WXDLLEXPORT wxComboBox: public wxChoice
|
|||||||
long style = 0,
|
long style = 0,
|
||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
const wxString& name = wxComboBoxNameStr)
|
const wxString& name = wxComboBoxNameStr)
|
||||||
{
|
{
|
||||||
Create(parent, id, value, pos, size, n, choices, style, validator, name);
|
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 wxString& value = wxEmptyString,
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
const wxSize& size = wxDefaultSize,
|
const wxSize& size = wxDefaultSize,
|
||||||
@@ -64,36 +64,47 @@ class WXDLLEXPORT wxComboBox: public wxChoice
|
|||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
const wxString& name = wxComboBoxNameStr);
|
const wxString& name = wxComboBoxNameStr);
|
||||||
|
|
||||||
// List functions
|
// List functions
|
||||||
virtual void Append(const wxString& item);
|
virtual void Delete(int n);
|
||||||
virtual void Delete(int n);
|
virtual void Clear();
|
||||||
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 int GetSelection() const ;
|
||||||
virtual wxString GetValue() const ;
|
virtual void SetSelection(int n);
|
||||||
virtual void SetValue(const wxString& value);
|
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:
|
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
|
// the subcontrols
|
||||||
wxTextCtrl* m_text;
|
wxTextCtrl* m_text;
|
||||||
wxChoice* m_choice;
|
wxChoice* m_choice;
|
||||||
|
@@ -402,21 +402,38 @@ void wxComboBox::SetSelection(long from, long to)
|
|||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxComboBox::Append(const wxString& item)
|
int wxComboBox::DoAppend(const wxString& item)
|
||||||
{
|
{
|
||||||
// I am not sure what other ports do,
|
return m_choice->DoAppend( item ) ;
|
||||||
// but wxMac chokes on empty entries.
|
}
|
||||||
|
|
||||||
if (!item.IsEmpty())
|
int wxComboBox::DoInsert(const wxString& item, int pos)
|
||||||
m_choice->DoAppend( item );
|
{
|
||||||
|
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)
|
void wxComboBox::Delete(int n)
|
||||||
{
|
{
|
||||||
if ( HasClientObjectData() )
|
|
||||||
{
|
|
||||||
SetClientObject(n, NULL);
|
|
||||||
}
|
|
||||||
m_choice->Delete( n );
|
m_choice->Delete( n );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -471,7 +488,13 @@ bool wxComboBox::SetStringSelection(const wxString& sel)
|
|||||||
return FALSE;
|
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 );
|
wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, m_windowId );
|
||||||
event.SetInt(GetSelection());
|
event.SetInt(GetSelection());
|
||||||
|
@@ -402,21 +402,38 @@ void wxComboBox::SetSelection(long from, long to)
|
|||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxComboBox::Append(const wxString& item)
|
int wxComboBox::DoAppend(const wxString& item)
|
||||||
{
|
{
|
||||||
// I am not sure what other ports do,
|
return m_choice->DoAppend( item ) ;
|
||||||
// but wxMac chokes on empty entries.
|
}
|
||||||
|
|
||||||
if (!item.IsEmpty())
|
int wxComboBox::DoInsert(const wxString& item, int pos)
|
||||||
m_choice->DoAppend( item );
|
{
|
||||||
|
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)
|
void wxComboBox::Delete(int n)
|
||||||
{
|
{
|
||||||
if ( HasClientObjectData() )
|
|
||||||
{
|
|
||||||
SetClientObject(n, NULL);
|
|
||||||
}
|
|
||||||
m_choice->Delete( n );
|
m_choice->Delete( n );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -471,7 +488,13 @@ bool wxComboBox::SetStringSelection(const wxString& sel)
|
|||||||
return FALSE;
|
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 );
|
wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, m_windowId );
|
||||||
event.SetInt(GetSelection());
|
event.SetInt(GetSelection());
|
||||||
|
Reference in New Issue
Block a user