]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/src/misc.i
it is now possible to add custom buttons into wxHtmlHelpFrame's toolbar
[wxWidgets.git] / utils / wxPython / src / misc.i
index 589e506322ec3d33cf79d5f1fcb93fbbe14417cf..b458c4535c4c5182c1c0aad8bd05533aa0ed83a2 100644 (file)
@@ -16,6 +16,7 @@
 #include "helpers.h"
 #include <wx/resource.h>
 #include <wx/tooltip.h>
+#include <wx/busyinfo.h>
 %}
 
 //----------------------------------------------------------------------
@@ -113,29 +114,35 @@ public:
 
 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();
+    wxRect(int x=0, int y=0, int w=0, int 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);
+    int  GetX();
+    void SetX(int X);
+    int  GetY();
+    void SetY(int Y);
+    int  GetWidth();
+    void SetWidth(int w);
+    int  GetHeight();
+    void SetHeight(int h);
 
 
-   wxPoint GetPosition();
-   wxSize GetSize();
+    wxPoint GetPosition();
+    wxSize GetSize();
 
-   long  GetLeft();
-   long  GetTop();
-   long  GetBottom();
-   long  GetRight();
+    int  GetLeft();
+    int  GetTop();
+    int  GetBottom();
+    int  GetRight();
 
-   long x, y, width, height;
+    void SetLeft(int left);
+    void SetRight(int right);
+    void SetTop(int top);
+    void SetBottom(int bottom);
+
+
+    int x, y, width, height;
 
     %addmethods {
         PyObject* asTuple() {
@@ -149,73 +156,87 @@ public:
     }
     %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())"
     %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())"
+    %pragma(python) addtoclass = "
+    # override the __getattr__ made by SWIG
+    def __getattr__(self, name):
+        d = {
+            'x' : miscc.wxRect_x_get,
+            'y' : miscc.wxRect_y_get,
+            'width' : miscc.wxRect_width_get,
+            'height' : miscc.wxRect_height_get,
+            'top' : miscc.wxRect_GetTop,
+            'bottom' : miscc.wxRect_GetBottom,
+            'left' : miscc.wxRect_GetLeft,
+            'right' : miscc.wxRect_GetRight,
+            }
+        try:
+            func = d[name]
+        except KeyError:
+            raise AttributeError,name
+        return func(self)
+
+    # and also the __setattr__
+    def __setattr__(self, name, value):
+        d = {
+            'x' : miscc.wxRect_x_set,
+            'y' : miscc.wxRect_y_set,
+            'width' : miscc.wxRect_width_set,
+            'height' : miscc.wxRect_height_set,
+            'top' : miscc.wxRect_SetTop,
+            'bottom' : miscc.wxRect_SetBottom,
+            'left' : miscc.wxRect_SetLeft,
+            'right' : miscc.wxRect_SetRight,
+            }
+        try:
+            func = d[name]
+        except KeyError:
+            self.__dict__[name] = value
+            return
+        func(self, value)
+    "
+
 };
 
 
+//  %inline %{
+//      bool wxIntersectRect(wxRect* dest, wxRect* r1, wxRect* r2) {
+//          wxRegion reg1(*r1);
+//          wxRegion reg2(*r2);
+//          bool     success;
+//          *dest = wxRect(0,0,0,0);
+//          success = reg1.Intersect(reg2);
+//          if (success) {
+//              *dest = reg1.GetBox();
+//              return *dest != wxRect(0,0,0,0);
+//          }
+//          return FALSE;
+//      }
+//  %}
 
-//---------------------------------------------------------------------------
-// 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);
-
-long wxGetNumberFromUser(const wxString& message,
-                         const wxString& prompt,
-                         const wxString& caption,
-                         long value,
-                         long min = 0, long max = 100,
-                         wxWindow *parent = NULL,
-                         const wxPoint& pos = wxPyDefaultPosition);
 
