X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7bf854050fd5c04469d4334524433a31d4ba997a..4cd9591aab117574f7d0af749d0d1f774b9d7945:/utils/wxPython/src/misc.i diff --git a/utils/wxPython/src/misc.i b/utils/wxPython/src/misc.i index 8f32ad8800..984a802bd8 100644 --- a/utils/wxPython/src/misc.i +++ b/utils/wxPython/src/misc.i @@ -1,5 +1,3 @@ -%module misc -%{ ///////////////////////////////////////////////////////////////////////////// // Name: misc.i // Purpose: Definitions of miscelaneous functions and classes @@ -12,9 +10,12 @@ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// +%module misc +%{ #include "helpers.h" #include +#include %} //---------------------------------------------------------------------- @@ -31,23 +32,30 @@ class wxSize { public: + long x; + long y; %name(width) long x; %name(height)long y; wxSize(long w=0, long h=0); ~wxSize(); void Set(long w, long h); + long GetX(); + long GetY(); %name(GetWidth) long GetX(); %name(GetHeight)long GetY(); %addmethods { - PyObject* __str__() { + PyObject* asTuple() { PyObject* tup = PyTuple_New(2); PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); return tup; } } + %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())" + %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())" + }; //--------------------------------------------------------------------------- @@ -72,13 +80,15 @@ public: self->x = x; self->y = y; } - PyObject* __str__() { + PyObject* asTuple() { PyObject* tup = PyTuple_New(2); PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); return tup; } } + %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())" + %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())" }; //--------------------------------------------------------------------------- @@ -108,6 +118,19 @@ public: long GetRight(); long x, y, width, height; + + %addmethods { + PyObject* asTuple() { + PyObject* tup = PyTuple_New(4); + PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); + PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); + PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->width)); + PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->height)); + return tup; + } + } + %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())" + %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())" }; @@ -115,7 +138,7 @@ public: //--------------------------------------------------------------------------- // Dialog Functions -char* wxFileSelector(char* message, +wxString wxFileSelector(char* message, char* default_path = NULL, char* default_filename = NULL, char* default_extension = NULL, @@ -165,13 +188,16 @@ int wxMessageBox(const wxString& message, bool wxColourDisplay(); int wxDisplayDepth(); -void wxSetCursor(wxCursor *cursor); +void wxSetCursor(wxCursor& cursor); //--------------------------------------------------------------------------- // Miscellaneous functions -long NewId(); -void RegisterId(long id); +long wxNewId(); +void wxRegisterId(long id); +%name(NewId) long wxNewId(); +%name(RegisterId) void wxRegisterId(long id); + void wxBeginBusyCursor(wxCursor *cursor = wxHOURGLASS_CURSOR); void wxBell(); void wxDisplaySize(int *OUTPUT, int *OUTPUT); @@ -179,17 +205,23 @@ void wxEndBusyCursor(); long wxExecute(const wxString& command, bool sync = FALSE); wxWindow * wxFindWindowByLabel(const wxString& label, wxWindow *parent=NULL); wxWindow * wxFindWindowByName(const wxString& name, wxWindow *parent=NULL); +#ifdef __WXMSW__ wxWindow * wxGetActiveWindow(); long wxGetElapsedTime(bool resetTimer = TRUE); long wxGetFreeMemory(); +#endif void wxGetMousePosition(int* OUTPUT, int* OUTPUT); bool wxIsBusy(); wxString wxNow(); +#ifdef __WXMSW__ bool wxShell(const wxString& command = wxPyEmptyStr); void wxStartTimer(); +int wxGetOsVersion(int *OUTPUT, int *OUTPUT); +#endif + bool wxYield(); +bool wxSafeYield(); -int wxGetOsVersion(int *OUTPUT, int *OUTPUT); %inline %{ char* wxGetResource(char *section, char *entry, char *file = NULL) { char * retval; @@ -203,8 +235,8 @@ int wxGetOsVersion(int *OUTPUT, int *OUTPUT); bool wxResourceAddIdentifier(char *name, int value); void wxResourceClear(void); -wxBitmap * wxResourceCreateBitmap(char *resource); -wxIcon * wxResourceCreateIcon(char *resource); +wxBitmap wxResourceCreateBitmap(char *resource); +wxIcon wxResourceCreateIcon(char *resource); wxMenuBar * wxResourceCreateMenuBar(char *resource); int wxResourceGetIdentifier(char *name); bool wxResourceParseData(char *resource, wxResourceTable *table = NULL); @@ -246,9 +278,9 @@ public: void Above(wxWindow *otherWin, int margin=0); void Absolute(int value); - void AsIs(void); + void AsIs(); void Below(wxWindow *otherWin, int margin=0); - void Unconstrained(void); + void Unconstrained(); void LeftOf(wxWindow *otherWin, int margin=0); void PercentOf(wxWindow *otherWin, wxEdge edge, int percent); void RightOf(wxWindow *otherWin, int margin=0); @@ -274,6 +306,60 @@ public: } +//--------------------------------------------------------------------------- +// Regions, etc. + +enum wxRegionContain { + wxOutRegion, wxPartRegion, wxInRegion +}; + + +class wxRegion { +public: + wxRegion(); + ~wxRegion(); + + void Clear(); + wxRegionContain Contains(long x, long y); + %name(ContainsPoint)wxRegionContain Contains(const wxPoint& pt); + %name(ContainsRect)wxRegionContain Contains(const wxRect& rect); + + wxRect GetBox(); + bool Intersect(const wxRect& rect); +#ifdef __WXMSW__ + bool IsEmpty(); +#endif + bool Subtract(const wxRect& rect); + bool Union(const wxRect& rect); + bool Xor(const wxRect& rect); +}; + + + +class wxRegionIterator { +public: + wxRegionIterator(const wxRegion& region); + ~wxRegionIterator(); + + long GetX(); + long GetY(); + long GetW(); + long GetWidth(); + long GetH(); + long GetHeight(); + wxRect GetRect(); + bool HaveRects(); + void Reset(); + + %addmethods { + void Next() { + (*self) ++; + } + }; +}; + + + //--------------------------------------------------------------------------- // Accelerator Entry and Table @@ -297,10 +383,124 @@ public: }; +//--------------------------------------------------------------------------- +// wxToolTip + +class wxToolTip { +public: + wxToolTip(const wxString &tip); + + void SetTip(const wxString& tip); + wxString GetTip(); + // *** Not in the "public" interface void SetWindow(wxWindow *win); + wxWindow *GetWindow(); +}; + + +%inline %{ + void wxToolTip_Enable(bool flag) { + wxToolTip::Enable(flag); + } + + void wxToolTip_SetDelay(long milliseconds) { + wxToolTip::SetDelay(milliseconds); + } +%} + //--------------------------------------------------------------------------- ///////////////////////////////////////////////////////////////////////////// // // $Log$ +// Revision 1.14 1999/04/30 03:29:19 RD +// wxPython 2.0b9, first phase (win32) +// Added gobs of stuff, see wxPython/README.txt for details +// +// Revision 1.13.4.1 1999/03/27 23:29:15 RD +// +// wxPython 2.0b8 +// Python thread support +// various minor additions +// various minor fixes +// +// Revision 1.13 1999/02/25 07:08:34 RD +// +// wxPython version 2.0b5 +// +// Revision 1.12 1999/02/20 10:02:37 RD +// +// Changes needed to enable wxGTK compatibility. +// +// Revision 1.11 1999/02/20 09:03:01 RD +// Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a +// window handle. If you can get the window handle into the python code, +// it should just work... More news on this later. +// +// Added wxImageList, wxToolTip. +// +// Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the +// wxRegConfig class. +// +// As usual, some bug fixes, tweaks, etc. +// +// Revision 1.10 1999/01/30 07:30:14 RD +// +// Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. +// +// Various cleanup, tweaks, minor additions, etc. to maintain +// compatibility with the current wxWindows. +// +// Revision 1.9 1998/12/16 22:10:55 RD +// +// Tweaks needed to be able to build wxPython with wxGTK. +// +// Revision 1.8 1998/12/15 20:41:22 RD +// Changed the import semantics from "from wxPython import *" to "from +// wxPython.wx import *" This is for people who are worried about +// namespace pollution, they can use "from wxPython import wx" and then +// prefix all the wxPython identifiers with "wx." +// +// Added wxTaskbarIcon for wxMSW. +// +// Made the events work for wxGrid. +// +// Added wxConfig. +// +// Added wxMiniFrame for wxGTK, (untested.) +// +// Changed many of the args and return values that were pointers to gdi +// objects to references to reflect changes in the wxWindows API. +// +// Other assorted fixes and additions. +// +// Revision 1.7 1998/11/25 08:45:27 RD +// +// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon +// Added events for wxGrid +// Other various fixes and additions +// +// Revision 1.6 1998/11/15 23:03:46 RD +// Removing some ifdef's for wxGTK +// +// Revision 1.5 1998/10/20 06:43:59 RD +// New wxTreeCtrl wrappers (untested) +// some changes in helpers +// etc. +// +// Revision 1.4 1998/08/18 19:48:19 RD +// more wxGTK compatibility things. +// +// It builds now but there are serious runtime problems... +// +// Revision 1.3 1998/08/16 04:31:10 RD +// More wxGTK work. +// +// Revision 1.2 1998/08/15 07:36:41 RD +// - Moved the header in the .i files out of the code that gets put into +// the .cpp files. It caused CVS conflicts because of the RCS ID being +// different each time. +// +// - A few minor fixes. +// // Revision 1.1 1998/08/09 08:25:51 RD // Initial version //