wx.WS_EX_PROCESS_IDLE This window should always process idle
events, even if the mode set by
- wx.IdleEvent.SetMode is
+ `wx.IdleEvent.SetMode` is
wx.IDLE_PROCESS_SPECIFIED.
wx.WS_EX_PROCESS_UI_UPDATES This window should always process UI
update events, even if the mode
- set by wxUpdateUIEvent::SetMode is
+ set by `wx.UpdateUIEvent.SetMode` is
wxUPDATE_UI_PROCESS_SPECIFIED.
============================= =====================================
+ %pythonAppend Destroy "args[0].thisown = 0"
DocDeclStr(
virtual bool , Destroy(),
"Destroys the window safely. Frames and dialogs are not destroyed
// window attributes
// -----------------
- DocDeclStr(
- virtual void , SetTitle( const wxString& title),
- "Sets the window's title. Applicable only to frames and dialogs.", "");
-
- DocDeclStr(
- virtual wxString , GetTitle() const,
- "Gets the window's title. Applicable only to frames and dialogs.", "");
+ //DocDeclStr(
+ // virtual void , SetTitle( const wxString& title),
+ // "Sets the window's title. Applicable only to frames and dialogs.", "");
+ //DocDeclStr(
+ // virtual wxString , GetTitle() const,
+ // "Gets the window's title. Applicable only to frames and dialogs.", "");
DocDeclStr(
virtual void , SetLabel(const wxString& label),
DocDeclStr(
virtual void , Raise(),
- "Raises the window to the top of the window hierarchy if it is a
-managed window (dialog or frame).", "");
+ "Raises the window to the top of the window hierarchy. In current
+version of wxWidgets this works both for manage and child windows.", "");
DocDeclStr(
virtual void , Lower(),
- "Lowers the window to the bottom of the window hierarchy if it is a
-managed window (dialog or frame).", "");
+ "Lowers the window to the bottom of the window hierarchy. In current
+version of wxWidgets this works both for manage and child windows.", "");
DocStr(GetPosition, // sets the docstring for both
- "Get the window's position.", "");
- wxPoint GetPosition();
+ "Get the window's position. Notice that the position is in client
+coordinates for child windows and screen coordinates for the top level
+ones, use `GetScreenPosition` if you need screen coordinates for all
+kinds of windows.", "");
+ wxPoint GetPosition() const;
DocDeclAName(
- void, GetPosition(int *OUTPUT, int *OUTPUT),
+ void, GetPosition(int *OUTPUT, int *OUTPUT) const,
"GetPositionTuple() -> (x,y)",
GetPositionTuple);
+
+ DocStr(GetScreenPosition, // sets the docstring for both
+ "Get the position of the window in screen coordinantes.", "");
+ wxPoint GetScreenPosition() const;
+ DocDeclAName(
+ void, GetScreenPosition(int *OUTPUT, int *OUTPUT) const,
+ "GetScreenPositionTuple() -> (x,y)",
+ GetScreenPositionTuple);
+
+ DocDeclStr(
+ wxRect , GetScreenRect() const,
+ "Returns the size and position of the window in screen coordinantes as
+a `wx.Rect` object.", "
+:see: `GetRect`, `GetScreenPosition`");
+
DocStr(GetSize, "Get the window size.", "");
wxSize GetSize() const;
DocDeclStr(
wxRect , GetRect() const,
- "Returns the size and position of the window as a wx.Rect object.", "");
+ "Returns the size and position of the window as a `wx.Rect` object.", "");
DocStr(GetClientSize,
"Reset the cached best size value so it will be recalculated the next
time it is needed.", "");
+ DocDeclStr(
+ void , CacheBestSize(const wxSize& size) const,
+ "Cache the best size so it doesn't need to be calculated again, (at least until
+some properties of the window change.)", "");
DocDeclStr(
also include wx.CENTER_ON_SCREEN flag if you want to center the window
on the entire screen and not on its parent window. If it is a
top-level window and has no parent then it will always be centered
-relative to the screen.", "");
-
+relative to the screen.", "");
%pythoncode { Centre = Center }
- DocDeclStr(
- void , CenterOnScreen(int dir = wxBOTH),
- "Center on screen (only works for top level windows)", "");
- %pythoncode { CentreOnScreen = CenterOnScreen }
-
-
DocDeclStr(
void , CenterOnParent(int dir = wxBOTH),
"Center with respect to the the parent window", "");
+ %disownarg( wxCaret *caret );
DocDeclStr(
void , SetCaret(wxCaret *caret),
"Sets the caret associated with the window.", "");
+ %cleardisown( wxCaret *caret );
DocDeclStr(
wxCaret *, GetCaret() const,
function from your application to ensure that your UI is up-to-date at
a particular point in time (as far as your EVT_UPDATE_UI handlers are
concerned). This may be necessary if you have called
-wx.UpdateUIEvent.SetMode or wx.UpdateUIEvent.SetUpdateInterval to
+`wx.UpdateUIEvent.SetMode` or `wx.UpdateUIEvent.SetUpdateInterval` to
limit the overhead that wxWindows incurs by sending update UI events
in idle time.",
"
void , SetHelpText(const wxString& text),
"Sets the help text to be used as context-sensitive help for this
window. Note that the text is actually stored by the current
-wxHelpProvider implementation, and not in the window object itself.", "");
+`wx.HelpProvider` implementation, and not in the window object itself.", "");
DocDeclStr(
wxString , GetHelpText() const,
"Gets the help text to be used as context-sensitive help for this
window. Note that the text is actually stored by the current
-wxHelpProvider implementation, and not in the window object itself.", "");
+`wx.HelpProvider` implementation, and not in the window object itself.", "");
DocStr(SetToolTip,
"Attach a tooltip to the window.", "");
%Rename(SetToolTipString, void, SetToolTip( const wxString &tip ));
+
+ %disownarg( wxToolTip *tip );
void SetToolTip( wxToolTip *tip );
+ %cleardisown( wxToolTip *tip );
DocDeclStr(
wxToolTip* , GetToolTip() const,
// drag and drop
// -------------
- // set/retrieve the drop target associated with this window (may be
- // NULL; it's owned by the window and will be deleted by it)
- %apply SWIGTYPE *DISOWN { wxPyDropTarget *dropTarget };
-
+ %disownarg( wxPyDropTarget *dropTarget );
DocDeclStr(
virtual void , SetDropTarget( wxPyDropTarget *dropTarget ),
"Associates a drop target with this window. If the window already has
a drop target, it is deleted.", "");
-
- %clear wxPyDropTarget *dropTarget;
+ %cleardisown( wxPyDropTarget *dropTarget );
DocDeclStr(
"Returns the associated drop target, which may be None.", "");
-#ifdef __WXMSW__ // TODO: should I drop-kick this?
- DocDeclStr(
- void , DragAcceptFiles(bool accept),
+ DocStr(DragAcceptFiles,
"Enables or disables eligibility for drop file events, EVT_DROP_FILES.
-Only available on Windows.", "");
+Only functional on Windows.", "");
+#ifdef __WXMSW__
+ void DragAcceptFiles(bool accept);
+#else
+ %extend {
+ void DragAcceptFiles(bool accept) {}
+ }
#endif
#endif
// constraints and sizers
// ----------------------
- // set the constraints for this window or retrieve them (may be NULL)
+ %disownarg(wxLayoutConstraints*);
DocDeclStr(
void , SetConstraints( wxLayoutConstraints *constraints ),
"Sets the window to have the given layout constraints. If an existing
wxLayoutConstraints *, GetConstraints() const,
"Returns a pointer to the window's layout constraints, or None if there
are none.", "");
+ %cleardisown(wxLayoutConstraints*);
DocDeclStr(
void , SetAutoLayout( bool autoLayout ),
"Determines whether the Layout function will be called automatically
-when the window is resized. It is called implicitly by SetSizer but
-if you use SetConstraints you should call it manually or otherwise the
-window layout won't be correctly updated when its size changes.", "");
+when the window is resized. lease note that this only happens for the
+windows usually used to contain children, namely `wx.Panel` and
+`wx.TopLevelWindow` (and the classes deriving from them).
+
+This method is called implicitly by `SetSizer` but if you use
+`SetConstraints` you should call it manually or otherwise the window
+layout won't be correctly updated when its size changes.", "");
DocDeclStr(
bool , GetAutoLayout() const,
handler when the window is resized.", "");
+ %disownarg( wxSizer *sizer );
DocDeclStr(
void , SetSizer(wxSizer *sizer, bool deleteOld = true ),
"Sets the window to have the given layout sizer. The window will then
void , SetSizerAndFit( wxSizer *sizer, bool deleteOld = true ),
"The same as SetSizer, except it also sets the size hints for the
window based on the sizer's minimum size.", "");
-
+ %cleardisown( wxSizer *sizer );
+
DocDeclStr(
wxSizer *, GetSizer() const,
if hasattr(self, '_setCallbackInfo'):
self._setCallbackInfo(self, self.__class__)
}
+
+ %pythoncode {
+ def SendSizeEvent(self):
+ self.GetEventhandler().ProcessEvent(wx.SizeEvent((-1,-1)))
+ }
};
WXHWND hWnd = (WXHWND)_hWnd;
long id = wxGetWindowId(hWnd);
wxWindow* win = new wxWindow;
- parent->AddChild(win);
+ if (parent)
+ parent->AddChild(win);
win->SetEventHandler(win);
win->SetHWND(hWnd);
win->SetId(id);
}
%}
+//---------------------------------------------------------------------------
+
+DocStr(GetTopLevelWindows,
+"Returns a list of the the application's top-level windows, (frames,
+dialogs, etc.) NOTE: Currently this is a copy of the list maintained
+by wxWidgets, and so it is only valid as long as no top-level windows
+are closed or new top-level windows are created.
+", "");
+%inline %{
+ PyObject* GetTopLevelWindows() {
+ return wxPy_ConvertList(&wxTopLevelWindows);
+ }
+%}
+
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------