From 70175534bf8e76514ebaf878b327c2fee3f8525f Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 20 Apr 2012 05:41:54 +0000 Subject: [PATCH] Make wxTaskBarIcon's ctor have the same API on all platforms even though setting the icon type can only be done on wxOSX-cocoa git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/taskbar.h | 2 +- include/wx/msw/taskbar.h | 2 +- include/wx/osx/taskbarosx.h | 16 +--------------- include/wx/taskbar.h | 15 +++++++++++++++ interface/wx/taskbar.h | 17 +++++++++++++++-- src/gtk/taskbar.cpp | 2 +- src/msw/taskbar.cpp | 2 +- src/osx/carbon/taskbar.cpp | 4 ++-- src/osx/cocoa/taskbar.mm | 4 ++-- 9 files changed, 39 insertions(+), 25 deletions(-) diff --git a/include/wx/gtk/taskbar.h b/include/wx/gtk/taskbar.h index b46758a7e6..5fc9f9df85 100644 --- a/include/wx/gtk/taskbar.h +++ b/include/wx/gtk/taskbar.h @@ -14,7 +14,7 @@ class WXDLLIMPEXP_ADV wxTaskBarIcon: public wxTaskBarIconBase { public: - wxTaskBarIcon(); + wxTaskBarIcon(wxTaskBarIconType iconType = wxTBI_DEFAULT_TYPE); ~wxTaskBarIcon(); virtual bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxString()); virtual bool RemoveIcon(); diff --git a/include/wx/msw/taskbar.h b/include/wx/msw/taskbar.h index 629b540763..865d856279 100644 --- a/include/wx/msw/taskbar.h +++ b/include/wx/msw/taskbar.h @@ -21,7 +21,7 @@ class WXDLLIMPEXP_FWD_ADV wxTaskBarIconWindow; class WXDLLIMPEXP_ADV wxTaskBarIcon : public wxTaskBarIconBase { public: - wxTaskBarIcon(); + wxTaskBarIcon(wxTaskBarIconType iconType = wxTBI_DEFAULT_TYPE); virtual ~wxTaskBarIcon(); // Accessors diff --git a/include/wx/osx/taskbarosx.h b/include/wx/osx/taskbarosx.h index bd6a148cd2..9805ccb2b4 100644 --- a/include/wx/osx/taskbarosx.h +++ b/include/wx/osx/taskbarosx.h @@ -19,21 +19,7 @@ class WXDLLIMPEXP_ADV wxTaskBarIcon : public wxTaskBarIconBase { DECLARE_DYNAMIC_CLASS_NO_COPY(wxTaskBarIcon) public: - // type of taskbar item to create (currently only DOCK is implemented) - enum wxTaskBarIconType - { - DOCK -#if wxOSX_USE_COCOA - , CUSTOM_STATUSITEM -#endif -#if wxOSX_USE_COCOA - , DEFAULT_TYPE = CUSTOM_STATUSITEM -#else - , DEFAULT_TYPE = DOCK -#endif - }; - - wxTaskBarIcon(wxTaskBarIconType iconType = DEFAULT_TYPE); + wxTaskBarIcon(wxTaskBarIconType iconType = wxTBI_DEFAULT_TYPE); virtual ~wxTaskBarIcon(); // returns true if the taskbaricon is in the global menubar diff --git a/include/wx/taskbar.h b/include/wx/taskbar.h index 326217eb8d..8f6b9d9e3c 100644 --- a/include/wx/taskbar.h +++ b/include/wx/taskbar.h @@ -20,6 +20,21 @@ class WXDLLIMPEXP_FWD_ADV wxTaskBarIconEvent; +// ---------------------------------------------------------------------------- + +// type of taskbar item to create. Only applicable in wxOSX_COCOA +enum wxTaskBarIconType +{ + wxTBI_DOCK, + wxTBI_CUSTOM_STATUSITEM, +#if wxOSX_USE_COCOA + wxTBI_DEFAULT_TYPE = wxTBI_CUSTOM_STATUSITEM +#else + wxTBI_DEFAULT_TYPE = wxTBI_DOCK +#endif +}; + + // ---------------------------------------------------------------------------- // wxTaskBarIconBase: define wxTaskBarIcon interface // ---------------------------------------------------------------------------- diff --git a/interface/wx/taskbar.h b/interface/wx/taskbar.h index b6c37da4f7..36096618a4 100644 --- a/interface/wx/taskbar.h +++ b/interface/wx/taskbar.h @@ -6,6 +6,18 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +/** + On OSX Cocoa the taskbar icon can be in the doc or in the status area. + This enumeration can be used to select which will be instantiated. +*/ +enum wxTaskBarIconType +{ + wxTBI_DOCK, + wxTBI_CUSTOM_STATUSITEM, + wxTBI_DEFAULT_TYPE +}; + + /** @class wxTaskBarIconEvent @@ -26,6 +38,7 @@ public: wxTaskBarIconEvent(wxEventType evtType, wxTaskBarIcon *tbIcon); }; + /** @class wxTaskBarIcon @@ -79,9 +92,9 @@ class wxTaskBarIcon : public wxEvtHandler { public: /** - Default constructor. + Default constructor. The iconType is only applicable on wxOSX_Cocoa. */ - wxTaskBarIcon(); + wxTaskBarIcon(wxTaskBarIconType iconType = wxTBI_DEFAULT_TYPE); /** Destroys the wxTaskBarIcon object, removing the icon if not already removed. diff --git a/src/gtk/taskbar.cpp b/src/gtk/taskbar.cpp index e45534a5d2..4d53edd850 100644 --- a/src/gtk/taskbar.cpp +++ b/src/gtk/taskbar.cpp @@ -266,7 +266,7 @@ void wxTaskBarIcon::Private::size_allocate(int width, int height) IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIcon, wxEvtHandler) -wxTaskBarIcon::wxTaskBarIcon() +wxTaskBarIcon::wxTaskBarIcon(wxTaskBarIconType WXUNUSED(iconType)) { m_priv = new Private(this); } diff --git a/src/msw/taskbar.cpp b/src/msw/taskbar.cpp index 26db204d41..9822509db1 100644 --- a/src/msw/taskbar.cpp +++ b/src/msw/taskbar.cpp @@ -177,7 +177,7 @@ struct NotifyIconData : public NOTIFYICONDATA // wxTaskBarIcon // ---------------------------------------------------------------------------- -wxTaskBarIcon::wxTaskBarIcon() +wxTaskBarIcon::wxTaskBarIcon(wxTaskBarIconType WXUNUSED(iconType)) { m_win = NULL; m_iconAdded = false; diff --git a/src/osx/carbon/taskbar.cpp b/src/osx/carbon/taskbar.cpp index ca38276fd2..0d432c8510 100644 --- a/src/osx/carbon/taskbar.cpp +++ b/src/osx/carbon/taskbar.cpp @@ -469,8 +469,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIcon, wxEvtHandler) 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); } diff --git a/src/osx/cocoa/taskbar.mm b/src/osx/cocoa/taskbar.mm index 509d3c7e25..925f211e84 100644 --- a/src/osx/cocoa/taskbar.mm +++ b/src/osx/cocoa/taskbar.mm @@ -141,9 +141,9 @@ IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIcon, wxEvtHandler) wxTaskBarIcon::wxTaskBarIcon(wxTaskBarIconType iconType) { - if(iconType == DOCK) + if(iconType == wxTBI_DOCK) m_impl = new wxTaskBarIconDockImpl(this); - else if(iconType == CUSTOM_STATUSITEM) + else if(iconType == wxTBI_CUSTOM_STATUSITEM) m_impl = new wxTaskBarIconCustomStatusItemImpl(this); else { m_impl = NULL; -- 2.47.2