X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c594325333f3e154ee51edd918ad9cb0582203a7..c921c2cd3ada7fe34deaf48d70982c2cf5a963df:/wxPython/src/windows.i diff --git a/wxPython/src/windows.i b/wxPython/src/windows.i index a4bee153e1..a72fb75ab5 100644 --- a/wxPython/src/windows.i +++ b/wxPython/src/windows.i @@ -33,10 +33,6 @@ %pragma(python) code = "import wx" -%{ - static wxString wxPyEmptyStr(""); -%} - //--------------------------------------------------------------------------- class wxEvtHandler : public wxObject { @@ -123,7 +119,7 @@ public: wxPyValidator* ptr = NULL; wxPyValidator* self = (wxPyValidator*)this; - wxPyTState* state = wxPyBeginBlockThreads(); + wxPyBeginBlockThreads(); if (self->m_myInst.findCallback("Clone")) { PyObject* ro; ro = self->m_myInst.callCallbackObj(Py_BuildValue("()")); @@ -132,7 +128,7 @@ public: Py_DECREF(ro); } } - wxPyEndBlockThreads(state); + wxPyEndBlockThreads(); // This is very dangerous!!! But is the only way I could find // to squash a memory leak. Currently it is okay, but if the @@ -218,6 +214,7 @@ public: %name(FindWindowByName) wxWindow* FindWindow(const wxString& name); void Fit(); wxColour GetBackgroundColour(); + wxBorder GetBorder() const; //wxList& GetChildren(); %addmethods { @@ -231,6 +228,15 @@ public: int GetCharWidth(); %name(GetClientSizeTuple) void GetClientSize(int *OUTPUT, int *OUTPUT); wxSize GetClientSize(); + + // get the origin of the client area of the window relative to the + // window top left corner (the client area may be shifted because of + // the borders, scrollbars, other decorations...) + wxPoint GetClientAreaOrigin() const; + + // get the client rectangle in window (i.e. client) coordinates + wxRect GetClientRect() const; + wxLayoutConstraints * GetConstraints(); wxEvtHandler* GetEventHandler(); @@ -264,7 +270,9 @@ public: long GetWindowStyleFlag(); void SetWindowStyleFlag(long style); void SetWindowStyle(long style); + bool HasScrollbar(int orient) const; bool Hide(); + wxHitTest HitTest(const wxPoint& pt); void InitDialog(); bool IsEnabled(); bool IsExposed( int x, int y, int w=0, int h=0 ); @@ -277,12 +285,19 @@ public: bool LoadFromResource(wxWindow* parent, const wxString& resourceName, const wxResourceTable* resourceTable = NULL); void Lower(); void MakeModal(bool flag=TRUE); - %name(MoveXY)void Move(int x, int y); - void Move(const wxPoint& point); + %name(MoveXY)void Move(int x, int y, int flags = wxSIZE_USE_EXISTING); + void Move(const wxPoint& point, int flags = wxSIZE_USE_EXISTING); wxEvtHandler* PopEventHandler(bool deleteHandler = FALSE); void PushEventHandler(wxEvtHandler* handler); + // find the given handler in the event handler chain and remove (but + // not delete) it from the event handler chain, return TRUE if it was + // found and FALSE otherwise (this also results in an assert failure so + // this function should only be called when the handler is supposed to + // be there) + bool RemoveEventHandler(wxEvtHandler *handler); + %name(PopupMenuXY)bool PopupMenu(wxMenu *menu, int x, int y); bool PopupMenu(wxMenu *menu, const wxPoint& pos); @@ -319,8 +334,8 @@ public: self->SetSize(size); } - void SetPosition(const wxPoint& pos) { - self->Move(pos); + void SetPosition(const wxPoint& pos, int flags = wxSIZE_USE_EXISTING) { + self->Move(pos, flags); } void SetRect(const wxRect& rect, int sizeFlags=wxSIZE_AUTO) { @@ -339,6 +354,7 @@ public: bool Show(bool show=TRUE); bool TransferDataFromWindow(); bool TransferDataToWindow(); + void UpdateWindowUI(); bool Validate(); void WarpPointer(int x, int y); @@ -358,6 +374,10 @@ public: void SetSizer(wxSizer* sizer); wxSizer* GetSizer(); + // Track if this window is a member of a sizer + void SetContainingSizer(wxSizer* sizer) { m_containingSizer = sizer; } + wxSizer *GetContainingSizer() const { return m_containingSizer; } + wxValidator* GetValidator(); void SetValidator(const wxValidator& validator); @@ -385,6 +405,7 @@ public: wxString GetHelpText(); void SetHelpText(const wxString& helpText); + void SetHelpTextForId(const wxString& text); bool ScrollLines(int lines); bool ScrollPages(int pages); @@ -400,6 +421,14 @@ public: void SetAcceleratorTable(const wxAcceleratorTable& accel); wxAcceleratorTable *GetAcceleratorTable(); + +#ifdef __WXMSW__ + // A way to do the native draw first... Too bad it isn't in wxGTK too. + void OnPaint(wxPaintEvent& event); +#endif + + wxButton* GetDefaultItem(); + void SetDefaultItem(wxButton *btn); }; @@ -455,8 +484,6 @@ public: %pragma(python) addtomethod = "wxPrePanel:val._setOORInfo(val)" void InitDialog(); - wxButton* GetDefaultItem(); - void SetDefaultItem(wxButton *btn); }; @@ -518,15 +545,15 @@ public: class wxMenu : public wxEvtHandler { public: - wxMenu(const wxString& title = wxPyEmptyStr, long style = 0); + wxMenu(const wxString& title = wxEmptyString, long style = 0); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" void Append(int id, const wxString& item, - const wxString& helpString = wxPyEmptyStr, + const wxString& helpString = wxEmptyString, int checkable = FALSE); %name(AppendMenu)void Append(int id, const wxString& item, wxMenu *subMenu, - const wxString& helpString = wxPyEmptyStr); + const wxString& helpString = wxEmptyString); %name(AppendItem)void Append(const wxMenuItem* item); void AppendSeparator(); @@ -624,8 +651,8 @@ public: class wxMenuItem : public wxObject { public: wxMenuItem(wxMenu* parentMenu=NULL, int id=wxID_SEPARATOR, - const wxString& text = wxPyEmptyStr, - const wxString& help = wxPyEmptyStr, + const wxString& text = wxEmptyString, + const wxString& help = wxEmptyString, bool isCheckable = FALSE, wxMenu* subMenu = NULL);