]> git.saurik.com Git - wxWidgets.git/blob - wxPython/src/_popupwin.i
little tweaks to match recent CVS changes
[wxWidgets.git] / wxPython / src / _popupwin.i
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
26 MustHaveApp(wxPopupWindow);
27
28 // wxPopupWindow: a special kind of top level window used for popup menus,
29 // combobox popups and such.
30 MustHaveApp(wxPopupWindow);
31
32 class wxPopupWindow : public wxWindow {
33 public:
34 %pythonAppend wxPopupWindow "self._setOORInfo(self)"
35 %pythonAppend wxPopupWindow() ""
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
79 MustHaveApp(wxPyPopupTransientWindow);
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
83
84 %name(PopupTransientWindow) class wxPyPopupTransientWindow : public wxPopupWindow
85 {
86 public:
87 %pythonAppend wxPyPopupTransientWindow "self._setOORInfo(self);self._setCallbackInfo(self, PopupTransientWindow)"
88 %pythonAppend wxPyPopupTransientWindow() ""
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:
111 wxPopupWindow(wxWindow *, int) { wxPyRaiseNotImplemented(); }
112 wxPopupWindow() { wxPyRaiseNotImplemented(); }
113 };
114
115 class wxPyPopupTransientWindow : public wxPopupWindow
116 {
117 public:
118 wxPyPopupTransientWindow(wxWindow *, int) { wxPyRaiseNotImplemented(); }
119 wxPyPopupTransientWindow() { wxPyRaiseNotImplemented(); }
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 //---------------------------------------------------------------------------