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),
int sizeFlags = wxSIZE_AUTO ),
"Sets the position and size of the window in pixels. The sizeFlags
parameter indicates the interpretation of the other params if they are
--1. wx.SIZE_AUTO*: a -1 indicates that a class-specific default
-shoudl be used. wx.SIZE_USE_EXISTING: existing dimensions should be
-used if -1 values are supplied. wxSIZE_ALLOW_MINUS_ONE: allow
-dimensions of -1 and less to be interpreted as real dimensions, not
-default values.", "",
+equal to -1.
+
+ ======================== ======================================
+ wx.SIZE_AUTO A -1 indicates that a class-specific
+ default should be used.
+ wx.SIZE_USE_EXISTING Axisting dimensions should be used if
+ -1 values are supplied.
+ wxSIZE_ALLOW_MINUS_ONE Allow dimensions of -1 and less to be
+ interpreted as real dimensions, not
+ default values.
+ ======================== ======================================
+", "",
SetDimensions);
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.", "");
dimensions the border or title bar have when trying to fit the window
around panel items, for example.", "");
void SetClientSize( const wxSize& size );
- %name(SetClientSizeWH) void SetClientSize( int width, int height );
- %name(SetClientRect) void SetClientSize(const wxRect& rect);
+ %Rename(SetClientSizeWH, void, SetClientSize( int width, int height ));
+ %Rename(SetClientRect, void, SetClientSize(const wxRect& rect));
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", "");
virtual void SetSizeHints( int minW, int minH,
int maxW = -1, int maxH = -1,
int incW = -1, int incH = -1 );
- %name(SetSizeHintsSz) void SetSizeHints( const wxSize& minSize,
- const wxSize& maxSize=wxDefaultSize,
- const wxSize& incSize=wxDefaultSize);
+ %Rename(SetSizeHintsSz, void, SetSizeHints( const wxSize& minSize,
+ const wxSize& maxSize=wxDefaultSize,
+ const wxSize& incSize=wxDefaultSize));
DocStr(SetVirtualSizeHints,
the virtual area of the window outside the given bounds.", "");
virtual void SetVirtualSizeHints( int minW, int minH,
int maxW = -1, int maxH = -1 );
- %name(SetVirtualSizeHintsSz)void SetVirtualSizeHints(
- const wxSize& minSize, const wxSize& maxSize=wxDefaultSize);
+ %Rename(SetVirtualSizeHintsSz, void, SetVirtualSizeHints(
+ const wxSize& minSize, const wxSize& maxSize=wxDefaultSize));
is just the client area of the window, but for some like scrolled
windows it is more or less independent of the screen window size.", "");
void SetVirtualSize(const wxSize& size );
- %name(SetVirtualSizeWH) void SetVirtualSize( int w, int h );
+ %Rename(SetVirtualSizeWH, void, SetVirtualSize( int w, int h ));
DocStr(GetVirtualSize,
"Removes a child window. This is called automatically by window
deletion functions so should not be required by the application
programmer.", "");
-
+ DocStr(SetDoubleBuffered,
+ "Currently wxGTK2 only.", "");
+#ifdef __WXGTK__
+ void SetDoubleBuffered(bool on);
+#else
+ %extend {
+ void SetDoubleBuffered(bool on) {}
+ }
+#endif
+
// looking for windows
// -------------------
average character width and then divided by 4. For the y dimension,
the dialog units are multiplied by the average character height and
then divided by 8.", "");
- %name(ConvertDialogPointToPixels) wxPoint ConvertDialogToPixels(const wxPoint& pt);
- %name(ConvertDialogSizeToPixels) wxSize ConvertDialogToPixels(const wxSize& sz);
- %name(DLG_PNT) wxPoint ConvertDialogToPixels(const wxPoint& pt);
- %name(DLG_SZE) wxSize ConvertDialogToPixels(const wxSize& sz);
+ %Rename(ConvertDialogPointToPixels, wxPoint, ConvertDialogToPixels(const wxPoint& pt));
+ %Rename(ConvertDialogSizeToPixels, wxSize, ConvertDialogToPixels(const wxSize& sz));
+ %Rename(DLG_PNT, wxPoint, ConvertDialogToPixels(const wxPoint& pt));
+ %Rename(DLG_SZE, wxSize, ConvertDialogToPixels(const wxSize& sz));
DocStr(ConvertPixelPointToDialog,
average character width and then divided by 4. For the y dimension,
the dialog units are multiplied by the average character height and
then divided by 8.", "");
- %name(ConvertPixelPointToDialog) wxPoint ConvertPixelsToDialog(const wxPoint& pt);
- %name(ConvertPixelSizeToDialog) wxSize ConvertPixelsToDialog(const wxSize& sz);
+ %Rename(ConvertPixelPointToDialog, wxPoint, ConvertPixelsToDialog(const wxPoint& pt));
+ %Rename(ConvertPixelSizeToDialog, wxSize, ConvertPixelsToDialog(const wxSize& sz));
DocDeclStr(
- void , RefreshRect(const wxRect& rect),
+ void , RefreshRect(const wxRect& rect, bool eraseBackground = true),
"Redraws the contents of the given rectangle: the area inside it will
be repainted. This is the same as Refresh but has a nicer syntax.", "");
optimize redrawing by only redrawing those areas, which have been
exposed.", "");
bool IsExposed( int x, int y, int w=1, int h=1 ) const;
- %name(IsExposedPoint) bool IsExposed( const wxPoint& pt ) const;
- %name(IsExposedRect) bool IsExposed( const wxRect& rect ) const;
+ %Rename(IsExposedPoint, bool, IsExposed( const wxPoint& pt ) const);
+ %Rename(IsExposedRect, bool, IsExposed( const wxRect& rect ) const);
"Returns the foreground colour of the window. The interpretation of
foreground colour is dependent on the window class; it may be the text
colour or other colour, or it may not be used at all.", "");
+
+ DocDeclStr(
+ bool , InheritsBackgroundColour() const,
+ "", "");
+
+ DocDeclStr(
+ bool , UseBgCol() const,
+ "", "");
+
+// TODO:
+// // if the window shouldn't inherit its colour from the parent, override
+// // this function to return true
+// //
+// // this is currently only used by wxMSW and wxUniv but should be useful for
+// // the other ports too
+// virtual bool ProvidesBackground() const;
+
// Set/get the background style.
// Pass one of wxBG_STYLE_SYSTEM, wxBG_STYLE_COLOUR, wxBG_STYLE_CUSTOM
"Returns the background style of the window.
:see: `SetBackgroundStyle`", "");
+
+ DocDeclStr(
+ bool , HasTransparentBackground(),
+ "Returns True if this window's background is transparent (as, for
+example, for `wx.StaticText`) and should show the parent window's
+background.
+This method is mostly used internally by the library itself and you
+normally shouldn't have to call it. You may, however, have to override
+it in your custom control classes to ensure that background is painted
+correctly.", "");
+
DocDeclStr(
virtual bool , SetCursor( const wxCursor &cursor ),
+ %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.",
"
selected, the corresponding menu event is generated and will be processed as
usual. If the default position is given then the current position of the
mouse cursor will be used.", "");
- %name(PopupMenuXY) bool PopupMenu(wxMenu *menu, int x=-1, int y=-1);
+ %Rename(PopupMenuXY, bool, PopupMenu(wxMenu *menu, int x=-1, int y=-1));
bool PopupMenu(wxMenu *menu, const wxPoint& pos=wxDefaultPosition);
"Physically scrolls the pixels in the window and move child windows
accordingly. Use this function to optimise your scrolling
implementations, to minimise the area that must be redrawn. Note that
-it is rarely required to call this function from a user program.",
-"
+it is rarely required to call this function from a user program.","
+
:param dx: Amount to scroll horizontally.
:param dy: Amount to scroll vertically.
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(
DocDeclStr(
+ virtual wxString , GetHelpTextAtPoint(const wxPoint& pt,
+ wxHelpEvent::Origin origin) const,
+ "Get the help string associated with the given position in this window.
+
+Notice that pt may be invalid if event origin is keyboard or unknown
+and this method should return the global window help text then
+", "");
+
+
+ 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.", "");
- %name(SetToolTipString) void SetToolTip( const wxString &tip );
+ %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);
+ }
+%}
+
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------