]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_display.i
more properties
[wxWidgets.git] / wxPython / src / _display.i
CommitLineData
96d37ab5
RD
1/////////////////////////////////////////////////////////////////////////////
2// Name: _display.i
3// Purpose: SWIG interface for wxVideoMode and wxDisplay
4//
5// Author: Robin Dunn
6//
7// Created: 9-Mar-2004
8// RCS-ID: $Id$
9// Copyright: (c) 2004 by Total Control Software
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
13// Not a %module
14
15
16//---------------------------------------------------------------------------
17
18%{
f2e64141 19#include <wx/display.h>
96d37ab5
RD
20%}
21
22
23//---------------------------------------------------------------------------
24%newgroup
25
26
27DocStr(wxVideoMode,
d07d2bc9 28 "A simple struct containing video mode parameters for a display", "");
96d37ab5
RD
29
30struct wxVideoMode
31{
32 wxVideoMode(int width = 0, int height = 0, int depth = 0, int freq = 0);
33 ~wxVideoMode();
611ac06b 34
96d37ab5
RD
35 DocDeclStr(
36 bool , Matches(const wxVideoMode& other) const,
3abaf181 37 "Returns True if this mode matches the other one in the sense that all
611ac06b 38non-zero fields of the other mode have the same value in this
d07d2bc9 39one (except for refresh which is allowed to have a greater value)", "");
96d37ab5
RD
40
41 DocDeclStr(
42 int , GetWidth() const,
d07d2bc9 43 "Returns the screen width in pixels (e.g. 640*480), 0 means unspecified", "");
611ac06b 44
96d37ab5
RD
45 DocDeclStr(
46 int , GetHeight() const,
611ac06b
DS
47 "Returns the screen height in pixels (e.g. 640*480), 0 means unspecified", "");
48
96d37ab5
RD
49 DocDeclStr(
50 int , GetDepth() const,
d07d2bc9
RD
51 "Returns the screen's bits per pixel (e.g. 32), 1 is monochrome and 0
52means unspecified/known", "");
611ac06b 53
96d37ab5
RD
54
55 DocDeclStr(
56 bool , IsOk() const,
d07d2bc9 57 "returns true if the object has been initialized", "");
96d37ab5
RD
58
59
60 %pythoncode { def __nonzero__(self): return self.IsOk() }
61 %extend {
a72f4631
RD
62 bool __eq__(const wxVideoMode* other) { return other ? (*self == *other) : false; }
63 bool __ne__(const wxVideoMode* other) { return other ? (*self != *other) : true; }
96d37ab5
RD
64 }
65
611ac06b 66
96d37ab5
RD
67 // the screen size in pixels (e.g. 640*480), 0 means unspecified
68 int w, h;
69
70 // bits per pixel (e.g. 32), 1 is monochrome and 0 means unspecified/known
71 int bpp;
72
73 // refresh frequency in Hz, 0 means unspecified/unknown
74 int refresh;
75};
76
77
3abaf181
RD
78%{
79#if !wxUSE_DISPLAY
80const wxVideoMode wxDefaultVideoMode;
81#endif
611ac06b 82%}
3abaf181 83
96d37ab5
RD
84%immutable;
85const wxVideoMode wxDefaultVideoMode;
86%mutable;
87
88
89//---------------------------------------------------------------------------
90
96d37ab5 91
f2e64141 92
f2e64141
RD
93DocStr(wxDisplay,
94 "Represents a display/monitor attached to the system", "");
96d37ab5
RD
95class wxDisplay
96{
97public:
96d37ab5
RD
98 DocCtorStr(
99 wxDisplay(size_t index = 0),
d07d2bc9
RD
100 "Set up a Display instance with the specified display. The displays
101are numbered from 0 to GetCount() - 1, 0 is always the primary display
102and the only one which is always supported", "");
96d37ab5 103
3abaf181
RD
104 ~wxDisplay();
105
96d37ab5
RD
106 DocDeclStr(
107 static size_t , GetCount(),
d07d2bc9 108 "Return the number of available displays.", "");
96d37ab5
RD
109
110 DocDeclStr(
111 static int , GetFromPoint(const wxPoint& pt),
d07d2bc9
RD
112 "Find the display where the given point lies, return wx.NOT_FOUND if it
113doesn't belong to any display", "");
96d37ab5
RD
114
115 DocStr(GetFromWindow,
d07d2bc9
RD
116 "Find the display where the given window lies, return wx.NOT_FOUND if
117it is not shown at all.", "");
611ac06b 118
96d37ab5 119 static int GetFromWindow(wxWindow *window);
eb3d1416 120
611ac06b 121
96d37ab5 122 DocDeclStr(
3abaf181 123 bool , IsOk() const,
d07d2bc9 124 "Return true if the object was initialized successfully", "");
96d37ab5 125 %pythoncode { def __nonzero__(self): return self.IsOk() }
96d37ab5
RD
126
127 DocDeclStr(
3abaf181 128 wxRect , GetGeometry() const,
d07d2bc9
RD
129 "Returns the bounding rectangle of the display whose index was passed
130to the constructor.", "");
90ab4a35 131
90ab4a35
RD
132 DocDeclStr(
133 wxRect , GetClientArea() const,
611ac06b
DS
134 "Returns the bounding rectangle the client area of the display,
135i.e., without taskbars and such.", "");
96d37ab5
RD
136
137 DocDeclStr(
3abaf181 138 wxString , GetName() const,
d07d2bc9 139 "Returns the display's name. A name is not available on all platforms.", "");
96d37ab5
RD
140
141 DocDeclStr(
142 bool , IsPrimary() const,
611ac06b 143 "Returns True if the display is the primary display. The primary
d07d2bc9 144display is the one whose index is 0.", "");
96d37ab5
RD
145
146
611ac06b
DS
147 %extend
148 {
96d37ab5
RD
149 DocAStr(GetModes,
150 "GetModes(VideoMode mode=DefaultVideoMode) -> [videoMode...]",
d07d2bc9
RD
151 "Enumerate all video modes supported by this display matching the given
152one (in the sense of VideoMode.Match()).
153
154As any mode matches the default value of the argument and there is
155always at least one video mode supported by display, the returned
156array is only empty for the default value of the argument if this
157function is not supported at all on this platform.", "");
611ac06b
DS
158
159 PyObject* GetModes(const wxVideoMode& mode = wxDefaultVideoMode)
160 {
3abaf181 161%#if wxUSE_DISPLAY
96d37ab5
RD
162 PyObject* pyList = NULL;
163 wxArrayVideoModes arr = self->GetModes(mode);
6e6b3557 164 wxPyBlock_t blocked = wxPyBeginBlockThreads();
96d37ab5 165 pyList = PyList_New(0);
611ac06b
DS
166 for (size_t i=0; i < arr.GetCount(); i++)
167 {
96d37ab5
RD
168 wxVideoMode* m = new wxVideoMode(arr.Item(i));
169 PyObject* pyObj = wxPyConstructObject(m, wxT("wxVideoMode"), true);
170 PyList_Append(pyList, pyObj);
ad411ab2 171 Py_DECREF(pyObj);
96d37ab5 172 }
da32eb53 173 wxPyEndBlockThreads(blocked);
96d37ab5 174 return pyList;
3abaf181
RD
175%#else
176 wxPyRaiseNotImplemented();
177 return NULL;
178%#endif
96d37ab5 179 }
611ac06b 180
3abaf181
RD
181 DocStr(GetCurrentMode,
182 "Get the current video mode.", "");
611ac06b
DS
183 wxVideoMode GetCurrentMode() const
184 {
3abaf181
RD
185%#if wxUSE_DISPLAY
186 return self->GetCurrentMode();
187%#else
188 wxPyRaiseNotImplemented();
189 return wxDefaultVideoMode;
190%#endif
191 }
611ac06b 192
96d37ab5 193
3abaf181
RD
194 DocStr(
195 ChangeMode,
196 "Changes the video mode of this display to the mode specified in the
9f8a9f54
RD
197mode parameter.
198
199If wx.DefaultVideoMode is passed in as the mode parameter, the defined
200behaviour is that wx.Display will reset the video mode to the default
201mode used by the display. On Windows, the behavior is normal.
202However, there are differences on other platforms. On Unix variations
203using X11 extensions it should behave as defined, but some
204irregularities may occur.
205
206On wxMac passing in wx.DefaultVideoMode as the mode parameter does
207nothing. This happens because Carbon no longer has access to
208DMUseScreenPrefs, an undocumented function that changed the video mode
209to the system default by using the system's 'scrn' resource.
210
211Returns True if succeeded, False otherwise", "");
611ac06b
DS
212
213 bool ChangeMode(const wxVideoMode& mode = wxDefaultVideoMode)
214 {
3abaf181
RD
215%#if wxUSE_DISPLAY
216 return self->ChangeMode(mode);
217%#else
218 wxPyRaiseNotImplemented();
219 return false;
220%#endif
221 }
96d37ab5 222
96d37ab5 223
3abaf181
RD
224 DocStr(
225 ResetMode,
226 "Restore the default video mode (just a more readable synonym)", "");
611ac06b
DS
227 void ResetMode()
228 {
3abaf181
RD
229%#if wxUSE_DISPLAY
230 self->ResetMode();
231%#else
232 wxPyRaiseNotImplemented();
233%#endif
234 }
611ac06b 235
3abaf181 236 } // end of %extend
0eae5d09
RD
237
238 %property(ClientArea, GetClientArea, doc="See `GetClientArea`");
239 %property(CurrentMode, GetCurrentMode, doc="See `GetCurrentMode`");
240 %property(Geometry, GetGeometry, doc="See `GetGeometry`");
241 %property(Modes, GetModes, doc="See `GetModes`");
242 %property(Name, GetName, doc="See `GetName`");
243
96d37ab5
RD
244};
245
246//---------------------------------------------------------------------------