]>
Commit | Line | Data |
---|---|---|
d14a1e28 RD |
1 | ///////////////////////////////////////////////////////////////////////////// |
2 | // Name: _popupwin.i | |
3 | // Purpose: SWIG interface defs for wxPopupWindow and derived classes | |
4 | // | |
5 | // Author: Robin Dunn | |
6 | // | |
7 | // Created: 22-Dec-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 | #include <wx/popupwin.h> | |
20 | %} | |
21 | ||
22 | //--------------------------------------------------------------------------- | |
23 | #ifndef __WXMAC__ | |
24 | %newgroup; | |
25 | ||
ab1f7d2a | 26 | MustHaveApp(wxPopupWindow); |
d14a1e28 RD |
27 | |
28 | // wxPopupWindow: a special kind of top level window used for popup menus, | |
29 | // combobox popups and such. | |
ab1f7d2a RD |
30 | MustHaveApp(wxPopupWindow); |
31 | ||
d14a1e28 RD |
32 | class wxPopupWindow : public wxWindow { |
33 | public: | |
2b9048c5 RD |
34 | %pythonAppend wxPopupWindow "self._setOORInfo(self)" |
35 | %pythonAppend wxPopupWindow() "" | |
d14a1e28 RD |
36 | |
37 | wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE); | |
38 | %name(PrePopupWindow)wxPopupWindow(); | |
39 | ||
40 | bool Create(wxWindow *parent, int flags = wxBORDER_NONE); | |
41 | ||
42 | // move the popup window to the right position, i.e. such that it is | |
43 | // entirely visible | |
44 | // | |
45 | // the popup is positioned at ptOrigin + size if it opens below and to the | |
46 | // right (default), at ptOrigin - sizePopup if it opens above and to the | |
47 | // left &c | |
48 | // | |
49 | // the point must be given in screen coordinates! | |
50 | void Position(const wxPoint& ptOrigin, | |
51 | const wxSize& size); | |
52 | }; | |
53 | ||
54 | ||
55 | //--------------------------------------------------------------------------- | |
56 | %newgroup; | |
57 | ||
58 | %{ | |
59 | class wxPyPopupTransientWindow : public wxPopupTransientWindow | |
60 | { | |
61 | public: | |
62 | wxPyPopupTransientWindow() : wxPopupTransientWindow() {} | |
63 | wxPyPopupTransientWindow(wxWindow* parent, int style = wxBORDER_NONE) | |
64 | : wxPopupTransientWindow(parent, style) {} | |
65 | ||
66 | DEC_PYCALLBACK_BOOL_ME(ProcessLeftDown); | |
67 | DEC_PYCALLBACK__(OnDismiss); | |
68 | DEC_PYCALLBACK_BOOL_(CanDismiss); | |
69 | PYPRIVATE; | |
70 | }; | |
71 | ||
72 | ||
73 | IMP_PYCALLBACK_BOOL_ME(wxPyPopupTransientWindow, wxPopupTransientWindow, ProcessLeftDown); | |
74 | IMP_PYCALLBACK__(wxPyPopupTransientWindow, wxPopupTransientWindow, OnDismiss); | |
75 | IMP_PYCALLBACK_BOOL_(wxPyPopupTransientWindow, wxPopupTransientWindow, CanDismiss); | |
76 | %} | |
77 | ||
78 | ||
ab1f7d2a | 79 | MustHaveApp(wxPyPopupTransientWindow); |
d14a1e28 RD |
80 | |
81 | // wxPopupTransientWindow: a wxPopupWindow which disappears automatically | |
82 | // when the user clicks mouse outside it or if it loses focus in any other way | |
ab1f7d2a | 83 | |
d14a1e28 RD |
84 | %name(PopupTransientWindow) class wxPyPopupTransientWindow : public wxPopupWindow |
85 | { | |
86 | public: | |
2b9048c5 RD |
87 | %pythonAppend wxPyPopupTransientWindow "self._setOORInfo(self);self._setCallbackInfo(self, PopupTransientWindow)" |
88 | %pythonAppend wxPyPopupTransientWindow() "" | |
d14a1e28 RD |
89 | |
90 | wxPyPopupTransientWindow(wxWindow *parent, int style = wxBORDER_NONE); | |
91 | %name(PrePopupTransientWindow)wxPyPopupTransientWindow(); | |
92 | ||
93 | void _setCallbackInfo(PyObject* self, PyObject* _class); | |
94 | ||
95 | // popup the window (this will show it too) and keep focus at winFocus | |
96 | // (or itself if it's NULL), dismiss the popup if we lose focus | |
97 | virtual void Popup(wxWindow *focus = NULL); | |
98 | ||
99 | // hide the window | |
100 | virtual void Dismiss(); | |
101 | }; | |
102 | ||
103 | //--------------------------------------------------------------------------- | |
104 | ||
105 | ||
106 | ||
107 | #else // On Mac we need to provide dummy classes to keep the renamers in sync | |
108 | %{ | |
109 | class wxPopupWindow : public wxWindow { | |
110 | public: | |
81cfe5e1 RD |
111 | wxPopupWindow(wxWindow *, int) { wxPyRaiseNotImplemented(); } |
112 | wxPopupWindow() { wxPyRaiseNotImplemented(); } | |
d14a1e28 RD |
113 | }; |
114 | ||
115 | class wxPyPopupTransientWindow : public wxPopupWindow | |
116 | { | |
117 | public: | |
81cfe5e1 RD |
118 | wxPyPopupTransientWindow(wxWindow *, int) { wxPyRaiseNotImplemented(); } |
119 | wxPyPopupTransientWindow() { wxPyRaiseNotImplemented(); } | |
d14a1e28 RD |
120 | }; |
121 | %} | |
122 | ||
123 | ||
124 | class wxPopupWindow : public wxWindow { | |
125 | public: | |
126 | wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE); | |
127 | %name(PrePopupWindow)wxPopupWindow(); | |
128 | }; | |
129 | ||
130 | %name(PopupTransientWindow) class wxPyPopupTransientWindow : public wxPopupWindow | |
131 | { | |
132 | public: | |
133 | wxPyPopupTransientWindow(wxWindow *parent, int style = wxBORDER_NONE); | |
134 | %name(PrePopupTransientWindow)wxPyPopupTransientWindow(); | |
135 | }; | |
136 | ||
137 | ||
138 | #endif | |
139 | //--------------------------------------------------------------------------- |