]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/taskbar.cpp
guarding open combo box against AppDefined NSEvents issued by wxEventLoop::WakeUp...
[wxWidgets.git] / src / osx / carbon / taskbar.cpp
index b2f00b26adb37f0bde9bb6a71add91f01c3cc07f..01ba0fb3c8329172303a64324c45f113b5980aaa 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        src/mac/carbon/taskbar.cpp
+// Name:        src/osx/carbon/taskbar.cpp
 // Purpose:     wxTaskBarIcon
 // Author:      Ryan Norton
 // Modified by:
@@ -41,7 +41,7 @@ public:
     wxTaskBarIcon *m_parent;
     class wxTaskBarIconWindow *m_menuEventWindow;
 
-    DECLARE_NO_COPY_CLASS(wxTaskBarIconImpl)
+    wxDECLARE_NO_COPY_CLASS(wxTaskBarIconImpl);
 };
 
 //-----------------------------------------------------------------------------
@@ -60,7 +60,7 @@ public:
         : wxTopLevelWindow(NULL, wxID_ANY, wxEmptyString), m_impl(impl)
     {
         Connect(
-            -1, wxEVT_COMMAND_MENU_SELECTED,
+            -1, wxEVT_MENU,
             wxCommandEventHandler(wxTaskBarIconWindow::OnMenuEvent) );
     }
 
@@ -141,7 +141,7 @@ wxDockEventHandler(EventHandlerCallRef WXUNUSED(inHandlerCallRef),
     wxDockTaskBarIcon* pTB = (wxDockTaskBarIcon*) pData;
     const UInt32 eventClass = GetEventClass(inEvent);
     const UInt32 eventKind = GetEventKind(inEvent);
-    
+
     OSStatus err = eventNotHandledErr;
 
     // Handle wxTaskBar menu events (note that this is a global event handler
@@ -186,9 +186,15 @@ wxDockEventHandler(EventHandlerCallRef WXUNUSED(inHandlerCallRef),
                     if (item && itemMenu )
                     {
                         if ( eventKind == kEventCommandProcess )
-                            err = itemMenu->MacHandleCommandProcess( item, id );
+                        {
+                            if ( itemMenu->HandleCommandProcess( item ) )
+                                err = noErr;
+                        }
                         else if ( eventKind == kEventCommandUpdateStatus )
-                            err = itemMenu->MacHandleCommandUpdateStatus( item, id );
+                        {
+                            if ( itemMenu->HandleCommandUpdateStatus( item ) )
+                                err = noErr;
+                        }
                     }
                 }
             }
@@ -235,7 +241,7 @@ wxDockEventHandler(EventHandlerCallRef WXUNUSED(inHandlerCallRef),
 // Performs a top-to-bottom copy of the input menu and all of its
 // submenus.
 //
-// This is mostly needed for 2.4 compatability. However wxPython and others
+// This is mostly needed for 2.4 compatibility. However wxPython and others
 // still use this way of setting the taskbarmenu.
 //-----------------------------------------------------------------------------
 wxMenu * wxDeepCopyMenu( wxMenu *menu )
@@ -341,8 +347,7 @@ wxMenu * wxDockTaskBarIcon::DoCreatePopupMenu()
 
     if (theNewMenu)
     {
-        if (m_pMenu)
-            delete m_pMenu;
+        delete m_pMenu;
         m_pMenu = theNewMenu;
         m_pMenu->SetInvokingWindow(m_menuEventWindow);
     }
@@ -376,7 +381,7 @@ bool wxDockTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& WXUNUSED(too
     // convert the wxIcon into a wxBitmap so we can perform some
     // wxBitmap operations with it
     wxBitmap bmp( icon );
-    wxASSERT( bmp.Ok() );
+    wxASSERT( bmp.IsOk() );
 
     // get the CGImageRef for the wxBitmap:
     // OSX builds only, but then the dock only exists in OSX
@@ -404,11 +409,7 @@ bool wxDockTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& WXUNUSED(too
 //-----------------------------------------------------------------------------
 bool wxDockTaskBarIcon::RemoveIcon()
 {
-    if (m_pMenu)
-    {
-        delete m_pMenu;
-        m_pMenu = NULL;
-    }
+    wxDELETE(m_pMenu);
 
     // restore old icon to the dock
     OSStatus err = RestoreApplicationDockTileImage();
@@ -436,8 +437,7 @@ bool wxDockTaskBarIcon::PopupMenu(wxMenu *menu)
 {
     wxASSERT(menu != NULL);
 
-    if (m_pMenu)
-        delete m_pMenu;
+    delete m_pMenu;
 
     // start copy of menu
     m_pMenu = wxDeepCopyMenu(menu);
@@ -463,14 +463,14 @@ IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIcon, wxEvtHandler)
 //
 // Note that we only support DOCK currently as others require cocoa and
 // also some require hacks and other such things. (MenuExtras are
-// actually seperate programs that also require a special undocumented id
+// actually separate programs that also require a special undocumented id
 // hack and other such fun stuff).
 //-----------------------------------------------------------------------------
-wxTaskBarIcon::wxTaskBarIcon(wxTaskBarIconType nType)
+wxTaskBarIcon::wxTaskBarIcon(wxTaskBarIconType WXUNUSED_UNLESS_DEBUG(nType))
 {
     wxASSERT_MSG(
-        nType == DOCK,
-        wxT("Only the DOCK implementation of wxTaskBarIcon on Mac-Carbon is currently supported!") );
+        nType == wxTBI_DOCK,
+        wxT("Only the wxTBI_DOCK implementation of wxTaskBarIcon on Mac-Carbon is currently supported!") );
 
     m_impl = new wxDockTaskBarIcon(this);
 }