Overridable CreatePopupMenu in TaskBarIcon
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -58,64 +58,58 @@ enum {
|
|||||||
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
// // Otherwise make a class that can virtualize CreatePopupMenu
|
// Otherwise make a class that can virtualize CreatePopupMenu
|
||||||
// class wxPyTaskBarIcon : public wxTaskBarIcon
|
class wxPyTaskBarIcon : public wxTaskBarIcon
|
||||||
// {
|
{
|
||||||
// DECLARE_ABSTRACT_CLASS(wxPyTaskBarIcon);
|
DECLARE_ABSTRACT_CLASS(wxPyTaskBarIcon);
|
||||||
// public:
|
public:
|
||||||
// wxPyTaskBarIcon() : wxTaskBarIcon()
|
wxPyTaskBarIcon() : wxTaskBarIcon()
|
||||||
// {}
|
{}
|
||||||
|
|
||||||
// wxMenu* CreatePopupMenu() {
|
wxMenu* CreatePopupMenu() {
|
||||||
// wxMenu *rval = NULL;
|
wxMenu *rval = NULL;
|
||||||
// bool found;
|
bool found;
|
||||||
// bool blocked = wxPyBeginBlockThreads();
|
bool blocked = wxPyBeginBlockThreads();
|
||||||
// if ((found = wxPyCBH_findCallback(m_myInst, "CreatePopupMenu"))) {
|
if ((found = wxPyCBH_findCallback(m_myInst, "CreatePopupMenu"))) {
|
||||||
// PyObject* ro;
|
PyObject* ro;
|
||||||
// wxMenu* ptr;
|
wxMenu* ptr;
|
||||||
// ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()"));
|
ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("()"));
|
||||||
// if (ro) {
|
if (ro) {
|
||||||
// if (wxPyConvertSwigPtr(ro, (void **)&ptr, wxT("wxMenu")))
|
if (wxPyConvertSwigPtr(ro, (void **)&ptr, wxT("wxMenu")))
|
||||||
// rval = ptr;
|
rval = ptr;
|
||||||
// Py_DECREF(ro);
|
Py_DECREF(ro);
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// wxPyEndBlockThreads(blocked);
|
wxPyEndBlockThreads(blocked);
|
||||||
// if (! found)
|
if (! found)
|
||||||
// rval = wxTaskBarIcon::CreatePopupMenu();
|
rval = wxTaskBarIcon::CreatePopupMenu();
|
||||||
// return rval;
|
return rval;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// PYPRIVATE;
|
PYPRIVATE;
|
||||||
// };
|
};
|
||||||
|
|
||||||
// IMPLEMENT_ABSTRACT_CLASS(wxPyTaskBarIcon, wxTaskBarIcon);
|
IMPLEMENT_ABSTRACT_CLASS(wxPyTaskBarIcon, wxTaskBarIcon);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
|
||||||
// NOTE: TaskbarIcon has not yet been changed to be able to virtualize the
|
MustHaveApp(wxPyTaskBarIcon);
|
||||||
// CreatePopupMenu method because it is just before a release and I worry that
|
|
||||||
// there will be a problem in this case with it holding a reference to itself
|
|
||||||
// (since it depends on the dtor for cleanup.) Better safe than sorry!
|
|
||||||
//
|
|
||||||
// Perhaps a better mechanism for wxPython would be to turn CreatePopupMenu
|
|
||||||
// into an event...
|
|
||||||
|
|
||||||
MustHaveApp(wxTaskBarIcon);
|
%name(TaskBarIcon)class wxPyTaskBarIcon : public wxEvtHandler
|
||||||
|
|
||||||
class wxTaskBarIcon : public wxEvtHandler
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxTaskBarIcon();
|
%pythonAppend wxPyTaskBarIcon "self._setCallbackInfo(self, TaskBarIcon, 0)"
|
||||||
~wxTaskBarIcon();
|
|
||||||
|
wxPyTaskBarIcon();
|
||||||
|
|
||||||
|
void _setCallbackInfo(PyObject* self, PyObject* _class, int incref);
|
||||||
|
|
||||||
%extend {
|
%extend {
|
||||||
void Destroy() {
|
void Destroy() {
|
||||||
#ifndef __WXMAC__
|
|
||||||
self->RemoveIcon();
|
self->RemoveIcon();
|
||||||
#endif
|
delete self;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user