%{
#include "helpers.h"
#include <wx/menuitem.h>
+#include <wx/tooltip.h>
%}
//----------------------------------------------------------------------
%pragma(python) code = "import wx"
+
+%{
+ static wxString wxPyEmptyStr("");
+%}
+
//---------------------------------------------------------------------------
-class wxEvtHandler {
+class wxEvtHandler : public wxObject {
public:
wxEvtHandler();
(wxObjectEventFunction)
&wxPyCallback::EventThunker);
}
-
}
- %pragma(python) addtoclass = "
- _prop_list_ = {}
- "
-
-// %pragma(python) addtoclass = "
-// def __getattr__(self, name):
-// pl = self._prop_list_
-// if pl.has_key(name):
-// getFunc, setFunc = pl[name]
-// if getFunc:
-// return getattr(self, getFunc)()
-// else:
-// raise TypeError, '%s property is write-only' % name
-// raise AttributeError, name
-
-// def __setattr__(self, name, value):
-// pl = self._prop_list_
-// if pl.has_key(name):
-// getFunc, setFunc = pl[name]
-// if setFunc:
-// return getattr(self, setFunc)(value)
-// else:
-// raise TypeError, '%s property is read-only' % name
-// self.__dict__[name] = value
-// "
};
wxWindow* GetWindow();
void SetWindow(wxWindow* window);
-// // Properties list
-// %pragma(python) addtoclass = "
-// _prop_list_ = {
-// 'window' : ('GetWindow', 'SetWindow'),
-// }
-// _prop_list_.update(wxEvtHandler._prop_list_)
-// "
-};
+ static bool IsSilent();
+ static void SetBellOnError(int doIt = TRUE);
-%inline %{
- bool wxValidator_IsSilent() {
- return wxValidator::IsSilent();
- }
+};
- void wxValidator_SetBellOnError(int doIt = TRUE) {
- wxValidator::SetBellOnError(doIt);
- }
-%}
//----------------------------------------------------------------------
%{
public:
wxPyValidator() {
}
-// wxPyValidator(const wxPyValidator& other);
~wxPyValidator() {
}
- wxObject* wxPyValidator::Clone() const {
+ wxObject* Clone() const {
wxPyValidator* ptr = NULL;
wxPyValidator* self = (wxPyValidator*)this;
- bool doSave = wxPyRestoreThread();
+ wxPyTState* state = wxPyBeginBlockThreads();
if (self->m_myInst.findCallback("Clone")) {
PyObject* ro;
ro = self->m_myInst.callCallbackObj(Py_BuildValue("()"));
Py_DECREF(ro);
}
}
+ wxPyEndBlockThreads(state);
+
// This is very dangerous!!! But is the only way I could find
// to squash a memory leak. Currently it is okay, but if the
// validator architecture in wxWindows ever changes, problems
// could arise.
delete self;
-
- wxPySaveThread(doSave);
return ptr;
}
+
DEC_PYCALLBACK_BOOL_WXWIN(Validate);
DEC_PYCALLBACK_BOOL_(TransferToWindow);
DEC_PYCALLBACK_BOOL_(TransferFromWindow);
PYPRIVATE;
-// PyObject* m_data;
};
IMP_PYCALLBACK_BOOL_WXWIN(wxPyValidator, wxValidator, Validate);
class wxPyValidator : public wxValidator {
public:
wxPyValidator();
-// ~wxPyValidator();
-
- %addmethods { void Destroy() { delete self; } }
void _setSelf(PyObject* self, PyObject* _class, int incref=TRUE);
- %pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyValidator, 0)"
+ %pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyValidator, 1)"
};
class wxWindow : public wxEvtHandler {
public:
-
wxWindow(wxWindow* parent, const wxWindowID id,
- const wxPoint& pos = wxPyDefaultPosition,
- const wxSize& size = wxPyDefaultSize,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
long style = 0,
char* name = "panel");
+ %name(wxPreWindow)wxWindow();
- %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
+ bool Create(wxWindow* parent, const wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ char* name = "panel");
void CaptureMouse();
void Center(int direction = wxBOTH);
void CentreOnScreen(int direction = wxBOTH );
void CenterOnScreen(int direction = wxBOTH );
+ void Clear();
+
// (uses apply'ed INOUT typemap, see above)
%name(ClientToScreenXY)void ClientToScreen(int* x, int* y);
wxPoint ClientToScreen(const wxPoint& pt);
bool Close(int force = FALSE);
bool Destroy();
void DestroyChildren();
+ bool IsBeingDeleted();
#ifdef __WXMSW__
void DragAcceptFiles(bool accept);
#endif
void Raise();
void Refresh(bool eraseBackground = TRUE, const wxRect* rect = NULL);
+ void RefreshRect(const wxRect& rect);
+
void ReleaseMouse();
void RemoveChild(wxWindow* child);
bool Reparent( wxWindow* newParent );
void SetPosition(const wxPoint& pos) {
self->Move(pos);
}
+
+ void SetRect(const wxRect& rect, int sizeFlags=wxSIZE_AUTO) {
+ self->SetSize(rect, sizeFlags);
+ }
}
void SetSizeHints(int minW=-1, int minH=-1, int maxW=-1, int maxH=-1, int incW=-1, int incH=-1);
//void SetPalette(wxPalette* palette);
void SetCursor(const wxCursor&cursor);
void SetEventHandler(wxEvtHandler* handler);
+ void SetExtraStyle(long exStyle);
void SetTitle(const wxString& title);
bool Show(bool show);
bool TransferDataFromWindow();
void SetCaret(wxCaret *caret);
wxCaret *GetCaret();
- %pragma(python) addtoclass = "# replaces broken shadow methods
+ %pragma(python) addtoclass = "# replaces broken shadow method
def GetCaret(self, *_args, **_kwargs):
from misc2 import wxCaretPtr
val = apply(windowsc.wxWindow_GetCaret,(self,) + _args, _kwargs)
if val: val = wxCaretPtr(val)
return val
+ "
- def GetSizer(self, *_args, **_kwargs):
- from sizers import wxSizerPtr
- val = apply(windowsc.wxWindow_GetSizer,(self,) + _args, _kwargs)
- if val: val = wxSizerPtr(val)
- return val
+ void Freeze();
+ void Thaw();
+ void Update();
- def GetToolTip(self, *_args, **_kwargs):
- from misc2 import wxToolTipPtr
- val = apply(windowsc.wxWindow_GetToolTip,(self,) + _args, _kwargs)
- if val: val = wxToolTipPtr(val)
- return val
- "
+ wxString GetHelpText();
+ void SetHelpText(const wxString& helpText);
+ bool ScrollLines(int lines);
+ bool ScrollPages(int pages);
+ bool LineUp();
+ bool LineDown();
+ bool PageUp();
+ bool PageDown();
+
+ static wxWindow* FindFocus();
+ static int NewControlId();
+ static int NextControlId(int id);
+ static int PrevControlId(int id);
-// // Properties list
-// %pragma(python) addtoclass = "
-// _prop_list_ = {
-// 'size' : ('GetSize', 'SetSize'),
-// 'enabled' : ('IsEnabled', 'Enable'),
-// 'background' : ('GetBackgroundColour', 'SetBackgroundColour'),
-// 'foreground' : ('GetForegroundColour', 'SetForegroundColour'),
-// 'children' : ('GetChildren', None),
-// 'charHeight' : ('GetCharHeight', None),
-// 'charWidth' : ('GetCharWidth', None),
-// 'clientSize' : ('GetClientSize', 'SetClientSize'),
-// 'font' : ('GetFont', 'SetFont'),
-// 'grandParent' : ('GetGrandParent', None),
-// 'handle' : ('GetHandle', None),
-// 'label' : ('GetLabel', 'SetLabel'),
-// 'name' : ('GetName', 'SetName'),
-// 'parent' : ('GetParent', None),
-// 'position' : ('GetPosition', 'SetPosition'),
-// 'title' : ('GetTitle', 'SetTitle'),
-// 'style' : ('GetWindowStyleFlag', 'SetWindowStyleFlag'),
-// 'visible' : ('IsShown', 'Show'),
-// 'toolTip' : ('GetToolTip', 'SetToolTip'),
-// 'sizer' : ('GetSizer', 'SetSizer'),
-// 'validator' : ('GetValidator', 'SetValidator'),
-// 'dropTarget' : ('GetDropTarget', 'SetDropTarget'),
-// 'caret' : ('GetCaret', 'SetCaret'),
-// 'autoLayout' : ('GetAutoLayout', 'SetAutoLayout'),
-// 'constraints' : ('GetConstraints', 'SetConstraints'),
-
-// }
-// _prop_list_.update(wxEvtHandler._prop_list_)
-// "
};
return win.ConvertDialogSizeToPixels(wxSize(size_width, height))
"
-%inline %{
- wxWindow* wxWindow_FindFocus() {
- return wxWindow::FindFocus();
- }
-%}
-
#ifdef __WXMSW__
%inline %{
%}
#endif
-%inline %{
- int wxWindow_NewControlId() {
- return wxWindow::NewControlId();
- }
- int wxWindow_NextControlId(int id) {
- return wxWindow::NextControlId(id);
- }
- int wxWindow_PrevControlId(int id) {
- return wxWindow::PrevControlId(id);
- }
-%}
-
//---------------------------------------------------------------------------
public:
wxPanel(wxWindow* parent,
const wxWindowID id,
- const wxPoint& pos = wxPyDefaultPosition,
- const wxSize& size = wxPyDefaultSize,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
long style = wxTAB_TRAVERSAL,
const char* name = "panel");
+ %name(wxPrePanel)wxPanel();
- %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
+ bool Create(wxWindow* parent,
+ const wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxTAB_TRAVERSAL,
+ const char* name = "panel");
void InitDialog();
wxButton* GetDefaultItem();
void SetDefaultItem(wxButton *btn);
- // fix some SWIG trouble...
- %pragma(python) addtoclass = "
- def GetDefaultItem(self):
- import controls
- val = windowsc.wxPanel_GetDefaultItem(self.this)
- val = controls.wxButtonPtr(val)
- return val
-"
};
//---------------------------------------------------------------------------
wxDialog(wxWindow* parent,
const wxWindowID id,
const wxString& title,
- const wxPoint& pos = wxPyDefaultPosition,
- const wxSize& size = wxPyDefaultSize,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
long style = wxDEFAULT_DIALOG_STYLE,
const char* name = "dialogBox");
+ %name(wxPreDialog)wxDialog();
- %pragma(python) addtomethod = "__init__:#wx._StdDialogCallbacks(self)"
+ bool Create(wxWindow* parent,
+ const wxWindowID id,
+ const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxDEFAULT_DIALOG_STYLE,
+ const char* name = "dialogBox");
void Centre(int direction = wxBOTH);
void EndModal(int retCode);
int GetReturnCode();
void SetReturnCode(int retCode);
+
+ wxSizer* CreateTextSizer( const wxString &message );
+ wxSizer* CreateButtonSizer( long flags );
+
};
//---------------------------------------------------------------------------
+
+// TODO: Add wrappers for the wxScrollHelper class, make wxScrolledWindow
+// derive from it and wxPanel.
+
+
class wxScrolledWindow : public wxPanel {
public:
wxScrolledWindow(wxWindow* parent,
const wxWindowID id = -1,
- const wxPoint& pos = wxPyDefaultPosition,
- const wxSize& size = wxPyDefaultSize,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
long style = wxHSCROLL | wxVSCROLL,
char* name = "scrolledWindow");
+ %name(wxPreScrolledWindow)wxScrolledWindow();
- %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
- %pragma(python) addtomethod = "__init__:#wx._StdOnScrollCallbacks(self)"
+ bool Create(wxWindow* parent,
+ const wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxHSCROLL | wxVSCROLL,
+ char* name = "scrolledWindow");
void EnableScrolling(bool xScrolling, bool yScrolling);
int GetScrollPageSize(int orient);
void SetScrollPageSize(int orient, int pageSize);
void SetTargetWindow(wxWindow* window);
void GetViewStart(int* OUTPUT, int* OUTPUT);
- void ViewStart(int* OUTPUT, int* OUTPUT);
+ %pragma(python) addtoclass = "ViewStart = GetViewStart"
void CalcScrolledPosition( int x, int y, int *OUTPUT, int *OUTPUT);
void CalcUnscrolledPosition( int x, int y, int *OUTPUT, int *OUTPUT);
+ void SetScale(double xs, double ys);
+ double GetScaleX();
+ double GetScaleY();
+
+ void AdjustScrollbars();
};
//----------------------------------------------------------------------
void EnableTop(size_t pos, bool enable);
void SetLabelTop(size_t pos, const wxString& label);
wxString GetLabelTop(size_t pos);
+ int FindMenu(const wxString& title);
int FindMenuItem(const wxString& menuString, const wxString& itemString);
%name(FindItemById)wxMenuItem* FindItem(int id/*, wxMenu **menu = NULL*/);
void Enable(int id, bool enable);
//----------------------------------------------------------------------
-class wxMenuItem {
+class wxMenuItem : public wxObject {
public:
wxMenuItem(wxMenu* parentMenu=NULL, int id=wxID_SEPARATOR,
const wxString& text = wxPyEmptyStr,
wxAcceleratorEntry *GetAccel();
void SetAccel(wxAcceleratorEntry *accel);
+ static wxString GetLabelFromText(const wxString& text);
+
+ // wxOwnerDrawn methods
+#ifdef __WXMSW__
+ void SetFont(const wxFont& font);
+ wxFont& GetFont();
+ void SetTextColour(const wxColour& colText);
+ wxColour GetTextColour();
+ void SetBackgroundColour(const wxColour& colBack);
+ wxColour GetBackgroundColour();
+ void SetBitmaps(const wxBitmap& bmpChecked,
+ const wxBitmap& bmpUnchecked = wxNullBitmap);
+ void SetBitmap(const wxBitmap& bmpChecked);
+ const wxBitmap& GetBitmap(bool bChecked = TRUE);
+ void SetMarginWidth(int nWidth);
+ int GetMarginWidth();
+ static int GetDefaultMarginWidth();
+ //void SetName(const wxString& strName);
+ //const wxString& GetName();
+ //void SetCheckable(bool checkable);
+ //bool IsCheckable();
+ bool IsOwnerDrawn();
+ void ResetOwnerDrawn();
+#endif
};
//---------------------------------------------------------------------------