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
This commit is contained in:
@@ -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}
|
||||
|
||||
|
@@ -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 ) { }
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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_
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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)
|
||||
};
|
||||
|
||||
|
@@ -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 ;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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 ;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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)
|
||||
{
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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") );
|
||||
|
||||
|
@@ -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") );
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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") );
|
||||
|
@@ -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)
|
||||
|
@@ -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),
|
||||
|
@@ -415,7 +415,7 @@ void wxListBox::Clear()
|
||||
m_nNumItems = 0;
|
||||
} // end of wxListBox::Clear
|
||||
|
||||
void wxListBox::SetSelection(
|
||||
void wxListBox::DoSetSelection(
|
||||
int N
|
||||
, bool bSelect
|
||||
)
|
||||
|
@@ -207,7 +207,7 @@ void wxListBox::Free()
|
||||
{
|
||||
}
|
||||
|
||||
void wxListBox::SetSelection(int N, bool select)
|
||||
void wxListBox::DoSetSelection(int N, bool select)
|
||||
{
|
||||
}
|
||||
|
||||
|
@@ -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") );
|
||||
|
||||
|
@@ -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 )
|
||||
{
|
||||
|
Reference in New Issue
Block a user