X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f90df854ed9630ab60ac7729287807e4d1d8286..7ece89c6b10b74d90534afcffc61522a8f394d8c:/utils/wxPython/src/windows.i diff --git a/utils/wxPython/src/windows.i b/utils/wxPython/src/windows.i index 14399b5408..6894912fd5 100644 --- a/utils/wxPython/src/windows.i +++ b/utils/wxPython/src/windows.i @@ -27,7 +27,7 @@ %import _defs.i %import misc.i %import gdi.i - +%import clip_dnd.i %pragma(python) code = "import wx" @@ -55,6 +55,14 @@ public: new wxPyCallback(func)); } } + + bool Disconnect(int id, int lastId = -1, + wxEventType eventType = wxEVT_NULL) { + return self->Disconnect(id, lastId, eventType, + (wxObjectEventFunction) + &wxPyCallback::EventThunker); + } + } }; @@ -94,25 +102,24 @@ public: } wxObject* wxPyValidator::Clone() const { - wxPyValidator* ptr = NULL; - wxPyValidator* self = (wxPyValidator*)this; - - bool doSave = wxPyRestoreThread(); - if (self->m_myInst.findCallback("Clone")) { - PyObject* ro; - ro = self->m_myInst.callCallbackObj(Py_BuildValue("()")); - SWIG_GetPtrObj(ro, (void **)&ptr, "_wxPyValidator_p"); + wxPyValidator* ptr = NULL; + wxPyValidator* self = (wxPyValidator*)this; + + bool doSave = wxPyRestoreThread(); + if (self->m_myInst.findCallback("Clone")) { + PyObject* ro; + ro = self->m_myInst.callCallbackObj(Py_BuildValue("()")); + SWIG_GetPtrObj(ro, (void **)&ptr, "_wxPyValidator_p"); + } + // 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; } - // 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); @@ -135,9 +142,7 @@ public: wxPyValidator(); // ~wxPyValidator(); - %addmethods { - void Destroy() { delete self; } - } + %addmethods { void Destroy() { delete self; } } void _setSelf(PyObject* self, int incref=TRUE); %pragma(python) addtomethod = "__init__:self._setSelf(self, 0)" @@ -190,7 +195,6 @@ public: } } - int GetCharHeight(); int GetCharWidth(); %name(GetClientSizeTuple) void GetClientSize(int *OUTPUT, int *OUTPUT); @@ -201,6 +205,11 @@ public: wxFont& GetFont(); wxColour GetForegroundColour(); wxWindow * GetGrandParent(); + %addmethods { + long GetHandle() { + return wxPyGetWinHandle(self); //(long)self->GetHandle(); + } + } int GetId(); wxString GetLabel(); void SetLabel(const wxString& label); @@ -224,6 +233,9 @@ public: bool Hide(); void InitDialog(); bool IsEnabled(); + bool IsExposed( int x, int y, int w=0, int h=0 ); + %name(IsExposedPoint) bool IsExposed( const wxPoint& pt ); + %name(IsExposedRect) bool IsExposed( const wxRect& rect ); bool IsRetained(); bool IsShown(); bool IsTopLevel(); @@ -243,6 +255,7 @@ public: void Raise(); void Refresh(bool eraseBackground = TRUE, const wxRect* rect = NULL); void ReleaseMouse(); + void RemoveChild(wxWindow* child); bool Reparent( wxWindow* newParent ); // (uses apply'ed INOUT typemap, see above) @@ -252,6 +265,7 @@ public: void ScrollWindow(int dx, int dy, const wxRect* rect = NULL); void SetAcceleratorTable(const wxAcceleratorTable& accel); void SetAutoLayout(bool autoLayout); + bool GetAutoLayout(); void SetBackgroundColour(const wxColour& colour); void SetConstraints(wxLayoutConstraints *constraints); void UnsetConstraints(wxLayoutConstraints *constraints); @@ -261,17 +275,17 @@ public: void SetForegroundColour(const wxColour& colour); void SetId(int id); void SetName(const wxString& name); - void SetScrollbar(int orientation, int position, int thumbSize, int range, bool refresh = TRUE); + void SetScrollbar(int orientation, int position, int thumbSize, int range, int refresh = TRUE); void SetScrollPos(int orientation, int pos, bool refresh = TRUE); %name(SetDimensions) void SetSize(int x, int y, int width, int height, int sizeFlags=wxSIZE_AUTO); %addmethods { void SetSize(const wxSize& size) { - self->SetSize(size.x, size.y); + self->SetSize(size); } void SetPosition(const wxPoint& pos) { - self->SetSize(pos.x, pos.y, -1, -1); + self->Move(pos); } } @@ -305,6 +319,21 @@ public: wxValidator* GetValidator(); void SetValidator(const wxValidator& validator); + void SetDropTarget(wxDropTarget* target); + wxDropTarget* GetDropTarget(); + %pragma(python) addtomethod = "SetDropTarget:_args[0].thisown = 0" + + wxSize GetBestSize(); + + void SetCaret(wxCaret *caret); + wxCaret *GetCaret(); + %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 +" }; //%clear int* x, int* y; @@ -343,6 +372,17 @@ wxWindow* wxWindow_FromHWND(unsigned long hWnd) { %} #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); + } +%} //--------------------------------------------------------------------------- @@ -416,7 +456,9 @@ public: %pragma(python) addtomethod = "__init__:wx._StdOnScrollCallbacks(self)" void EnableScrolling(bool xScrolling, bool yScrolling); + int GetScrollPageSize(int orient); void GetScrollPixelsPerUnit(int* OUTPUT, int* OUTPUT); + wxWindow* GetTargetWindow(); void GetVirtualSize(int* OUTPUT, int* OUTPUT); bool IsRetained(); void PrepareDC(wxDC& dc); @@ -424,7 +466,14 @@ public: void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY, int noUnitsX, int noUnitsY, int xPos = 0, int yPos = 0); + void SetScrollPageSize(int orient, int pageSize); + void SetTargetWindow(wxWindow* window); + void GetViewStart(int* OUTPUT, int* OUTPUT); void ViewStart(int* OUTPUT, int* OUTPUT); + + void CalcScrolledPosition( int x, int y, int *OUTPUT, int *OUTPUT); + void CalcUnscrolledPosition( int x, int y, int *OUTPUT, int *OUTPUT); + }; //---------------------------------------------------------------------- @@ -444,61 +493,87 @@ public: void AppendSeparator(); void Break(); void Check(int id, bool flag); + bool IsChecked(int id); void Enable(int id, bool enable); + bool IsEnabled(int id); + int FindItem(const wxString& itemString); + %name(FindItemById)wxMenuItem* FindItem(int id/*, wxMenu **menu = NULL*/); + wxString GetTitle(); void SetTitle(const wxString& title); - wxMenuItem* FindItemForId(int id); - wxString GetHelpString(int id); + wxString GetLabel(int id); - void SetHelpString(int id, const wxString& helpString); - bool IsChecked(int id); - bool IsEnabled(int id); void SetLabel(int id, const wxString& label); + + wxString GetHelpString(int id); + void SetHelpString(int id, const wxString& helpString); void UpdateUI(wxEvtHandler* source = NULL); + bool Delete(int id); + %name(DeleteItem)bool Delete(wxMenuItem *item); + bool Insert(size_t pos, wxMenuItem *item); + wxMenuItem *Remove(int id); + %name(RemoveItem) wxMenuItem *Remove(wxMenuItem *item); + %addmethods { - void Destroy() { - delete self; + void Destroy() { delete self; } + } + %name(DestroyId)bool Destroy(int id); + %name(DestroyItem)bool Destroy(wxMenuItem *item); + + size_t GetMenuItemCount(); + //wxMenuItemList& GetMenuItems(); + %addmethods { + PyObject* GetMenuItems() { + wxMenuItemList& list = self->GetMenuItems(); + return wxPy_ConvertList(&list, "wxMenuItem"); } } -}; + void SetEventHandler(wxEvtHandler *handler); + wxEvtHandler *GetEventHandler(); + void SetInvokingWindow(wxWindow *win); + wxWindow *GetInvokingWindow(); + + long GetStyle(); + + bool IsAttached(); + + void SetParent(wxMenu *parent); + wxMenu *GetParent(); +}; -// -// This one knows how to set a callback and handle INC- and DECREFing it. To -// be used for PopupMenus, but you must retain a referece to it while using -// it. -// -// class wxPyMenu : public wxMenu { -// public: -// wxPyMenu(const wxString& title = wxPyEmptyStr, PyObject* func = NULL); -// ~wxPyMenu(); -// }; //---------------------------------------------------------------------- -class wxMenuBar : public wxEvtHandler { +class wxMenuBar : public wxWindow { public: wxMenuBar(); - void Append(wxMenu *menu, const wxString& title); - void Check(int id, bool flag); - bool Checked(int id); - void Enable(int id, bool enable); - bool Enabled(int id); + bool Append(wxMenu *menu, const wxString& title); + bool Insert(size_t pos, wxMenu *menu, const wxString& title); + size_t GetMenuCount(); + wxMenu *GetMenu(size_t pos); + wxMenu *Replace(size_t pos, wxMenu *menu, const wxString& title); + wxMenu *Remove(size_t pos); + void EnableTop(size_t pos, bool enable); + void SetLabelTop(size_t pos, const wxString& label); + wxString GetLabelTop(size_t pos); int FindMenuItem(const wxString& menuString, const wxString& itemString); - wxMenuItem * FindItemForId(int id); - void SetLabel(int id, const wxString& label); - void EnableTop(int pos, bool enable); - wxString GetHelpString(int id); + %name(FindItemById)wxMenuItem* FindItem(int id/*, wxMenu **menu = NULL*/); + void Enable(int id, bool enable); + void Check(int id, bool check); + bool IsChecked(int id); + bool IsEnabled(int id); + + void SetLabel(int id, const wxString &label); wxString GetLabel(int id); + void SetHelpString(int id, const wxString& helpString); - wxString GetLabelTop(int pos); - void SetLabelTop(int pos, const wxString& label); - int GetMenuCount(); - wxMenu* GetMenu(int i); + wxString GetHelpString(int id); + }; @@ -506,43 +581,37 @@ public: class wxMenuItem { public: -#ifndef __WXGTK__ - wxMenuItem(wxMenu* parentMenu=NULL, int id=ID_SEPARATOR, + wxMenuItem(wxMenu* parentMenu=NULL, int id=wxID_SEPARATOR, const wxString& text = wxPyEmptyStr, - const wxString& helpString = wxPyEmptyStr, - bool checkable = FALSE, wxMenu* subMenu = NULL); -#else - wxMenuItem(); -#endif + const wxString& help = wxPyEmptyStr, + bool isCheckable = FALSE, wxMenu* subMenu = NULL); + + wxMenu *GetMenu(); + void SetId(int id); + int GetId(); bool IsSeparator(); + void SetText(const wxString& str); + wxString GetLabel(); + const wxString& GetText(); + void SetCheckable(bool checkable); + bool IsCheckable(); + bool IsSubMenu(); + void SetSubMenu(wxMenu *menu); + wxMenu *GetSubMenu(); + void Enable(bool enable = TRUE); bool IsEnabled(); + void Check(bool check = TRUE); bool IsChecked(); - bool IsCheckable(); - int GetId(); - wxMenu* GetSubMenu(); - void SetName(const wxString& strName); - wxString GetName(); - wxString GetHelp(); - void SetHelp(const wxString& strHelp); - void Enable(bool bDoEnable = TRUE); - void Check(bool bDoCheck = TRUE); + void Toggle(); + void SetHelp(const wxString& str); + const wxString& GetHelp(); + wxAcceleratorEntry *GetAccel(); + void SetAccel(wxAcceleratorEntry *accel); -#ifdef __WXMSW__ - wxColour& GetBackgroundColour(); - wxBitmap GetBitmap(bool checked = TRUE); - wxFont& GetFont(); - int GetMarginWidth(); - wxColour& GetTextColour(); - void SetBackgroundColour(const wxColour& colour); - void SetBitmaps(const wxBitmap& checked, const wxBitmap& unchecked = wxNullBitmap); - void SetFont(const wxFont& font); - void SetMarginWidth(int width); - void SetTextColour(const wxColour& colour); - void DeleteSubMenu(); -#endif }; //--------------------------------------------------------------------------- +