]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/tsizer.tex
added GetForbiddenChars() and TRUE -> true (patch 757777)
[wxWidgets.git] / docs / latex / wx / tsizer.tex
index 405d8844d37a90d439bc6a58599e05d7b9cbe11f..3cede468fb7befd0a7b348f28852f0cebc66a99a 100644 (file)
@@ -3,7 +3,8 @@
 Classes: \helpref{wxSizer}{wxsizer}, \helpref{wxGridSizer}{wxgridsizer}, 
 \helpref{wxFlexGridSizer}{wxflexgridsizer}, \helpref{wxBoxSizer}{wxboxsizer}, 
 \helpref{wxStaticBoxSizer}{wxstaticboxsizer}, 
-\helpref{wxNotebookSizer}{wxnotebooksizer}
+\helpref{wxNotebookSizer}{wxnotebooksizer},
+\helpref{CreateButtonSizer}{createbuttonsizer}
 
 Sizers, as represented by the wxSizer class and its descendants in
 the wxWindows class hierarchy, have become the method of choice to
@@ -112,6 +113,21 @@ initial width:
 
 Within wxDesigner, this stretch factor gets set from the {\it Option} menu.
 
+\subsubsection{Hiding controls using sizers}\label{sizershiding}
+
+You can hide controls contained in sizers the same way you would hide any control,
+using the \helpref{wxWindow::Show}{wxwindowshow} method.
+
+However, wxSizer also offers a separate method which can tell the sizer not to 
+consider that control in its size calculations.  To hide a window using the sizer,
+call \helpref{wxSizer::Show}{wxsizershow}.  You must then call Layout on the sizer 
+to force an update.
+
+This is useful when hiding parts of the interface, since you can avoid removing
+the controls from the sizer and having to add them back later.
+
+Note: This is supported only by wxBoxSizer and wxFlexGridSizer.
+
 \wxheading{wxBoxSizer}
 
 \helpref{wxBoxSizer}{wxboxsizer} can lay out its children either vertically
@@ -192,7 +208,7 @@ the buttons shall be centred as the width of the dialog changes.
 It is the unique feature of a box sizer, that it can grow in both directions (height and
 width) but can distribute its growth in the main direction (horizontal for a row) {\it unevenly} 
 among its children. In our example case, the vertical sizer is supposed to propagate all its
-height changes to only the text area, not to the button area. This is determined by the {\it option} parameter
+height changes to only the text area, not to the button area. This is determined by the {\it proportion} parameter
 when adding a window (or another sizer) to a sizer. It is interpreted
 as a weight factor, i.e. it can be zero, indicating that the window may not be resized
 at all, or above zero. If several windows have a value above zero, the value is interpreted
@@ -252,11 +268,9 @@ MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title )
      0,                // make vertically unstretchable
      wxALIGN_CENTER ); // no border and centre horizontally
 
-  SetAutoLayout( TRUE );     // tell dialog to use sizer
-  SetSizer( topsizer );      // actually set the sizer
+  SetSizer( topsizer );      // use the sizer for layout
 
-  topsizer->Fit( this );            // set size to minimum size as calculated by the sizer
-  topsizer->SetSizeHints( this );   // set size hints to honour mininum size
+  topsizer->SetSizeHints( this );   // set size hints to honour minimum size
 }
 \end{verbatim}
 
@@ -286,8 +300,8 @@ sizer.
 
 In order to query the size of notebook page, this page needs to have its
 own sizer, otherwise the wxNotebookSizer will ignore it. Notebook pages
-get their size by assigning one to them using \helpref{wxWindow::SetSizer}{wxwindowsetsizer} 
-and setting the auto-layout option to TRUE using 
+get their sizer by assigning one to them using \helpref{wxWindow::SetSizer}{wxwindowsetsizer} 
+and setting the auto-layout option to true using 
 \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout}. Here is one
 example showing how to add a notebook page that the notebook sizer is
 aware of:
@@ -304,7 +318,7 @@ aware of:
 
     // Add controls to panel and panelsizer here...
 
-    panel->SetAutoLayout( TRUE );
+    panel->SetAutoLayout( true );
     panel->SetSizer( panelsizer );
 \end{verbatim}
 
@@ -314,3 +328,25 @@ aware of:
 box around the sizer. Note that this static box has to be created 
 separately.
 
+\subsection{CreateButtonSizer}\label{createbuttonsizer}
+
+As a convenience, CreateButtonSizer ( long flags ) can be used to create a standard button sizer
+in which standard buttons are displayed. The following flags can be passed to this function:
+
+
+\begin{verbatim}
+    wxYES_NO // Add Yes/No subpanel
+    wxYES    // return wxID_YES
+    wxNO     // return wxID_NO
+    wxNO_DEFAULT // make the wxNO button the default, otherwise wxYES or wxOK button will be default
+    
+    wxOK     // return wxID_OK
+    wxCANCEL // return wxID_CANCEL
+    wxHELP   // return wxID_HELP
+    
+    wxFORWARD   // return wxID_FORWARD  
+    wxBACKWARD  // return wxID_BACKWARD 
+    wxSETUP     // return wxID_SETUP    
+    wxMORE      // return wxID_MORE     
+
+\end{verbatim}