///////////////////////////////////////////////////////////////////////////// // Name: misc.i // Purpose: Definitions of miscelaneous functions and classes // // Author: Robin Dunn // // Created: 7/3/97 // RCS-ID: $Id$ // Copyright: (c) 1998 by Total Control Software // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// %module misc %{ #include "helpers.h" #include #include %} //---------------------------------------------------------------------- %include typemaps.i %include my_typemaps.i // Import some definitions of other classes, etc. %import _defs.i //--------------------------------------------------------------------------- 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* 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())" }; //--------------------------------------------------------------------------- class wxRealPoint { public: double x; double y; wxRealPoint(double x=0.0, double y=0.0); ~wxRealPoint(); }; class wxPoint { public: long x; long y; wxPoint(long x=0, long y=0); ~wxPoint(); %addmethods { void Set(long x, long y) { self->x = x; self->y = y; } 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())" }; //--------------------------------------------------------------------------- class wxRect { public: wxRect(long x=0, long y=0, long w=0, long h=0); // TODO: do this one too... wxRect(const wxPoint& pos, const wxSize& size); ~wxRect(); long GetX(); void SetX(long X); long GetY(); void SetY(long Y); long GetWidth(); void SetWidth(long w); long GetHeight(); void SetHeight(long h); wxPoint GetPosition(); wxSize GetSize(); long GetLeft(); long GetTop(); long GetBottom(); 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())" }; //--------------------------------------------------------------------------- // Dialog Functions wxString wxFileSelector(char* message, char* default_path = NULL, char* default_filename = NULL, char* default_extension = NULL, char* wildcard = "*.*", int flags = 0, wxWindow *parent = NULL, int x = -1, int y = -1); wxString wxGetTextFromUser(const wxString& message, const wxString& caption = wxPyEmptyStr, const wxString& default_value = wxPyEmptyStr, wxWindow *parent = NULL, int x = -1, int y = -1, bool centre = TRUE); // TODO: Need to custom wrap this one... // int wxGetMultipleChoice(char* message, char* caption, // int LCOUNT, char** LIST, // int nsel, int *selection, // wxWindow *parent = NULL, int x = -1, int y = -1, // bool centre = TRUE, int width=150, int height=200); wxString wxGetSingleChoice(const wxString& message, const wxString& caption, int LCOUNT, wxString* LIST, wxWindow *parent = NULL, int x = -1, int y = -1, bool centre = TRUE, int width=150, int height=200); int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption, int LCOUNT, wxString* LIST, wxWindow *parent = NULL, int x = -1, int y = -1, bool centre = TRUE, int width=150, int height=200); int wxMessageBox(const wxString& message, const wxString& caption = wxPyEmptyStr, int style = wxOK | wxCENTRE, wxWindow *parent = NULL, int x = -1, int y = -1); //--------------------------------------------------------------------------- // GDI Functions bool wxColourDisplay(); int wxDisplayDepth(); void wxSetCursor(wxCursor& cursor); //--------------------------------------------------------------------------- // Miscellaneous functions long NewId(); void RegisterId(long id); void wxBeginBusyCursor(wxCursor *cursor = wxHOURGLASS_CURSOR); void wxBell(); void wxDisplaySize(int *OUTPUT, int *OUTPUT); 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(); %inline %{ char* wxGetResource(char *section, char *entry, char *file = NULL) { char * retval; wxGetResource(section, entry, &retval, file); return retval; } %} //--------------------------------------------------------------------------- // Resource System bool wxResourceAddIdentifier(char *name, int value); void wxResourceClear(void); wxBitmap wxResourceCreateBitmap(char *resource); wxIcon wxResourceCreateIcon(char *resource); wxMenuBar * wxResourceCreateMenuBar(char *resource); int wxResourceGetIdentifier(char *name); bool wxResourceParseData(char *resource, wxResourceTable *table = NULL); bool wxResourceParseFile(char *filename, wxResourceTable *table = NULL); bool wxResourceParseString(char *resource, wxResourceTable *table = NULL); //---------------------------------------------------------------------- class wxPyTimer { public: wxPyTimer(PyObject* notify); ~wxPyTimer(); int Interval(); void Start(int milliseconds=-1, int oneShot=FALSE); void Stop(); }; //--------------------------------------------------------------------------- enum wxEdge { wxLeft, wxTop, wxRight, wxBottom, wxWidth, wxHeight, wxCentre, wxCenter = wxCentre, wxCentreX, wxCentreY }; enum wxRelationship { wxUnconstrained = 0, wxAsIs, wxPercentOf, wxAbove, wxBelow, wxLeftOf, wxRightOf, wxSameAs, wxAbsolute }; class wxIndividualLayoutConstraint { public: // wxIndividualLayoutConstraint(); // ~wxIndividualLayoutConstraint(); void Above(wxWindow *otherWin, int margin=0); void Absolute(int value); void AsIs(); void Below(wxWindow *otherWin, int margin=0); void Unconstrained(); void LeftOf(wxWindow *otherWin, int margin=0); void PercentOf(wxWindow *otherWin, wxEdge edge, int percent); void RightOf(wxWindow *otherWin, int margin=0); void SameAs(wxWindow *otherWin, wxEdge edge, int margin=0); void Set(wxRelationship rel, wxWindow *otherWin, wxEdge otherEdge, int value=0, int margin=0); }; class wxLayoutConstraints { public: wxLayoutConstraints(); %readonly wxIndividualLayoutConstraint bottom; wxIndividualLayoutConstraint centreX; wxIndividualLayoutConstraint centreY; wxIndividualLayoutConstraint height; wxIndividualLayoutConstraint left; wxIndividualLayoutConstraint right; wxIndividualLayoutConstraint top; wxIndividualLayoutConstraint width; %readwrite } //--------------------------------------------------------------------------- // 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 class wxAcceleratorEntry { public: wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0); //~wxAcceleratorEntry(); *** ? void Set(int flags, int keyCode, int Cmd); int GetFlags(); int GetKeyCode(); int GetCommand(); }; class wxAcceleratorTable { public: // Can also accept a list of 3-tuples wxAcceleratorTable(int LCOUNT, wxAcceleratorEntry* LIST); // ~wxAcceleratorEntry(); *** ? }; //--------------------------------------------------------------------------- // 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.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 // //