@see @ref overview_windowdeletion "Window Deletion Overview",
Destroy(), wxCloseEvent
*/
- ~wxWindow();
+ virtual ~wxWindow();
/**
This method may be overridden in the derived classes to return @false to
@remarks This function is currently only implemented under Mac/Carbon.
*/
- void AlwaysShowScrollbars(bool hflag, bool vflag);
+ virtual void AlwaysShowScrollbars(bool = true, bool = true);
/**
Sets the cached best size value.
SetTransparent() may succeed. If this function returns @false, transparent
windows are definitely not supported by the current system.
*/
- bool CanSetTransparent();
+ virtual bool CanSetTransparent();
/**
Directs all mouse input to this window.
@see ReleaseMouse(), wxMouseCaptureLostEvent
*/
- virtual void CaptureMouse();
+ void CaptureMouse();
/**
A synonym for Centre().
*/
- void Center(int direction);
+ void Center(int dir = wxBOTH);
/**
A synonym for CentreOnParent().
*/
- void CenterOnParent(int direction);
+ void CenterOnParent(int dir = wxBOTH);
/**
Centres the window.
Clears the window by filling it with the current background colour. Does not
cause an erase background event to be generated.
*/
- void ClearBackground();
+ virtual void ClearBackground();
- //@{
/**
Converts to screen coordinates from coordinates relative to this window.
@param y
A pointer to a integer value for the y coordinate. Pass the client
coordinate in, and a screen coordinate will be passed out.
- @param pt
- The client position for the second form of the function.
@beginWxPythonOnly
In place of a single overloaded method name, wxPython implements the following methods:
@endWxPythonOnly
*/
void ClientToScreen(int* x, int* y) const;
+
+ /**
+ Converts to screen coordinates from coordinates relative to this window.
+
+ @param pt
+ The client position for the second form of the function.
+ */
wxPoint ClientToScreen(const wxPoint& pt) const;
- //@}
/**
Converts client area size @a size to corresponding window size.
@see WindowToClientSize()
*/
- virtual wxSize ClientToWindowSize(const wxSize& size);
+ virtual wxSize ClientToWindowSize(const wxSize& size) const;
/**
Converts window size @a size to corresponding client area size
@see ClientToWindowSize()
*/
- virtual wxSize WindowToClientSize(const wxSize& size);
+ virtual wxSize WindowToClientSize(const wxSize& size) const;
/**
This function simply generates a wxCloseEvent whose handler usually tries
/**
Destroys all children of a window. Called automatically by the destructor.
*/
- virtual void DestroyChildren();
+ bool DestroyChildren();
/**
Returns true if this window is in process of being destroyed.
*/
bool Disable();
- /**
- Gets the size which best suits the window: for a control, it would be
- the minimal size which doesn't truncate the control, for a panel - the
- same size as it would have after a call to Fit().
-
- The default implementation of this function is designed for use in container
- windows, such as wxPanel, and works something like this:
- -# If the window has a sizer then it is used to calculate the best size.
- -# Otherwise if the window has layout constraints then those are used to
- calculate the best size.
- -# Otherwise if the window has children then the best size is set to be large
- enough to show all the children.
- -# Otherwise if there are no children then the window's minimal size will be
- used as its best size.
- -# Otherwise if there is no minimal size set, then the current size is used
- for the best size.
-
- @see @ref overview_windowsizing
- */
- virtual wxSize DoGetBestSize() const;
-
/**
Does the window-specific updating after processing the update event.
This function is called by UpdateWindowUI() in order to check return
@see wxWindowUpdateLocker, Thaw(), IsFrozen()
*/
- virtual void Freeze();
+ void Freeze();
/**
Gets the accelerator table for this window. See wxAcceleratorTable.
*/
- wxAcceleratorTable* GetAcceleratorTable() const;
+ wxAcceleratorTable* GetAcceleratorTable();
/**
Returns the accessible object for this window, if any.
@see SetDropTarget(), @ref overview_dnd
*/
- wxDropTarget* GetDropTarget() const;
+ virtual wxDropTarget* GetDropTarget() const;
/**
Merges the window's best size into the min size and returns the result.
@see SetForegroundColour(), SetBackgroundColour(),
GetBackgroundColour()
*/
- wxColour GetForegroundColour();
+ wxColour GetForegroundColour() const;
/**
Returns the grandparent of a window, or @NULL if there isn't one.
Cast it to an appropriate handle, such as @b HWND for Windows,
@b Widget for Motif, @b GtkWidget for GTK or @b WinHandle for PalmOS.
*/
- void* GetHandle() const;
+ virtual WXWidget GetHandle() const;
/**
Gets the help text to be used as context-sensitive help for this window.
@see SetHelpText(), GetHelpTextAtPoint(), wxHelpProvider
*/
- virtual wxString GetHelpText() const;
+ wxString GetHelpText() const;
/**
Gets the help text to be used as context-sensitive help for this window.
@see SetId(), @ref overview_windowids
*/
- int GetId() const;
+ wxWindowID GetId() const;
/**
Generic way of getting a label from any window, for
@see GetMaxSize()
*/
- wxSize GetMaxClientSize() const;
+ virtual wxSize GetMaxClientSize() const;
/**
Returns the maximum size of the window.
@see GetMaxClientSize()
*/
- wxSize GetMaxSize() const;
+ virtual wxSize GetMaxSize() const;
/**
Returns the minimum size of window's client area, an indication to the sizer
/**
Returns the parent of the window, or @NULL if there is no parent.
*/
- virtual wxWindow* GetParent() const;
+ wxWindow* GetParent() const;
- //@{
/**
This function shows a popup menu at the given position in this window and
returns the selected id. It can be more convenient than the general purpose
The menu to show
@param pos
The position at which to show the menu in client coordinates
- @param x
- The horizontal position of the menu
- @param y
- The vertical position of the menu
@return The selected menu item id or wxID_NONE if none selected or an
error occurred.
*/
int GetPopupMenuSelectionFromUser(wxMenu& menu, const wxPoint& pos);
+
+ /**
+ See the GetPopupMenuSelectionFromUser(wxMenu&, const wxPoint&) overload.
+ This overload differs only because it takes two integers for the
+ menu position instead of a wxPoint.
+ */
int GetPopupMenuSelectionFromUser(wxMenu& menu, int x, int y);
- //@}
- //@{
/**
This gets the position of the window in pixels, relative to the parent window
for the child windows or relative to the display origin for the top level windows.
@see GetScreenPosition()
*/
void GetPosition(int* x, int* y) const;
+
+ /**
+ This gets the position of the window in pixels, relative to the parent window
+ for the child windows or relative to the display origin for the top level windows.
+
+ @see GetScreenPosition()
+ */
wxPoint GetPosition() const;
- //@}
/**
Returns the previous window before this one among the parent children or @c
*/
wxRect GetRect() const;
- //@{
/**
Returns the window position in screen coordinates, whether the window is a
child window or a top level one.
@see GetPosition()
*/
void GetScreenPosition(int* x, int* y) const;
+
+ /**
+ Returns the window position in screen coordinates, whether the window is a
+ child window or a top level one.
+
+ @see GetPosition()
+ */
wxPoint GetScreenPosition() const;
- //@}
/**
Returns the position and size of the window on the screen as a wxRect object.
@see See SetScrollbar()
*/
- virtual int GetScrollPos(int orientation);
+ virtual int GetScrollPos(int orientation) const;
/**
Returns the built-in scrollbar range.
@see SetScrollbar()
*/
- virtual int GetScrollRange(int orientation);
+ virtual int GetScrollRange(int orientation) const;
/**
Returns the built-in scrollbar thumb size.
@see SetScrollbar()
*/
- virtual int GetScrollThumb(int orientation);
+ virtual int GetScrollThumb(int orientation) const;
- //@{
/**
Returns the size of the entire window in pixels, including title bar, border,
scrollbars, etc.
@see GetClientSize(), GetVirtualSize()
*/
void GetSize(int* width, int* height) const;
+
+ /**
+ See the GetSize(int*,int*) overload for more info.
+ */
wxSize GetSize() const;
- //@}
/**
Return the sizer associated with the window by a previous call to
*/
wxSizer* GetSizer() const;
- //@{
/**
Gets the dimensions of the string as it would be drawn on the
window with the currently selected font.
Return value for external leading (optional).
@param font
Font to use instead of the current window font (optional).
- @param use16
- If @true, string contains 16-bit characters. The default is @false.
*/
virtual void GetTextExtent(const wxString& string, int* w, int* h,
int* descent = NULL,
int* externalLeading = NULL,
- const wxFont* font = NULL,
- bool use16 = false) const;
+ const wxFont* font = NULL) const;
/**
Gets the dimensions of the string as it would be drawn on the
window with the currently selected font.
*/
wxSize GetTextExtent(const wxString& string) const;
- //@}
/**
Get the associated tooltip or @NULL if none.
@see wxRegion, wxRegionIterator
*/
- virtual wxRegion GetUpdateRegion() const;
+ const wxRegion& GetUpdateRegion() const;
/**
Returns a pointer to the current validator for the window, or @NULL if
there is none.
*/
- wxValidator* GetValidator() const;
+ virtual wxValidator* GetValidator();
//@{
/**
Returns the size of the left/right and top/bottom borders of this window in x
and y components of the result respectively.
*/
- wxSize GetWindowBorderSize() const;
+ virtual wxSize GetWindowBorderSize() const;
/**
Gets the window style that was passed to the constructor or @b Create
method. @b GetWindowStyle() is another name for the same function.
*/
- long GetWindowStyleFlag() const;
+ virtual long GetWindowStyleFlag() const;
/**
Returns the value previously passed to SetWindowVariant().
GetEventHandler()->SafelyProcessEvent(event);
@endcode
*/
- bool HandleWindowEvent(wxEvent& event);
+ bool HandleWindowEvent(wxEvent& event) const;
/**
Returns @true if this window has the current mouse capture.
@param orient
Orientation to check, either wxHORIZONTAL or wxVERTICAL.
*/
- virtual bool HasScrollbar(int orient) const;
+ bool HasScrollbar(int orient) const;
/**
Returns @true if this window background is transparent (as, for example,
shouldn't have to call it. You may, however, have to override it in your
wxWindow-derived class to ensure that background is painted correctly.
*/
- virtual bool HasTransparentBackground() const;
+ virtual bool HasTransparentBackground();
/**
Equivalent to calling wxWindow::Show(@false).
@since 2.9.0
*/
virtual bool HideWithEffect(wxShowEffect effect,
- unsigned timeout = 0);
+ unsigned int timeout = 0);
/**
This function is (or should be, in case of custom controls) called during
just changing the font or colour of their common parent, hence in this case we
do inherit the parents attributes.
*/
- void InheritAttributes();
+ virtual void InheritAttributes();
/**
Sends an @c wxEVT_INIT_DIALOG event, whose handler usually transfers data
to the dialog via validators.
*/
- void InitDialog();
+ virtual void InitDialog();
/**
Resets the cached best size value so it will be recalculated the next time it
@see Enable()
*/
- virtual bool IsEnabled() const;
+ bool IsEnabled() const;
//@{
/**
@see Freeze(), Thaw()
*/
- virtual bool IsFrozen() const;
+ bool IsFrozen() const;
/**
Returns @true if the window is retained, @false otherwise.
@see AlwaysShowScrollbars()
*/
- bool IsScrollbarAlwaysShown(int orient);
+ virtual bool IsScrollbarAlwaysShown(int orient) const;
/**
Returns @true if the window is shown, @false if it has been hidden.
dialogs are considered to be top-level windows (even if they have a parent
window).
*/
- bool IsTopLevel() const;
+ virtual bool IsTopLevel() const;
/**
Invokes the constraint-based layout algorithm or the sizer-based algorithm
@see @ref overview_windowsizing
*/
- void Layout();
+ virtual bool Layout();
/**
Lowers the window to the bottom of the window hierarchy (Z-order).
@see Raise()
*/
- void Lower();
+ virtual void Lower();
/**
Disables all other windows in the application so that
the user can only interact with this window.
- @param flag
+ @param modal
If @true, this call disables all other windows in the application so that
the user can only interact with this window. If @false, the effect is
reversed.
*/
- virtual void MakeModal(bool flag);
+ virtual void MakeModal(bool modal = true);
/**
Moves the window to the given position.
Required x position.
@param y
Required y position.
+ @param flags
+ See SetSize() for more info about this parameter.
@remarks Implementations of SetSize can also implicitly implement the
Move() function, which is defined in the base wxWindow class as the call:
@see SetSize()
*/
- void Move(int x, int y);
+ void Move(int x, int y, int flags = wxSIZE_USE_EXISTING);
/**
Moves the window to the given position.
@param pt
wxPoint object representing the position.
+ @param flags
+ See SetSize() for more info about this parameter.
@remarks Implementations of SetSize() can also implicitly implement the
Move() function, which is defined in the base wxWindow class as the call:
@see SetSize()
*/
- void Move(const wxPoint& pt);
+ void Move(const wxPoint& pt, int flags = wxSIZE_USE_EXISTING);
/**
Moves this window in the tab navigation order after the specified @e win.
control. See also wxNavigationKeyEvent and
HandleAsNavigationKey.
*/
- bool Navigate(int flags = wxNavigationKeyEvent::IsForward);
+ bool Navigate(int flags = IsForward);
/**
Performs a keyboard navigation action inside this window.
See Navigate() for more information.
*/
- bool NavigateIn(int flags = wxNavigationKeyEvent::IsForward);
+ bool NavigateIn(int flags = IsForward);
/**
Create a new ID or range of IDs that are not currently in use.
@see SetEventHandler(), GetEventHandler(),
PushEventHandler(), wxEvtHandler::ProcessEvent, wxEvtHandler
*/
- wxEvtHandler* PopEventHandler(bool deleteHandler = false) const;
+ wxEvtHandler* PopEventHandler(bool deleteHandler = false);
//@{
/**
@see Lower()
*/
- void Raise();
+ virtual void Raise();
/**
Causes this window, and all of its children recursively (except under wxGTK1
@see CaptureMouse(), HasCapture(), ReleaseMouse(),
wxMouseCaptureLostEvent, wxMouseCaptureChangedEvent
*/
- virtual void ReleaseMouse();
+ void ReleaseMouse();
/**
Removes a child window.
const wxRect* rect = NULL);
/**
- This function sends a dummy @ref overview_wxsizeevent "size event" to
+ This function sends a dummy @ref wxSizeEvent "size event" to
the window allowing it to re-layout its children positions.
It is sometimes useful to call this function after adding or deleting a
@param flags
May include @c wxSEND_EVENT_POST. Default value is 0.
*/
- void SendSizeEvent(int flags = 0);
+ virtual void SendSizeEvent(int flags = 0);
/**
Safe wrapper for GetParent()->SendSizeEvent().
@see SetBackgroundColour(), GetForegroundColour(),
SetTransparent()
*/
- virtual void SetBackgroundStyle(wxBackgroundStyle style);
+ virtual bool SetBackgroundStyle(wxBackgroundStyle style);
/**
This method is only implemented by ports which have support for
/**
Sets the caret() associated with the window.
*/
- void SetCaret(wxCaret* caret) const;
+ void SetCaret(wxCaret* caret);
//@{
/**
@see ::wxSetCursor, wxCursor
*/
- virtual void SetCursor(const wxCursor& cursor);
+ virtual bool SetCursor(const wxCursor& cursor);
/**
Associates a drop target with this window.
@see GetDropTarget(), @ref overview_dnd
*/
- void SetDropTarget(wxDropTarget* target);
+ virtual void SetDropTarget(wxDropTarget* target);
/**
Sets the event handler for this window.
The currently defined extra style bits are reported in the class
description.
*/
- void SetExtraStyle(long exStyle);
+ virtual void SetExtraStyle(long exStyle);
/**
This sets the window to receive keyboard input.
@see GetFont(), InheritAttributes()
*/
- bool SetFont(const wxFont& font);
+ virtual bool SetFont(const wxFont& font);
/**
Sets the foreground colour of the window.
@see GetForegroundColour(), SetBackgroundColour(),
GetBackgroundColour(), ShouldInheritColours()
*/
- virtual void SetForegroundColour(const wxColour& colour);
+ virtual bool SetForegroundColour(const wxColour& colour);
/**
Sets the help text to be used as context-sensitive help for this window.
@see GetHelpText(), wxHelpProvider::AddHelp()
*/
- virtual void SetHelpText(const wxString& helpText);
+ void SetHelpText(const wxString& helpText);
/**
Sets the identifier of the window.
@see GetId(), @ref overview_windowids
*/
- void SetId(int id);
-
- /**
- Sets the initial window size if none is given (i.e. at least one of the
- components of the size passed to ctor/Create() is wxDefaultCoord).
- */
- virtual void SetInitialBestSize(const wxSize& size);
+ void SetId(wxWindowID winid);
/**
A @e smart SetSize that will fill in default size components with the
@see SetMaxSize()
*/
- void SetMaxClientSize(const wxSize& size);
+ virtual void SetMaxClientSize(const wxSize& size);
/**
Sets the maximum size of the window, to indicate to the sizer layout mechanism
@see SetMaxClientSize()
*/
- void SetMaxSize(const wxSize& size);
+ virtual void SetMaxSize(const wxSize& size);
/**
Sets the minimum client size of the window, to indicate to the sizer
@see SetMinSize()
*/
- void SetMinClientSize(const wxSize& size);
+ virtual void SetMinClientSize(const wxSize& size);
/**
Sets the minimum size of the window, to indicate to the sizer layout
@see SetMinClientSize()
*/
- void SetMinSize(const wxSize& size);
+ virtual void SetMinSize(const wxSize& size);
/**
Sets the window's name.
/**
@deprecated use wxDC::SetPalette instead.
*/
- virtual void SetPalette(wxPalette* palette);
+ void SetPalette(const wxPalette& pal);
/**
Sets the position of one of the built-in scrollbars.
@param refresh
@true to redraw the scrollbar, @false otherwise.
- @remarks Let's say you wish to display 50 lines of text, using the same
- font. The window is sized so that you can only see 16
- lines at a time.
- You would use:
- @code
- SetScrollbar(wxVERTICAL, 0, 16, 50);
- @endcode
- Note that with the window at this size, the thumb position can never
- go above 50 minus 16, or 34. You can determine how many lines are
- currently visible by dividing the current view size by the character
- height in pixels.
- When defining your own scrollbar behaviour, you will always need
- to recalculate the scrollbar settings when the window size changes.
- You could therefore put your scrollbar calculations and SetScrollbar
- call into a function named AdjustScrollbars, which can be called
- initially and also from your wxSizeEvent handler function.
+ @remarks
+ Let's say you wish to display 50 lines of text, using the same font.
+ The window is sized so that you can only see 16 lines at a time.
+ You would use:
+ @code
+ SetScrollbar(wxVERTICAL, 0, 16, 50);
+ @endcode
+ Note that with the window at this size, the thumb position can never
+ go above 50 minus 16, or 34. You can determine how many lines are
+ currently visible by dividing the current view size by the character
+ height in pixels.
+ When defining your own scrollbar behaviour, you will always need
+ to recalculate the scrollbar settings when the window size changes.
+ You could therefore put your scrollbar calculations and SetScrollbar
+ call into a function named AdjustScrollbars, which can be called
+ initially and also from your wxSizeEvent handler function.
@see @ref overview_scrolling, wxScrollBar, wxScrolled, wxScrollWinEvent
*/
virtual void SetScrollbar(int orientation, int position,
- int thumbSize,
- int range,
+ int thumbSize, int range,
bool refresh = true);
- //@{
/**
Sets the size of the window in pixels.
@param height
Required height position in pixels, or wxDefaultCoord to indicate that the
existing value should be used.
- @param size
- wxSize object for setting the size.
- @param rect
- wxRect object for setting the position and size.
@param sizeFlags
Indicates the interpretation of other parameters.
It is a bit list of the following:
later and only implemented for MSW and ignored elsewhere
currently).
- @remarks The second form is a convenience for calling the first form with
- default x and y parameters, and must be used with
- non-default width and height values.
- The first form sets the position and optionally size, of the window.
+ @remarks This overload sets the position and optionally size, of the window.
Parameters may be wxDefaultCoord to indicate either that a default
should be supplied by wxWidgets, or that the current value of the
dimension should be used.
@see Move()
*/
- virtual void SetSize(int x, int y, int width, int height,
- int sizeFlags = wxSIZE_AUTO);
+ void SetSize(int x, int y, int width, int height,
+ int sizeFlags = wxSIZE_AUTO);
+
+ //@{
+ /**
+ Sets the size of the window in pixels.
+ The size is specified using a wxRect, wxSize or by a couple of @c int objects.
+
+ @remarks This form must be used with non-default width and height values.
+
+ @see Move()
+ */
virtual void SetSize(const wxRect& rect);
- virtual void SetSize(int width, int height);
virtual void SetSize(const wxSize& size);
+ virtual void SetSize(int width, int height);
//@}
/**
fully transparent window and 255 to the fully opaque one. The constants
@c wxIMAGE_ALPHA_TRANSPARENT and @c wxIMAGE_ALPHA_OPAQUE can be used.
*/
- bool SetTransparent(wxByte alpha);
+ virtual bool SetTransparent(wxByte alpha);
/**
Deletes the current validator (if any) and sets the window validator, having
The base class version returns @false, but this method is overridden in
wxControl where it returns @true.
*/
- virtual bool ShouldInheritColours();
+ virtual bool ShouldInheritColours() const;
/**
Shows or hides the window. You may need to call Raise()
@see HideWithEffect()
*/
virtual bool ShowWithEffect(wxShowEffect effect,
- unsigned timeout = 0);
+ unsigned int timeout = 0);
/**
Reenables window updating after a previous call to Freeze().
@see wxWindowUpdateLocker, Freeze(), IsFrozen()
*/
- virtual void Thaw();
+ void Thaw();
/**
Turns the given @a flag on if it's currently turned off and vice versa.
@param y
The new y position for the cursor.
*/
- void WarpPointer(int x, int y);
+ virtual void WarpPointer(int x, int y);
+
+
+protected:
+
+ /**
+ Gets the size which best suits the window: for a control, it would be
+ the minimal size which doesn't truncate the control, for a panel - the
+ same size as it would have after a call to Fit().
+
+ The default implementation of this function is designed for use in container
+ windows, such as wxPanel, and works something like this:
+ -# If the window has a sizer then it is used to calculate the best size.
+ -# Otherwise if the window has layout constraints then those are used to
+ calculate the best size.
+ -# Otherwise if the window has children then the best size is set to be large
+ enough to show all the children.
+ -# Otherwise if there are no children then the window's minimal size will be
+ used as its best size.
+ -# Otherwise if there is no minimal size set, then the current size is used
+ for the best size.
+
+ @see @ref overview_windowsizing
+ */
+ virtual wxSize DoGetBestSize() const;
+
+
+ /**
+ Sets the initial window size if none is given (i.e. at least one of the
+ components of the size passed to ctor/Create() is wxDefaultCoord).
+ @deprecated @todo provide deprecation description
+ */
+ virtual void SetInitialBestSize(const wxSize& size);
};