]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/tsizer.tex
slight warnings in wxprinterdc docs about constructor confusion - see http://www...
[wxWidgets.git] / docs / latex / wx / tsizer.tex
index e7f106004f266363836f03ccf40fc4f40c7e0b9c..df50e3d260ac8cf14f7d1bec3a0f51b3c4de53c4 100644 (file)
@@ -41,7 +41,7 @@ the standard font as well as the overall design of Linux/GTK widgets requires mo
 on Windows, the initial dialog size will automatically be bigger on Linux/GTK than on Windows.
 
 There are currently five different kinds of sizers available in wxWidgets. Each represents
-either a certain way to lay out dialog items in a dialog or it fulfils a special task
+either a certain way to lay out dialog items in a dialog or it fulfills a special task
 such as wrapping a static box around a dialog item (or another sizer). These sizers will
 be discussed one by one in the text below. For more detailed information on how to use sizers
 programmatically, please refer to the section \helpref{Programming with Sizers}{boxsizerprogramming}.
@@ -171,10 +171,10 @@ For programming information, see \helpref{wxGridSizer}{wxgridsizer}.
 
 Another two-dimensional sizer derived from
 wxGridSizer. The width of each column and the height of each row
-are calculated individually according the minimal requirements
+are calculated individually according to the minimal requirements
 from the respectively biggest child. Additionally, columns and
 rows can be declared to be stretchable if the sizer is assigned
-a size different from that which it requested. The following sample shows
+a size different from the one it requested. The following sample shows
 the same dialog as the one above, but using a flex grid sizer:
 
 \begin{center}
@@ -265,6 +265,50 @@ MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title )
 }
 \end{verbatim}
 
+Note that the new way of specifying flags to wxSizer is via \helpref{wxSizerFlags}{wxsizerflags}.  This class greatly eases the burden of passing flags to a wxSizer.
+
+Here's how you'd do the previous example with wxSizerFlags:
+
+\begin{verbatim}
+// we want to get a dialog that is stretchable because it
+// has a text ctrl at the top and two buttons at the bottom
+
+MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title )
+        : wxDialog(parent, id, title, wxDefaultPosition, wxDefaultSize,
+                   wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
+{
+  wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
+
+  // create text ctrl with minimal size 100x60 that is horizontally and 
+  // vertically stretchable with a border width of 10
+  topsizer->Add(
+    new wxTextCtrl( this, -1, "My text.", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE),
+    wxSizerFlags(1).Align().Expand().Border(wxALL, 10));
+
+  wxBoxSizer *button_sizer = new wxBoxSizer( wxHORIZONTAL );
+
+  //create two buttons that are horizontally unstretchable, 
+  // with an all-around border with a width of 10 and implicit top alignment
+  button_sizer->Add(
+     new wxButton( this, wxID_OK, "OK" ),
+     wxSizerFlags(0).Align().Border(wxALL, 10));       
+
+  button_sizer->Add(
+     new wxButton( this, wxID_CANCEL, "Cancel" ),
+     wxSizerFlags(0).Align().Border(wxALL, 10));    
+
+  //create a sizer with no border and centered horizontally
+  topsizer->Add(
+     button_sizer,
+     wxSizerFlags(0).Center() ); 
+
+  SetSizer( topsizer );      // use the sizer for layout
+
+  topsizer->SetSizeHints( this );   // set size hints to honour minimum size
+}
+\end{verbatim}
+
+
 \subsection{Programming with wxGridSizer}\label{gridsizerprogramming}
 
 \helpref{wxGridSizer}{wxgridsizer} is a sizer which lays out its children in a two-dimensional