]> git.saurik.com Git - wxWidgets.git/blame_incremental - wxPython/src/_taskbar.i
move animate from contrib to core, and migrate to new API
[wxWidgets.git] / wxPython / src / _taskbar.i
... / ...
CommitLineData
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
29class wxTaskBarIcon : public wxEvtHandler
30{
31public:
32 wxTaskBarIcon() { wxPyRaiseNotImplemented(); }
33};
34
35
36class wxTaskBarIconEvent : public wxEvent
37{
38public:
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
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};
58
59
60#else
61// Otherwise make a class that can virtualize CreatePopupMenu
62class wxPyTaskBarIcon : public wxTaskBarIcon
63{
64 DECLARE_ABSTRACT_CLASS(wxPyTaskBarIcon)
65public:
66 wxPyTaskBarIcon() : wxTaskBarIcon()
67 {}
68
69 wxMenu* CreatePopupMenu() {
70 wxMenu *rval = NULL;
71 bool found;
72 wxPyBlock_t 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
92IMPLEMENT_ABSTRACT_CLASS(wxPyTaskBarIcon, wxTaskBarIcon);
93
94#endif
95%}
96
97
98MustHaveApp(wxPyTaskBarIcon);
99
100%rename(TaskBarIcon) wxPyTaskBarIcon;
101class wxPyTaskBarIcon : public wxEvtHandler
102{
103public:
104 %pythonAppend wxPyTaskBarIcon "self._setCallbackInfo(self, TaskBarIcon, 0)"
105
106 wxPyTaskBarIcon();
107 ~wxPyTaskBarIcon();
108
109 void _setCallbackInfo(PyObject* self, PyObject* _class, int incref);
110
111 %pythonPrepend Destroy "args[0].this.own(False)";
112 %extend {
113 void Destroy() {
114 self->RemoveIcon();
115 delete self;
116 }
117 }
118
119 bool IsOk() const;
120 %pythoncode { def __nonzero__(self): return self.IsOk() }
121
122 bool IsIconInstalled() const;
123
124 bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxPyEmptyString);
125 bool RemoveIcon();
126 bool PopupMenu(wxMenu *menu);
127};
128
129
130
131class wxTaskBarIconEvent : public wxEvent
132{
133public:
134 wxTaskBarIconEvent(wxEventType evtType, wxTaskBarIcon *tbIcon);
135};
136
137
138
139%constant wxEventType wxEVT_TASKBAR_MOVE;
140%constant wxEventType wxEVT_TASKBAR_LEFT_DOWN;
141%constant wxEventType wxEVT_TASKBAR_LEFT_UP;
142%constant wxEventType wxEVT_TASKBAR_RIGHT_DOWN;
143%constant wxEventType wxEVT_TASKBAR_RIGHT_UP;
144%constant wxEventType wxEVT_TASKBAR_LEFT_DCLICK;
145%constant wxEventType wxEVT_TASKBAR_RIGHT_DCLICK;
146
147
148%pythoncode {
149EVT_TASKBAR_MOVE = wx.PyEventBinder ( wxEVT_TASKBAR_MOVE )
150EVT_TASKBAR_LEFT_DOWN = wx.PyEventBinder ( wxEVT_TASKBAR_LEFT_DOWN )
151EVT_TASKBAR_LEFT_UP = wx.PyEventBinder ( wxEVT_TASKBAR_LEFT_UP )
152EVT_TASKBAR_RIGHT_DOWN = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_DOWN )
153EVT_TASKBAR_RIGHT_UP = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_UP )
154EVT_TASKBAR_LEFT_DCLICK = wx.PyEventBinder ( wxEVT_TASKBAR_LEFT_DCLICK )
155EVT_TASKBAR_RIGHT_DCLICK = wx.PyEventBinder ( wxEVT_TASKBAR_RIGHT_DCLICK )
156}
157
158//---------------------------------------------------------------------------