wxControl and wxChoice derive from the base classes under wxGTK too now

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 1999-10-18 15:45:28 +00:00
parent ec6c9ccd7f
commit 9abe166a30
17 changed files with 94 additions and 233 deletions

View File

@ -92,10 +92,10 @@ treectrl.cpp G 16
wizard.cpp G
appcmn.cpp C B
choiccmn.cpp C R
choiccmn.cpp C
cmndata.cpp C
config.cpp C B
ctrlcmn.cpp C R
ctrlcmn.cpp C
date.cpp C B
datstrm.cpp C
db.cpp C

View File

@ -93,7 +93,7 @@ public:
// deprecated functions, heer for backwards compatibility only
int Number() const { return GetCount(); }
private:
protected:
// pure virtuals to implement in the derived classes
virtual int DoAppend(const wxString& item) = 0;
@ -102,13 +102,18 @@ private:
virtual void DoSetClientObject( int n, wxClientData* clientData ) = 0;
virtual wxClientData* DoGetClientObject( int n ) const = 0;
// the above pure virtuals hide these virtuals in wxWindowBase
virtual void DoSetClientData(void* clientData )
{ wxWindowBase::DoSetClientData(clientData); };
virtual void* DoGetClientData() const
{ return(wxWindowBase::DoGetClientData()); };
virtual void DoSetClientObject( wxClientData* clientData )
{ wxWindowBase::DoSetClientObject(clientData); };
virtual wxClientData* DoGetClientObject() const
{ return(wxWindowBase::DoGetClientObject()); };
// the type of the client data for the items
wxClientDataType m_clientDataItemsType;
// the above pure virtuals hide these virtuals in wxWindowBase
virtual void DoSetClientData(void* clientData ) { wxWindowBase::DoSetClientData(clientData); };
virtual void* DoGetClientData() const { return(wxWindowBase::DoGetClientData()); };
virtual void DoSetClientObject( wxClientData* clientData ) { wxWindowBase::DoSetClientObject(clientData); };
virtual wxClientData* DoGetClientObject() const { return(wxWindowBase::DoGetClientObject()); };
};
// ----------------------------------------------------------------------------

View File

@ -11,32 +11,14 @@
#define __GTKCHOICEH__
#ifdef __GNUG__
#pragma interface
#pragma interface "choice.h"
#endif
#include "wx/defs.h"
#include "wx/object.h"
#include "wx/list.h"
#include "wx/control.h"
//-----------------------------------------------------------------------------
// classes
//-----------------------------------------------------------------------------
class wxChoice;
//-----------------------------------------------------------------------------
// global data
//-----------------------------------------------------------------------------
extern const wxChar *wxChoiceNameStr;
//-----------------------------------------------------------------------------
// wxChoice
//-----------------------------------------------------------------------------
class wxChoice : public wxControl
class wxChoice : public wxChoiceBase
{
public:
wxChoice();
@ -59,35 +41,18 @@ public:
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxChoiceNameStr );
void Append( const wxString &item );
void Append( const wxString &item, void* clientData );
void Append( const wxString &item, wxClientData* clientData );
void SetClientData( int n, void* clientData );
void* GetClientData( int n );
void SetClientObject( int n, wxClientData* clientData );
wxClientData* GetClientObject( int n );
void SetClientObject( wxClientData *data ) { wxControl::SetClientObject( data ); }
wxClientData *GetClientObject() const { return wxControl::GetClientObject(); }
void SetClientData( void *data ) { wxControl::SetClientData( data ); }
void *GetClientData() const { return wxControl::GetClientData(); }
void Clear();
// implement base class pure virtuals
void Delete(int n);
void Clear();
int FindString( const wxString &string ) const;
int GetColumns() const;
int GetSelection();
wxString GetString( int n ) const;
wxString GetStringSelection() const;
int Number() const;
void SetColumns( int n = 1 );
int GetSelection() const;
void SetSelection( int n );
void SetStringSelection( const wxString &string );
virtual int GetCount() const;
int FindString( const wxString &string ) const;
wxString GetString( int n ) const;
// implementation
wxList m_clientDataList;
wxList m_clientObjectList;
@ -96,6 +61,14 @@ public:
void AppendCommon( const wxString &item );
void ApplyWidgetStyle();
protected:
virtual int DoAppend(const wxString& item);
virtual void DoSetClientData( int n, void* clientData );
virtual void* DoGetClientData( int n ) const;
virtual void DoSetClientObject( int n, wxClientData* clientData );
virtual wxClientData* DoGetClientObject( int n ) const;
private:
DECLARE_DYNAMIC_CLASS(wxChoice)
};

