X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6164f93ca283074f4a0209ede0bc3fef3c68d996..2c6f14e1a7b5062fcf77eda40824d820d9ac288e:/docs/latex/wx/tsamples.tex diff --git a/docs/latex/wx/tsamples.tex b/docs/latex/wx/tsamples.tex index 2db061b5c2..cd5ebdc3e6 100644 --- a/docs/latex/wx/tsamples.tex +++ b/docs/latex/wx/tsamples.tex @@ -51,6 +51,13 @@ i.e. a minimal program that doesn't demonstrate anything apart from what is needed to write a program that will display a "hello" dialog. This is usually a good starting point for learning how to use wxWindows. +\subsection{Art provider sample}\label{sampleartprovider} + +The {\tt artprov} sample shows how you can customize the look of standard +wxWindows dialogs by replacing default bitmaps/icons with your own versions. +It also shows how you can use wxArtProvider to +get stock bitmaps for use in your application. + \subsection{Calendar sample}\label{samplecalendar} This font shows the \helpref{calendar control}{wxcalendarctrl} in action. It @@ -70,7 +77,7 @@ demonstrating a simple dynamic layout. \subsection{Config sample}\label{sampleconfig} This sample demonstrates the \helpref{wxConfig}{wxconfigbase} classes in a platform -indenpedent way, i.e. it uses text based files to store a given configuration under +independent way, i.e. it uses text based files to store a given configuration under Unix and uses the Registry under Windows. See \helpref{wxConfig overview}{wxconfigoverview} for the descriptions of all @@ -111,10 +118,8 @@ The various controls tested are listed here: \subsection{Database sample}\label{sampledb} The database sample is a small test program showing how to use the ODBC -classes written by Remstar Intl. These classes are documented in a separate -manual available from the wxWindows homepage. Obviously, this sample -requires a database with ODBC support to be correctly installed on your -system. +classes written by Remstar Intl. Obviously, this sample requires a +database with ODBC support to be correctly installed on your system. \subsection{Dialogs sample}\label{sampledialogs} @@ -124,16 +129,54 @@ dialogs are described in details in the \helpref{Common dialogs overview}{common \subsection{Dialup sample}\label{sampledialup} This sample shows \helpref{wxDialUpManager}{wxdialupmanager} -class. It displays in the status bar the information gathered through itsi -nterface: in particular, the current connection status (online or offline) and +class. It displays in the status bar the information gathered through its +interface: in particular, the current connection status (online or offline) and whether the connection is permanent (in which case a string `LAN' appears in -the thrid status bar field - but note that you may have be on a LAN not +the third status bar field - but note that you may have be on a LAN not connected to the Internet, in which case you will not see this) or not. Using the menu entries, you may also dial or hang up the line if you have a modem attached and (this only makes sense for Windows) list the available connections. +\subsection{DnD sample}\label{samplednd} + +This sample shows both clipboard and drag and drop in action. It is quite non +trivial and may be safely used as a basis for implementing the clipboard and +drag and drop operations in a real-life program. + +When you run the sample, its screen is split in several parts. On the top, +there are two listboxes which show the standard derivations of +\helpref{wxDropTarget}{wxdroptarget}: +\helpref{wxTextDropTarget}{wxtextdroptarget} and +\helpref{wxFileDropTarget}{wxfiledroptarget}. + +The middle of the sample window is taken by the log window which shows what is +going on (of course, this only works in debug builds) and may be helpful to see +the sequence of steps of data transfer. + +Finally, the last part is used for dragging text from it to either one of the +listboxes (only one will accept it) or another application. The last +functionality available from the main frame is to paste a bitmap from the +clipboard (or, in the case of Windows version, also a metafile) - it will be +shown in a new frame. + +So far, everything we mentioned was implemented with minimal amount of code +using standard wxWindows classes. The more advanced features are demonstrated +if you create a shape frame from the main frame menu. A shape is a geometric +object which has a position, size and color. It models some +application-specific data in this sample. A shape object supports its own +private \helpref{wxDataFormat}{wxdataformat} which means that you may cut and +paste it or drag and drop (between one and the same or different shapes) from +one sample instance to another (or the same). However, chances are that no +other program supports this format and so shapes can also be rendered as +bitmaps which allows them to be pasted/dropped in many other applications +(and, under Windows, also as metafiles which are supported by most of Windows +programs as well - try Write/Wordpad, for example). + +Take a look at DnDShapeDataObject class to see how you may use +\helpref{wxDataObject}{wxdataobject} to achieve this. + \subsection{Dynamic sample}\label{sampledynamic} This sample is a very small sample that demonstrates the use of the @@ -164,27 +207,9 @@ external programs and the sample shows how to do this synchronously (waiting until the program terminates) or asynchronously (notification will come later). It also shows how to capture the output of the child process in both -synchronous and asynchronous cases. - -\subsection{Scroll subwindow sample}\label{samplescrollsub} - -This sample demonstrates the use of the \helpref{wxScrolledWindow}{wxscrolledwindow} -class including placing subwindows into it and drawing simple graphics. It uses the -\helpref{SetTargetWindow}{wxscrolledwindowsettargetwindow} method and thus the effect -of scrolling does not show in the scrolled window itself, but in one of its subwindows. - -Additionally, this samples demonstrates how to optimize drawing operations in wxWindows, -in particular using the \helpref{wxWindow::IsExposed}{wxwindowisexposed} method with -the aim to prevent unnecessary drawing in the window and thus reducing or removing -flicker on screen. - -\subsection{Rotate sample}\label{samplerotate} - -This is a simple example which demonstrates how to rotate an image with -the \helpref{wxImage::Rotate}{wximagerotate} method. The rotation can -be done without interpolation (left mouse button) which will be faster, -or with interpolation (right mouse button) which is slower but gives -better results. +synchronous and asynchronous cases and how to kill the processes with +\helpref{wxProcess::Kill}{wxprocesskill} and test for their existence with +\helpref{wxProcess::Exists}{wxprocessexists}. \subsection{Font sample}\label{samplefont} @@ -194,44 +219,6 @@ The font sample demonstrates \helpref{wxFont}{wxfont}, available (to wxWindows) on the computer and shows all characters of the chosen font as well. -\subsection{DnD sample}\label{samplednd} - -This sample shows both clipboard and drag and drop in action. It is quite non -trivial and may be safely used as a basis for implementing the clipboard and -drag and drop operations in a real-life program. - -When you run the sample, its screen is split in several parts. On the top, -there are two listboxes which show the standard derivations of -\helpref{wxDropTarget}{wxdroptarget}: -\helpref{wxTextDropTarget}{wxtextdroptarget} and -\helpref{wxFileDropTarget}{wxfiledroptarget}. - -The middle of the sample window is taken by the log window which shows what is -going on (of course, this only works in debug builds) and may be helpful to see -the sequence of steps of data transfer. - -Finally, the last part is used for dragging text from it to either one of the -listboxes (only one will accept it) or another application. The last -functionality available from the main frame is to paste a bitmap from the -clipboard (or, in the case of Windows version, also a metafile) - it will be -shown in a new frame. - -So far, everything we mentioned was implemented with minimal amount of code -using standard wxWindows classes. The more advanced features are demonstrated -if you create a shape frame from the main frame menu. A shape is a geometric -object which has a position, size and color. It models some -application-specific data in this sample. A shape object supports its own -private \helpref{wxDataFormat}{wxdataformat} which means that you may cut and -paste it or drag and drop (between one and the same or different shapes) from -one sample instance to another (or the same). However, chances are that no -other program supports this format and so shapes can also be rendered as -bitmaps which allows them to be pasted/dropped in many other applications -(and, under Windows, also as metafiles which are supported by most of Windows -programs as well - try Write/Wordpad, for example). - -Take a look at DnDShapeDataObject class to see how you may use -\helpref{wxDataObject}{wxdataobject} to achieve this. - \subsection{Grid sample}\label{samplegrid} TODO. @@ -285,6 +272,17 @@ specifying the foreground and background colours with bitmap is then converted to a wxImage and the foreground colour (black) is replaced with red using \helpref{wxImage::Replace}{wximagereplace}. +\subsection{Internat(ionalization) sample}\label{sampleinternat} + +The not very clearly named internat sample demonstrates the wxWindows +internatationalization (i18n for short from now on) features. To be more +precise, it only shows localization support, i.e. support for translating the +program messages in another language while true i18n would also involve +changing the other aspects of the programs behaviour. + +More information about this sample can be found in the {\tt readme.txt} file in +its directory. Please see also \helpref{i18n overview}{internationalization}. + \subsection{Layout sample}\label{samplelayout} The layout sample demonstrates the two different layout systems offered @@ -309,7 +307,35 @@ supported by the control (list, icons, small icons, report) may be chosen from the menu. The sample also provides some timings for adding/deleting/sorting a lot of -(several thousands) controls into the control. +(several thousands) items into the control. + + +\subsection{Render sample}\label{samplerender} + +This sample shows how to replace the default wxWindows +\helpref{renderer}{wxrenderernative} and also how to write a shared library +(DLL) implementing a renderer and load and unload it during the run-time. + + +\subsection{Rotate sample}\label{samplerotate} + +This is a simple example which demonstrates how to rotate an image with +the \helpref{wxImage::Rotate}{wximagerotate} method. The rotation can +be done without interpolation (left mouse button) which will be faster, +or with interpolation (right mouse button) which is slower but gives +better results. + +\subsection{Scroll subwindow sample}\label{samplescrollsub} + +This sample demonstrates the use of the \helpref{wxScrolledWindow}{wxscrolledwindow} +class including placing subwindows into it and drawing simple graphics. It uses the +\helpref{SetTargetWindow}{wxscrolledwindowsettargetwindow} method and thus the effect +of scrolling does not show in the scrolled window itself, but in one of its subwindows. + +Additionally, this samples demonstrates how to optimize drawing operations in wxWindows, +in particular using the \helpref{wxWindow::IsExposed}{wxwindowisexposed} method with +the aim to prevent unnecessary drawing in the window and thus reducing or removing +flicker on screen. \subsection{Sockets sample}\label{samplesockets} @@ -384,12 +410,12 @@ the raw form using the {\tt EVT\_KEY\_UP} and {\tt EVT\_KEY\_DOWN} macros and th higher level from using the {\tt EVT\_CHAR} macro. All characters will be logged in a log window at the bottom of the main window. By pressing some of the function keys, you can test some actions in the text ctrl as well as get statistics on the -text ctrls, which is useful for testing if these stastitics actually are correct. +text ctrls, which is useful for testing if these statistics actually are correct. Thirdly, on platforms which support it, the sample will offer to copy text to the \helpref{wxClipboard}{wxclipboard} and to paste text from it. The GTK version will use the so called PRIMARY SELECTION, which is the pseudo clipboard under X and -best known from pasting text to the XTerm program. +best known from pasting text to the XTerm program. Last not least: some of the text controls have tooltips and the sample also shows how tooltips can be centrally disabled and their latency controlled. @@ -432,6 +458,16 @@ in MyFrame::OnUpdateCopyAndCut. toolbar. \end{itemize} +Some buttons in the main toolbar are check buttons, i.e. they stay checked when +pressed. On the platforms which support it, the sample also add a combobox +to the toolbar showing how you can use arbitrary controls and not only buttons +in it. + +If you toggle another toolbar in the sample (using {\tt Ctrl-A}) you will also +see the radio toolbar buttons in action: the first three buttons form a radio +group, that is checking any of them automatically unchecks the previously +checked one. + \subsection{Treectrl sample}\label{sampletreectrl} This sample demonstrates using \helpref{wxTreeCtrl}{wxtreectrl} class. Here