/////////////////////////////////////////////////////////////////////////
-// File: taskbarcmn.cpp
+// File: src/common/taskbarcmn.cpp
// Purpose: Common parts of wxTaskBarIcon class
// Author: Julian Smart
// Modified by:
// 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"
-#include "wx/defs.h"
+#ifdef __BORLANDC__
+ #pragma hdrstop
+#endif
-#ifdef wxHAS_TASK_BAR_ICON
+#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 //def wxHAS_TASK_BAR_ICON
+#endif // wxUSE_TASKBARICON