X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cded6aa1c3fe6e6b83346eacee04dc485aeccd42..7447d53c35249d42128d6243c90998f03882859a:/docs/doxygen/overviews/windowsizing.h
diff --git a/docs/doxygen/overviews/windowsizing.h b/docs/doxygen/overviews/windowsizing.h
index 7c05e6c388..baf7611eb5 100644
--- a/docs/doxygen/overviews/windowsizing.h
+++ b/docs/doxygen/overviews/windowsizing.h
@@ -3,7 +3,7 @@
// Purpose: topic overview
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@@ -15,7 +15,26 @@ attributes of a wxWindow, how they relate to each other, and how they interact
with sizers. This document will attempt to clear the fog a little, and give
some simple explanations of things.
-Glossary:
+@li @ref overview_windowsizing_glossary
+@li @ref overview_windowsizing_func
+
+
+
+
+
+@section overview_windowsizing_glossary Glossary
+
+@li @b "Size": this is the current size of the window and it can be explicitly
+ set or fetched with the wxWindow::SetSize() or wxWindow::GetSize() methods.
+ This size value is the size that the widget is currently using on screen and is
+ the way to change the size of something that is not being managed by a sizer.
+
+@li @b "Client Size": the client size represents the widget's area inside of any
+ borders belonging to the widget and is the area that can be drawn upon in a
+ @c EVT_PAINT event. For wxFrame, the client size also excludes the frame
+ menu, tool and status bars, if any. If a window doesn't have any border
+ (and is not a wxFrame with some bars) then its client size is the same as
+ its size.
@li @b "Best Size": the best size of a widget depends on what kind of widget it is,
and usually also on the contents of the widget. For example a wxListBox's best
@@ -24,26 +43,30 @@ Glossary:
normally won't be smaller than the platform default button size (unless a style
flag overrides that).
There is a special virtual method in the C++ window classes called
- wxWindow::DoGetBestSize() that a class needs to override if it wants to calculate
- its own best size based on its content.
-
-@li @b "Min Size": the minimal size of a widget is a size that is normally explicitly set
- by the programmer either with the wxWindow::SetMinSize() method or with the
+ wxWindow::DoGetBestSize() that a class can override if it wants to calculate
+ its own best size based on its content, however notice that usually it is
+ more convenient to override DoGetBestClientSize(), see below.
+
+@li @b "Best Client Size": this is simply the client size corresponding to the
+ best window size. When the fitting size for the given contents is computed,
+ it will usually be the client size and the size of the borders needs to be
+ added to obtain the full best size. For this reason, it's preferable to
+ override DoGetBestClientSize() and let DoGetBestSize() compute the full
+ best size.
+
+@li @b "Minimal Size": the minimal size of a widget is a size that is normally explicitly
+ set by the programmer either with the wxWindow::SetMinSize() method or with the
wxWindow::SetSizeHints() method.
- Most controls will also set the min size to the size given in the control's
+ Most controls will also set the minimal size to the size given in the control's
constructor if a non-default value is passed.
Top-level windows such as wxFrame will not allow the user to resize the frame below
the minimal size.
-@li @b "Size": the size of a widget can be explicitly set or fetched with the
- wxWindow::SetSize() or wxWindow::GetSize() methods.
- This size value is the size that the widget is currently using on screen and is
- the way to change the size of something that is not being managed by a sizer.
-
-@li @b "Client Size": the client size represents the widget's area inside of any
- borders belonging to the widget and is the area that can be drawn upon in a
- @c EVT_PAINT event. If a widget doesn't have a border then its client size is
- the same as its size.
+@li @b "Maximum Size": just like for the minimal size, the maximum size is normally
+ explicitly set by the programmer with the wxWindow::SetMaxSize() method or
+ with wxWindow::SetSizeHints().
+ Top-level windows such as wxFrame will not allow the user to resize the frame above
+ the maximum size.
@li @b "Initial Size": the initial size of a widget is the size given to the
constructor of the widget, if any.
@@ -53,8 +76,15 @@ Glossary:
will fill in the missing size components using the best size and will set the
initial size of the control to the resulting size.
+@li @b "Virtual Size": the virtual size is the size of the potentially viewable
+ area of the widget.
+ The virtual size of a widget may be larger than its actual size and in this
+ case scrollbars will appear to the let the user 'explore' the full contents
+ of the widget.
+ See wxScrolled for more info.
+
-Functions related to sizing:
+@section overview_windowsizing_func Functions related to sizing
@li wxWindow::GetEffectiveMinSize(): returns a blending of the widget's minimal size
and best size, giving precedence to the minimal size.