//---------------------------------------------------------------------------
+%{
+ // Put some wx default wxChar* values into wxStrings.
+ static const wxString wxPyEmptyString(wxT(""));
+%}
+//---------------------------------------------------------------------------
+
+
+class wxObject {
+public:
+ %addmethods {
+ wxString GetClassName() {
+ return self->GetClassInfo()->GetClassName();
+ }
+
+ void Destroy() {
+ delete self;
+ }
+ }
+};
+
+//---------------------------------------------------------------------------
class wxSize {
public:
%addmethods {
PyObject* asTuple() {
+ wxPyBeginBlockThreads();
PyObject* tup = PyTuple_New(2);
PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x));
PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y));
+ wxPyEndBlockThreads();
return tup;
}
+
+ int __cmp__(const wxSize* sz) {
+ if (! sz) return 1;
+ if (*self == *sz) return 0;
+ return -1;
+ }
}
- %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())"
- %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())"
+
+ %pragma(python) addtoclass = "
+ def __str__(self): return str(self.asTuple())
+ def __repr__(self): return str(self.asTuple())
+ def __len__(self): return len(self.asTuple())
+ def __getitem__(self, index): return self.asTuple()[index]
+ def __setitem__(self, index, val):
+ if index == 0: self.width = val
+ elif index == 1: self.height = val
+ else: raise IndexError
+"
};
self->y = y;
}
PyObject* asTuple() {
+ wxPyBeginBlockThreads();
PyObject* tup = PyTuple_New(2);
PyTuple_SET_ITEM(tup, 0, PyFloat_FromDouble(self->x));
PyTuple_SET_ITEM(tup, 1, PyFloat_FromDouble(self->y));
+ wxPyEndBlockThreads();
return tup;
}
+
+ wxRealPoint __add__(const wxRealPoint* p) {
+ if (! p) return *self;
+ return *self + *p;
+ }
+
+ wxRealPoint __sub__(const wxRealPoint* p) {
+ if (! p) return *self;
+ return *self - *p;
+ }
+
+ int __cmp__(const wxRealPoint* p) {
+ if (! p) return 1;
+ if (*self == *p) return 0;
+ return -1;
+ }
}
- %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())"
- %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())"
+ %pragma(python) addtoclass = "
+ def __str__(self): return str(self.asTuple())
+ def __repr__(self): return str(self.asTuple())
+ def __len__(self): return len(self.asTuple())
+ def __getitem__(self, index): return self.asTuple()[index]
+ def __setitem__(self, index, val):
+ if index == 0: self.width = val
+ elif index == 1: self.height = val
+ else: raise IndexError
+"
};
self->y = y;
}
PyObject* asTuple() {
+ wxPyBeginBlockThreads();
PyObject* tup = PyTuple_New(2);
PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x));
PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y));
+ wxPyEndBlockThreads();
return tup;
}
+
+ wxPoint __add__(const wxPoint* p) {
+ if (! p) return *self;
+ return *self + *p;
+ }
+
+ wxPoint __sub__(const wxPoint* p) {
+ if (! p) return *self;
+ return *self - *p;
+ }
+
+ int __cmp__(const wxPoint* p) {
+ if (! p) return 1;
+ if (*self == *p) return 0;
+ return -1;
+ }
}
- %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())"
- %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())"
+ %pragma(python) addtoclass = "
+ def __str__(self): return str(self.asTuple())
+ def __repr__(self): return str(self.asTuple())
+ def __len__(self): return len(self.asTuple())
+ def __getitem__(self, index): return self.asTuple()[index]
+ def __setitem__(self, index, val):
+ if index == 0: self.x = val
+ elif index == 1: self.y = val
+ else: raise IndexError
+"
};
//---------------------------------------------------------------------------
%addmethods {
PyObject* asTuple() {
+ wxPyBeginBlockThreads();
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, 2, PyInt_FromLong(self->width));
PyTuple_SET_ITEM(tup, 3, PyInt_FromLong(self->height));
+ wxPyEndBlockThreads();
return tup;
}
}
int __cmp__(const wxRect* rect) {
- if (! rect) return 0;
- return *self == *rect;
+ if (! rect) return 1;
+ if (*self == *rect) return 0;
+ return -1;
}
}
- %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())"
- %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())"
%pragma(python) addtoclass = "
+ def __str__(self): return str(self.asTuple())
+ def __repr__(self): return str(self.asTuple())
+ def __len__(self): return len(self.asTuple())
+ def __getitem__(self, index): return self.asTuple()[index]
+ def __setitem__(self, index, val):
+ if index == 0: self.x = val
+ elif index == 1: self.y = val
+ elif index == 2: self.width = val
+ elif index == 3: self.height = val
+ else: raise IndexError
+
# override the __getattr__ made by SWIG
def __getattr__(self, name):
d = {
dest = reg1.GetBox();
if (dest != wxRect(0,0,0,0)) {
- bool doSave = wxPyRestoreThread();
+ wxPyBeginBlockThreads();
wxRect* newRect = new wxRect(dest);
obj = wxPyConstructObject((void*)newRect, "wxRect");
- PyObject_SetAttrString(obj, "thisown", PyInt_FromLong(1));
- wxPySaveThread(doSave);
+ PyObject* one = PyInt_FromLong(1);
+ PyObject_SetAttrString(obj, "thisown", one);
+ Py_DECREF(one);
+ wxPyEndBlockThreads();
return obj;
}
Py_INCREF(Py_None);
void wxRegisterId(long id);
%name(NewId) long wxNewId();
%name(RegisterId) void wxRegisterId(long id);
+long wxGetCurrentId();
void wxBell();
-void wxDisplaySize(int *OUTPUT, int *OUTPUT);
void wxEndBusyCursor();
-long wxExecute(const wxString& command, int sync = FALSE);
+
long wxGetElapsedTime(bool resetTimer = TRUE);
#ifdef __WXMSW__
long wxGetFreeMemory();
void wxGetMousePosition(int* OUTPUT, int* OUTPUT);
bool wxIsBusy();
wxString wxNow();
-bool wxShell(const wxString& command = wxPyEmptyStr);
+bool wxShell(const wxString& command = wxPyEmptyString);
void wxStartTimer();
int wxGetOsVersion(int *OUTPUT, int *OUTPUT);
+wxString wxGetOsDescription();
+
+enum wxShutdownFlags
+{
+ wxSHUTDOWN_POWEROFF, // power off the computer
+ wxSHUTDOWN_REBOOT // shutdown and reboot
+};
+
+// Shutdown or reboot the PC
+bool wxShutdown(wxShutdownFlags wFlags);
+
void wxSleep(int secs);
+void wxUsleep(unsigned long milliseconds);
bool wxYield();
-bool wxSafeYield();
+bool wxYieldIfNeeded();
void wxEnableTopLevelWindows(bool enable);
%inline %{
- char* wxGetResource(char *section, char *entry, char *file = NULL) {
- char * retval;
+ wxString wxGetResource(const wxString& section, const wxString& entry,
+ const wxString& file = wxPyEmptyString) {
+ wxChar * retval;
wxGetResource(section, entry, &retval, file);
return retval;
}
wxString wxStripMenuCodes(const wxString& in);
+
+wxString wxGetEmailAddress();
+wxString wxGetHostName();
+wxString wxGetFullHostName();
+wxString wxGetUserId();
+wxString wxGetUserName();
+wxString wxGetHomeDir();
+wxString wxGetUserHome(const wxString& user = wxPyEmptyString);
+
+unsigned long wxGetProcessId();
+
+// When wxApp gets the virtual method magic then enable this.
+// bool wxHandleFatalExceptions(bool doIt = TRUE);
+
//----------------------------------------------------------------------
enum wxEdge { wxLeft, wxTop, wxRight, wxBottom, wxWidth, wxHeight,
wxAbsolute };
-class wxIndividualLayoutConstraint {
+class wxIndividualLayoutConstraint : public wxObject {
public:
// wxIndividualLayoutConstraint();
// ~wxIndividualLayoutConstraint();
};
-class wxLayoutConstraints {
+class wxLayoutConstraints : public wxObject {
public:
wxLayoutConstraints();
}
-//---------------------------------------------------------------------------
-// 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);
- %name(ContainsRectDim)wxRegionContain Contains(long x, long y, long w, long h);
-
- wxRect GetBox();
-
- 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();
-
- 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 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 wxAcceleratorTable {
+class wxAcceleratorTable : public wxObject {
public:
// Can also accept a list of 3-tuples
wxAcceleratorTable(int LCOUNT, wxAcceleratorEntry* choices);
};
+wxAcceleratorEntry *wxGetAccelFromString(const wxString& label);
%readonly
%{
//---------------------------------------------------------------------------
-class wxBusyInfo {
+class wxBusyInfo : public wxObject {
public:
wxBusyInfo(const wxString& message);
~wxBusyInfo();
};
-
//---------------------------------------------------------------------------
+