View File

@ -29,7 +29,7 @@ class wxControl;
// wxControl
//-----------------------------------------------------------------------------
class wxControl : public wxWindow
class wxControl : public wxControlBase
{
public:
wxControl();

View File

@ -11,32 +11,14 @@
#define __GTKCHOICEH__
#ifdef __GNUG__
#pragma interface
#pragma interface "choice.h"
#endif
#include "wx/defs.h"
#include "wx/object.h"
#include "wx/list.h"
#include "wx/control.h"
//-----------------------------------------------------------------------------
// classes
//-----------------------------------------------------------------------------
class wxChoice;
//-----------------------------------------------------------------------------
// global data
//-----------------------------------------------------------------------------
extern const wxChar *wxChoiceNameStr;
//-----------------------------------------------------------------------------
// wxChoice
//-----------------------------------------------------------------------------
class wxChoice : public wxControl
class wxChoice : public wxChoiceBase
{
public:
wxChoice();
@ -59,35 +41,18 @@ public:
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxChoiceNameStr );
void Append( const wxString &item );
void Append( const wxString &item, void* clientData );
void Append( const wxString &item, wxClientData* clientData );
void SetClientData( int n, void* clientData );
void* GetClientData( int n );
void SetClientObject( int n, wxClientData* clientData );
wxClientData* GetClientObject( int n );
void SetClientObject( wxClientData *data ) { wxControl::SetClientObject( data ); }
wxClientData *GetClientObject() const { return wxControl::GetClientObject(); }
void SetClientData( void *data ) { wxControl::SetClientData( data ); }
void *GetClientData() const { return wxControl::GetClientData(); }
void Clear();
// implement base class pure virtuals
void Delete(int n);
void Clear();
int FindString( const wxString &string ) const;
int GetColumns() const;
int GetSelection();
wxString GetString( int n ) const;
wxString GetStringSelection() const;
int Number() const;
void SetColumns( int n = 1 );
int GetSelection() const;
void SetSelection( int n );
void SetStringSelection( const wxString &string );
virtual int GetCount() const;
int FindString( const wxString &string ) const;
wxString GetString( int n ) const;
// implementation
wxList m_clientDataList;
wxList m_clientObjectList;
@ -96,6 +61,14 @@ public:
void AppendCommon( const wxString &item );
void ApplyWidgetStyle();
protected:
virtual int DoAppend(const wxString& item);
virtual void DoSetClientData( int n, void* clientData );
virtual void* DoGetClientData( int n ) const;
virtual void DoSetClientObject( int n, wxClientData* clientData );
virtual wxClientData* DoGetClientObject( int n ) const;
private:
DECLARE_DYNAMIC_CLASS(wxChoice)
};

View File