-//---------------------------------------------------------------------------
-// GDI Functions
+%inline %{
+    PyObject* wxIntersectRect(wxRect* r1, wxRect* r2) {
+        wxRegion  reg1(*r1);
+        wxRegion  reg2(*r2);
+        wxRect    dest(0,0,0,0);
+        PyObject* obj;
+
+        reg1.Intersect(reg2);
+        dest = reg1.GetBox();
+
+        if (dest != wxRect(0,0,0,0)) {
+            bool doSave = wxPyRestoreThread();
+            wxRect* newRect = new wxRect(dest);
+            obj = wxPyConstructObject((void*)newRect, "wxRect");
+            PyObject_SetAttrString(obj, "thisown", PyInt_FromLong(1));
+            wxPySaveThread(doSave);
+            return obj;
+        }
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+%}
 
-bool wxColourDisplay();
-int wxDisplayDepth();
-void wxSetCursor(wxCursor& cursor);
 
 //---------------------------------------------------------------------------
 // Miscellaneous functions
@@ -225,24 +246,20 @@ 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);
 void wxEndBusyCursor();
-long wxExecute(const wxString& command, bool sync = FALSE);
-#ifdef __WXMSW__
-wxWindow * wxGetActiveWindow();
+long wxExecute(const wxString& command, int sync = FALSE);
 long wxGetElapsedTime(bool resetTimer = TRUE);
+#ifdef __WXMSW__
 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
 
 void wxSleep(int secs);
 bool wxYield();
@@ -257,20 +274,7 @@ void wxEnableTopLevelWindows(bool enable);
     }
 %}
 
-//---------------------------------------------------------------------------
-// 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);
-
-
+wxString wxStripMenuCodes(const wxString& in);
 
 //----------------------------------------------------------------------
 
@@ -278,7 +282,8 @@ class wxPyTimer {
 public:
     wxPyTimer(PyObject* notify);
     ~wxPyTimer();
-    int Interval();
+    int GetInterval();
+    bool IsOneShot();
     void Start(int milliseconds=-1, int oneShot=FALSE);
     void Stop();
 };
@@ -350,15 +355,27 @@ public:
     wxRegionContain Contains(long x, long y);
     %name(ContainsPoint)wxRegionContain Contains(const wxPoint& pt);
     %name(ContainsRect)wxRegionContain Contains(const wxRect& rect);
+    %name(ContainsRectDim)wxRegionContain Contains(long x, long y, long w, long h);
 
     wxRect GetBox();
-    bool Intersect(const wxRect& rect);
-#ifdef __WXMSW__
+
+    bool Intersect(long x, long y, long width, long height);
+    %name(IntersectRect)bool Intersect(const wxRect& rect);
+    %name(IntersectRegion)bool Intersect(const wxRegion& region);
+
     bool IsEmpty();
-#endif
-    bool Subtract(const wxRect& rect);
-    bool Union(const wxRect& rect);
-    bool Xor(const wxRect& rect);
+
+    bool Union(long x, long y, long width, long height);
+    %name(UnionRect)bool Union(const wxRect& rect);
+    %name(UnionRegion)bool Union(const wxRegion& region);
+
+    bool Subtract(long x, long y, long width, long height);
+    %name(SubtractRect)bool Subtract(const wxRect& rect);
+    %name(SubtractRegion)bool Subtract(const wxRegion& region);
+
+    bool Xor(long x, long y, long width, long height);
+    %name(XorRect)bool Xor(const wxRect& rect);
+    %name(XorRegion)bool Xor(const wxRegion& region);
 };
 
 
@@ -412,117 +429,14 @@ public:
 
 //---------------------------------------------------------------------------
 
