]> git.saurik.com Git - wxWidgets.git/commitdiff
Implement wxComboBox::Popup() and Dismiss() for wxOSX/Cocoa.
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 7 Dec 2011 23:41:06 +0000 (23:41 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 7 Dec 2011 23:41:06 +0000 (23:41 +0000)
Unlike in the other ports, these methods currently don't generate any events
under OS X because these events are never generated at all there.

Closes #12642.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
include/wx/osx/cocoa/private/textimpl.h
include/wx/osx/combobox.h
include/wx/osx/core/private.h
interface/wx/combobox.h
src/osx/cocoa/combobox.mm
src/osx/combobox_osx.cpp

index 22627d5f5c781526323eedfec2567d29f0dcb2bf..0d599a4541808632d7160708047e6280063d88cd 100644 (file)
@@ -509,6 +509,7 @@ OSX:
   for OS X 10.6.
 - Added wxApp::MacOpenFiles and deprecated wxApp::MacOpenFile.
 - Implement wxEVT_CHAR_HOOK event generation in wxOSX/Cocoa.
+- Implemented wxComboBox::Popup() and Dismiss() in wxOSX/Cocoa (joostn).
 
 GTK:
 
index f50d555ca20e5cf60e837904eb6f808d881b4e65..9eb2c7328e6e4ec867ace0ce8250f1fce4addfde 100644 (file)
@@ -105,6 +105,9 @@ public :
     virtual wxString GetStringAtIndex(int pos) const;
 
     virtual int FindString(const wxString& text) const;
+    virtual void Popup();
+    virtual void Dismiss();
+
 private:
     NSComboBox* m_comboBox;
 };
index e814474732e0e32c07ebe4ae88675b7d7d0e60f5..5d8e2f3b11e95c9e36539c43ba476febb5b90ff4 100644 (file)
@@ -139,6 +139,8 @@ class WXDLLIMPEXP_CORE wxComboBox :
     virtual wxTextWidgetImpl* GetTextPeer() const;
 #endif // wxOSX_USE_CARBON
 
+    virtual void Popup();
+    virtual void Dismiss();
 
 
     // osx specific event handling common for all osx-ports
index 414f5e1cd63d2cc64dab8a31884bd6bf8d180109..95fee216ea452459249467f70678758221efeb8d 100644 (file)
@@ -690,6 +690,8 @@ public :
     virtual void RemoveItem(int WXUNUSED(pos)) {}
 
     virtual void Clear() {}
+    virtual void Popup() {}
+    virtual void Dismiss() {}
 
     virtual wxString GetStringAtIndex(int WXUNUSED(pos)) const { return wxEmptyString; }
 
index 738ca21a9d05cd5d82b1ebf5d28fba29f4080ab6..71a9984d49cb483b7403e3c418e9971ce924d513 100644 (file)
@@ -285,10 +285,11 @@ public:
     /**
         Shows the list box portion of the combo box.
 
-        Currently only implemented in wxMSW and wxGTK.
+        Currently this method is implemented in wxMSW, wxGTK and wxOSX/Cocoa.
 
         Notice that calling this function will generate a
-        @c wxEVT_COMMAND_COMBOBOX_DROPDOWN event.
+        @c wxEVT_COMMAND_COMBOBOX_DROPDOWN event except under wxOSX where
+        generation of this event is not supported at all.
 
         @since 2.9.1
     */
@@ -297,15 +298,16 @@ public:
     /**
         Hides the list box portion of the combo box.
 
-        Currently only implemented in wxMSW and wxGTK.
+        Currently this method is implemented in wxMSW, wxGTK and wxOSX/Cocoa.
 
         Notice that calling this function will generate a
-        @c wxEVT_COMMAND_COMBOBOX_CLOSEUP event.
+        @c wxEVT_COMMAND_COMBOBOX_CLOSEUP event except under wxOSX where
+        generation of this event is not supported at all.
 
         @since 2.9.1
     */
     virtual void Dismiss();
-    
+
     virtual int GetSelection() const;
     virtual void GetSelection(long *from, long *to) const;
     virtual void SetSelection(int n);
index 2745d17dece441b39754d5568295b1a68fbdb8f2..69342bf7d1ce6657fa89fbbb1e3a4af7aebe9eee 100644 (file)
@@ -165,6 +165,18 @@ int wxNSComboBoxControl::FindString(const wxString& text) const
     return result;
 }
 
+void wxNSComboBoxControl::Popup()
+{
+    id ax = NSAccessibilityUnignoredDescendant(m_comboBox);
+    [ax accessibilitySetValue: [NSNumber numberWithBool: YES] forAttribute: NSAccessibilityExpandedAttribute];
+}
+
+void wxNSComboBoxControl::Dismiss()
+{
+    id ax = NSAccessibilityUnignoredDescendant(m_comboBox);
+    [ax accessibilitySetValue: [NSNumber numberWithBool: NO] forAttribute: NSAccessibilityExpandedAttribute];
+}
+
 wxWidgetImplType* wxWidgetImpl::CreateComboBox( wxComboBox* wxpeer, 
                                     wxWindowMac* WXUNUSED(parent), 
                                     wxWindowID WXUNUSED(id), 
index fe9f812f757eecee19a82e0f16f65d1af05669de..3dc89288eef738433a799689245c74ef3e0cb240 100644 (file)
@@ -215,4 +215,14 @@ wxComboWidgetImpl* wxComboBox::GetComboPeer() const
     return dynamic_cast<wxComboWidgetImpl*> (GetPeer());
 }
 
+void wxComboBox::Popup()
+{
+    GetComboPeer()->Popup();
+}
+
+void wxComboBox::Dismiss()
+{
+    GetComboPeer()->Dismiss();
+}
+
 #endif // wxUSE_COMBOBOX && wxOSX_USE_COCOA