]> git.saurik.com Git - wxWidgets.git/blob - wxPython/src/_taskbar.i
reSWIGged
[wxWidgets.git] / wxPython / src / _taskbar.i
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: _taskbar.i
3 // Purpose: SWIG interface defs for wxTaskBarIcon
4 //
5 // Author: Robin Dunn
6 //
7 // Created: 2-June-1998
8 // RCS-ID: $Id$
9 // Copyright: (c) 2003 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
12
13 // Not a %module
14
15
16 //---------------------------------------------------------------------------
17
18 %{
19 %}
20
21 //---------------------------------------------------------------------------
22 %newgroup;
23
24
25 %{
26 #ifndef wxHAS_TASK_BAR_ICON
27 // implement dummy classes for platforms that don't have it
28
29 class wxTaskBarIcon : public wxEvtHandler
30 {
31 public:
32 wxTaskBarIcon() { wxPyRaiseNotImplemented(); }
33 };
34
35
36 class wxTaskBarIconEvent : public wxEvent
37 {
38 public:
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; }
47 };
48
49 enum {
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,
57 };
58
59
60 #else
61 // // Otherwise make a class that can virtualize CreatePopupMenu
62 // class wxPyTaskBarIcon : public wxTaskBarIcon
63 // {
64 // DECLARE_ABSTRACT_CLASS(wxPyTaskBarIcon);
65 // public:
66 // wxPyTaskBarIcon() : wxTaskBarIcon()
67 // {}
68
69 // wxMenu* CreatePopupMenu() {
70 // wxMenu *rval = NULL;
71 // bool found;
72 // bool blocked = wxPyBeginBlockThreads();
73 // if ((found = wxPyCBH_findCallback(m_myInst, "CreatePopupMenu"))) {
74 // PyObject* ro;
75 // wxMenu* ptr;
76 // ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()"));
77 // if (ro) {
78 // if (wxPyConvertSwigPtr(ro, (void **)&ptr, wxT("wxMenu")))
79 // rval = ptr;
80 // Py_DECREF(ro);
81 // }
82 // }
83 // wxPyEndBlockThreads(blocked);
84 // if (! found)
85 // rval = wxTaskBarIcon::CreatePopupMenu();
86 // return rval;
87 // }
88
89 // PYPRIVATE;
90 // };
91
92 // IMPLEMENT_ABSTRACT_CLASS(wxPyTaskBarIcon, wxTaskBarIcon);
93
94 #endif
95 %}
96
97
98 // NOTE: TaskbarIcon has not yet been changed to be able to virtualize the
99 // CreatePopupMenu method because it is just before a release and I worry that
100 // there will be a problem in this case with it holding a reference to itself
101 // (since it depends on the dtor for cleanup.) Better safe than sorry!
102 //
103 // Perhaps a better mechanism for wxPython would be to turn CreatePopupMenu
104 // into an event...
105
106 MustHaveApp(wxTaskBarIcon);
107
108 class wxTaskBarIcon : public wxEvtHandler
109 {
110 public:
111 wxTaskBarIcon();
112 ~wxTaskBarIcon();
113
114 %extend {
115 void Destroy() {
116 #ifndef __WXMAC__
117 self->RemoveIcon();
118 #endif
119 }
120 }
121
122 bool IsOk() const;
123 %pythoncode { def __nonzero__(self): return self.IsOk() }
124
125 bool IsIconInstalled() const;
126
127 bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxPyEmptyString);
128 bool RemoveIcon();
129 bool PopupMenu(wxMenu *menu);
130 };
131
132
133
134 class wxTaskBarIconEvent : public wxEvent
135 {
136 public:
137 wxTaskBarIconEvent(wxEventType evtType, wxTaskBarIcon *tbIcon);
138 };
139
140
141
142 %constant wxEventType wxEVT_TASKBAR_MOVE;
143 %constant wxEventType wxEVT_TASKBAR_LEFT_DOWN;
144 %constant wxEventType wxEVT_TASKBAR_LEFT_UP;
145 %constant wxEventType wxEVT_TASKBAR_RIGHT_DOWN;
146 %constant wxEventType wxEVT_TASKBAR_RIGHT_UP;
147 %constant wxEventType wxEVT_TASKBAR_LEFT_DCLICK;
148 %constant wxEventType wxEVT_TASKBAR_RIGHT_DCLICK;
149
150
151 %pythoncode {
152 EVT_TASKBAR_MOVE = wx.PyEventBinder ( wxEVT_TASKBAR_MOVE )
153 EVT_TASKBAR_LEFT_DOWN = wx.PyEventBinder ( wxEVT_TASKBAR_LEFT_DOWN )
154 EVT_TASKBAR_LEFT_UP = wx.PyEventBinder ( wxEVT_TASKBAR_LEFT_UP )
155 EVT_TASKBAR_RIGHT_DOWN = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_DOWN )
156 EVT_TASKBAR_RIGHT_UP = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_UP )
157 EVT_TASKBAR_LEFT_DCLICK = wx.PyEventBinder ( wxEVT_TASKBAR_LEFT_DCLICK )
158 EVT_TASKBAR_RIGHT_DCLICK = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_DCLICK )
159 }
160
161 //---------------------------------------------------------------------------