@ -29,7 +29,7 @@ class wxControl;
// wxControl
//-----------------------------------------------------------------------------
class wxControl : public wxWindow
class wxControl : public wxControlBase
{
public:
wxControl();

View File

@ -123,9 +123,9 @@ wxChoice::~wxChoice()
Clear();
}
void wxChoice::AppendCommon( const wxString &item )
int wxChoice::DoAppend( const wxString &item )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) );
GtkWidget *menu_item = gtk_menu_item_new_with_label( item.mbc_str() );
@ -144,71 +144,54 @@ void wxChoice::AppendCommon( const wxString &item )
GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this );
gtk_widget_show( menu_item );
}
void wxChoice::Append( const wxString &item )
{
m_clientDataList.Append( (wxObject*) NULL );
m_clientObjectList.Append( (wxObject*) NULL );
AppendCommon( item );
// return the index of the item in the control
return GetCount();
}
void wxChoice::Append( const wxString &item, void *clientData )
{
m_clientDataList.Append( (wxObject*) clientData );
m_clientObjectList.Append( (wxObject*) NULL );
AppendCommon( item );
}
void wxChoice::Append( const wxString &item, wxClientData *clientData )
{
m_clientObjectList.Append( (wxObject*) clientData );
m_clientDataList.Append( (wxObject*) NULL );
AppendCommon( item );
}
void wxChoice::SetClientData( int n, void* clientData )
void wxChoice::DoSetClientData( int n, void* clientData )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return;
wxCHECK_RET( node, wxT("invalid index in wxChoice::DoSetClientData") );
node->SetData( (wxObject*) clientData );
}
void* wxChoice::GetClientData( int n )
void* wxChoice::DoGetClientData( int n ) const
{
wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return NULL;
wxCHECK_MSG( node, NULL, wxT("invalid index in wxChoice::DoGetClientData") );
return node->Data();
}
void wxChoice::SetClientObject( int n, wxClientData* clientData )
void wxChoice::DoSetClientObject( int n, wxClientData* clientData )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return;
wxCHECK_RET( node, wxT("invalid index in wxChoice::DoSetClientObject") );
wxClientData *cd = (wxClientData*) node->Data();
if (cd) delete cd;
delete cd;
node->SetData( (wxObject*) clientData );
}
wxClientData* wxChoice::GetClientObject( int n )
wxClientData* wxChoice::DoGetClientObject( int n ) const
{
wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return (wxClientData*) NULL;
wxCHECK_MSG( node, (wxClientData *)NULL,
wxT("invalid index in wxChoice::DoGetClientObject") );
return (wxClientData*) node->Data();
}
@ -267,12 +250,7 @@ int wxChoice::FindString( const wxString &string ) const
return -1;
}
int wxChoice::GetColumns() const
{
return 1;
}
int wxChoice::GetSelection()
int wxChoice::GetSelection() const
{
wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
@ -319,18 +297,7 @@ wxString wxChoice::GetString( int n ) const
return wxT("");
}
wxString wxChoice::GetStringSelection() const
{
wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid choice") );
GtkLabel *label = GTK_LABEL( GTK_BUTTON(m_widget)->child );
wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
return wxString(label->label,*wxConvCurrent);
}
int wxChoice::Number() const
int wxChoice::GetCount() const
{
wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid choice") );
@ -345,10 +312,6 @@ int wxChoice::Number() const
return count;
}
void wxChoice::SetColumns( int WXUNUSED(n) )
{
}
void wxChoice::SetSelection( int n )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
@ -357,14 +320,6 @@ void wxChoice::SetSelection( int n )
gtk_option_menu_set_history( GTK_OPTION_MENU(m_widget), (gint)tmp );
}
void wxChoice::SetStringSelection( const wxString &string )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
int n = FindString( string );
if (n != -1) SetSelection( n );
}
void wxChoice::DisableEvents()
{
/*

View File

@ -19,7 +19,7 @@
// wxControl
//-----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxControl,wxWindow)
IMPLEMENT_DYNAMIC_CLASS(wxControl, wxWindow)
wxControl::wxControl()
{
@ -32,8 +32,8 @@ wxControl::wxControl( wxWindow *parent,
const wxSize &size,
long style,
const wxString &name )
: wxWindow( parent, id, pos, size, style, name )
{
(void)Create(parent, id, pos, size, style, name);
}
void wxControl::SetLabel( const wxString &label )
@ -52,7 +52,7 @@ void wxControl::SetLabel( const wxString &label )
}
}
wxString wxControl::GetLabel(void) const
wxString wxControl::GetLabel() const
{
return m_label;
}

View File

@ -123,9 +123,9 @@ wxChoice::~wxChoice()
Clear();
}
void wxChoice::AppendCommon( const wxString &item )
int wxChoice::DoAppend( const wxString &item )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) );
GtkWidget *menu_item = gtk_menu_item_new_with_label( item.mbc_str() );
@ -144,71 +144,54 @@ void wxChoice::AppendCommon( const wxString &item )
GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this );
gtk_widget_show( menu_item );
}
void wxChoice::Append( const wxString &item )
{
m_clientDataList.Append( (wxObject*) NULL );
m_clientObjectList.Append( (wxObject*) NULL );
AppendCommon( item );
// return the index of the item in the control
return GetCount();
}
void wxChoice::Append( const wxString &item, void *clientData )
{
m_clientDataList.Append( (wxObject*) clientData );
m_clientObjectList.Append( (wxObject*) NULL );
AppendCommon( item );
}
void wxChoice::Append( const wxString &item, wxClientData *clientData )
{
m_clientObjectList.Append( (wxObject*) clientData );
m_clientDataList.Append( (wxObject*) NULL );
AppendCommon( item );
}
void wxChoice::SetClientData( int n, void* clientData )
void wxChoice::DoSetClientData( int n, void* clientData )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return;
wxCHECK_RET( node, wxT("invalid index in wxChoice::DoSetClientData") );
node->SetData( (wxObject*) clientData );
}
void* wxChoice::GetClientData( int n )
void* wxChoice::DoGetClientData( int n ) const
{
wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return NULL;
wxCHECK_MSG( node, NULL, wxT("invalid index in wxChoice::DoGetClientData") );
return node->Data();
}
void wxChoice::SetClientObject( int n, wxClientData* clientData )
void wxChoice::DoSetClientObject( int n, wxClientData* clientData )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return;
wxCHECK_RET( node, wxT("invalid index in wxChoice::DoSetClientObject") );
wxClientData *cd = (wxClientData*) node->Data();
if (cd) delete cd;
delete cd;
node->SetData( (wxObject*) clientData );
}
wxClientData* wxChoice::GetClientObject( int n )
wxClientData* wxChoice::DoGetClientObject( int n ) const
{
wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return (wxClientData*) NULL;
wxCHECK_MSG( node, (wxClientData *)NULL,
wxT("invalid index in wxChoice::DoGetClientObject") );
return (wxClientData*) node->Data();
}
@ -267,12 +250,7 @@ int wxChoice::FindString( const wxString &string ) const
return -1;
}
int wxChoice::GetColumns() const
{
return 1;
}
int wxChoice::GetSelection()
int wxChoice::GetSelection() const
{
wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
@ -319,18 +297,7 @@ wxString wxChoice::GetString( int n ) const
return wxT("");
}
wxString wxChoice::GetStringSelection() const
{
wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid choice") );
GtkLabel *label = GTK_LABEL( GTK_BUTTON(m_widget)->child );
wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
return wxString(label->label,*wxConvCurrent);
}
int wxChoice::Number() const
int wxChoice::GetCount() const
{
wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid choice") );
@ -345,10 +312,6 @@ int wxChoice::Number() const
return count;
}
void wxChoice::SetColumns( int WXUNUSED(n) )
{
}
void wxChoice::SetSelection( int n )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
@ -357,14 +320,6 @@ void wxChoice::SetSelection( int n )
gtk_option_menu_set_history( GTK_OPTION_MENU(m_widget), (gint)tmp );
}
void wxChoice::SetStringSelection( const wxString &string )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
int n = FindString( string );
if (n != -1) SetSelection( n );
}
void wxChoice::DisableEvents()
{
/*

View File

@ -19,7 +19,7 @@
// wxControl
//-----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxControl,wxWindow)
IMPLEMENT_DYNAMIC_CLASS(wxControl, wxWindow)
wxControl::wxControl()
{
@ -32,8 +32,8 @@ wxControl::wxControl( wxWindow *parent,
const wxSize &size,
long style,
const wxString &name )
: wxWindow( parent, id, pos, size, style, name )
{
(void)Create(parent, id, pos, size, style, name);
}
void wxControl::SetLabel( const wxString &label )
@ -52,7 +52,7 @@ void wxControl::SetLabel( const wxString &label )
}
}
wxString wxControl::GetLabel(void) const
wxString wxControl::GetLabel() const
{
return m_label;
}

View File

@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:50, 1999/10/18
# This file was automatically generated by tmake at 17:32, 1999/10/18
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE B32.T!
#

View File

@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:50, 1999/10/18
# This file was automatically generated by tmake at 17:32, 1999/10/18
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE BCC.T!
#

View File

@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:50, 1999/10/18
# This file was automatically generated by tmake at 17:32, 1999/10/18
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE DOS.T!
#

View File

@ -1,5 +1,5 @@
# This file was automatically generated by tmake at 15:50, 1999/10/18
# This file was automatically generated by tmake at 17:32, 1999/10/18
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE G95.T!
#

View File

@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:50, 1999/10/18
# This file was automatically generated by tmake at 17:32, 1999/10/18
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE SC.T!
# Symantec C++ makefile for the msw objects

View File

@ -1,4 +1,4 @@
# This file was automatically generated by tmake at 15:50, 1999/10/18
# This file was automatically generated by tmake at 17:32, 1999/10/18
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE VC.T!
# File: makefile.vc

View File

@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:50, 1999/10/18
# This file was automatically generated by tmake at 17:32, 1999/10/18
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE WAT.T!
#!/binb/wmake.exe