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.
|
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}
|
\membersection{wxControlWithItems::SetClientData}\label{wxcontrolwithitemssetclientdata}
|
||||||
|
|
||||||
\func{void}{SetClientData}{\param{int}{ n}, \param{void *}{data}}
|
\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
|
Sets the selection to the given item \arg{n} or removes the selection entirely
|
||||||
if \arg{n} $==$ {\tt wxNOT\_FOUND}.
|
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}
|
\wxheading{Parameters}
|
||||||
|
|
||||||
|
@@ -42,12 +42,6 @@ public:
|
|||||||
|
|
||||||
// all generic methods are in wxControlWithItems
|
// 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
|
// set/get the number of columns in the control (as they're not supported on
|
||||||
// most platforms, they do nothing by default)
|
// most platforms, they do nothing by default)
|
||||||
virtual void SetColumns(int WXUNUSED(n) = 1 ) { }
|
virtual void SetColumns(int WXUNUSED(n) = 1 ) { }
|
||||||
|
@@ -88,7 +88,6 @@ public:
|
|||||||
virtual wxString GetString(int) const;
|
virtual wxString GetString(int) const;
|
||||||
virtual void SetString(int, const wxString&);
|
virtual void SetString(int, const wxString&);
|
||||||
virtual int FindString(const wxString&) const;
|
virtual int FindString(const wxString&) const;
|
||||||
virtual void Select(int) {}
|
|
||||||
virtual int GetSelection() const;
|
virtual int GetSelection() const;
|
||||||
virtual int DoAppend(const wxString&);
|
virtual int DoAppend(const wxString&);
|
||||||
virtual int DoInsert(const wxString&, int);
|
virtual int DoInsert(const wxString&, int);
|
||||||
|
@@ -82,12 +82,12 @@ protected:
|
|||||||
public:
|
public:
|
||||||
// pure virtuals from wxListBoxBase
|
// pure virtuals from wxListBoxBase
|
||||||
virtual bool IsSelected(int n) const;
|
virtual bool IsSelected(int n) const;
|
||||||
virtual void SetSelection(int n, bool select = TRUE);
|
|
||||||
virtual int GetSelections(wxArrayInt& aSelections) const;
|
virtual int GetSelections(wxArrayInt& aSelections) const;
|
||||||
protected:
|
protected:
|
||||||
virtual void DoInsertItems(const wxArrayString& items, int pos);
|
virtual void DoInsertItems(const wxArrayString& items, int pos);
|
||||||
virtual void DoSetItems(const wxArrayString& items, void **clientData);
|
virtual void DoSetItems(const wxArrayString& items, void **clientData);
|
||||||
virtual void DoSetFirstItem(int n);
|
virtual void DoSetFirstItem(int n);
|
||||||
|
virtual void DoSetSelection(int n, bool select);
|
||||||
|
|
||||||
// pure virtuals from wxItemContainer
|
// pure virtuals from wxItemContainer
|
||||||
public:
|
public:
|
||||||
@@ -100,7 +100,6 @@ public:
|
|||||||
virtual void SetString(int n, const wxString& s);
|
virtual void SetString(int n, const wxString& s);
|
||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
// selection
|
// selection
|
||||||
virtual void Select(int n);
|
|
||||||
virtual int GetSelection() const;
|
virtual int GetSelection() const;
|
||||||
protected:
|
protected:
|
||||||
virtual int DoAppend(const wxString& item);
|
virtual int DoAppend(const wxString& item);
|
||||||
|
@@ -76,7 +76,7 @@ public:
|
|||||||
// selection
|
// selection
|
||||||
// ---------
|
// ---------
|
||||||
|
|
||||||
virtual void Select(int n) = 0;
|
virtual void SetSelection(int n) = 0;
|
||||||
virtual int GetSelection() const = 0;
|
virtual int GetSelection() const = 0;
|
||||||
|
|
||||||
// set selection to the specified string, return false if not found
|
// 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
|
// return the selected string or empty string if none
|
||||||
wxString GetStringSelection() const;
|
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
|
// misc
|
||||||
// ----
|
// ----
|
||||||
|
|
||||||
@@ -172,6 +176,20 @@ private:
|
|||||||
DECLARE_NO_COPY_CLASS(wxControlWithItems)
|
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 // wxUSE_CONTROLS
|
||||||
|
|
||||||
#endif // _WX_CTRLSUB_H_BASE_
|
#endif // _WX_CTRLSUB_H_BASE_
|
||||||
|
@@ -95,7 +95,6 @@ public:
|
|||||||
int GetCount() const;
|
int GetCount() const;
|
||||||
int Number() const { return GetCount(); }
|
int Number() const { return GetCount(); }
|
||||||
void SetSelection( int n );
|
void SetSelection( int n );
|
||||||
void Select( int n ) { return SetSelection( n ); }
|
|
||||||
void SetString(int n, const wxString &text);
|
void SetString(int n, const wxString &text);
|
||||||
|
|
||||||
wxString GetValue() const;
|
wxString GetValue() const;
|
||||||
|
@@ -81,7 +81,7 @@ public:
|
|||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
|
|
||||||
virtual bool IsSelected(int n) 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 GetSelection() const;
|
||||||
virtual int GetSelections(wxArrayInt& aSelections) const;
|
virtual int GetSelections(wxArrayInt& aSelections) const;
|
||||||
|
|
||||||
|
@@ -95,7 +95,6 @@ public:
|
|||||||
int GetCount() const;
|
int GetCount() const;
|
||||||
int Number() const { return GetCount(); }
|
int Number() const { return GetCount(); }
|
||||||
void SetSelection( int n );
|
void SetSelection( int n );
|
||||||
void Select( int n ) { return SetSelection( n ); }
|
|
||||||
void SetString(int n, const wxString &text);
|
void SetString(int n, const wxString &text);
|
||||||
|
|
||||||
wxString GetValue() const;
|
wxString GetValue() const;
|
||||||
|
@@ -81,7 +81,7 @@ public:
|
|||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
|
|
||||||
virtual bool IsSelected(int n) 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 GetSelection() const;
|
||||||
virtual int GetSelections(wxArrayInt& aSelections) const;
|
virtual int GetSelections(wxArrayInt& aSelections) const;
|
||||||
|
|
||||||
|
@@ -65,12 +65,16 @@ public:
|
|||||||
|
|
||||||
// multiple selection logic
|
// multiple selection logic
|
||||||
virtual bool IsSelected(int n) const = 0;
|
virtual bool IsSelected(int n) const = 0;
|
||||||
virtual void SetSelection(int n, bool select = true) = 0;
|
virtual void SetSelection(int n) { DoSetSelection(n, true); }
|
||||||
virtual void Select(int n) { SetSelection(n, true); }
|
void SetSelection(int n, bool select) { DoSetSelection(n, select); }
|
||||||
void Deselect(int n) { SetSelection(n, false); }
|
void Deselect(int n) { DoSetSelection(n, false); }
|
||||||
void DeselectAll(int itemToLeaveSelected = -1);
|
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
|
// works for single as well as multiple selection listboxes (unlike
|
||||||
// GetSelection which only works for listboxes with single selection)
|
// GetSelection which only works for listboxes with single selection)
|
||||||
@@ -119,6 +123,9 @@ protected:
|
|||||||
|
|
||||||
virtual void DoSetFirstItem(int n) = 0;
|
virtual void DoSetFirstItem(int n) = 0;
|
||||||
|
|
||||||
|
virtual void DoSetSelection(int n, bool select) = 0;
|
||||||
|
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(wxListBoxBase)
|
DECLARE_NO_COPY_CLASS(wxListBoxBase)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -92,7 +92,6 @@ class WXDLLEXPORT wxComboBox : public wxControl, public wxComboBoxBase
|
|||||||
|
|
||||||
virtual int GetSelection() const ;
|
virtual int GetSelection() const ;
|
||||||
virtual void SetSelection(int n);
|
virtual void SetSelection(int n);
|
||||||
virtual void Select(int n) { SetSelection(n) ; }
|
|
||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
virtual wxString GetString(int n) const ;
|
virtual wxString GetString(int n) const ;
|
||||||
virtual wxString GetStringSelection() const ;
|
virtual wxString GetStringSelection() const ;
|
||||||
|
@@ -97,7 +97,7 @@ public:
|
|||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
|
|
||||||
virtual bool IsSelected(int n) 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 GetSelection() const;
|
||||||
virtual int GetSelections(wxArrayInt& aSelections) const;
|
virtual int GetSelections(wxArrayInt& aSelections) const;
|
||||||
|
|
||||||
|
@@ -87,7 +87,6 @@ class WXDLLEXPORT wxComboBox : public wxControl, public wxComboBoxBase
|
|||||||
|
|
||||||
virtual int GetSelection() const ;
|
virtual int GetSelection() const ;
|
||||||
virtual void SetSelection(int n);
|
virtual void SetSelection(int n);
|
||||||
virtual void Select(int n) { SetSelection(n) ; }
|
|
||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
virtual wxString GetString(int n) const ;
|
virtual wxString GetString(int n) const ;
|
||||||
virtual wxString GetStringSelection() const ;
|
virtual wxString GetStringSelection() const ;
|
||||||
|
@@ -97,7 +97,7 @@ public:
|
|||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
|
|
||||||
virtual bool IsSelected(int n) 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 GetSelection() const;
|
||||||
virtual int GetSelections(wxArrayInt& aSelections) const;
|
virtual int GetSelections(wxArrayInt& aSelections) const;
|
||||||
|
|
||||||
|
@@ -84,7 +84,7 @@ public:
|
|||||||
virtual wxString GetString(int n) const;
|
virtual wxString GetString(int n) const;
|
||||||
|
|
||||||
// implementation of wxListBoxbase
|
// 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 DoInsertItems(const wxArrayString& items, int pos);
|
||||||
virtual void DoSetItems(const wxArrayString& items, void **clientData);
|
virtual void DoSetItems(const wxArrayString& items, void **clientData);
|
||||||
virtual void DoSetFirstItem(int n);
|
virtual void DoSetFirstItem(int n);
|
||||||
|
@@ -91,7 +91,7 @@ public:
|
|||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
|
|
||||||
virtual bool IsSelected(int n) 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 GetSelection() const;
|
||||||
virtual int GetSelections(wxArrayInt& aSelections) const;
|
virtual int GetSelections(wxArrayInt& aSelections) const;
|
||||||
|
|
||||||
|
@@ -114,8 +114,8 @@ public:
|
|||||||
virtual int FindString(const wxString& rsString) const;
|
virtual int FindString(const wxString& rsString) const;
|
||||||
|
|
||||||
virtual bool IsSelected(int n) const;
|
virtual bool IsSelected(int n) const;
|
||||||
virtual void SetSelection( int n
|
virtual void DoSetSelection( int n
|
||||||
,bool bSelect = TRUE
|
,bool bSelect
|
||||||
);
|
);
|
||||||
virtual int GetSelection(void) const;
|
virtual int GetSelection(void) const;
|
||||||
virtual int GetSelections(wxArrayInt& raSelections) const;
|
virtual int GetSelections(wxArrayInt& raSelections) const;
|
||||||
|
@@ -91,7 +91,7 @@ public:
|
|||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
|
|
||||||
virtual bool IsSelected(int n) 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 GetSelection() const;
|
||||||
virtual int GetSelections(wxArrayInt& aSelections) const;
|
virtual int GetSelections(wxArrayInt& aSelections) const;
|
||||||
|
|
||||||
|
@@ -301,9 +301,8 @@ public:
|
|||||||
virtual wxString GetString(int n) const;
|
virtual wxString GetString(int n) const;
|
||||||
virtual void SetString(int n, const wxString& s);
|
virtual void SetString(int n, const wxString& s);
|
||||||
virtual int FindString(const wxString& s) const;
|
virtual int FindString(const wxString& s) const;
|
||||||
virtual void Select(int n);
|
virtual void SetSelection(int n);
|
||||||
virtual int GetSelection() const;
|
virtual int GetSelection() const;
|
||||||
void SetSelection(int n) { Select(n); }
|
|
||||||
|
|
||||||
wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST
|
wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST
|
||||||
|
|
||||||
|
@@ -112,7 +112,7 @@ public:
|
|||||||
|
|
||||||
virtual bool IsSelected(int n) const
|
virtual bool IsSelected(int n) const
|
||||||
{ return m_selections.Index(n) != wxNOT_FOUND; }
|
{ 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 GetSelection() const;
|
||||||
virtual int GetSelections(wxArrayInt& aSelections) const;
|
virtual int GetSelections(wxArrayInt& aSelections) const;
|
||||||
|
|
||||||
|
@@ -117,7 +117,7 @@ bool wxListBox::IsSelected(int n) const
|
|||||||
return [GetNSTableView() isRowSelected: n];
|
return [GetNSTableView() isRowSelected: n];
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::SetSelection(int n, bool select)
|
void wxListBox::DoSetSelection(int n, bool select)
|
||||||
{
|
{
|
||||||
if(select)
|
if(select)
|
||||||
[GetNSTableView() selectRow: n byExtendingSelection:NO];
|
[GetNSTableView() selectRow: n byExtendingSelection:NO];
|
||||||
@@ -197,7 +197,7 @@ int wxListBox::FindString(const wxString& s) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// selection
|
// 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 )
|
if ( sel == wxNOT_FOUND )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Select(sel);
|
SetSelection(sel);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -167,13 +167,4 @@ wxControlWithItems::~wxControlWithItems()
|
|||||||
// this destructor is required for Darwin
|
// 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
|
#endif // wxUSE_CONTROLS
|
||||||
|
@@ -1006,7 +1006,7 @@ bool wxListBox::IsSelected( int n ) const
|
|||||||
return (GTK_WIDGET(target->data)->state == GTK_STATE_SELECTED) ;
|
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") );
|
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) ;
|
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") );
|
wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
|
||||||
|
|
||||||
|
@@ -42,15 +42,15 @@ const short kTextColumnId = 1024 ;
|
|||||||
|
|
||||||
// new databrowserbased version
|
// new databrowserbased version
|
||||||
// because of the limited insert
|
// because of the limited insert
|
||||||
// functionality of DataBrowser,
|
// functionality of DataBrowser,
|
||||||
// we just introduce id s corresponding
|
// we just introduce id s corresponding
|
||||||
// to the line number
|
// to the line number
|
||||||
|
|
||||||
#if TARGET_API_MAC_OSX
|
#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)
|
DataBrowserItemNotification message, DataBrowserItemDataRef itemData)
|
||||||
#else
|
#else
|
||||||
static pascal void DataBrowserItemNotificationProc(ControlRef browser, DataBrowserItemID itemID,
|
static pascal void DataBrowserItemNotificationProc(ControlRef browser, DataBrowserItemID itemID,
|
||||||
DataBrowserItemNotification message)
|
DataBrowserItemNotification message)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
@@ -92,25 +92,25 @@ static pascal void DataBrowserItemNotificationProc(ControlRef browser, DataBrow
|
|||||||
event.SetExtraLong( list->HasMultipleSelection() ? message == kDataBrowserItemSelected : TRUE );
|
event.SetExtraLong( list->HasMultipleSelection() ? message == kDataBrowserItemSelected : TRUE );
|
||||||
wxPostEvent( list->GetEventHandler() , event ) ;
|
wxPostEvent( list->GetEventHandler() , event ) ;
|
||||||
// direct notification is not always having the listbox GetSelection() having in synch with 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,
|
static pascal OSStatus ListBoxGetSetItemData(ControlRef browser,
|
||||||
DataBrowserItemID itemID, DataBrowserPropertyID property,
|
DataBrowserItemID itemID, DataBrowserPropertyID property,
|
||||||
DataBrowserItemDataRef itemData, Boolean changeValue)
|
DataBrowserItemDataRef itemData, Boolean changeValue)
|
||||||
{
|
{
|
||||||
OSStatus err = errDataBrowserPropertyNotSupported;
|
OSStatus err = errDataBrowserPropertyNotSupported;
|
||||||
|
|
||||||
if ( ! changeValue )
|
if ( ! changeValue )
|
||||||
{
|
{
|
||||||
switch (property)
|
switch (property)
|
||||||
{
|
{
|
||||||
|
|
||||||
case kTextColumnId:
|
case kTextColumnId:
|
||||||
{
|
{
|
||||||
long ref = GetControlReference( browser ) ;
|
long ref = GetControlReference( browser ) ;
|
||||||
if ( ref )
|
if ( ref )
|
||||||
{
|
{
|
||||||
@@ -123,15 +123,15 @@ static pascal OSStatus ListBoxGetSetItemData(ControlRef browser,
|
|||||||
err = noErr ;
|
err = noErr ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,7 +171,7 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
|
|||||||
|
|
||||||
wxASSERT_MSG( !(style & wxLB_MULTIPLE) || !(style & wxLB_EXTENDED),
|
wxASSERT_MSG( !(style & wxLB_MULTIPLE) || !(style & wxLB_EXTENDED),
|
||||||
_T("only one of listbox selection modes can be specified") );
|
_T("only one of listbox selection modes can be specified") );
|
||||||
|
|
||||||
if ( !wxListBoxBase::Create(parent, id, pos, size, style & ~(wxHSCROLL|wxVSCROLL), validator, name) )
|
if ( !wxListBoxBase::Create(parent, id, pos, size, style & ~(wxHSCROLL|wxVSCROLL), validator, name) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -196,21 +196,21 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
|
|||||||
{
|
{
|
||||||
options += kDataBrowserSelectOnlyOne ;
|
options += kDataBrowserSelectOnlyOne ;
|
||||||
}
|
}
|
||||||
verify_noerr(m_peer->SetSelectionFlags( options ) );
|
verify_noerr(m_peer->SetSelectionFlags( options ) );
|
||||||
|
|
||||||
DataBrowserListViewColumnDesc columnDesc ;
|
DataBrowserListViewColumnDesc columnDesc ;
|
||||||
columnDesc.headerBtnDesc.titleOffset = 0;
|
columnDesc.headerBtnDesc.titleOffset = 0;
|
||||||
columnDesc.headerBtnDesc.version = kDataBrowserListViewLatestHeaderDesc;
|
columnDesc.headerBtnDesc.version = kDataBrowserListViewLatestHeaderDesc;
|
||||||
|
|
||||||
columnDesc.headerBtnDesc.btnFontStyle.flags =
|
columnDesc.headerBtnDesc.btnFontStyle.flags =
|
||||||
kControlUseFontMask | kControlUseJustMask;
|
kControlUseFontMask | kControlUseJustMask;
|
||||||
|
|
||||||
columnDesc.headerBtnDesc.btnContentInfo.contentType = kControlNoContent;
|
columnDesc.headerBtnDesc.btnContentInfo.contentType = kControlNoContent;
|
||||||
columnDesc.propertyDesc.propertyType = kDataBrowserTextType;
|
columnDesc.propertyDesc.propertyType = kDataBrowserTextType;
|
||||||
columnDesc.headerBtnDesc.btnFontStyle.just = teFlushDefault;
|
columnDesc.headerBtnDesc.btnFontStyle.just = teFlushDefault;
|
||||||
columnDesc.headerBtnDesc.minimumWidth = 0;
|
columnDesc.headerBtnDesc.minimumWidth = 0;
|
||||||
columnDesc.headerBtnDesc.maximumWidth = 10000;
|
columnDesc.headerBtnDesc.maximumWidth = 10000;
|
||||||
|
|
||||||
columnDesc.headerBtnDesc.btnFontStyle.font = kControlFontViewSystemFont;
|
columnDesc.headerBtnDesc.btnFontStyle.font = kControlFontViewSystemFont;
|
||||||
columnDesc.headerBtnDesc.btnFontStyle.style = normal;
|
columnDesc.headerBtnDesc.btnFontStyle.style = normal;
|
||||||
columnDesc.headerBtnDesc.titleString = NULL ; // CFSTR( "" );
|
columnDesc.headerBtnDesc.titleString = NULL ; // CFSTR( "" );
|
||||||
@@ -219,25 +219,25 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
|
|||||||
columnDesc.propertyDesc.propertyType = kDataBrowserTextType;
|
columnDesc.propertyDesc.propertyType = kDataBrowserTextType;
|
||||||
columnDesc.propertyDesc.propertyFlags =
|
columnDesc.propertyDesc.propertyFlags =
|
||||||
#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2
|
#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_2
|
||||||
kDataBrowserListViewTypeSelectColumn |
|
kDataBrowserListViewTypeSelectColumn |
|
||||||
#endif
|
#endif
|
||||||
kDataBrowserTableViewSelectionColumn ;
|
kDataBrowserTableViewSelectionColumn ;
|
||||||
|
|
||||||
|
|
||||||
verify_noerr(m_peer->AddListViewColumn( &columnDesc, kDataBrowserListViewAppendColumn) ) ;
|
verify_noerr(m_peer->AddListViewColumn( &columnDesc, kDataBrowserListViewAppendColumn) ) ;
|
||||||
verify_noerr(m_peer->AutoSizeListViewColumns() ) ;
|
verify_noerr(m_peer->AutoSizeListViewColumns() ) ;
|
||||||
verify_noerr(m_peer->SetHasScrollBars(false , true ) ) ;
|
verify_noerr(m_peer->SetHasScrollBars(false , true ) ) ;
|
||||||
verify_noerr(m_peer->SetTableViewHiliteStyle(kDataBrowserTableViewFillHilite ) ) ;
|
verify_noerr(m_peer->SetTableViewHiliteStyle(kDataBrowserTableViewFillHilite ) ) ;
|
||||||
verify_noerr(m_peer->SetListViewHeaderBtnHeight( 0 ) ) ;
|
verify_noerr(m_peer->SetListViewHeaderBtnHeight( 0 ) ) ;
|
||||||
DataBrowserCallbacks callbacks ;
|
DataBrowserCallbacks callbacks ;
|
||||||
|
|
||||||
callbacks.version = kDataBrowserLatestCallbacks;
|
callbacks.version = kDataBrowserLatestCallbacks;
|
||||||
|
|
||||||
InitDataBrowserCallbacks(&callbacks);
|
InitDataBrowserCallbacks(&callbacks);
|
||||||
|
|
||||||
callbacks.u.v1.itemDataCallback =
|
callbacks.u.v1.itemDataCallback =
|
||||||
NewDataBrowserItemDataUPP(ListBoxGetSetItemData);
|
NewDataBrowserItemDataUPP(ListBoxGetSetItemData);
|
||||||
|
|
||||||
callbacks.u.v1.itemNotificationCallback =
|
callbacks.u.v1.itemNotificationCallback =
|
||||||
#if TARGET_API_MAC_OSX
|
#if TARGET_API_MAC_OSX
|
||||||
(DataBrowserItemNotificationUPP) NewDataBrowserItemNotificationWithItemUPP(DataBrowserItemNotificationProc) ;
|
(DataBrowserItemNotificationUPP) NewDataBrowserItemNotificationWithItemUPP(DataBrowserItemNotificationProc) ;
|
||||||
@@ -259,7 +259,7 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
SetBestSize(size); // Needed because it is a wxControlWithItems
|
SetBestSize(size); // Needed because it is a wxControlWithItems
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -349,7 +349,7 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData)
|
|||||||
{
|
{
|
||||||
Clear() ;
|
Clear() ;
|
||||||
int n = choices.GetCount();
|
int n = choices.GetCount();
|
||||||
|
|
||||||
for( int i = 0 ; i < n ; ++i )
|
for( int i = 0 ; i < n ; ++i )
|
||||||
{
|
{
|
||||||
if ( clientData )
|
if ( clientData )
|
||||||
@@ -364,7 +364,7 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData)
|
|||||||
else
|
else
|
||||||
Append( choices[i] ) ;
|
Append( choices[i] ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_OWNER_DRAWN
|
#if wxUSE_OWNER_DRAWN
|
||||||
if ( m_windowStyle & wxLB_OWNERDRAW ) {
|
if ( m_windowStyle & wxLB_OWNERDRAW ) {
|
||||||
// first delete old items
|
// first delete old items
|
||||||
@@ -374,7 +374,7 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData)
|
|||||||
m_aItems[ui] = NULL;
|
m_aItems[ui] = NULL;
|
||||||
}
|
}
|
||||||
m_aItems.Empty();
|
m_aItems.Empty();
|
||||||
|
|
||||||
// then create new ones
|
// then create new ones
|
||||||
for ( ui = 0; ui < (size_t)m_noItems; ui++ ) {
|
for ( ui = 0; ui < (size_t)m_noItems; ui++ ) {
|
||||||
wxOwnerDrawn *pNewItem = CreateItem(ui);
|
wxOwnerDrawn *pNewItem = CreateItem(ui);
|
||||||
@@ -387,14 +387,14 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData)
|
|||||||
|
|
||||||
int wxListBox::FindString(const wxString& s) const
|
int wxListBox::FindString(const wxString& s) const
|
||||||
{
|
{
|
||||||
|
|
||||||
if ( s.Right(1) == wxT("*") )
|
if ( s.Right(1) == wxT("*") )
|
||||||
{
|
{
|
||||||
wxString search = s.Left( s.Length() - 1 ) ;
|
wxString search = s.Left( s.Length() - 1 ) ;
|
||||||
int len = search.Length() ;
|
int len = search.Length() ;
|
||||||
Str255 s1 , s2 ;
|
Str255 s1 , s2 ;
|
||||||
wxMacStringToPascal( search , s2 ) ;
|
wxMacStringToPascal( search , s2 ) ;
|
||||||
|
|
||||||
for ( int i = 0 ; i < m_noItems ; ++ i )
|
for ( int i = 0 ; i < m_noItems ; ++ i )
|
||||||
{
|
{
|
||||||
wxMacStringToPascal( m_stringArray[i].Left( len ) , s1 ) ;
|
wxMacStringToPascal( m_stringArray[i].Left( len ) , s1 ) ;
|
||||||
@@ -412,14 +412,14 @@ int wxListBox::FindString(const wxString& s) const
|
|||||||
return i ;
|
return i ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Str255 s1 , s2 ;
|
Str255 s1 , s2 ;
|
||||||
|
|
||||||
wxMacStringToPascal( s , s2 ) ;
|
wxMacStringToPascal( s , s2 ) ;
|
||||||
|
|
||||||
for ( int i = 0 ; i < m_noItems ; ++ i )
|
for ( int i = 0 ; i < m_noItems ; ++ i )
|
||||||
{
|
{
|
||||||
wxMacStringToPascal( m_stringArray[i] , s1 ) ;
|
wxMacStringToPascal( m_stringArray[i] , s1 ) ;
|
||||||
@@ -440,11 +440,11 @@ void wxListBox::Clear()
|
|||||||
MacClear() ;
|
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) ,
|
wxCHECK_RET( N == wxNOT_FOUND || (N >= 0 && N < m_noItems) ,
|
||||||
wxT("invalid index in wxListBox::SetSelection") );
|
wxT("invalid index in wxListBox::SetSelection") );
|
||||||
|
|
||||||
if ( N == wxNOT_FOUND )
|
if ( N == wxNOT_FOUND )
|
||||||
MacDeselectAll() ;
|
MacDeselectAll() ;
|
||||||
else
|
else
|
||||||
@@ -455,7 +455,7 @@ bool wxListBox::IsSelected(int N) const
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( N >= 0 && N < m_noItems, FALSE,
|
wxCHECK_MSG( N >= 0 && N < m_noItems, FALSE,
|
||||||
wxT("invalid index in wxListBox::Selected") );
|
wxT("invalid index in wxListBox::Selected") );
|
||||||
|
|
||||||
return MacIsSelected( N ) ;
|
return MacIsSelected( N ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -463,7 +463,7 @@ void *wxListBox::DoGetItemClientData(int N) const
|
|||||||
{
|
{
|
||||||
wxCHECK_MSG( N >= 0 && N < m_noItems, NULL,
|
wxCHECK_MSG( N >= 0 && N < m_noItems, NULL,
|
||||||
wxT("invalid index in wxListBox::GetClientData"));
|
wxT("invalid index in wxListBox::GetClientData"));
|
||||||
|
|
||||||
return (void *)m_dataArray[N];
|
return (void *)m_dataArray[N];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -476,7 +476,7 @@ void wxListBox::DoSetItemClientData(int N, void *Client_data)
|
|||||||
{
|
{
|
||||||
wxCHECK_RET( N >= 0 && N < m_noItems,
|
wxCHECK_RET( N >= 0 && N < m_noItems,
|
||||||
wxT("invalid index in wxListBox::SetClientData") );
|
wxT("invalid index in wxListBox::SetClientData") );
|
||||||
|
|
||||||
#if wxUSE_OWNER_DRAWN
|
#if wxUSE_OWNER_DRAWN
|
||||||
if ( m_windowStyle & wxLB_OWNERDRAW )
|
if ( m_windowStyle & wxLB_OWNERDRAW )
|
||||||
{
|
{
|
||||||
@@ -486,7 +486,7 @@ void wxListBox::DoSetItemClientData(int N, void *Client_data)
|
|||||||
}
|
}
|
||||||
#endif // wxUSE_OWNER_DRAWN
|
#endif // wxUSE_OWNER_DRAWN
|
||||||
wxASSERT_MSG( m_dataArray.GetCount() >= (size_t) N , wxT("invalid client_data array") ) ;
|
wxASSERT_MSG( m_dataArray.GetCount() >= (size_t) N , wxT("invalid client_data array") ) ;
|
||||||
|
|
||||||
if ( m_dataArray.GetCount() > (size_t) N )
|
if ( m_dataArray.GetCount() > (size_t) N )
|
||||||
{
|
{
|
||||||
m_dataArray[N] = (char*) Client_data ;
|
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,
|
wxCHECK_RET( pos >= 0 && pos <= m_noItems,
|
||||||
wxT("invalid index in wxListBox::InsertItems") );
|
wxT("invalid index in wxListBox::InsertItems") );
|
||||||
|
|
||||||
InvalidateBestSize();
|
InvalidateBestSize();
|
||||||
|
|
||||||
int nItems = items.GetCount();
|
int nItems = items.GetCount();
|
||||||
|
|
||||||
for ( int i = 0 ; i < nItems ; i++ )
|
for ( int i = 0 ; i < nItems ; i++ )
|
||||||
{
|
{
|
||||||
m_stringArray.Insert( items[i] , pos + i ) ;
|
m_stringArray.Insert( items[i] , pos + i ) ;
|
||||||
@@ -551,8 +551,8 @@ wxSize wxListBox::DoGetBestSize() const
|
|||||||
int wLine;
|
int wLine;
|
||||||
|
|
||||||
{
|
{
|
||||||
wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetTopLevelWindowRef() ) ) ;
|
wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetTopLevelWindowRef() ) ) ;
|
||||||
|
|
||||||
if ( m_font.Ok() )
|
if ( m_font.Ok() )
|
||||||
{
|
{
|
||||||
::TextFont( m_font.MacGetFontNum() ) ;
|
::TextFont( m_font.MacGetFontNum() ) ;
|
||||||
@@ -565,7 +565,7 @@ wxSize wxListBox::DoGetBestSize() const
|
|||||||
::TextSize( 9 );
|
::TextSize( 9 );
|
||||||
::TextFace( 0 ) ;
|
::TextFace( 0 ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find the widest line
|
// Find the widest line
|
||||||
for(int i = 0; i < GetCount(); i++) {
|
for(int i = 0; i < GetCount(); i++) {
|
||||||
wxString str(GetString(i));
|
wxString str(GetString(i));
|
||||||
@@ -584,15 +584,15 @@ wxSize wxListBox::DoGetBestSize() const
|
|||||||
#endif
|
#endif
|
||||||
lbWidth = wxMax(lbWidth, wLine);
|
lbWidth = wxMax(lbWidth, wLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add room for the scrollbar
|
// Add room for the scrollbar
|
||||||
lbWidth += wxSystemSettings::GetMetric(wxSYS_VSCROLL_X);
|
lbWidth += wxSystemSettings::GetMetric(wxSYS_VSCROLL_X);
|
||||||
|
|
||||||
// And just a bit more
|
// And just a bit more
|
||||||
int cy = 12 ;
|
int cy = 12 ;
|
||||||
int cx = ::TextWidth( "X" , 0 , 1 ) ;
|
int cx = ::TextWidth( "X" , 0 , 1 ) ;
|
||||||
lbWidth += cx ;
|
lbWidth += cx ;
|
||||||
|
|
||||||
// don't make the listbox too tall (limit height to around 10 items) but don't
|
// don't make the listbox too tall (limit height to around 10 items) but don't
|
||||||
// make it too small neither
|
// make it too small neither
|
||||||
lbHeight = (cy+4) * wxMin(wxMax(GetCount(), 3), 10);
|
lbHeight = (cy+4) * wxMin(wxMax(GetCount(), 3), 10);
|
||||||
@@ -666,7 +666,7 @@ void wxListBox::MacDelete( int n )
|
|||||||
else if ( current > n )
|
else if ( current > n )
|
||||||
{
|
{
|
||||||
// something behind the deleted item was selected -> move up
|
// something behind the deleted item was selected -> move up
|
||||||
MacSetSelection( current - 1 , true ) ;
|
MacSetSelection( current - 1 , true ) ;
|
||||||
MacSetSelection( current , false ) ;
|
MacSetSelection( current , false ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -687,7 +687,7 @@ void wxListBox::MacInsert( int n , const wxString& text)
|
|||||||
int current = selectionBefore[i] ;
|
int current = selectionBefore[i] ;
|
||||||
if ( current >= n )
|
if ( current >= n )
|
||||||
{
|
{
|
||||||
MacSetSelection( current + 1 , true ) ;
|
MacSetSelection( current + 1 , true ) ;
|
||||||
MacSetSelection( current , false ) ;
|
MacSetSelection( current , false ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -708,7 +708,7 @@ void wxListBox::MacClear()
|
|||||||
verify_noerr( m_peer->RemoveItems( kDataBrowserNoItem , 0 , NULL , kDataBrowserItemNoProperty ) ) ;
|
verify_noerr( m_peer->RemoveItems( kDataBrowserNoItem , 0 , NULL , kDataBrowserItemNoProperty ) ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::MacDeselectAll()
|
void wxListBox::MacDeselectAll()
|
||||||
{
|
{
|
||||||
bool former = MacSuppressSelection( true ) ;
|
bool former = MacSuppressSelection( true ) ;
|
||||||
verify_noerr(m_peer->SetSelectedItems( 0 , NULL , kDataBrowserItemsRemove ) ) ;
|
verify_noerr(m_peer->SetSelectedItems( 0 , NULL , kDataBrowserItemsRemove ) ) ;
|
||||||
@@ -731,7 +731,7 @@ void wxListBox::MacSetSelection( int n , bool select )
|
|||||||
MacSuppressSelection( former ) ;
|
MacSuppressSelection( former ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxListBox::MacSuppressSelection( bool suppress )
|
bool wxListBox::MacSuppressSelection( bool suppress )
|
||||||
{
|
{
|
||||||
bool former = m_suppressSelection ;
|
bool former = m_suppressSelection ;
|
||||||
m_suppressSelection = suppress ;
|
m_suppressSelection = suppress ;
|
||||||
@@ -758,9 +758,9 @@ int wxListBox::MacGetSelection() const
|
|||||||
int wxListBox::MacGetSelections( wxArrayInt& aSelections ) const
|
int wxListBox::MacGetSelections( wxArrayInt& aSelections ) const
|
||||||
{
|
{
|
||||||
int no_sel = 0 ;
|
int no_sel = 0 ;
|
||||||
|
|
||||||
aSelections.Empty();
|
aSelections.Empty();
|
||||||
|
|
||||||
UInt32 first , last ;
|
UInt32 first , last ;
|
||||||
m_peer->GetSelectionAnchor( &first , &last ) ;
|
m_peer->GetSelectionAnchor( &first , &last ) ;
|
||||||
if ( first != kDataBrowserNoItem )
|
if ( first != kDataBrowserNoItem )
|
||||||
@@ -797,13 +797,13 @@ void wxListBox::OnChar(wxKeyEvent& event)
|
|||||||
// todo trigger proper events here
|
// todo trigger proper events here
|
||||||
event.Skip() ;
|
event.Skip() ;
|
||||||
return ;
|
return ;
|
||||||
|
|
||||||
if ( event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER)
|
if ( event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER)
|
||||||
{
|
{
|
||||||
wxWindow* parent = GetParent() ;
|
wxWindow* parent = GetParent() ;
|
||||||
while( parent && !parent->IsTopLevel() && parent->GetDefaultItem() == NULL )
|
while( parent && !parent->IsTopLevel() && parent->GetDefaultItem() == NULL )
|
||||||
parent = parent->GetParent() ;
|
parent = parent->GetParent() ;
|
||||||
|
|
||||||
if ( parent && parent->GetDefaultItem() )
|
if ( parent && parent->GetDefaultItem() )
|
||||||
{
|
{
|
||||||
wxButton *def = wxDynamicCast(parent->GetDefaultItem(),
|
wxButton *def = wxDynamicCast(parent->GetDefaultItem(),
|
||||||
@@ -845,10 +845,10 @@ void wxListBox::OnChar(wxKeyEvent& event)
|
|||||||
{
|
{
|
||||||
// perform the default key handling first
|
// perform the default key handling first
|
||||||
wxControl::OnKeyDown( event ) ;
|
wxControl::OnKeyDown( event ) ;
|
||||||
|
|
||||||
wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, m_windowId);
|
wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, m_windowId);
|
||||||
event.SetEventObject( this );
|
event.SetEventObject( this );
|
||||||
|
|
||||||
wxArrayInt aSelections;
|
wxArrayInt aSelections;
|
||||||
int n, count = GetSelections(aSelections);
|
int n, count = GetSelections(aSelections);
|
||||||
if ( count > 0 )
|
if ( count > 0 )
|
||||||
@@ -864,9 +864,9 @@ void wxListBox::OnChar(wxKeyEvent& event)
|
|||||||
{
|
{
|
||||||
n = -1;
|
n = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
event.SetInt(n);
|
event.SetInt(n);
|
||||||
|
|
||||||
GetEventHandler()->ProcessEvent(event);
|
GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -885,20 +885,20 @@ void wxListBox::OnChar(wxKeyEvent& event)
|
|||||||
SetSelection(line) ;
|
SetSelection(line) ;
|
||||||
wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, m_windowId);
|
wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, m_windowId);
|
||||||
event.SetEventObject( this );
|
event.SetEventObject( this );
|
||||||
|
|
||||||
if ( HasClientObjectData() )
|
if ( HasClientObjectData() )
|
||||||
event.SetClientObject( GetClientObject( line ) );
|
event.SetClientObject( GetClientObject( line ) );
|
||||||
else if ( HasClientUntypedData() )
|
else if ( HasClientUntypedData() )
|
||||||
event.SetClientData( GetClientData(line) );
|
event.SetClientData( GetClientData(line) );
|
||||||
event.SetString( GetString(line) );
|
event.SetString( GetString(line) );
|
||||||
|
|
||||||
event.SetInt(line);
|
event.SetInt(line);
|
||||||
|
|
||||||
GetEventHandler()->ProcessEvent(event);
|
GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif // !TARGET_API_MAC_OSX
|
||||||
|
|
||||||
|
@@ -515,7 +515,7 @@ void wxListBox::Clear()
|
|||||||
MacClear() ;
|
MacClear() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::SetSelection(int N, bool select)
|
void wxListBox::DoSetSelection(int N, bool select)
|
||||||
{
|
{
|
||||||
wxCHECK_RET( N >= 0 && N < m_noItems,
|
wxCHECK_RET( N >= 0 && N < m_noItems,
|
||||||
wxT("invalid index in wxListBox::SetSelection") );
|
wxT("invalid index in wxListBox::SetSelection") );
|
||||||
|
@@ -337,7 +337,7 @@ void wxListBox::Clear()
|
|||||||
m_noItems = 0;
|
m_noItems = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxListBox::SetSelection(int N, bool select)
|
void wxListBox::DoSetSelection(int N, bool select)
|
||||||
{
|
{
|
||||||
m_inSetValue = true;
|
m_inSetValue = true;
|
||||||
if (select)
|
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 ||
|
wxCHECK_RET( N == wxNOT_FOUND ||
|
||||||
(N >= 0 && N < m_noItems),
|
(N >= 0 && N < m_noItems),
|
||||||
|
@@ -415,7 +415,7 @@ void wxListBox::Clear()
|
|||||||
m_nNumItems = 0;
|
m_nNumItems = 0;
|
||||||
} // end of wxListBox::Clear
|
} // end of wxListBox::Clear
|
||||||
|
|
||||||
void wxListBox::SetSelection(
|
void wxListBox::DoSetSelection(
|
||||||
int N
|
int N
|
||||||
, bool bSelect
|
, 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);
|
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") );
|
wxCHECK_RET( (n >= 0) && (n < GetCount()), _T("invalid index in wxComboBox::Select") );
|
||||||
|
|
||||||
|
@@ -421,7 +421,7 @@ wxClientData* wxListBox::DoGetItemClientObject(int n) const
|
|||||||
// selection
|
// selection
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
void wxListBox::SetSelection(int n, bool select)
|
void wxListBox::DoSetSelection(int n, bool select)
|
||||||
{
|
{
|
||||||
if ( select )
|
if ( select )
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user