%% Copyright: (c) wxWindows team
%% Licence: wxWindows licence
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% NB: please keep the subsections in alphabetic order!
\section{wxWindows samples}\label{samples}
features of wxWindows are they supposed to test.
There are currently more than 50 different samples as part of wxWindows and
-this list is not complete.
+this list is not complete. You should start your tour of wxWindows with the
+\helpref{minimal sample}{sampleminimal} which is the wxWindows version of
+"Hello, world!". It shows the basic structure of wxWindows program and is the
+most commented sample of all - looking at its source code is recommended.
+
+The next most useful sample is probably the \helpref{controls}{samplecontrols}
+one which shows many of wxWindows standard controls, such as buttons,
+listboxes, checkboxes, comboboxes etc.
+
+Other, more complicated controls, have their own samples. In this category you
+may find the following samples showing the corresponding controls:
+
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\helpref{wxCalendarCtrl}{samplecalendar}}{Calendar a.k.a. date picker control}
+\twocolitem{\helpref{wxListCtrl}{samplelistctrl}}{List view control}
+\twocolitem{\helpref{wxTreeCtrl}{sampletreectrl}}{Tree view control}
+\twocolitem{\helpref{wxGrid}{samplegrid}}{Grid control}
+\end{twocollist}
+
+Finally, it might be helpful to do a search in the entire sample directory if
+you can't find the sample you showing the control you are interested in by
+name. Most of wxWindows classes, occur in at least one of the samples.
\subsection{Minimal sample}\label{sampleminimal}
by intercepting the \helpref{wxNotebookEvent}{wxnotebookevent}.
The various controls tested are listed here:
+
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxButton}{wxbutton}}{Push button control, displaying text}
\twocolitem{\helpref{wxBitmapButton}{wxbitmapbutton}}{Push button control, displaying a bitmap}
Take a look at DnDShapeDataObject class to see how you may use
\helpref{wxDataObject}{wxdataobject} to achieve this.
+\subsection{Grid sample}\label{samplegrid}
+
+TODO.
+
\subsection{HTML samples}\label{samplehtml}
Eight HTML samples (you can find them in directory {\tt samples/html})
while {\it Helpview} is simple tool that only pops up help window and
displays help books given at command line.
+\subsection{Image sample}\label{sampleimage}
+
+The image sample demonstrates the use of the \helpref{wxImage}{wximage} class
+and shows how to download images in a variety of formats, currently PNG, GIF,
+TIFF, JPEG, BMP, PNM and PCX. The top of the sample shows to rectangles, one
+of which is drawn directly in the window, the other one is drawn into a
+\helpref{wxBitmap}{wxbitmap}, converted to a wxImage, saved as a PNG image
+and then reloaded from the PNG file again so that conversions between wxImage
+and wxBitmap as well as loading and save PNG files are tested.
+
+At the bottom of the main frame is a test for using a monochrome bitmap by
+drawing into a \helpref{wxMemoryDC}{wxmemorydc}. The bitmap is then drawn
+specifying the foreground and background colours with
+\helpref{wxDC::SetTextForeground}{wxdcsettextforeground} and
+\helpref{wxDC::SetTextBackground}{wxdcsettextbackground} (on the left). The
+bitmap is then converted to a wxImage and the foreground colour (black) is
+replaced with red using \helpref{wxImage::Replace}{wximagereplace}.
+
\subsection{Layout sample}\label{samplelayout}
The layout sample demonstrates the two different layout systems offered
class. See also \helpref{wxNotebookSizer}{wxnotebooksizer} and
\helpref{wxSizer}{wxsizer}.
-\subsection{Image sample}\label{sampleimage}
+\subsection{Listctrl sample}\label{samplelistctrl}
-The image sample demonstrates the use of the \helpref{wxImage}{wximage} class
-and shows how to download images in a variety of formats, currently PNG, GIF,
-TIFF, JPEG, BMP, PNM and PCX. The top of the sample shows to rectangles, one
-of which is drawn directly in the window, the other one is drawn into a
-\helpref{wxBitmap}{wxbitmap}, converted to a wxImage, saved as a PNG image
-and then reloaded from the PNG file again so that conversions between wxImage
-and wxBitmap as well as loading and save PNG files are tested.
+This sample shows \helpref{wxListCtrl}{wxlistctrl} control. Different modes
+supported by the control (list, icons, small icons, report) may be chosen from
+the menu.
-At the bottom of the main frame is a test for using a mono-chrome bitmap by
-drawing into a \helpref{wxMemoryDC}{wxmemorydc}. The bitmap is then drawn
-specifying the foreground and background colours with
-\helpref{wxDC::SetTextForeground}{wxdcsettextforeground} and
-\helpref{wxDC::SetTextBackground}{wxdcsettextbackground} (on the left). The
-bitmap is then converted to a wxImage and the foreground colour (black) is
-replaced with red using \helpref{wxImage::Replace}{wximagereplace}.
+The sample also provides some timings for adding/deleting/sorting a lot of
+(several thousands) controls into the control.
\subsection{Sockets sample}\label{samplesockets}
The sockets sample is work in progress. Coming soon:
-\begin{itemize}
-
+\begin{itemize}\itemsep=0pt
\item More tests for basic socket functionality.
-
\item Tests for the recently added datagram socket classes.
-
\item Tests for protocol classes (wxProtocol and its descendants).
-
\item New samples which actually do something useful (suggestions accepted).
-
\end{itemize}
\subsection{Statbar sample}\label{samplestatbar}
-This sample shows how to create and use wxStaticBar. Although most of the
+This sample shows how to create and use wxStatusBar. Although most of the
samples have a statusbar, they usually only create a default one and only
do it once.
The following things are demonstrated:
-\begin{itemize}
-
-\item Creating the toolbar using \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}
+\begin{itemize}\itemsep=0pt
+\item Creating the toolbar using \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}
and \helpref{wxToolBar::AddControl}{wxtoolbaraddcontrol}: see
MyApp::InitToolbar in the sample.
-
\item Using {\tt EVT\_UPDATE\_UI} handler for automatically enabling/disabling
toolbar buttons without having to explicitly call EnableTool. This is is done
in MyFrame::OnUpdateCopyAndCut.
-
\item Using \helpref{wxToolBar::DeleteTool}{wxtoolbardeletetool} and
\helpref{wxToolBar::InsertTool}{wxtoolbarinserttool} to dynamically update the
toolbar.
-
\end{itemize}
+
+\subsection{Treectrl sample}\label{sampletreectrl}
+
+This sample demonstrates using \helpref{wxTreeCtrl}{wxtreectrl} class. Here
+you may see how to process various notification messages sent by this control
+and also when they occur (by looking at the messages in the text control in
+the bottom part of the frame).
+
+Adding, inserting and deleting items and branches from the tree as well as
+sorting (in default alphabetical order as well as in custom one) is
+demonstrated here as well - try the corresponding menu entries.
+