]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_taskbar.i
fix link errors
[wxWidgets.git] / wxPython / src / _taskbar.i
CommitLineData
d14a1e28
RD
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%{
b17dd4ce
RD
26#ifndef wxHAS_TASK_BAR_ICON
27// implement dummy classes for platforms that don't have it
d14a1e28
RD
28
29class wxTaskBarIcon : public wxEvtHandler
30{
31public:
81cfe5e1 32 wxTaskBarIcon() { wxPyRaiseNotImplemented(); }
d14a1e28 33};
b8400a3a 34
d14a1e28
RD
35
36class wxTaskBarIconEvent : public wxEvent
37{
38public:
39 wxTaskBarIconEvent(wxEventType, wxTaskBarIcon *)
81cfe5e1 40 { wxPyRaiseNotImplemented(); }
d14a1e28 41 virtual wxEvent* Clone() const { return NULL; }
b17dd4ce
RD
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; }
d14a1e28
RD
47};
48
49enum {
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};
b8400a3a
RD
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
d14a1e28
RD
94#endif
95%}
96
97
b8400a3a
RD
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//
b17dd4ce 103// Perhaps a better mechanism for wxPython would be to turn CreatePopupMenu
b8400a3a 104// into an event...
d14a1e28 105
ab1f7d2a
RD
106MustHaveApp(wxTaskBarIcon);
107
d14a1e28
RD
108class wxTaskBarIcon : public wxEvtHandler
109{
110public:
111 wxTaskBarIcon();
112 ~wxTaskBarIcon();
33e10b88
RD
113
114 %extend {
115 void Destroy() {
116 #ifndef __WXMAC__
117 self->RemoveIcon();
118 #endif
119 }
120 }
d14a1e28 121
d14a1e28 122 bool IsOk() const;
e0269b2e 123 %pythoncode { def __nonzero__(self): return self.IsOk() }
b8400a3a 124
d14a1e28
RD
125 bool IsIconInstalled() const;
126
127 bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxPyEmptyString);
b8400a3a 128 bool RemoveIcon();
d14a1e28 129 bool PopupMenu(wxMenu *menu);
d14a1e28
RD
130};
131
132
133
134class wxTaskBarIconEvent : public wxEvent
135{
136public:
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 {
152EVT_TASKBAR_MOVE = wx.PyEventBinder ( wxEVT_TASKBAR_MOVE )
153EVT_TASKBAR_LEFT_DOWN = wx.PyEventBinder ( wxEVT_TASKBAR_LEFT_DOWN )
154EVT_TASKBAR_LEFT_UP = wx.PyEventBinder ( wxEVT_TASKBAR_LEFT_UP )
155EVT_TASKBAR_RIGHT_DOWN = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_DOWN )
156EVT_TASKBAR_RIGHT_UP = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_UP )
157EVT_TASKBAR_LEFT_DCLICK = wx.PyEventBinder ( wxEVT_TASKBAR_LEFT_DCLICK )
158EVT_TASKBAR_RIGHT_DCLICK = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_DCLICK )
b8400a3a 159}
d14a1e28
RD
160
161//---------------------------------------------------------------------------