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,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;

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());