X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/803e2857b35d86afe9dfa6ceec56ed88b903aed5..ea412ac4eb9f19e3c28dfa32aa9099a81ac7c74c:/src/osx/cocoa/combobox.mm?ds=sidebyside diff --git a/src/osx/cocoa/combobox.mm b/src/osx/cocoa/combobox.mm index f183780135..a6c9e9b7c4 100644 --- a/src/osx/cocoa/combobox.mm +++ b/src/osx/cocoa/combobox.mm @@ -46,7 +46,7 @@ { wxUnusedVar(aNotification); wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( self ); - if ( impl ) + if ( impl && impl->ShouldSendEvents() ) { wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer(); if ( wxpeer ) { @@ -62,7 +62,7 @@ { wxUnusedVar(notification); wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( self ); - if ( impl ) + if ( impl && impl->ShouldSendEvents()) { wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer(); if ( wxpeer ) { @@ -95,7 +95,9 @@ int wxNSComboBoxControl::GetSelectedItem() const void wxNSComboBoxControl::SetSelectedItem(int item) { wxASSERT_MSG(item >= 0 && item < [m_comboBox numberOfItems], "Inavlid item index."); + SendEvents(false); [m_comboBox selectItemAtIndex: item]; + SendEvents(true); } int wxNSComboBoxControl::GetNumberOfItems() const @@ -110,12 +112,16 @@ void wxNSComboBoxControl::InsertItem(int pos, const wxString& item) void wxNSComboBoxControl::RemoveItem(int pos) { + SendEvents(false); [m_comboBox removeItemAtIndex:pos]; + SendEvents(true); } void wxNSComboBoxControl::Clear() { + SendEvents(false); [m_comboBox removeAllItems]; + SendEvents(true); } wxString wxNSComboBoxControl::GetStringAtIndex(int pos) const @@ -137,11 +143,13 @@ wxWidgetImplType* wxWidgetImpl::CreateComboBox( wxWindowMac* wxpeer, wxMenu* menu, const wxPoint& pos, const wxSize& size, - long WXUNUSED(style), + long style, long WXUNUSED(extraStyle)) { NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ; wxNSComboBox* v = [[wxNSComboBox alloc] initWithFrame:r]; + if (style & wxCB_READONLY) + [v setEditable:NO]; wxNSComboBoxControl* c = new wxNSComboBoxControl( wxpeer, v ); return c; }