Implement support for wxCB_SORT in wxOSX wxComboBox
Insert the item at the correct location when this style is specified. Closes https://github.com/wxWidgets/wxWidgets/pull/1438
This commit is contained in:
committed by
Vadim Zeitlin
parent
fb2c17c193
commit
ab7ba98dbc
@@ -38,8 +38,7 @@
|
|||||||
allows the user to choose from the list of options but doesn't allow
|
allows the user to choose from the list of options but doesn't allow
|
||||||
to enter a value not present in the list.
|
to enter a value not present in the list.
|
||||||
@style{wxCB_SORT}
|
@style{wxCB_SORT}
|
||||||
Sorts the entries in the list alphabetically. Notice that this style
|
Sorts the entries in the list alphabetically.
|
||||||
is not currently implemented in wxOSX.
|
|
||||||
@style{wxTE_PROCESS_ENTER}
|
@style{wxTE_PROCESS_ENTER}
|
||||||
The control will generate the event @c wxEVT_TEXT_ENTER that can be
|
The control will generate the event @c wxEVT_TEXT_ENTER that can be
|
||||||
handled by the program. Otherwise, i.e. either if this style not
|
handled by the program. Otherwise, i.e. either if this style not
|
||||||
|
@@ -264,7 +264,23 @@ int wxNSComboBoxControl::GetNumberOfItems() const
|
|||||||
|
|
||||||
void wxNSComboBoxControl::InsertItem(int pos, const wxString& item)
|
void wxNSComboBoxControl::InsertItem(int pos, const wxString& item)
|
||||||
{
|
{
|
||||||
[m_comboBox insertItemWithObjectValue:wxCFStringRef( item , m_wxPeer->GetFont().GetEncoding() ).AsNSString() atIndex:pos];
|
wxCFStringRef itemLabel( item, m_wxPeer->GetFont().GetEncoding() );
|
||||||
|
NSString* const cocoaStr = itemLabel.AsNSString();
|
||||||
|
|
||||||
|
if ( m_wxPeer->HasFlag(wxCB_SORT) )
|
||||||
|
{
|
||||||
|
NSArray* const objectValues = m_comboBox.objectValues;
|
||||||
|
|
||||||
|
pos = [objectValues indexOfObject: cocoaStr
|
||||||
|
inSortedRange: NSMakeRange(0, objectValues.count)
|
||||||
|
options: NSBinarySearchingInsertionIndex
|
||||||
|
usingComparator: ^(id obj1, id obj2)
|
||||||
|
{
|
||||||
|
return [obj1 caseInsensitiveCompare: obj2];
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
|
[m_comboBox insertItemWithObjectValue:cocoaStr atIndex:pos];
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxNSComboBoxControl::RemoveItem(int pos)
|
void wxNSComboBoxControl::RemoveItem(int pos)
|
||||||
|
Reference in New Issue
Block a user