]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/src/misc.i
fixes for GetReturnCode/SetReturnCode
[wxWidgets.git] / utils / wxPython / src / misc.i
index 8f32ad8800c810277c4bb453b4c3b50a00abba20..984a802bd8e0bc0374a57e32bcc8d1420e018ef9 100644 (file)
@@ -1,5 +1,3 @@
-%module misc
-%{
 /////////////////////////////////////////////////////////////////////////////
 // Name:        misc.i
 // Purpose:     Definitions of miscelaneous functions and classes
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+%module misc
 
+%{
 #include "helpers.h"
 #include <wx/resource.h>
+#include <wx/tooltip.h>
 %}
 
 //----------------------------------------------------------------------
 
 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(wxCursorcursor);
 
 //---------------------------------------------------------------------------
 // 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
 //