#include "helpers.h"
#include <wx/resource.h>
#include <wx/tooltip.h>
+#include <wx/busyinfo.h>
%}
//----------------------------------------------------------------------
double y;
wxRealPoint(double x=0.0, double y=0.0);
~wxRealPoint();
+
+ %addmethods {
+ void Set(double x, double y) {
+ self->x = x;
+ self->y = y;
+ }
+ PyObject* asTuple() {
+ PyObject* tup = PyTuple_New(2);
+ PyTuple_SET_ITEM(tup, 0, PyFloat_FromDouble(self->x));
+ PyTuple_SET_ITEM(tup, 1, PyFloat_FromDouble(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 wxPoint {
public:
long x;
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();
+
+ int GetX();
+ void SetX(int X);
+ int GetY();
+ void SetY(int Y);
+ int GetWidth();
+ void SetWidth(int w);
+ int GetHeight();
+ void SetHeight(int h);
+
- 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();
+ int GetLeft();
+ int GetTop();
+ int GetBottom();
+ int GetRight();
- wxPoint GetPosition();
- wxSize GetSize();
+ void SetLeft(int left);
+ void SetRight(int right);
+ void SetTop(int top);
+ void SetBottom(int bottom);
- long GetLeft();
- long GetTop();
- long GetBottom();
- long GetRight();
- long x, y, width, height;
+ int 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));
+ PyTuple_SET_ITEM(tup, 2, PyInt_FromLong(self->width));
+ PyTuple_SET_ITEM(tup, 3, 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())"
+ %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);
-//---------------------------------------------------------------------------
-// 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
%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();
}
%}
-//---------------------------------------------------------------------------
-// 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);
//----------------------------------------------------------------------
public:
wxPyTimer(PyObject* notify);
~wxPyTimer();
- int Interval();
+ int GetInterval();
+ bool IsOneShot();
void Start(int milliseconds=-1, int oneShot=FALSE);
void Stop();
};
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);
};
class wxAcceleratorEntry {
public:
wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0);
- //~wxAcceleratorEntry(); *** ?
+ ~wxAcceleratorEntry();
void Set(int flags, int keyCode, int Cmd);
int GetFlags();
public:
// Can also accept a list of 3-tuples
wxAcceleratorTable(int LCOUNT, wxAcceleratorEntry* LIST);
- // ~wxAcceleratorEntry(); *** ?
+ ~wxAcceleratorTable();
};
//---------------------------------------------------------------------------
+
+class wxBusyInfo {
+public:
+ wxBusyInfo(const wxString& message);
+ ~wxBusyInfo();
+};
+
+
+
+//---------------------------------------------------------------------------
+
+