From c6179a847d8899cceb8880abc2ab2fe9d0244c90 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 13 Feb 2005 17:08:27 +0000 Subject: [PATCH] 1. added SetSelection() to wxItemContainer and removed its declarations from derived classes 2. made wxItemContainer::Select() non virtual: it simply calls SetSelection() 3. renamed wxListBox::SetSelection(n, select) to DoSetSelection() for all ports and defined non virtual SetSelection() overloads in the base class to avoid virtual functions hiding git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/ctrlsub.tex | 12 ++- include/wx/choice.h | 6 -- include/wx/cocoa/combobox.h | 1 - include/wx/cocoa/listbox.h | 3 +- include/wx/ctrlsub.h | 20 ++++- include/wx/gtk/combobox.h | 1 - include/wx/gtk/listbox.h | 2 +- include/wx/gtk1/combobox.h | 1 - include/wx/gtk1/listbox.h | 2 +- include/wx/listbox.h | 15 +++- include/wx/mac/carbon/combobox.h | 1 - include/wx/mac/carbon/listbox.h | 2 +- include/wx/mac/classic/combobox.h | 1 - include/wx/mac/classic/listbox.h | 2 +- include/wx/motif/listbox.h | 2 +- include/wx/msw/listbox.h | 2 +- include/wx/os2/listbox.h | 4 +- include/wx/palmos/listbox.h | 2 +- include/wx/univ/combobox.h | 3 +- include/wx/univ/listbox.h | 2 +- src/cocoa/listbox.mm | 4 +- src/common/ctrlsub.cpp | 11 +-- src/gtk/listbox.cpp | 2 +- src/gtk1/listbox.cpp | 2 +- src/mac/carbon/listbox.cpp | 134 +++++++++++++++--------------- src/mac/classic/listbox.cpp | 2 +- src/motif/listbox.cpp | 2 +- src/msw/listbox.cpp | 2 +- src/os2/listbox.cpp | 2 +- src/palmos/listbox.cpp | 2 +- src/univ/combobox.cpp | 2 +- src/univ/listbox.cpp | 2 +- 32 files changed, 132 insertions(+), 119 deletions(-) diff --git a/docs/latex/wx/ctrlsub.tex b/docs/latex/wx/ctrlsub.tex index 0848843058..f3d6767dfa 100644 --- a/docs/latex/wx/ctrlsub.tex +++ b/docs/latex/wx/ctrlsub.tex @@ -269,6 +269,15 @@ the new code. This method is only available if wxWidgets was compiled with future versions. +\membersection{wxControlWithItems::Select}\label{wxcontrolwithitemsselect} + +\func{void}{Select}{\param{int}{ n}} + +This is the same as \helpref{SetSelection}{wxcontrolwithitemssetselection} and +exists only because it is slightly more natural for controls which support +multiple selection. + + \membersection{wxControlWithItems::SetClientData}\label{wxcontrolwithitemssetclientdata} \func{void}{SetClientData}{\param{int}{ n}, \param{void *}{data}} @@ -310,7 +319,8 @@ pointers had been associated with the control items before. Sets the selection to the given item \arg{n} or removes the selection entirely if \arg{n} $==$ {\tt wxNOT\_FOUND}. -Note that this does not cause any command events to be emitted. +Note that this does not cause any command events to be emitted nor does it +deselect any other items in the controls which support multiple selections. \wxheading{Parameters} diff --git a/include/wx/choice.h b/include/wx/choice.h index 12bf96c6e0..9f396fdd9c 100644 --- a/include/wx/choice.h +++ b/include/wx/choice.h @@ -42,12 +42,6 @@ public: // all generic methods are in wxControlWithItems - // single selection logic - virtual void SetSelection(int n) = 0; - - // don't override this - virtual void Select(int n) { SetSelection(n); } - // set/get the number of columns in the control (as they're not supported on // most platforms, they do nothing by default) virtual void SetColumns(int WXUNUSED(n) = 1 ) { } diff --git a/include/wx/cocoa/combobox.h b/include/wx/cocoa/combobox.h index b9679a6f0b..30dedf5893 100644 --- a/include/wx/cocoa/combobox.h +++ b/include/wx/cocoa/combobox.h @@ -88,7 +88,6 @@ public: virtual wxString GetString(int) const; virtual void SetString(int, const wxString&); virtual int FindString(const wxString&) const; - virtual void Select(int) {} virtual int GetSelection() const; virtual int DoAppend(const wxString&); virtual int DoInsert(const wxString&, int); diff --git a/include/wx/cocoa/listbox.h b/include/wx/cocoa/listbox.h index 2de3f9f901..479362e40e 100644 --- a/include/wx/cocoa/listbox.h +++ b/include/wx/cocoa/listbox.h @@ -82,12 +82,12 @@ protected: public: // pure virtuals from wxListBoxBase virtual bool IsSelected(int n) const; - virtual void SetSelection(int n, bool select = TRUE); virtual int GetSelections(wxArrayInt& aSelections) const; protected: virtual void DoInsertItems(const wxArrayString& items, int pos); virtual void DoSetItems(const wxArrayString& items, void **clientData); virtual void DoSetFirstItem(int n); + virtual void DoSetSelection(int n, bool select); // pure virtuals from wxItemContainer public: @@ -100,7 +100,6 @@ public: virtual void SetString(int n, const wxString& s); virtual int FindString(const wxString& s) const; // selection - virtual void Select(int n); virtual int GetSelection() const; protected: virtual int DoAppend(const wxString& item); diff --git a/include/wx/ctrlsub.h b/include/wx/ctrlsub.h index 56fd1750cc..bf708afc7c 100644 --- a/include/wx/ctrlsub.h +++ b/include/wx/ctrlsub.h @@ -76,7 +76,7 @@ public: // selection // --------- - virtual void Select(int n) = 0; + virtual void SetSelection(int n) = 0; virtual int GetSelection() const = 0; // set selection to the specified string, return false if not found @@ -85,6 +85,10 @@ public: // return the selected string or empty string if none wxString GetStringSelection() const; + // this is the same as SetSelection( for single-selection controls but + // reads better for multi-selection ones + void Select(int n) { SetSelection(n); } + // misc // ---- @@ -172,6 +176,20 @@ private: DECLARE_NO_COPY_CLASS(wxControlWithItems) }; + +// ---------------------------------------------------------------------------- +// inline functions +// ---------------------------------------------------------------------------- + +#if WXWIN_COMPATIBILITY_2_2 + +inline int wxItemContainer::Number() const +{ + return GetCount(); +} + +#endif // WXWIN_COMPATIBILITY_2_2 + #endif // wxUSE_CONTROLS #endif // _WX_CTRLSUB_H_BASE_ diff --git a/include/wx/gtk/combobox.h b/include/wx/gtk/combobox.h index 6c73810879..061d74289d 100644 --- a/include/wx/gtk/combobox.h +++ b/include/wx/gtk/combobox.h @@ -95,7 +95,6 @@ public: int GetCount() const; int Number() const { return GetCount(); } void SetSelection( int n ); - void Select( int n ) { return SetSelection( n ); } void SetString(int n, const wxString &text); wxString GetValue() const; diff --git a/include/wx/gtk/listbox.h b/include/wx/gtk/listbox.h index b8c980241f..ad45a72c7d 100644 --- a/include/wx/gtk/listbox.h +++ b/include/wx/gtk/listbox.h @@ -81,7 +81,7 @@ public: virtual int FindString(const wxString& s) const; virtual bool IsSelected(int n) const; - virtual void SetSelection(int n, bool select = TRUE); + virtual void DoSetSelection(int n, bool select); virtual int GetSelection() const; virtual int GetSelections(wxArrayInt& aSelections) const; diff --git a/include/wx/gtk1/combobox.h b/include/wx/gtk1/combobox.h index 6c73810879..061d74289d 100644 --- a/include/wx/gtk1/combobox.h +++ b/include/wx/gtk1/combobox.h @@ -95,7 +95,6 @@ public: int GetCount() const; int Number() const { return GetCount(); } void SetSelection( int n ); - void Select( int n ) { return SetSelection( n ); } void SetString(int n, const wxString &text); wxString GetValue() const; diff --git a/include/wx/gtk1/listbox.h b/include/wx/gtk1/listbox.h index b8c980241f..ad45a72c7d 100644 --- a/include/wx/gtk1/listbox.h +++ b/include/wx/gtk1/listbox.h @@ -81,7 +81,7 @@ public: virtual int FindString(const wxString& s) const; virtual bool IsSelected(int n) const; - virtual void SetSelection(int n, bool select = TRUE); + virtual void DoSetSelection(int n, bool select); virtual int GetSelection() const; virtual int GetSelections(wxArrayInt& aSelections) const; diff --git a/include/wx/listbox.h b/include/wx/listbox.h index 53248094f3..7c46b0cca5 100644 --- a/include/wx/listbox.h +++ b/include/wx/listbox.h @@ -65,12 +65,16 @@ public: // multiple selection logic virtual bool IsSelected(int n) const = 0; - virtual void SetSelection(int n, bool select = true) = 0; - virtual void Select(int n) { SetSelection(n, true); } - void Deselect(int n) { SetSelection(n, false); } + virtual void SetSelection(int n) { DoSetSelection(n, true); } + void SetSelection(int n, bool select) { DoSetSelection(n, select); } + void Deselect(int n) { DoSetSelection(n, false); } void DeselectAll(int itemToLeaveSelected = -1); - virtual bool SetStringSelection(const wxString& s, bool select = true); + virtual bool SetStringSelection(const wxString& s, bool select); + virtual bool SetStringSelection(const wxString& s) + { + return SetStringSelection(s, true); + } // works for single as well as multiple selection listboxes (unlike // GetSelection which only works for listboxes with single selection) @@ -119,6 +123,9 @@ protected: virtual void DoSetFirstItem(int n) = 0; + virtual void DoSetSelection(int n, bool select) = 0; + + DECLARE_NO_COPY_CLASS(wxListBoxBase) }; diff --git a/include/wx/mac/carbon/combobox.h b/include/wx/mac/carbon/combobox.h index 34e982c20b..82b4956c15 100644 --- a/include/wx/mac/carbon/combobox.h +++ b/include/wx/mac/carbon/combobox.h @@ -92,7 +92,6 @@ class WXDLLEXPORT wxComboBox : public wxControl, public wxComboBoxBase 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 ; diff --git a/include/wx/mac/carbon/listbox.h b/include/wx/mac/carbon/listbox.h index ec8cf5147e..3c80d10883 100644 --- a/include/wx/mac/carbon/listbox.h +++ b/include/wx/mac/carbon/listbox.h @@ -97,7 +97,7 @@ public: virtual int FindString(const wxString& s) const; virtual bool IsSelected(int n) const; - virtual void SetSelection(int n, bool select = TRUE); + virtual void DoSetSelection(int n, bool select); virtual int GetSelection() const; virtual int GetSelections(wxArrayInt& aSelections) const; diff --git a/include/wx/mac/classic/combobox.h b/include/wx/mac/classic/combobox.h index f97c8a627f..1e79cf50c2 100644 --- a/include/wx/mac/classic/combobox.h +++ b/include/wx/mac/classic/combobox.h @@ -87,7 +87,6 @@ class WXDLLEXPORT wxComboBox : public wxControl, public wxComboBoxBase 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 ; diff --git a/include/wx/mac/classic/listbox.h b/include/wx/mac/classic/listbox.h index 77c0f27209..14258cf11c 100644 --- a/include/wx/mac/classic/listbox.h +++ b/include/wx/mac/classic/listbox.h @@ -97,7 +97,7 @@ public: virtual int FindString(const wxString& s) const; virtual bool IsSelected(int n) const; - virtual void SetSelection(int n, bool select = TRUE); + virtual void DoSetSelection(int n, bool select); virtual int GetSelection() const; virtual int GetSelections(wxArrayInt& aSelections) const; diff --git a/include/wx/motif/listbox.h b/include/wx/motif/listbox.h index 9d004b3474..fb853df302 100644 --- a/include/wx/motif/listbox.h +++ b/include/wx/motif/listbox.h @@ -84,7 +84,7 @@ public: virtual wxString GetString(int n) const; // implementation of wxListBoxbase - virtual void SetSelection(int n, bool select = true); + virtual void DoSetSelection(int n, bool select); virtual void DoInsertItems(const wxArrayString& items, int pos); virtual void DoSetItems(const wxArrayString& items, void **clientData); virtual void DoSetFirstItem(int n); diff --git a/include/wx/msw/listbox.h b/include/wx/msw/listbox.h index e8c921e6a4..a901adf31c 100644 --- a/include/wx/msw/listbox.h +++ b/include/wx/msw/listbox.h @@ -91,7 +91,7 @@ public: virtual int FindString(const wxString& s) const; virtual bool IsSelected(int n) const; - virtual void SetSelection(int n, bool select = true); + virtual void DoSetSelection(int n, bool select); virtual int GetSelection() const; virtual int GetSelections(wxArrayInt& aSelections) const; diff --git a/include/wx/os2/listbox.h b/include/wx/os2/listbox.h index a1bba2d821..f0bd7cf3e3 100644 --- a/include/wx/os2/listbox.h +++ b/include/wx/os2/listbox.h @@ -114,8 +114,8 @@ public: virtual int FindString(const wxString& rsString) const; virtual bool IsSelected(int n) const; - virtual void SetSelection( int n - ,bool bSelect = TRUE + virtual void DoSetSelection( int n + ,bool bSelect ); virtual int GetSelection(void) const; virtual int GetSelections(wxArrayInt& raSelections) const; diff --git a/include/wx/palmos/listbox.h b/include/wx/palmos/listbox.h index 6deb42c9ff..805f8d934c 100644 --- a/include/wx/palmos/listbox.h +++ b/include/wx/palmos/listbox.h @@ -91,7 +91,7 @@ public: virtual int FindString(const wxString& s) const; virtual bool IsSelected(int n) const; - virtual void SetSelection(int n, bool select = TRUE); + virtual void DoSetSelection(int n, bool select); virtual int GetSelection() const; virtual int GetSelections(wxArrayInt& aSelections) const; diff --git a/include/wx/univ/combobox.h b/include/wx/univ/combobox.h index 51012743f1..9720fe9b76 100644 --- a/include/wx/univ/combobox.h +++ b/include/wx/univ/combobox.h @@ -301,9 +301,8 @@ public: virtual wxString GetString(int n) const; virtual void SetString(int n, const wxString& s); virtual int FindString(const wxString& s) const; - virtual void Select(int n); + virtual void SetSelection(int n); virtual int GetSelection() const; - void SetSelection(int n) { Select(n); } wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST diff --git a/include/wx/univ/listbox.h b/include/wx/univ/listbox.h index d73708e06b..992837185a 100644 --- a/include/wx/univ/listbox.h +++ b/include/wx/univ/listbox.h @@ -112,7 +112,7 @@ public: virtual bool IsSelected(int n) const { return m_selections.Index(n) != wxNOT_FOUND; } - virtual void SetSelection(int n, bool select = true); + virtual void DoSetSelection(int n, bool select); virtual int GetSelection() const; virtual int GetSelections(wxArrayInt& aSelections) const; diff --git a/src/cocoa/listbox.mm b/src/cocoa/listbox.mm index 2da7df8afe..ab8d8233ae 100644 --- a/src/cocoa/listbox.mm +++ b/src/cocoa/listbox.mm @@ -117,7 +117,7 @@ bool wxListBox::IsSelected(int n) const return [GetNSTableView() isRowSelected: n]; } -void wxListBox::SetSelection(int n, bool select) +void wxListBox::DoSetSelection(int n, bool select) { if(select) [GetNSTableView() selectRow: n byExtendingSelection:NO]; @@ -197,7 +197,7 @@ int wxListBox::FindString(const wxString& s) const } // selection -void wxListBox::Select(int n) +void wxListBox::SetSelection(int n) { } diff --git a/src/common/ctrlsub.cpp b/src/common/ctrlsub.cpp index 59a9c9832b..4d0a062267 100644 --- a/src/common/ctrlsub.cpp +++ b/src/common/ctrlsub.cpp @@ -64,7 +64,7 @@ bool wxItemContainer::SetStringSelection(const wxString& s) if ( sel == wxNOT_FOUND ) return false; - Select(sel); + SetSelection(sel); return true; } @@ -167,13 +167,4 @@ wxControlWithItems::~wxControlWithItems() // this destructor is required for Darwin } -#if WXWIN_COMPATIBILITY_2_2 - -int wxItemContainer::Number() const -{ - return GetCount(); -} - -#endif // WXWIN_COMPATIBILITY_2_2 - #endif // wxUSE_CONTROLS diff --git a/src/gtk/listbox.cpp b/src/gtk/listbox.cpp index 5ad87b3027..a2cf2b46aa 100644 --- a/src/gtk/listbox.cpp +++ b/src/gtk/listbox.cpp @@ -1006,7 +1006,7 @@ bool wxListBox::IsSelected( int n ) const return (GTK_WIDGET(target->data)->state == GTK_STATE_SELECTED) ; } -void wxListBox::SetSelection( int n, bool select ) +void wxListBox::DoSetSelection( int n, bool select ) { wxCHECK_RET( m_list != NULL, wxT("invalid listbox") ); diff --git a/src/gtk1/listbox.cpp b/src/gtk1/listbox.cpp index 5ad87b3027..a2cf2b46aa 100644 --- a/src/gtk1/listbox.cpp +++ b/src/gtk1/listbox.cpp @@ -1006,7 +1006,7 @@ bool wxListBox::IsSelected( int n ) const return (GTK_WIDGET(target->data)->state == GTK_STATE_SELECTED) ; } -void wxListBox::SetSelection( int n, bool select ) +void wxListBox::DoSetSelection( int n, bool select ) { wxCHECK_RET( m_list != NULL, wxT("invalid listbox") ); diff --git a/src/mac/carbon/listbox.cpp b/src/mac/carbon/listbox.cpp index 7e88b14f92..6e387a01da 100644 --- a/src/mac/carbon/listbox.cpp +++ b/src/mac/carbon/listbox.cpp @@ -42,15 +42,15 @@ const short kTextColumnId = 1024 ; // new databrowserbased version // because of the limited insert -// functionality of DataBrowser, +// functionality of DataBrowser, // we just introduce id s corresponding // to the line number #if TARGET_API_MAC_OSX -static pascal void DataBrowserItemNotificationProc(ControlRef browser, DataBrowserItemID itemID, +static pascal void DataBrowserItemNotificationProc(ControlRef browser, DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData) #else -static pascal void DataBrowserItemNotificationProc(ControlRef browser, DataBrowserItemID itemID, +static pascal void DataBrowserItemNotificationProc(ControlRef browser, DataBrowserItemID itemID, DataBrowserItemNotification message) #endif { @@ -92,25 +92,25 @@ static pascal void DataBrowserItemNotificationProc(ControlRef browser, DataBrow event.SetExtraLong( list->HasMultipleSelection() ? message == kDataBrowserItemSelected : TRUE ); wxPostEvent( list->GetEventHandler() , event ) ; // direct notification is not always having the listbox GetSelection() having in synch with event - // list->GetEventHandler()->ProcessEvent(event) ; - } + // list->GetEventHandler()->ProcessEvent(event) ; + } } } } -static pascal OSStatus ListBoxGetSetItemData(ControlRef browser, - DataBrowserItemID itemID, DataBrowserPropertyID property, +static pascal OSStatus ListBoxGetSetItemData(ControlRef browser, + DataBrowserItemID itemID, DataBrowserPropertyID property, DataBrowserItemDataRef itemData, Boolean changeValue) { OSStatus err = errDataBrowserPropertyNotSupported; - + if ( ! changeValue ) - { + { switch (property) { - + case kTextColumnId: - { + { long ref = GetControlReference( browser ) ; if ( ref ) { @@ -123,15 +123,15 @@ static pascal OSStatus ListBoxGetSetItemData(ControlRef browser, err = noErr ; } } - } + } break; - + default: - + break; } } - + return err; } @@ -171,7 +171,7 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id, wxASSERT_MSG( !(style & wxLB_MULTIPLE) || !(style & wxLB_EXTENDED), _T("only one of listbox selection modes can be specified") ); - + if ( !wxListBoxBase::Create(parent, id, pos, size, style & ~(wxHSCROLL|wxVSCROLL), validator, name) ) return false; @@ -196,21 +196,21 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id, { options += kDataBrowserSelectOnlyOne ; } - verify_noerr(m_peer->SetSelectionFlags( options ) ); + verify_noerr(m_peer->SetSelectionFlags( options ) ); DataBrowserListViewColumnDesc columnDesc ; columnDesc.headerBtnDesc.titleOffset = 0; columnDesc.headerBtnDesc.version = kDataBrowserListViewLatestHeaderDesc; - - columnDesc.headerBtnDesc.btnFontStyle.flags = + + columnDesc.headerBtnDesc.btnFontStyle.flags = kControlUseFontMask | kControlUseJustMask; - + columnDesc.headerBtnDesc.btnContentInfo.contentType = kControlNoContent; columnDesc.propertyDesc.propertyType = kDataBrowserTextType; columnDesc.headerBtnDesc.btnFontStyle.just = teFlushDefault; columnDesc.headerBtnDesc.minimumWidth = 0; columnDesc.headerBtnDesc.maximumWidth = 10000; - + columnDesc.headerBtnDesc.btnFontStyle.font = kControlFontViewSystemFont; columnDesc.headerBtnDesc.btnFontStyle.style = normal; columnDesc.headerBtnDesc.titleString = NULL ; // CFSTR( "" ); @@ -219,25 +219,25 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id, columnDesc.propertyDesc.propertyType = kDataBrowserTextType; columnDesc.propertyDesc.propertyFlags = #if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2 - kDataBrowserListViewTypeSelectColumn | + kDataBrowserListViewTypeSelectColumn | #endif kDataBrowserTableViewSelectionColumn ; - + verify_noerr(m_peer->AddListViewColumn( &columnDesc, kDataBrowserListViewAppendColumn) ) ; verify_noerr(m_peer->AutoSizeListViewColumns() ) ; verify_noerr(m_peer->SetHasScrollBars(false , true ) ) ; verify_noerr(m_peer->SetTableViewHiliteStyle(kDataBrowserTableViewFillHilite ) ) ; verify_noerr(m_peer->SetListViewHeaderBtnHeight( 0 ) ) ; DataBrowserCallbacks callbacks ; - + callbacks.version = kDataBrowserLatestCallbacks; - + InitDataBrowserCallbacks(&callbacks); - - callbacks.u.v1.itemDataCallback = + + callbacks.u.v1.itemDataCallback = NewDataBrowserItemDataUPP(ListBoxGetSetItemData); - + callbacks.u.v1.itemNotificationCallback = #if TARGET_API_MAC_OSX (DataBrowserItemNotificationUPP) NewDataBrowserItemNotificationWithItemUPP(DataBrowserItemNotificationProc) ; @@ -259,7 +259,7 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id, } SetBestSize(size); // Needed because it is a wxControlWithItems - + return TRUE; } @@ -349,7 +349,7 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData) { Clear() ; int n = choices.GetCount(); - + for( int i = 0 ; i < n ; ++i ) { if ( clientData ) @@ -364,7 +364,7 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData) else Append( choices[i] ) ; } - + #if wxUSE_OWNER_DRAWN if ( m_windowStyle & wxLB_OWNERDRAW ) { // first delete old items @@ -374,7 +374,7 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData) m_aItems[ui] = NULL; } m_aItems.Empty(); - + // then create new ones for ( ui = 0; ui < (size_t)m_noItems; ui++ ) { wxOwnerDrawn *pNewItem = CreateItem(ui); @@ -387,14 +387,14 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData) int wxListBox::FindString(const wxString& s) const { - + if ( s.Right(1) == wxT("*") ) { wxString search = s.Left( s.Length() - 1 ) ; int len = search.Length() ; Str255 s1 , s2 ; wxMacStringToPascal( search , s2 ) ; - + for ( int i = 0 ; i < m_noItems ; ++ i ) { wxMacStringToPascal( m_stringArray[i].Left( len ) , s1 ) ; @@ -412,14 +412,14 @@ int wxListBox::FindString(const wxString& s) const return i ; } } - + } else { Str255 s1 , s2 ; - + wxMacStringToPascal( s , s2 ) ; - + for ( int i = 0 ; i < m_noItems ; ++ i ) { wxMacStringToPascal( m_stringArray[i] , s1 ) ; @@ -440,11 +440,11 @@ void wxListBox::Clear() MacClear() ; } -void wxListBox::SetSelection(int N, bool select) +void wxListBox::DoSetSelection(int N, bool select) { wxCHECK_RET( N == wxNOT_FOUND || (N >= 0 && N < m_noItems) , wxT("invalid index in wxListBox::SetSelection") ); - + if ( N == wxNOT_FOUND ) MacDeselectAll() ; else @@ -455,7 +455,7 @@ bool wxListBox::IsSelected(int N) const { wxCHECK_MSG( N >= 0 && N < m_noItems, FALSE, wxT("invalid index in wxListBox::Selected") ); - + return MacIsSelected( N ) ; } @@ -463,7 +463,7 @@ void *wxListBox::DoGetItemClientData(int N) const { wxCHECK_MSG( N >= 0 && N < m_noItems, NULL, wxT("invalid index in wxListBox::GetClientData")); - + return (void *)m_dataArray[N]; } @@ -476,7 +476,7 @@ void wxListBox::DoSetItemClientData(int N, void *Client_data) { wxCHECK_RET( N >= 0 && N < m_noItems, wxT("invalid index in wxListBox::SetClientData") ); - + #if wxUSE_OWNER_DRAWN if ( m_windowStyle & wxLB_OWNERDRAW ) { @@ -486,7 +486,7 @@ void wxListBox::DoSetItemClientData(int N, void *Client_data) } #endif // wxUSE_OWNER_DRAWN wxASSERT_MSG( m_dataArray.GetCount() >= (size_t) N , wxT("invalid client_data array") ) ; - + if ( m_dataArray.GetCount() > (size_t) N ) { m_dataArray[N] = (char*) Client_data ; @@ -524,11 +524,11 @@ void wxListBox::DoInsertItems(const wxArrayString& items, int pos) { wxCHECK_RET( pos >= 0 && pos <= m_noItems, wxT("invalid index in wxListBox::InsertItems") ); - + InvalidateBestSize(); int nItems = items.GetCount(); - + for ( int i = 0 ; i < nItems ; i++ ) { m_stringArray.Insert( items[i] , pos + i ) ; @@ -551,8 +551,8 @@ wxSize wxListBox::DoGetBestSize() const int wLine; { - wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetTopLevelWindowRef() ) ) ; - + wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetTopLevelWindowRef() ) ) ; + if ( m_font.Ok() ) { ::TextFont( m_font.MacGetFontNum() ) ; @@ -565,7 +565,7 @@ wxSize wxListBox::DoGetBestSize() const ::TextSize( 9 ); ::TextFace( 0 ) ; } - + // Find the widest line for(int i = 0; i < GetCount(); i++) { wxString str(GetString(i)); @@ -584,15 +584,15 @@ wxSize wxListBox::DoGetBestSize() const #endif lbWidth = wxMax(lbWidth, wLine); } - + // Add room for the scrollbar lbWidth += wxSystemSettings::GetMetric(wxSYS_VSCROLL_X); - + // And just a bit more int cy = 12 ; int cx = ::TextWidth( "X" , 0 , 1 ) ; lbWidth += cx ; - + // don't make the listbox too tall (limit height to around 10 items) but don't // make it too small neither lbHeight = (cy+4) * wxMin(wxMax(GetCount(), 3), 10); @@ -666,7 +666,7 @@ void wxListBox::MacDelete( int n ) else if ( current > n ) { // something behind the deleted item was selected -> move up - MacSetSelection( current - 1 , true ) ; + MacSetSelection( current - 1 , true ) ; MacSetSelection( current , false ) ; } } @@ -687,7 +687,7 @@ void wxListBox::MacInsert( int n , const wxString& text) int current = selectionBefore[i] ; if ( current >= n ) { - MacSetSelection( current + 1 , true ) ; + MacSetSelection( current + 1 , true ) ; MacSetSelection( current , false ) ; } } @@ -708,7 +708,7 @@ void wxListBox::MacClear() verify_noerr( m_peer->RemoveItems( kDataBrowserNoItem , 0 , NULL , kDataBrowserItemNoProperty ) ) ; } -void wxListBox::MacDeselectAll() +void wxListBox::MacDeselectAll() { bool former = MacSuppressSelection( true ) ; verify_noerr(m_peer->SetSelectedItems( 0 , NULL , kDataBrowserItemsRemove ) ) ; @@ -731,7 +731,7 @@ void wxListBox::MacSetSelection( int n , bool select ) MacSuppressSelection( former ) ; } -bool wxListBox::MacSuppressSelection( bool suppress ) +bool wxListBox::MacSuppressSelection( bool suppress ) { bool former = m_suppressSelection ; m_suppressSelection = suppress ; @@ -758,9 +758,9 @@ int wxListBox::MacGetSelection() const int wxListBox::MacGetSelections( wxArrayInt& aSelections ) const { int no_sel = 0 ; - + aSelections.Empty(); - + UInt32 first , last ; m_peer->GetSelectionAnchor( &first , &last ) ; if ( first != kDataBrowserNoItem ) @@ -797,13 +797,13 @@ void wxListBox::OnChar(wxKeyEvent& event) // todo trigger proper events here event.Skip() ; return ; - + if ( event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER) { wxWindow* parent = GetParent() ; while( parent && !parent->IsTopLevel() && parent->GetDefaultItem() == NULL ) parent = parent->GetParent() ; - + if ( parent && parent->GetDefaultItem() ) { wxButton *def = wxDynamicCast(parent->GetDefaultItem(), @@ -845,10 +845,10 @@ void wxListBox::OnChar(wxKeyEvent& event) { // perform the default key handling first wxControl::OnKeyDown( event ) ; - + wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, m_windowId); event.SetEventObject( this ); - + wxArrayInt aSelections; int n, count = GetSelections(aSelections); if ( count > 0 ) @@ -864,9 +864,9 @@ void wxListBox::OnChar(wxKeyEvent& event) { n = -1; } - + event.SetInt(n); - + GetEventHandler()->ProcessEvent(event); } else @@ -885,20 +885,20 @@ void wxListBox::OnChar(wxKeyEvent& event) SetSelection(line) ; wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, m_windowId); event.SetEventObject( this ); - + if ( HasClientObjectData() ) event.SetClientObject( GetClientObject( line ) ); else if ( HasClientUntypedData() ) event.SetClientData( GetClientData(line) ); event.SetString( GetString(line) ); - + event.SetInt(line); - + GetEventHandler()->ProcessEvent(event); } } } } -#endif +#endif // !TARGET_API_MAC_OSX diff --git a/src/mac/classic/listbox.cpp b/src/mac/classic/listbox.cpp index f3a37a06b8..e68a7f9b72 100644 --- a/src/mac/classic/listbox.cpp +++ b/src/mac/classic/listbox.cpp @@ -515,7 +515,7 @@ void wxListBox::Clear() MacClear() ; } -void wxListBox::SetSelection(int N, bool select) +void wxListBox::DoSetSelection(int N, bool select) { wxCHECK_RET( N >= 0 && N < m_noItems, wxT("invalid index in wxListBox::SetSelection") ); diff --git a/src/motif/listbox.cpp b/src/motif/listbox.cpp index 1fa40e0bff..0e27fd8ef7 100644 --- a/src/motif/listbox.cpp +++ b/src/motif/listbox.cpp @@ -337,7 +337,7 @@ void wxListBox::Clear() m_noItems = 0; } -void wxListBox::SetSelection(int N, bool select) +void wxListBox::DoSetSelection(int N, bool select) { m_inSetValue = true; if (select) diff --git a/src/msw/listbox.cpp b/src/msw/listbox.cpp index 6e50fde3e0..360767c00f 100644 --- a/src/msw/listbox.cpp +++ b/src/msw/listbox.cpp @@ -390,7 +390,7 @@ void wxListBox::Free() } } -void wxListBox::SetSelection(int N, bool select) +void wxListBox::DoSetSelection(int N, bool select) { wxCHECK_RET( N == wxNOT_FOUND || (N >= 0 && N < m_noItems), diff --git a/src/os2/listbox.cpp b/src/os2/listbox.cpp index 8e785dc5d9..350cea8f68 100644 --- a/src/os2/listbox.cpp +++ b/src/os2/listbox.cpp @@ -415,7 +415,7 @@ void wxListBox::Clear() m_nNumItems = 0; } // end of wxListBox::Clear -void wxListBox::SetSelection( +void wxListBox::DoSetSelection( int N , bool bSelect ) diff --git a/src/palmos/listbox.cpp b/src/palmos/listbox.cpp index 57a65650e5..2bde12bb7e 100644 --- a/src/palmos/listbox.cpp +++ b/src/palmos/listbox.cpp @@ -207,7 +207,7 @@ void wxListBox::Free() { } -void wxListBox::SetSelection(int N, bool select) +void wxListBox::DoSetSelection(int N, bool select) { } diff --git a/src/univ/combobox.cpp b/src/univ/combobox.cpp index a5fefdfa0e..9d771ab73f 100644 --- a/src/univ/combobox.cpp +++ b/src/univ/combobox.cpp @@ -832,7 +832,7 @@ int wxComboBox::FindString(const wxString& s) const return GetLBox()->FindString(s); } -void wxComboBox::Select(int n) +void wxComboBox::SetSelection(int n) { wxCHECK_RET( (n >= 0) && (n < GetCount()), _T("invalid index in wxComboBox::Select") ); diff --git a/src/univ/listbox.cpp b/src/univ/listbox.cpp index 1188a594b4..b82ca69811 100644 --- a/src/univ/listbox.cpp +++ b/src/univ/listbox.cpp @@ -421,7 +421,7 @@ wxClientData* wxListBox::DoGetItemClientObject(int n) const // selection // ---------------------------------------------------------------------------- -void wxListBox::SetSelection(int n, bool select) +void wxListBox::DoSetSelection(int n, bool select) { if ( select ) { -- 2.45.2