1 /////////////////////////////////////////////////////////////////////////////
 
   3 // Purpose:     SWIG interface defs for wxTaskBarIcon
 
   7 // Created:     2-June-1998
 
   9 // Copyright:   (c) 2003 by Total Control Software
 
  10 // Licence:     wxWindows license
 
  11 /////////////////////////////////////////////////////////////////////////////
 
  16 //---------------------------------------------------------------------------
 
  21 //---------------------------------------------------------------------------
 
  26 #ifndef wxHAS_TASK_BAR_ICON
 
  27 // implement dummy classes for platforms that don't have it
 
  29 class wxTaskBarIcon : public wxEvtHandler
 
  32     wxTaskBarIcon()  { wxPyRaiseNotImplemented(); }
 
  36 class wxTaskBarIconEvent : public wxEvent
 
  39     wxTaskBarIconEvent(wxEventType, wxTaskBarIcon *)
 
  40         { wxPyRaiseNotImplemented(); }
 
  41     virtual wxEvent* Clone() const { return NULL; }
 
  42     bool IsOk() const { return false; }
 
  43     bool IsIconInstalled() const { return false; }
 
  44     bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxPyEmptyString) { return false; }
 
  45     bool RemoveIcon() { return false; }
 
  46     bool PopupMenu(wxMenu *menu) { return false; }
 
  50     wxEVT_TASKBAR_MOVE = 0,
 
  51     wxEVT_TASKBAR_LEFT_DOWN = 0,
 
  52     wxEVT_TASKBAR_LEFT_UP = 0,
 
  53     wxEVT_TASKBAR_RIGHT_DOWN = 0,
 
  54     wxEVT_TASKBAR_RIGHT_UP = 0,
 
  55     wxEVT_TASKBAR_LEFT_DCLICK = 0,
 
  56     wxEVT_TASKBAR_RIGHT_DCLICK = 0,
 
  61 // Otherwise make a class that can virtualize CreatePopupMenu
 
  62 class wxPyTaskBarIcon : public wxTaskBarIcon
 
  64     DECLARE_ABSTRACT_CLASS(wxPyTaskBarIcon);
 
  66     wxPyTaskBarIcon() : wxTaskBarIcon()
 
  69     wxMenu* CreatePopupMenu() {
 
  72         wxPyBlock_t blocked = wxPyBeginBlockThreads();
 
  73         if ((found = wxPyCBH_findCallback(m_myInst, "CreatePopupMenu"))) {
 
  76             ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()"));
 
  78                 if (wxPyConvertSwigPtr(ro, (void **)&ptr, wxT("wxMenu")))
 
  83         wxPyEndBlockThreads(blocked);
 
  85             rval = wxTaskBarIcon::CreatePopupMenu();
 
  92 IMPLEMENT_ABSTRACT_CLASS(wxPyTaskBarIcon, wxTaskBarIcon);
 
  98 MustHaveApp(wxPyTaskBarIcon);
 
 100 %rename(TaskBarIcon) wxPyTaskBarIcon;
 
 101 class wxPyTaskBarIcon : public wxEvtHandler
 
 104     %pythonAppend wxPyTaskBarIcon   "self._setCallbackInfo(self, TaskBarIcon, 0)"
 
 108     void _setCallbackInfo(PyObject* self, PyObject* _class, int incref);
 
 118     %pythoncode { def __nonzero__(self): return self.IsOk() }
 
 120     bool IsIconInstalled() const;
 
 122     bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxPyEmptyString);
 
 124     bool PopupMenu(wxMenu *menu);
 
 129 class wxTaskBarIconEvent : public wxEvent
 
 132     wxTaskBarIconEvent(wxEventType evtType, wxTaskBarIcon *tbIcon);
 
 137 %constant wxEventType wxEVT_TASKBAR_MOVE;
 
 138 %constant wxEventType wxEVT_TASKBAR_LEFT_DOWN;
 
 139 %constant wxEventType wxEVT_TASKBAR_LEFT_UP;
 
 140 %constant wxEventType wxEVT_TASKBAR_RIGHT_DOWN;
 
 141 %constant wxEventType wxEVT_TASKBAR_RIGHT_UP;
 
 142 %constant wxEventType wxEVT_TASKBAR_LEFT_DCLICK;
 
 143 %constant wxEventType wxEVT_TASKBAR_RIGHT_DCLICK;
 
 147 EVT_TASKBAR_MOVE = wx.PyEventBinder (         wxEVT_TASKBAR_MOVE )
 
 148 EVT_TASKBAR_LEFT_DOWN = wx.PyEventBinder (    wxEVT_TASKBAR_LEFT_DOWN )
 
 149 EVT_TASKBAR_LEFT_UP = wx.PyEventBinder (      wxEVT_TASKBAR_LEFT_UP )
 
 150 EVT_TASKBAR_RIGHT_DOWN = wx.PyEventBinder (   wxEVT_TASKBAR_RIGHT_DOWN )
 
 151 EVT_TASKBAR_RIGHT_UP = wx.PyEventBinder (     wxEVT_TASKBAR_RIGHT_UP )
 
 152 EVT_TASKBAR_LEFT_DCLICK = wx.PyEventBinder (  wxEVT_TASKBAR_LEFT_DCLICK )
 
 153 EVT_TASKBAR_RIGHT_DCLICK = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_DCLICK )
 
 156 //---------------------------------------------------------------------------