-enum {
-    wxSYS_WHITE_BRUSH,
-    wxSYS_LTGRAY_BRUSH,
-    wxSYS_GRAY_BRUSH,
-    wxSYS_DKGRAY_BRUSH,
-    wxSYS_BLACK_BRUSH,
-    wxSYS_NULL_BRUSH,
-    wxSYS_HOLLOW_BRUSH,
-    wxSYS_WHITE_PEN,
-    wxSYS_BLACK_PEN,
-    wxSYS_NULL_PEN,
-    wxSYS_OEM_FIXED_FONT,
-    wxSYS_ANSI_FIXED_FONT,
-    wxSYS_ANSI_VAR_FONT,
-    wxSYS_SYSTEM_FONT,
-    wxSYS_DEVICE_DEFAULT_FONT,
-    wxSYS_DEFAULT_PALETTE,
-    wxSYS_SYSTEM_FIXED_FONT,
-    wxSYS_DEFAULT_GUI_FONT,
-
-    wxSYS_COLOUR_SCROLLBAR,
-    wxSYS_COLOUR_BACKGROUND,
-    wxSYS_COLOUR_ACTIVECAPTION,
-    wxSYS_COLOUR_INACTIVECAPTION,
-    wxSYS_COLOUR_MENU,
-    wxSYS_COLOUR_WINDOW,
-    wxSYS_COLOUR_WINDOWFRAME,
-    wxSYS_COLOUR_MENUTEXT,
-    wxSYS_COLOUR_WINDOWTEXT,
-    wxSYS_COLOUR_CAPTIONTEXT,
-    wxSYS_COLOUR_ACTIVEBORDER,
-    wxSYS_COLOUR_INACTIVEBORDER,
-    wxSYS_COLOUR_APPWORKSPACE,
-    wxSYS_COLOUR_HIGHLIGHT,
-    wxSYS_COLOUR_HIGHLIGHTTEXT,
-    wxSYS_COLOUR_BTNFACE,
-    wxSYS_COLOUR_BTNSHADOW,
-    wxSYS_COLOUR_GRAYTEXT,
-    wxSYS_COLOUR_BTNTEXT,
-    wxSYS_COLOUR_INACTIVECAPTIONTEXT,
-    wxSYS_COLOUR_BTNHIGHLIGHT,
-
-    wxSYS_COLOUR_3DDKSHADOW,
-    wxSYS_COLOUR_3DLIGHT,
-    wxSYS_COLOUR_INFOTEXT,
-    wxSYS_COLOUR_INFOBK,
-
-    wxSYS_COLOUR_DESKTOP,
-    wxSYS_COLOUR_3DFACE,
-    wxSYS_COLOUR_3DSHADOW,
-    wxSYS_COLOUR_3DHIGHLIGHT,
-    wxSYS_COLOUR_3DHILIGHT,
-    wxSYS_COLOUR_BTNHILIGHT,
-
-    wxSYS_MOUSE_BUTTONS,
-    wxSYS_BORDER_X,
-    wxSYS_BORDER_Y,
-    wxSYS_CURSOR_X,
-    wxSYS_CURSOR_Y,
-    wxSYS_DCLICK_X,
-    wxSYS_DCLICK_Y,
-    wxSYS_DRAG_X,
-    wxSYS_DRAG_Y,
-    wxSYS_EDGE_X,
-    wxSYS_EDGE_Y,
-    wxSYS_HSCROLL_ARROW_X,
-    wxSYS_HSCROLL_ARROW_Y,
-    wxSYS_HTHUMB_X,
-    wxSYS_ICON_X,
-    wxSYS_ICON_Y,
-    wxSYS_ICONSPACING_X,
-    wxSYS_ICONSPACING_Y,
-    wxSYS_WINDOWMIN_X,
-    wxSYS_WINDOWMIN_Y,
-    wxSYS_SCREEN_X,
-    wxSYS_SCREEN_Y,
-    wxSYS_FRAMESIZE_X,
-    wxSYS_FRAMESIZE_Y,
-    wxSYS_SMALLICON_X,
-    wxSYS_SMALLICON_Y,
-    wxSYS_HSCROLL_Y,
-    wxSYS_VSCROLL_X,
-    wxSYS_VSCROLL_ARROW_X,
-    wxSYS_VSCROLL_ARROW_Y,
-    wxSYS_VTHUMB_Y,
-    wxSYS_CAPTION_Y,
-    wxSYS_MENU_Y,
-    wxSYS_NETWORK_PRESENT,
-    wxSYS_PENWINDOWS_PRESENT,
-    wxSYS_SHOW_SOUNDS,
-    wxSYS_SWAP_BUTTONS,
+class wxBusyInfo {
+public:
+    wxBusyInfo(const wxString& message);
+    ~wxBusyInfo();
 };
 
 
 
-%inline %{
-
-    wxColour wxSystemSettings_GetSystemColour(int index) {
-        return wxSystemSettings::GetSystemColour(index);
-    }
-
-    wxFont wxSystemSettings_GetSystemFont(int index) {
-        return wxSystemSettings::GetSystemFont(index);
-    }
-
-    int wxSystemSettings_GetSystemMetric(int index) {
-        return wxSystemSettings::GetSystemMetric(index);
-    }
-%}
-
-//---------------------------------------------------------------------------
 //---------------------------------------------------------------------------