Added wxDisplay and wxVideoMode

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26149 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2004-03-09 22:01:29 +00:00
parent c6e801d3e6
commit 96d37ab547
7 changed files with 216 additions and 7 deletions

View File

@ -108,6 +108,8 @@ cd bld
%endif
--enable-geometry \
--enable-optimise \
--enable-sound \
--enable-display \
%if %{debug_flag}
--enable-debug_flag \
%endif

View File

@ -59,10 +59,12 @@ place, then do the same for wxPython.
--disable-monolithic \
--enable-debug \
--enable-geometry \
--enable-sound \
--enable-display \
On OS X of course you'll want to use --with-mac instead of
--with-gtk. For GTK2 and unicode add:
--with-gtk. For GTK2 and unicode add::
--enable-gtk2 \
--enable-unicode \

View File

@ -1,7 +1,7 @@
CHANGES.txt for wxPython
=====================================================================
2.5.1.x
2.5.1.1
-------
(See also the MigrationGuide.txt file for details about some of the
@ -78,6 +78,8 @@ it.
Updated wx.lib.calendar with many fixes and enhancements from Joerg
"Adi" Sieker.
Added wx.Display and wx.VideoMode.

View File

@ -107,6 +107,7 @@ WXPORT = 'gtk' # On Linux/Unix there are several ports of wxWindows availabl
BUILD_BASE = "build" # Directory to use for temporary build files.
CONTRIBS_INC = "" # A dir to add as an -I flag when compiling the contribs
# Some MSW build settings
@ -190,7 +191,8 @@ for flag in ['BUILD_GLCANVAS', 'BUILD_OGL', 'BUILD_STC', 'BUILD_XRC',
sys.argv[x] = ''
# String options
for option in ['WX_CONFIG', 'WXDLLVER', 'BUILD_BASE', 'WXPORT', 'SWIG']:
for option in ['WX_CONFIG', 'WXDLLVER', 'BUILD_BASE', 'WXPORT', 'SWIG',
'CONTRIBS_INC']:
for x in range(len(sys.argv)):
if sys.argv[x].find(option) == 0:
pos = sys.argv[x].find('=') + 1
@ -591,7 +593,7 @@ elif os.name == 'posix':
#----------------------------------------------------------------------
else:
raise 'Sorry Charlie, platform not supported...'
raise 'Sorry, platform not supported...'
#----------------------------------------------------------------------
@ -836,7 +838,7 @@ swig_sources = run_swig(['misc.i'], 'src', GENDIR, PKGDIR,
'src/_sound.i', 'src/_mimetype.i',
'src/_artprov.i', 'src/_config.i',
'src/_datetime.i', 'src/_dataobj.i',
'src/_dnd.i',
'src/_dnd.i', 'src/_display.i',
'src/_clipbrd.i',
])
ext = Extension('_misc', swig_sources,
@ -914,8 +916,10 @@ ext = Extension('_wizard', swig_sources,
wxpExtensions.append(ext)
#----------------------------------------------------------------------
if CONTRIBS_INC:
includes += [ CONTRIBS_INC ]
#----------------------------------------------------------------------
# Define the GLCanvas extension module

196
wxPython/src/_display.i Normal file
View File

@ -0,0 +1,196 @@
/////////////////////////////////////////////////////////////////////////////
// Name: _display.i
// Purpose: SWIG interface for wxVideoMode and wxDisplay
//
// Author: Robin Dunn
//
// Created: 9-Mar-2004
// RCS-ID: $Id$
// Copyright: (c) 2004 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// Not a %module
//---------------------------------------------------------------------------
%{
#include "wx/display.h"
%}
//---------------------------------------------------------------------------
%newgroup
DocStr(wxVideoMode,
"A simple struct containing video mode parameters for a display");
struct wxVideoMode
{
wxVideoMode(int width = 0, int height = 0, int depth = 0, int freq = 0);
~wxVideoMode();
DocDeclStr(
bool , Matches(const wxVideoMode& other) const,
"Returns true if this mode matches the other one in the sense that
all non zero fields of the other mode have the same value in this
one (except for refresh which is allowed to have a greater value)");
DocDeclStr(
int , GetWidth() const,
"Returns the screen width in pixels (e.g. 640*480), 0 means
unspecified");
DocDeclStr(
int , GetHeight() const,
"Returns the screen width in pixels (e.g. 640*480), 0 means
unspecified");
DocDeclStr(
int , GetDepth() const,
"Returns the screen's bits per pixel (e.g. 32), 1 is monochrome
and 0 means unspecified/known");
DocDeclStr(
bool , IsOk() const,
"returns true if the object has been initialized");
%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; }
}
// the screen size in pixels (e.g. 640*480), 0 means unspecified
int w, h;
// bits per pixel (e.g. 32), 1 is monochrome and 0 means unspecified/known
int bpp;
// refresh frequency in Hz, 0 means unspecified/unknown
int refresh;
};
%immutable;
const wxVideoMode wxDefaultVideoMode;
%mutable;
//---------------------------------------------------------------------------
DocStr(wxDisplay,
"Represents a display/monitor attached to the system");
class wxDisplay
{
public:
//
DocCtorStr(
wxDisplay(size_t index = 0),
"Set up a Display instance with the specified display. The
displays are numbered from 0 to GetCount() - 1, 0 is always the
primary display and the only one which is always supported");
virtual ~wxDisplay();
DocDeclStr(
static size_t , GetCount(),
"Return the number of available displays.");
DocDeclStr(
static int , GetFromPoint(const wxPoint& pt),
"Find the display where the given point lies, return wx.NOT_FOUND
if it doesn't belong to any display");
DocStr(GetFromWindow,
"Find the display where the given window lies, return wx.NOT_FOUND
if it is not shown at all.");
#ifdef __WXMSW__
static int GetFromWindow(wxWindow *window);
#else
%extend {
static int GetFromWindow(wxWindow *window)
{ wxPyRaiseNotImplemented(); return wxNOT_FOUND; }
}
#endif
DocDeclStr(
virtual bool , IsOk() const,
"Return true if the object was initialized successfully");
%pythoncode { def __nonzero__(self): return self.IsOk() }
DocDeclStr(
virtual wxRect , GetGeometry() const,
"Returns the bounding rectangle of the display whose index was
passed to the constructor.");
DocDeclStr(
virtual wxString , GetName() const,
"Returns the display's name. A name is not available on all platforms.");
DocDeclStr(
bool , IsPrimary() const,
"Returns true if the display is the primary display. The primary
display is the one whose index is 0.");
%extend {
DocAStr(GetModes,
"GetModes(VideoMode mode=DefaultVideoMode) -> [videoMode...]",
"Enumerate all video modes supported by this display matching the
given one (in the sense of VideoMode.Match()).
As any mode matches the default value of the argument and there
is always at least one video mode supported by display, the
returned array is only empty for the default value of the
argument if this function is not supported at all on this
platform.");
PyObject* GetModes(const wxVideoMode& mode = wxDefaultVideoMode) {
PyObject* pyList = NULL;
wxArrayVideoModes arr = self->GetModes(mode);
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);
}
wxPyEndBlockThreads();
return pyList;
}
}
DocDeclStr(
virtual wxVideoMode , GetCurrentMode() const,
"Get the current video mode.");
DocDeclStr(
virtual bool , ChangeMode(const wxVideoMode& mode = wxDefaultVideoMode),
"Change current mode, return true if succeeded, false otherwise");
DocDeclStr(
void , ResetMode(),
"Restore the default video mode (just a more readable synonym)");
};
//---------------------------------------------------------------------------

View File

@ -336,5 +336,8 @@
%rename(Clipboard) wxClipboard;
%rename(TheClipboard) wxTheClipboard;
%rename(ClipboardLocker) wxClipboardLocker;
%rename(VideoMode) wxVideoMode;
%rename(DefaultVideoMode) wxDefaultVideoMode;
%rename(Display) wxDisplay;
#endif

View File

@ -50,6 +50,6 @@ MAKE_CONST_WXSTRING_NOSWIG(EmptyString);
%include _dataobj.i
%include _dnd.i
%include _clipbrd.i
%include _display.i
//---------------------------------------------------------------------------