//---------------------------------------------------------------------------
%{
-#include "wx/display.h"
+#include <wx/display.h>
%}
%pythoncode { def __nonzero__(self): return self.IsOk() }
%extend {
- bool __eq__(const wxVideoMode* other) { return other ? (*self == *other) : False; }
- bool __ne__(const wxVideoMode* other) { return other ? (*self != *other) : True; }
+ bool __eq__(const wxVideoMode* other) { return other ? (*self == *other) : false; }
+ bool __ne__(const wxVideoMode* other) { return other ? (*self != *other) : true; }
}
//---------------------------------------------------------------------------
-DocStr(wxDisplay,
- "Represents a display/monitor attached to the system", "");
+%{
+// dummy version of wxDisplay for when it is not enabled in the wxWidgets build
+#if !wxUSE_DISPLAY
+#include <wx/dynarray.h>
+#include <wx/vidmode.h>
+
+ WX_DECLARE_OBJARRAY(wxVideoMode, wxArrayVideoModes);
+#include "wx/arrimpl.cpp"
+WX_DEFINE_OBJARRAY(wxArrayVideoModes);
+const wxVideoMode wxDefaultVideoMode;
+
+class wxDisplay
+{
+public:
+ wxDisplay(size_t index = 0) { wxPyRaiseNotImplemented(); }
+ ~wxDisplay() {}
+
+ static size_t GetCount()
+ { wxPyRaiseNotImplemented(); return 0; }
+
+ static int GetFromPoint(const wxPoint& pt)
+ { wxPyRaiseNotImplemented(); return wxNOT_FOUND; }
+ static int GetFromWindow(wxWindow *window)
+ { wxPyRaiseNotImplemented(); return wxNOT_FOUND; }
+
+ virtual bool IsOk() const { return false; }
+ virtual wxRect GetGeometry() const { wxRect r; return r; }
+ virtual wxString GetName() const { return wxEmptyString; }
+ bool IsPrimary() const { return false; }
+
+ wxArrayVideoModes GetModes(const wxVideoMode& mode = wxDefaultVideoMode)
+ { wxArrayVideoModes a; return a; }
+ virtual wxVideoMode GetCurrentMode() const
+ { return wxDefaultVideoMode; }
+
+ virtual bool ChangeMode(const wxVideoMode& mode = wxDefaultVideoMode)
+ { return false; }
+
+ void ResetMode() {}
+};
+#endif
+%}
+
+
+
+DocStr(wxDisplay,
+ "Represents a display/monitor attached to the system", "");
class wxDisplay
{
public:
PyObject* GetModes(const wxVideoMode& mode = wxDefaultVideoMode) {
PyObject* pyList = NULL;
wxArrayVideoModes arr = self->GetModes(mode);
- bool blocked = wxPyBeginBlockThreads();
+ wxPyBlock_t blocked = wxPyBeginBlockThreads();
pyList = PyList_New(0);
for (int i=0; i < arr.GetCount(); i++) {
wxVideoMode* m = new wxVideoMode(arr.Item(i));
PyObject* pyObj = wxPyConstructObject(m, wxT("wxVideoMode"), true);
PyList_Append(pyList, pyObj);
+ Py_DECREF(pyObj);
}
wxPyEndBlockThreads(blocked);
return pyList;
DocDeclStr(
virtual bool , ChangeMode(const wxVideoMode& mode = wxDefaultVideoMode),
- "Change current mode, return true if succeeded, false otherwise", "");
+ "Changes the video mode of this display to the mode specified in the
+mode parameter.
+
+If wx.DefaultVideoMode is passed in as the mode parameter, the defined
+behaviour is that wx.Display will reset the video mode to the default
+mode used by the display. On Windows, the behavior is normal.
+However, there are differences on other platforms. On Unix variations
+using X11 extensions it should behave as defined, but some
+irregularities may occur.
+
+On wxMac passing in wx.DefaultVideoMode as the mode parameter does
+nothing. This happens because Carbon no longer has access to
+DMUseScreenPrefs, an undocumented function that changed the video mode
+to the system default by using the system's 'scrn' resource.
+
+Returns True if succeeded, False otherwise", "");
DocDeclStr(