wxChoice and wxListBox GTK+ changes (wxChoice works, wxListBox still doesn't)

to support sorting, also compilation fixes in dataobj.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-10-22 15:55:27 +00:00
parent bd77da975b
commit 2ee3ee1bc8
20 changed files with 1152 additions and 908 deletions
+1
View File
@@ -138,6 +138,7 @@ init.cpp B
intl.cpp C B
ipcbase.cpp C
layout.cpp C
lboxcmn.cpp C
list.cpp C B
log.cpp C B
memory.cpp C
-1
View File
@@ -6,7 +6,6 @@
#! Created: 14.07.99
#! Version: $Id$
#!#############################################################################
#${
#! include the code which parses filelist.txt file and initializes
#! %wxCommon, %wxGeneric and %wxMSW hashes.
+33 -58
View File
@@ -15,36 +15,16 @@
#pragma interface
#endif
#include "wx/defs.h"
#if wxUSE_LISTBOX
#include "wx/object.h"
#include "wx/list.h"
#include "wx/control.h"
//-----------------------------------------------------------------------------
// classes
//-----------------------------------------------------------------------------
class wxListBox;
class wxArrayInt;
//-----------------------------------------------------------------------------
// global data
//-----------------------------------------------------------------------------
extern const char *wxListBoxNameStr;
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
class wxListBox : public wxControl
class wxListBox : public wxListBoxBase
{
DECLARE_DYNAMIC_CLASS(wxListBox)
public:
// ctors and such
wxListBox();
wxListBox( wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
@@ -69,49 +49,40 @@ public:
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxListBoxNameStr);
void Append( const wxString &item );
void Append( const wxString &item, void* clientData );
void Append( const wxString &item, wxClientData* clientData );
// implement base class pure virtuals
virtual void Clear();
virtual void Delete(int n);
void InsertItems(int nItems, const wxString items[], int pos);
virtual int GetCount() const;
virtual wxString GetString(int n) const;
virtual void SetString(int n, const wxString& s);
virtual int FindString(const wxString& s) const;
void SetClientData( int n, void* clientData );
void* GetClientData( int n );
void SetClientObject( int n, wxClientData* clientData );
wxClientData* GetClientObject( int n );
virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE);
virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const;
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();
void Delete( int n );
virtual int DoAppend(const wxString& item);
virtual void DoInsertItems(const wxArrayString& items, int pos);
virtual void DoSetItems(const wxArrayString& items, void **clientData);
void Deselect( int n );
int FindString( const wxString &item ) const;
int GetSelection() const;
int GetSelections( class wxArrayInt &) const;
wxString GetString( int n ) const;
wxString GetStringSelection() const;
int Number();
bool Selected( int n );
void Set( int n, const wxString *choices );
void SetFirstItem( int n );
void SetFirstItem( const wxString &item );
void SetSelection( int n, bool select = TRUE );
void SetString( int n, const wxString &string );
void SetStringSelection( const wxString &string, bool select = TRUE );
virtual void DoSetFirstItem(int n);
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;
// implementation from now on
#if wxUSE_DRAG_AND_DROP
void SetDropTarget( wxDropTarget *dropTarget );
#endif
// implementation
void DisableEvents();
void EnableEvents();
void AppendCommon( const wxString &item );
void AppendWithoutSorting( const wxString &item );
int GetIndex( GtkWidget *item ) const;
GtkWidget *GetConnectWidget();
bool IsOwnGtkWindow( GdkWindow *window );
@@ -123,14 +94,18 @@ public:
#endif // wxUSE_TOOLTIPS
GtkList *m_list;
wxList m_clientDataList;
wxList m_clientObjectList;
wxList m_clientData;
#if wxUSE_CHECKLISTBOX
bool m_hasCheckBoxes;
#endif // wxUSE_CHECKLISTBOX
private:
// this array is only used for controls with wxCB_SORT style, so only
// allocate it if it's needed (hence using pointer)
wxSortedArrayString *m_strings;
DECLARE_DYNAMIC_CLASS(wxListBox)
};
#endif
#endif // __GTKLISTBOXH__
+33 -58
View File
@@ -15,36 +15,16 @@
#pragma interface
#endif
#include "wx/defs.h"
#if wxUSE_LISTBOX
#include "wx/object.h"
#include "wx/list.h"
#include "wx/control.h"
//-----------------------------------------------------------------------------
// classes
//-----------------------------------------------------------------------------
class wxListBox;
class wxArrayInt;
//-----------------------------------------------------------------------------
// global data
//-----------------------------------------------------------------------------
extern const char *wxListBoxNameStr;
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
class wxListBox : public wxControl
class wxListBox : public wxListBoxBase
{
DECLARE_DYNAMIC_CLASS(wxListBox)
public:
// ctors and such
wxListBox();
wxListBox( wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
@@ -69,49 +49,40 @@ public:
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxListBoxNameStr);
void Append( const wxString &item );
void Append( const wxString &item, void* clientData );
void Append( const wxString &item, wxClientData* clientData );
// implement base class pure virtuals
virtual void Clear();
virtual void Delete(int n);
void InsertItems(int nItems, const wxString items[], int pos);
virtual int GetCount() const;
virtual wxString GetString(int n) const;
virtual void SetString(int n, const wxString& s);
virtual int FindString(const wxString& s) const;
void SetClientData( int n, void* clientData );
void* GetClientData( int n );
void SetClientObject( int n, wxClientData* clientData );
wxClientData* GetClientObject( int n );
virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE);
virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const;
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();
void Delete( int n );
virtual int DoAppend(const wxString& item);
virtual void DoInsertItems(const wxArrayString& items, int pos);
virtual void DoSetItems(const wxArrayString& items, void **clientData);
void Deselect( int n );
int FindString( const wxString &item ) const;
int GetSelection() const;
int GetSelections( class wxArrayInt &) const;
wxString GetString( int n ) const;
wxString GetStringSelection() const;
int Number();
bool Selected( int n );
void Set( int n, const wxString *choices );
void SetFirstItem( int n );
void SetFirstItem( const wxString &item );
void SetSelection( int n, bool select = TRUE );
void SetString( int n, const wxString &string );
void SetStringSelection( const wxString &string, bool select = TRUE );
virtual void DoSetFirstItem(int n);
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;
// implementation from now on
#if wxUSE_DRAG_AND_DROP
void SetDropTarget( wxDropTarget *dropTarget );
#endif
// implementation
void DisableEvents();
void EnableEvents();
void AppendCommon( const wxString &item );
void AppendWithoutSorting( const wxString &item );
int GetIndex( GtkWidget *item ) const;
GtkWidget *GetConnectWidget();
bool IsOwnGtkWindow( GdkWindow *window );
@@ -123,14 +94,18 @@ public:
#endif // wxUSE_TOOLTIPS
GtkList *m_list;
wxList m_clientDataList;
wxList m_clientObjectList;
wxList m_clientData;
#if wxUSE_CHECKLISTBOX
bool m_hasCheckBoxes;
#endif // wxUSE_CHECKLISTBOX
private:
// this array is only used for controls with wxCB_SORT style, so only
// allocate it if it's needed (hence using pointer)
wxSortedArrayString *m_strings;
DECLARE_DYNAMIC_CLASS(wxListBox)
};
#endif
#endif // __GTKLISTBOXH__
+174 -14
View File
@@ -1,21 +1,181 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/listbox.h
// Purpose: wxListBox class interface
// Author: Vadim Zeitlin
// Modified by:
// Created: 22.10.99
// RCS-ID: $Id$
// Copyright: (c) wxWindows team
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_LISTBOX_H_BASE_
#define _WX_LISTBOX_H_BASE_
#if defined(__WXMSW__)
#include "wx/msw/listbox.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/listbox.h"
#elif defined(__WXGTK__)
#include "wx/gtk/listbox.h"
#elif defined(__WXQT__)
#include "wx/qt/listbox.h"
#elif defined(__WXMAC__)
#include "wx/mac/listbox.h"
#elif defined(__WXPM__)
#include "wx/os2/listbox.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/listbox.h"
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#ifdef __GNUG__
#pragma interface "listboxbase.h"
#endif
#include "wx/defs.h"
#if wxUSE_LISTBOX
#include "wx/control.h" // base class
// forward declarations are enough here
class WXDLLEXPORT wxArrayInt;
class WXDLLEXPORT wxArrayString;
// ----------------------------------------------------------------------------
// global data
// ----------------------------------------------------------------------------
WXDLLEXPORT_DATA(extern const wxChar*) wxListBoxNameStr;
// ----------------------------------------------------------------------------
// wxListBox interface is defined by the class wxListBoxBase
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxListBoxBase : public wxControl
{
public:
// ctor
wxListBoxBase() { m_clientDataItemsType = ClientData_None; }
// adding items
// ------------
void Append(const wxString& item)
{ DoAppend(item); }
void Append(const wxString& item, void *clientData)
{ int n = DoAppend(item); SetClientData(n, clientData); }
void Append(const wxString& item, wxClientData *clientData)
{ int n = DoAppend(item); SetClientObject(n, clientData); }
void Insert(const wxString& item, int pos)
{ DoInsert(item, pos); }
void Insert(const wxString& item, int pos, void *clientData)
{ DoInsert(item, pos); SetClientData(pos, clientData); }
void Insert(const wxString& item, int pos, wxClientData *clientData)
{ DoInsert(item, pos); SetClientObject(pos, clientData); }
void InsertItems(int nItems, const wxString *items, int pos);
void InsertItems(const wxArrayString& items, int pos)
{ DoInsertItems(items, pos); }
void Set(int n, const wxString* items, void **clientData = NULL);
void Set(const wxArrayString& items, void **clientData = NULL)
{ DoSetItems(items, clientData); }
// deleting items
// --------------
virtual void Clear() = 0;
virtual void Delete(int n) = 0;
// accessing strings
// -----------------
virtual int GetCount() const = 0;
virtual wxString GetString(int n) const = 0;
virtual void SetString(int n, const wxString& s) = 0;
virtual int FindString(const wxString& s) const = 0;
// selection
// ---------
virtual bool IsSelected(int n) const = 0;
virtual void SetSelection(int n, bool select = TRUE) = 0;
void Select(int n) { SetSelection(n, TRUE); }
void Deselect(int n) { SetSelection(n, FALSE); }
virtual int GetSelection() const = 0;
virtual int GetSelections(wxArrayInt& aSelections) const = 0;
bool SetStringSelection(const wxString& s, bool select = TRUE);
wxString GetStringSelection() const;
// misc
// ----
// client data stuff
void SetClientData( int n, void* clientData );
void* GetClientData( int n ) const;
void SetClientObject( int n, wxClientData* clientData );
wxClientData* GetClientObject( int n ) const;
// Set the specified item at the first visible item or scroll to max
// range.
void SetFirstItem(int n) { DoSetFirstItem(n); }
void SetFirstItem(const wxString& s);
// emulate selecting or deselecting (depending on event.GetExtraLong())
// the item event.GetInt() from the control
virtual void Command(wxCommandEvent &event);
// compatibility - these functions are deprecated, use the new ones
// instead
bool Selected(int n) const { return IsSelected(n); }
int Number() const { return GetCount(); }
protected:
// NB: due to wxGTK implementation details, DoInsert() is implemented
// using DoInsertItems() and not the other way round
void DoInsert(const wxString& item, int pos)
{ InsertItems(1, &item, pos); }
// to be implemented in derived classes
virtual int DoAppend(const wxString& item) = 0;
virtual void DoInsertItems(const wxArrayString& items, int pos) = 0;
virtual void DoSetItems(const wxArrayString& items, void **clientData) = 0;
virtual void DoSetFirstItem(int n) = 0;
virtual void DoSetClientData(int n, void* clientData) = 0;
virtual void* DoGetClientData(int n) const = 0;
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;
};
// ----------------------------------------------------------------------------
// include the platform-specific class declaration
// ----------------------------------------------------------------------------
#if defined(__WXMSW__)
#include "wx/msw/listbox.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/listbox.h"
#elif defined(__WXGTK__)
#include "wx/gtk/listbox.h"
#elif defined(__WXQT__)
#include "wx/qt/listbox.h"
#elif defined(__WXMAC__)
#include "wx/mac/listbox.h"
#elif defined(__WXPM__)
#include "wx/os2/listbox.h"
#elif defined(__WXSTUBS__)
#include "wx/stubs/listbox.h"
#endif
#endif // wxUSE_LISTBOX
#endif
// _WX_LISTBOX_H_BASE_
+56 -59
View File
@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: listbox.h
// Name: wx/msw/listbox.h
// Purpose: wxListBox class
// Author: Julian Smart
// Modified by:
@@ -16,9 +16,9 @@
#pragma interface "listbox.h"
#endif
#include "wx/control.h"
WXDLLEXPORT_DATA(extern const wxChar*) wxListBoxNameStr;
// ----------------------------------------------------------------------------
// simple types
// ----------------------------------------------------------------------------
#if wxUSE_OWNER_DRAWN
class WXDLLEXPORT wxOwnerDrawn;
@@ -27,20 +27,19 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxListBoxNameStr;
#include <wx/dynarray.h>
WX_DEFINE_EXPORTED_ARRAY(wxOwnerDrawn *, wxListBoxItemsArray);
#endif
#endif // wxUSE_OWNER_DRAWN
// forward decl for GetSelections()
class wxArrayInt;
WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
// ----------------------------------------------------------------------------
// List box control
// ----------------------------------------------------------------------------
// List box item
class WXDLLEXPORT wxListBox : public wxControl
class WXDLLEXPORT wxListBox : public wxListBoxBase
{
DECLARE_DYNAMIC_CLASS(wxListBox)
public:
// ctors and such
wxListBox();
wxListBox(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
@@ -54,17 +53,41 @@ public:
}
bool Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
int n = 0, const wxString choices[] = NULL,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxListBoxNameStr);
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
int n = 0, const wxString choices[] = NULL,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxListBoxNameStr);
~wxListBox();
virtual ~wxListBox();
bool MSWCommand(WXUINT param, WXWORD id);
// implement base class pure virtuals
virtual void Clear();
virtual void Delete(int n);
virtual int GetCount() const;
virtual wxString GetString(int n) const;
virtual void SetString(int n, const wxString& s);
virtual int FindString(const wxString& s) const;
virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE);
virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const;
virtual int DoAppend(const wxString& item);
virtual void DoInsertItems(const wxArrayString& items, int pos);
virtual void DoSetItems(const wxArrayString& items, void **clientData);
virtual void DoSetFirstItem(int n);
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;
// wxCheckListBox support
#if wxUSE_OWNER_DRAWN
bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item);
bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
@@ -79,53 +102,24 @@ public:
int GetItemIndex(wxOwnerDrawn *item) const { return m_aItems.Index(item); }
#endif // wxUSE_OWNER_DRAWN
virtual void Append(const wxString& item);
virtual void Append(const wxString& item, void *clientData);
virtual void Set(int n, const wxString* choices, void **clientData = NULL);
virtual int FindString(const wxString& s) const ;
virtual void Clear();
virtual void SetSelection(int n, bool select = TRUE);
virtual void Deselect(int n);
// For single choice list item only
virtual int GetSelection() const ;
virtual void Delete(int n);
virtual void *GetClientData(int n) const ;
virtual void SetClientData(int n, void *clientData);
virtual void SetString(int n, const wxString& s);
// For single or multiple choice list item
virtual int GetSelections(wxArrayInt& aSelections) const;
virtual bool Selected(int n) const ;
virtual wxString GetString(int n) const ;
// Set the specified item at the first visible item
// or scroll to max range.
virtual void SetFirstItem(int n) ;
virtual void SetFirstItem(const wxString& s) ;
virtual void InsertItems(int nItems, const wxString items[], int pos);
virtual wxString GetStringSelection() const ;
virtual bool SetStringSelection(const wxString& s, bool flag = TRUE);
virtual int Number() const ;
void Command(wxCommandEvent& event);
// Windows-specific code to set the horizontal extent of
// the listbox, if necessary. If s is non-NULL, it's
// used to calculate the horizontal extent.
// Otherwise, all strings are used.
// Windows-specific code to set the horizontal extent of the listbox, if
// necessary. If s is non-NULL, it's used to calculate the horizontal
// extent. Otherwise, all strings are used.
virtual void SetHorizontalExtent(const wxString& s = wxEmptyString);
// Windows callbacks
virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
WXUINT message,
WXWPARAM wParam, WXLPARAM lParam);
bool MSWCommand(WXUINT param, WXWORD id);
virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
virtual void SetupColours();
protected:
// do we have multiple selections?
bool HasMultipleSelection() const;
int m_noItems;
int m_selected;
@@ -135,6 +129,9 @@ protected:
// control items
wxListBoxItemsArray m_aItems;
#endif
private:
DECLARE_DYNAMIC_CLASS(wxListBox)
};
#endif
+1 -5
View File
@@ -97,11 +97,7 @@ wxDataObjectComposite::GetPreferredFormat(Direction WXUNUSED(dir)) const
{
wxSimpleDataObjectList::Node *node = m_dataObjects.Item( m_preferred );
#ifdef __WXGTK__
wxCHECK_MSG( node, wxDataFormat(wxDF_INVALID), wxT("no preferred format") );
#else
wxCHECK_MSG( node, wxDataFormat((unsigned short) wxDF_INVALID), wxT("no preferred format") );
#endif
wxCHECK_MSG( node, wxFormatInvalid, wxT("no preferred format") );
wxDataObjectSimple* dataObj = node->GetData();
+151
View File
@@ -0,0 +1,151 @@
///////////////////////////////////////////////////////////////////////////////
// Name: common/lboxcmn.cpp
// Purpose: wxListBox class methods common to all platforms
// Author: Vadim Zeitlin
// Modified by:
// Created: 22.10.99
// RCS-ID: $Id$
// Copyright: (c) wxWindows team
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#ifdef __GNUG__
#pragma implementation "listboxbase.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/listbox.h"
#endif
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// adding items
// ----------------------------------------------------------------------------
void wxListBoxBase::InsertItems(int nItems, const wxString *items, int pos)
{
wxArrayString aItems;
for ( int n = 0; n < nItems; n++ )
{
aItems.Add(items[n]);
}
DoInsertItems(aItems, pos);
}
void wxListBoxBase::Set(int nItems, const wxString* items, void **clientData)
{
wxArrayString aItems;
for ( int n = 0; n < nItems; n++ )
{
aItems.Add(items[n]);
}
DoSetItems(aItems, clientData);
}
// ----------------------------------------------------------------------------
// selection
// ----------------------------------------------------------------------------
wxString wxListBoxBase::GetStringSelection () const
{
wxString s;
int sel = GetSelection();
if ( sel != -1 )
s = GetString(sel);
return s;
}
bool wxListBoxBase::SetStringSelection(const wxString& s, bool select)
{
int sel = FindString(s);
wxCHECK_MSG( sel != -1, FALSE,
wxT("invalid string in wxListBox::SetStringSelection") );
SetSelection(sel, select);
return TRUE;
}
// ----------------------------------------------------------------------------
// client data
// ----------------------------------------------------------------------------
void wxListBoxBase::SetClientObject(int n, wxClientData *data)
{
wxASSERT_MSG( m_clientDataItemsType != ClientData_Void,
wxT("can't have both object and void client data") );
wxClientData *clientDataOld = DoGetClientObject(n);
if ( clientDataOld )
delete clientDataOld;
DoSetClientObject(n, data);
m_clientDataItemsType = ClientData_Object;
}
wxClientData *wxListBoxBase::GetClientObject(int n) const
{
wxASSERT_MSG( m_clientDataItemsType == ClientData_Object,
wxT("this window doesn't have object client data") );
return DoGetClientObject(n);
}
void wxListBoxBase::SetClientData(int n, void *data)
{
wxASSERT_MSG( m_clientDataItemsType != ClientData_Object,
wxT("can't have both object and void client data") );
DoSetClientData(n, data);
m_clientDataItemsType = ClientData_Void;
}
void *wxListBoxBase::GetClientData(int n) const
{
wxASSERT_MSG( m_clientDataItemsType == ClientData_Void,
wxT("this window doesn't have void client data") );
return DoGetClientData(n);
}
// ----------------------------------------------------------------------------
// misc
// ----------------------------------------------------------------------------
void wxListBoxBase::SetFirstItem(const wxString& s)
{
int n = FindString(s);
wxCHECK_RET( n != -1, wxT("invalid string in wxListBox::SetFirstItem") );
DoSetFirstItem(n);
}
void wxListBoxBase::Command(wxCommandEvent & event)
{
SetSelection(event.m_commandInt, event.m_extraLong);
(void)ProcessEvent(event);
}
+10 -15
View File
@@ -127,7 +127,7 @@ wxChoice::~wxChoice()
int wxChoice::DoAppend( const wxString &item )
{
wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice control") );
GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) );
@@ -136,7 +136,7 @@ int wxChoice::DoAppend( const wxString &item )
void wxChoice::DoSetClientData( int n, void* clientData )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxCHECK_RET( m_widget != NULL, wxT("invalid choice control") );
wxNode *node = m_clientList.Nth( n );
wxCHECK_RET( node, wxT("invalid index in wxChoice::DoSetClientData") );
@@ -146,7 +146,7 @@ void wxChoice::DoSetClientData( int n, void* clientData )
void* wxChoice::DoGetClientData( int n ) const
{
wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid choice control") );
wxNode *node = m_clientList.Nth( n );
wxCHECK_MSG( node, NULL, wxT("invalid index in wxChoice::DoGetClientData") );
@@ -156,7 +156,7 @@ void* wxChoice::DoGetClientData( int n ) const
void wxChoice::DoSetClientObject( int n, wxClientData* clientData )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxCHECK_RET( m_widget != NULL, wxT("invalid choice control") );
wxNode *node = m_clientList.Nth( n );
wxCHECK_RET( node, wxT("invalid index in wxChoice::DoSetClientObject") );
@@ -169,7 +169,7 @@ void wxChoice::DoSetClientObject( int n, wxClientData* clientData )
wxClientData* wxChoice::DoGetClientObject( int n ) const
{
wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, wxT("invalid combobox") );
wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, wxT("invalid choice control") );
wxNode *node = m_clientList.Nth( n );
wxCHECK_MSG( node, (wxClientData *)NULL,
@@ -186,17 +186,12 @@ void wxChoice::Clear()
GtkWidget *menu = gtk_menu_new();
gtk_option_menu_set_menu( GTK_OPTION_MENU(m_widget), menu );
if (m_clientDataItemsType == ClientData_Object)
{
wxNode *node = m_clientList.First();
while (node)
{
wxClientData *cd = (wxClientData*)node->Data();
if (cd) delete cd;
node = node->Next();
}
}
if ( m_clientDataItemsType == ClientData_Object )
m_clientList.DeleteContents(TRUE);
m_clientList.Clear();
if ( m_strings )
m_strings->Clear();
}
void wxChoice::Delete( int WXUNUSED(n) )
+228 -215
View File
File diff suppressed because it is too large Load Diff
+10 -15
View File
@@ -127,7 +127,7 @@ wxChoice::~wxChoice()
int wxChoice::DoAppend( const wxString &item )
{
wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice control") );
GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) );
@@ -136,7 +136,7 @@ int wxChoice::DoAppend( const wxString &item )
void wxChoice::DoSetClientData( int n, void* clientData )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxCHECK_RET( m_widget != NULL, wxT("invalid choice control") );
wxNode *node = m_clientList.Nth( n );
wxCHECK_RET( node, wxT("invalid index in wxChoice::DoSetClientData") );
@@ -146,7 +146,7 @@ void wxChoice::DoSetClientData( int n, void* clientData )
void* wxChoice::DoGetClientData( int n ) const
{
wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid choice control") );
wxNode *node = m_clientList.Nth( n );
wxCHECK_MSG( node, NULL, wxT("invalid index in wxChoice::DoGetClientData") );
@@ -156,7 +156,7 @@ void* wxChoice::DoGetClientData( int n ) const
void wxChoice::DoSetClientObject( int n, wxClientData* clientData )
{
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxCHECK_RET( m_widget != NULL, wxT("invalid choice control") );
wxNode *node = m_clientList.Nth( n );
wxCHECK_RET( node, wxT("invalid index in wxChoice::DoSetClientObject") );
@@ -169,7 +169,7 @@ void wxChoice::DoSetClientObject( int n, wxClientData* clientData )
wxClientData* wxChoice::DoGetClientObject( int n ) const
{
wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, wxT("invalid combobox") );
wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, wxT("invalid choice control") );
wxNode *node = m_clientList.Nth( n );
wxCHECK_MSG( node, (wxClientData *)NULL,
@@ -186,17 +186,12 @@ void wxChoice::Clear()
GtkWidget *menu = gtk_menu_new();
gtk_option_menu_set_menu( GTK_OPTION_MENU(m_widget), menu );
if (m_clientDataItemsType == ClientData_Object)
{
wxNode *node = m_clientList.First();
while (node)
{
wxClientData *cd = (wxClientData*)node->Data();
if (cd) delete cd;
node = node->Next();
}
}
if ( m_clientDataItemsType == ClientData_Object )
m_clientList.DeleteContents(TRUE);
m_clientList.Clear();
if ( m_strings )
m_strings->Clear();
}
void wxChoice::Delete( int WXUNUSED(n) )
+228 -215
View File
File diff suppressed because it is too large Load Diff
+185 -207
View File
File diff suppressed because it is too large Load Diff
+4 -1
View File
@@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:16, 1999/10/21
# This file was automatically generated by tmake at 16:37, 1999/10/22
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE B32.T!
#
@@ -154,6 +154,7 @@ COMMONOBJS = \
$(MSWDIR)\intl.obj \
$(MSWDIR)\ipcbase.obj \
$(MSWDIR)\layout.obj \
$(MSWDIR)\lboxcmn.obj \
$(MSWDIR)\list.obj \
$(MSWDIR)\log.obj \
$(MSWDIR)\memory.obj \
@@ -618,6 +619,8 @@ $(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF)
$(MSWDIR)\layout.obj: $(COMMDIR)\layout.$(SRCSUFF)
$(MSWDIR)\lboxcmn.obj: $(COMMDIR)\lboxcmn.$(SRCSUFF)
$(MSWDIR)\list.obj: $(COMMDIR)\list.$(SRCSUFF)
$(MSWDIR)\log.obj: $(COMMDIR)\log.$(SRCSUFF)
+4 -1
View File
@@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:16, 1999/10/21
# This file was automatically generated by tmake at 16:37, 1999/10/22
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE BCC.T!
#
@@ -139,6 +139,7 @@ COMMONOBJS = \
$(MSWDIR)\intl.obj \
$(MSWDIR)\ipcbase.obj \
$(MSWDIR)\layout.obj \
$(MSWDIR)\lboxcmn.obj \
$(MSWDIR)\list.obj \
$(MSWDIR)\log.obj \
$(MSWDIR)\memory.obj \
@@ -514,6 +515,8 @@ $(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF)
$(MSWDIR)\layout.obj: $(COMMDIR)\layout.$(SRCSUFF)
$(MSWDIR)\lboxcmn.obj: $(COMMDIR)\lboxcmn.$(SRCSUFF)
$(MSWDIR)\list.obj: $(COMMDIR)\list.$(SRCSUFF)
$(MSWDIR)\log.obj: $(COMMDIR)\log.$(SRCSUFF)
+7 -1
View File
@@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:16, 1999/10/21
# This file was automatically generated by tmake at 16:37, 1999/10/22
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE DOS.T!
#
@@ -126,6 +126,7 @@ COMMONOBJS = \
$(COMMDIR)\intl.obj \
$(COMMDIR)\ipcbase.obj \
$(COMMDIR)\layout.obj \
$(COMMDIR)\lboxcmn.obj \
$(COMMDIR)\list.obj \
$(COMMDIR)\log.obj \
$(COMMDIR)\memory.obj \
@@ -875,6 +876,11 @@ $(COMMDIR)/layout.obj: $*.$(SRCSUFF)
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<
$(COMMDIR)/lboxcmn.obj: $*.$(SRCSUFF)
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
<<
$(COMMDIR)/list.obj: $*.$(SRCSUFF)
cl @<<
$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF)
+18 -40
View File
@@ -1,5 +1,4 @@
# This file was automatically generated by tmake at 12:32, 1999/10/22
# This file was automatically generated by tmake at 16:37, 1999/10/22
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE G95.T!
#
@@ -105,6 +104,7 @@ COMMONOBJS = \
$(COMMDIR)/intl.$(OBJSUFF) \
$(COMMDIR)/ipcbase.$(OBJSUFF) \
$(COMMDIR)/layout.$(OBJSUFF) \
$(COMMDIR)/lboxcmn.$(OBJSUFF) \
$(COMMDIR)/list.$(OBJSUFF) \
$(COMMDIR)/log.$(OBJSUFF) \
$(COMMDIR)/memory.$(OBJSUFF) \
@@ -258,15 +258,6 @@ MSWOBJS = \
$(MSWDIR)/window.$(OBJSUFF) \
$(MSWDIR)/xpmhand.$(OBJSUFF)
ADVANCEDOBJS = \
$(COMMDIR)/odbc.$(OBJSUFF) \
$(MSWDIR)/ole/automtn.$(OBJSUFF) \
$(MSWDIR)/ole/dataobj.$(OBJSUFF) \
$(MSWDIR)/ole/dropsrc.$(OBJSUFF) \
$(MSWDIR)/ole/droptgt.$(OBJSUFF) \
$(MSWDIR)/ole/oleutils.$(OBJSUFF) \
$(MSWDIR)/ole/uuid.$(OBJSUFF)
ZLIBOBJS = \
$(ZLIBDIR)/adler32.$(OBJSUFF) \
$(ZLIBDIR)/compress.$(OBJSUFF) \
@@ -362,20 +353,7 @@ XPMOBJECTS = $(XPMDIR)/crbuffri.o\
$(XPMDIR)/wrffrp.o $(XPMDIR)/wrffri.o
OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJS) \
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) # $(ADVANCEDOBJS) # $(XPMOBJECTS)
ifeq ($(MINGW32),1)
ifeq ($(MINGW32VERSION),2.95)
OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJS) \
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) $(ADVANCEDOBJS) # $(XPMOBJECTS)
else
OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJS) \
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) # $(XPMOBJECTS)
endif
else
OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) $(HTMLOBJS) \
$(JPEGOBJS) $(PNGOBJS) $(ZLIBOBJS) # $(XPMOBJECTS)
endif
all: $(OBJECTS) $(WXLIB)
@@ -425,21 +403,21 @@ $(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c
# mv y.tab.c $(COMMDIR)/y_tab.c
clean:
rm -f *.o
rm -f *.bak
rm -f core
rm -f ..\common\y_tab.c
rm -f ..\common\lex_yy.c
rm -f ..\common\*.o
rm -f ..\common\*.bak
rm -f ..\generic\*.o
rm -f ..\generic\*.bak
rm -f ..\html\*.o
rm -f ..\png\*.o
rm -f ..\png\*.bak
rm -f ..\zlib\*.o
rm -f ..\zlib\*.bak
rm -f ..\jpeg\*.o
rm -f ..\..\lib\libwx.a
-erase *.o
-erase *.bak
-erase core
-erase ..\common\y_tab.c
-erase ..\common\lex_yy.c
-erase ..\common\*.o
-erase ..\common\*.bak
-erase ..\generic\*.o
-erase ..\generic\*.bak
-erase ..\html\*.o
-erase ..\png\*.o
-erase ..\png\*.bak
-erase ..\zlib\*.o
-erase ..\zlib\*.bak
-erase ..\jpeg\*.o
-erase ..\..\lib\libwx.a
cleanall: clean
+2 -1
View File
@@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:16, 1999/10/21
# This file was automatically generated by tmake at 16:37, 1999/10/22
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE SC.T!
# Symantec C++ makefile for the msw objects
@@ -93,6 +93,7 @@ COMMONOBJS = \
$(COMMDIR)\intl.obj \
$(COMMDIR)\ipcbase.obj \
$(COMMDIR)\layout.obj \
$(COMMDIR)\lboxcmn.obj \
$(COMMDIR)\list.obj \
$(COMMDIR)\log.obj \
$(COMMDIR)\memory.obj \
+2 -1
View File
@@ -1,4 +1,4 @@
# This file was automatically generated by tmake at 15:16, 1999/10/21
# This file was automatically generated by tmake at 16:37, 1999/10/22
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE VC.T!
# File: makefile.vc
@@ -171,6 +171,7 @@ COMMONOBJS = \
..\common\$D\intl.obj \
..\common\$D\ipcbase.obj \
..\common\$D\layout.obj \
..\common\$D\lboxcmn.obj \
..\common\$D\list.obj \
..\common\$D\log.obj \
..\common\$D\memory.obj \
+5 -1
View File
@@ -1,6 +1,6 @@
# This file was automatically generated by tmake at 15:16, 1999/10/21
# This file was automatically generated by tmake at 16:37, 1999/10/22
# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE WAT.T!
#!/binb/wmake.exe
@@ -119,6 +119,7 @@ COMMONOBJS = &
intl.obj &
ipcbase.obj &
layout.obj &
lboxcmn.obj &
list.obj &
log.obj &
memory.obj &
@@ -692,6 +693,9 @@ ipcbase.obj: $(COMMDIR)\ipcbase.cpp
layout.obj: $(COMMDIR)\layout.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
lboxcmn.obj: $(COMMDIR)\lboxcmn.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<
list.obj: $(COMMDIR)\list.cpp
*$(CCC) $(CPPFLAGS) $(IFLAGS) $<