X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3eae0c0b438f059635c8e26d6ddb5a8f2de42db3..87f0b1323b7ac77f02133b836c8dfee63b0fd387:/src/common/taskbarcmn.cpp?ds=sidebyside diff --git a/src/common/taskbarcmn.cpp b/src/common/taskbarcmn.cpp index 0d3559c7ba..12ab1d3d0b 100644 --- a/src/common/taskbarcmn.cpp +++ b/src/common/taskbarcmn.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// File: taskbarcmn.cpp +// File: src/common/taskbarcmn.cpp // Purpose: Common parts of wxTaskBarIcon class // Author: Julian Smart // Modified by: @@ -9,19 +9,56 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(__APPLE__) -#pragma implementation "taskbar.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#if wxUSE_TASKBARICON + #include "wx/taskbar.h" -DEFINE_EVENT_TYPE( wxEVT_TASKBAR_MOVE ) -DEFINE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_DOWN ) -DEFINE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_UP ) -DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_DOWN ) -DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_UP ) -DEFINE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_DCLICK ) -DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_DCLICK ) +#ifndef WX_PRECOMP + #include "wx/app.h" + #include "wx/list.h" + #include "wx/menu.h" +#endif + +extern WXDLLIMPEXP_DATA_CORE(wxList) wxPendingDelete; + +// DLL options compatibility check: +WX_CHECK_BUILD_OPTIONS("wxAdvanced") + +wxDEFINE_EVENT( wxEVT_TASKBAR_MOVE, wxTaskBarIconEvent ); +wxDEFINE_EVENT( wxEVT_TASKBAR_LEFT_DOWN, wxTaskBarIconEvent ); +wxDEFINE_EVENT( wxEVT_TASKBAR_LEFT_UP, wxTaskBarIconEvent ); +wxDEFINE_EVENT( wxEVT_TASKBAR_RIGHT_DOWN, wxTaskBarIconEvent ); +wxDEFINE_EVENT( wxEVT_TASKBAR_RIGHT_UP, wxTaskBarIconEvent ); +wxDEFINE_EVENT( wxEVT_TASKBAR_LEFT_DCLICK, wxTaskBarIconEvent ); +wxDEFINE_EVENT( wxEVT_TASKBAR_RIGHT_DCLICK, wxTaskBarIconEvent ); +wxDEFINE_EVENT( wxEVT_TASKBAR_BALLOON_TIMEOUT, wxTaskBarIconEvent ); +wxDEFINE_EVENT( wxEVT_TASKBAR_BALLOON_CLICK, wxTaskBarIconEvent ); + + +BEGIN_EVENT_TABLE(wxTaskBarIconBase, wxEvtHandler) + EVT_TASKBAR_CLICK(wxTaskBarIconBase::OnRightButtonDown) +END_EVENT_TABLE() + +void wxTaskBarIconBase::OnRightButtonDown(wxTaskBarIconEvent& WXUNUSED(event)) +{ + wxMenu *menu = CreatePopupMenu(); + if (menu) + { + PopupMenu(menu); + delete menu; + } +} + +void wxTaskBarIconBase::Destroy() +{ + wxPendingDelete.Append(this); +} + +#endif // wxUSE_TASKBARICON