From a2968d85eb320b948e39972c75d55df98474ff89 Mon Sep 17 00:00:00 2001 From: Bryan Petty Date: Tue, 26 Feb 2008 09:29:48 +0000 Subject: [PATCH] More doxygen topic overview cleanup. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52107 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/doxygen/overviews/resyntax.h | 1504 +++++---------------------- docs/doxygen/overviews/roughguide.h | 92 +- 2 files changed, 296 insertions(+), 1300 deletions(-) diff --git a/docs/doxygen/overviews/resyntax.h b/docs/doxygen/overviews/resyntax.h index 501294fe9c..65e2bf29c4 100644 --- a/docs/doxygen/overviews/resyntax.h +++ b/docs/doxygen/overviews/resyntax.h @@ -177,18 +177,19 @@ of a character. For example, the following are both identical: [[.0.]-[.9.]] and [[.zero.]-[.nine.]] and mean the same as [0-9]. See @ref overview_resyntax_characters. -Within a bracket expression, a collating element enclosed in @b [= and @b =] -is an equivalence class, standing for the sequences of characters of all -collating elements equivalent to that one, including itself. -An equivalence class may not be an endpoint of a range. -@e wxWidgets: Currently no equivalence classes are defined, so -@b [=X=] stands for just the single character @e X. -@e X can either be a single character literal or the name of a character, -see @ref resynchars_overview. -Within a bracket expression, -the name of a @e character class enclosed in @b [: and @b :] stands for the list -of all characters (not all collating elements!) belonging to that class. -Standard character classes are: +Within a bracket expression, a collating element enclosed in [= and +=] is an equivalence class, standing for the sequences of characters +of all collating elements equivalent to that one, including itself. An +equivalence class may not be an endpoint of a range. + +@e wxWidgets: Currently no equivalence classes are defined, so [=X=] +stands for just the single character @c X. @c X can either be a single +character literal or the name of a character, see +@ref overview_resyntax_characters. + +Within a bracket expression, the name of a @e character class enclosed in +[: and :] stands for the list of all characters (not all +collating elements!) belonging to that class. Standard character classes are: @beginTable @row2col{ alpha , A letter. } @@ -206,229 +207,138 @@ Standard character classes are: @endTable A character class may not be used as an endpoint of a range. -@e wxWidgets: In a non-Unicode build, these character classifications depend on the -current locale, and correspond to the values return by the ANSI C 'is' -functions: isalpha, isupper, etc. In Unicode mode they are based on -Unicode classifications, and are not affected by the current locale. -There are two special cases of bracket expressions: -the bracket expressions @b [[::]] and @b [[::]] are constraints, matching empty -strings at the beginning and end of a word respectively. A word is defined -as a sequence of word characters that is neither preceded nor followed -by word characters. A word character is an @e alnum character or an underscore -(@b _). These special bracket expressions are deprecated; users of AREs should -use constraint escapes instead (see #Escapes below). - - -@section overview_resyntax_escapes Escapes - -Escapes (AREs only), -which begin with a @\ followed by an alphanumeric character, come in several -varieties: character entry, class shorthands, constraint escapes, and back -references. A @\ followed by an alphanumeric character but not constituting -a valid escape is illegal in AREs. In EREs, there are no escapes: outside -a bracket expression, a @\ followed by an alphanumeric character merely stands -for that character as an ordinary character, and inside a bracket expression, -@\ is an ordinary character. (The latter is the one actual incompatibility -between EREs and AREs.) -Character-entry escapes (AREs only) exist to make -it easier to specify non-printing and otherwise inconvenient characters -in REs: - - - -@b \a - -alert (bell) character, as in C - -@b \b - -backspace, as in C - -@b \B - -synonym -for @b \ to help reduce backslash doubling in some applications where there -are multiple levels of backslash processing - -@b \c@e X - -(where X is any character) -the character whose low-order 5 bits are the same as those of @e X, and whose -other bits are all zero - -@b \e - -the character whose collating-sequence name is -'@b ESC', or failing that, the character with octal value 033 - -@b \f - -formfeed, as in C - -@b \n - -newline, as in C - -@b \r - -carriage return, as in C - -@b \t - -horizontal tab, as in C - -@b \u@e wxyz - -(where @e wxyz is exactly four hexadecimal digits) -the Unicode -character @b U+@e wxyz in the local byte ordering - -@b \U@e stuvwxyz - -(where @e stuvwxyz is -exactly eight hexadecimal digits) reserved for a somewhat-hypothetical Unicode -extension to 32 bits - -@b \v - -vertical tab, as in C are all available. - -@b \x@e hhh - -(where -@e hhh is any sequence of hexadecimal digits) the character whose hexadecimal -value is @b 0x@e hhh (a single character no matter how many hexadecimal digits -are used). - -@b \0 - -the character whose value is @b 0 - -@b \@e xy - -(where @e xy is exactly two -octal digits, and is not a @e back reference (see below)) the character whose -octal value is @b 0@e xy - -@b \@e xyz - -(where @e xyz is exactly three octal digits, and is -not a back reference (see below)) -the character whose octal value is @b 0@e xyz - - - -Hexadecimal digits are '@b 0'-'@b 9', '@b a'-'@b f', and '@b A'-'@b F'. Octal -digits are '@b 0'-'@b 7'. -The character-entry -escapes are always taken as ordinary characters. For example, @b \135 is @b ] in -ASCII, but @b \135 does not terminate a bracket expression. Beware, however, -that some applications (e.g., C compilers) interpret such sequences themselves -before the regular-expression package gets to see them, which may require -doubling (quadrupling, etc.) the '@b \'. -Class-shorthand escapes (AREs only) provide -shorthands for certain commonly-used character classes: - - - -@b \d - -@b [[:digit:]] - -@b \s - -@b [[:space:]] - -@b \w - -@b [[:alnum:]_] (note underscore) - -@b \D - -@b [^[:digit:]] - -@b \S - -@b [^[:space:]] - -@b \W - -@b [^[:alnum:]_] (note underscore) - - - -Within bracket expressions, '@b \d', '@b \s', and -'@b \w' lose their outer brackets, and '@b \D', -'@b \S', and '@b \W' are illegal. (So, for example, -@b [a-c\d] is equivalent to @b [a-c[:digit:]]. -Also, @b [a-c\D], which is equivalent to -@b [a-c^[:digit:]], is illegal.) -A constraint escape (AREs only) is a constraint, -matching the empty string if specific conditions are met, written as an -escape: - - - -@b \A - -matches only at the beginning of the string -(see #Matching, below, -for how this differs from '@b ^') -@b \m +@e wxWidgets: In a non-Unicode build, these character classifications depend on +the current locale, and correspond to the values return by the ANSI C "is" +functions: isalpha, isupper, etc. In Unicode mode they are +based on Unicode classifications, and are not affected by the current locale. -matches only at the beginning of a word +There are two special cases of bracket expressions: the bracket expressions +[[:@<:]] and [[:@>:]] are constraints, matching empty strings at +the beginning and end of a word respectively. A word is defined as a sequence +of word characters that is neither preceded nor followed by word characters. A +word character is an @e alnum character or an underscore (_). These special +bracket expressions are deprecated; users of AREs should use constraint escapes +instead (see escapes below). -@b \M -matches only at the end of a word +@section overview_resyntax_escapes Escapes -@b \y +Escapes (AREs only), which begin with a @\ followed by an alphanumeric +character, come in several varieties: character entry, class shorthands, +constraint escapes, and back references. A @\ followed by an +alphanumeric character but not constituting a valid escape is illegal in AREs. +In EREs, there are no escapes: outside a bracket expression, a @\ +followed by an alphanumeric character merely stands for that character as an +ordinary character, and inside a bracket expression, @\ is an ordinary +character. (The latter is the one actual incompatibility between EREs and +AREs.) -matches only at the beginning or end of a word +Character-entry escapes (AREs only) exist to make it easier to specify +non-printing and otherwise inconvenient characters in REs: -@b \Y +@beginTable +@row2col{ @\a , Alert (bell) character, as in C. } +@row2col{ @\b , Backspace, as in C. } +@row2col{ @\B , + Synonym for @\ to help reduce backslash doubling in some + applications where there are multiple levels of backslash processing. } +@row2col{ @\cX , + The character whose low-order 5 bits are the same as those of @e X, and + whose other bits are all zero, where @e X is any character. } +@row2col{ @\e , + The character whose collating-sequence name is @c ESC, or failing that, + the character with octal value 033. } +@row2col{ @\f , Formfeed, as in C. } +@row2col{ @\n , Newline, as in C. } +@row2col{ @\r , Carriage return, as in C. } +@row2col{ @\t , Horizontal tab, as in C. } +@row2col{ @\uwxyz , + The Unicode character U+wxyz in the local byte ordering, where + @e wxyz is exactly four hexadecimal digits. } +@row2col{ @\Ustuvwxyz , + Reserved for a somewhat-hypothetical Unicode extension to 32 bits, where + @e stuvwxyz is exactly eight hexadecimal digits. } +@row2col{ @\v , Vertical tab, as in C are all available. } +@row2col{ @\xhhh , + The single character whose hexadecimal value is @e 0xhhh, where @e hhh is + any sequence of hexadecimal digits. } +@row2col{ @\0 , The character whose value is 0. } +@row2col{ @\xy , + The character whose octal value is @e 0xy, where @e xy is exactly two octal + digits, and is not a back reference (see below). } +@row2col{ @\xyz , + The character whose octal value is @e 0xyz, where @e xyz is exactly three + octal digits, and is not a back reference (see below). } +@endTable -matches only at a point that is not the beginning or end of -a word +Hexadecimal digits are 0-9, a-f, and A-F. Octal digits are 0-7. -@b \Z +The character-entry escapes are always taken as ordinary characters. For +example, @\135 is ] in ASCII, but @\135 does not +terminate a bracket expression. Beware, however, that some applications (e.g., +C compilers) interpret such sequences themselves before the regular-expression +package gets to see them, which may require doubling (quadrupling, etc.) the +'@\'. -matches only at the end of the string -(see #Matching, below, for -how this differs from '@b $') +Class-shorthand escapes (AREs only) provide shorthands for certain +commonly-used character classes: -@b \@e m +@beginTable +@row2col{ @\d , [[:digit:]] } +@row2col{ @\s , [[:space:]] } +@row2col{ @\w , [[:alnum:]_] (note underscore) } +@row2col{ @\D , [^[:digit:]] } +@row2col{ @\S , [^[:space:]] } +@row2col{ @\W , [^[:alnum:]_] (note underscore) } +@endTable -(where @e m is a nonzero digit) a @e back reference, -see below +Within bracket expressions, @\d, @\s, and @\w lose +their outer brackets, and @\D, @\S, @\W are illegal. +So, for example, [a-c@\d] is equivalent to [a-c[:digit:]]. +Also, [a-c@\D], which is equivalent to [a-c^[:digit:]], is +illegal. -@b \@e mnn +A constraint escape (AREs only) is a constraint, matching the empty string if +specific conditions are met, written as an escape: -(where @e m is a nonzero digit, and @e nn is some more digits, -and the decimal value @e mnn is not greater than the number of closing capturing -parentheses seen so far) a @e back reference, see below +@beginTable +@row2col{ @\A , Matches only at the beginning of the string, see + @ref overview_resyntax_matching for how this differs + from ^. } +@row2col{ @\m , Matches only at the beginning of a word. } +@row2col{ @\M , Matches only at the end of a word. } +@row2col{ @\y , Matches only at the beginning or end of a word. } +@row2col{ @\Y , Matches only at a point that is not the beginning or + end of a word. } +@row2col{ @\Z , Matches only at the end of the string, see + @ref overview_resyntax_matching for how this differs + from @$. } +@row2col{ @\m , A back reference, where @e m is a non-zero + digit. See below. } +@row2col{ @\mnn , + A back reference, where @e m is a nonzero digit, and @e nn is some + more digits, and the decimal value @e mnn is not greater than the number of + closing capturing parentheses seen so far. See below. } +@endTable +A word is defined as in the specification of [[:@<:]] and +[[:>:]] above. Constraint escapes are illegal within bracket +expressions. +A back reference (AREs only) matches the same string matched by the +parenthesized subexpression specified by the number. For example, "([bc])\1" +matches "bb" or "cc" but not "bc". The subexpression must entirely precede the +back reference in the RE.Subexpressions are numbered in the order of their +leading parentheses. Non-capturing parentheses do not define subexpressions. -A word is defined -as in the specification of @b [[::]] and @b [[::]] above. Constraint escapes are -illegal within bracket expressions. -A back reference (AREs only) matches -the same string matched by the parenthesized subexpression specified by -the number, so that (e.g.) @b ([bc])\1 matches @b bb or @b cc but not '@b bc'. -The subexpression -must entirely precede the back reference in the RE. Subexpressions are numbered -in the order of their leading parentheses. Non-capturing parentheses do not -define subexpressions. -There is an inherent historical ambiguity between -octal character-entry escapes and back references, which is resolved by -heuristics, as hinted at above. A leading zero always indicates an octal -escape. A single non-zero digit, not followed by another digit, is always -taken as a back reference. A multi-digit sequence not starting with a zero -is taken as a back reference if it comes after a suitable subexpression -(i.e. the number is in the legal range for a back reference), and otherwise -is taken as octal. +There is an inherent historical ambiguity between octal character-entry escapes +and back references, which is resolved by heuristics, as hinted at above. A +leading zero always indicates an octal escape. A single non-zero digit, not +followed by another digit, is always taken as a back reference. A multi-digit +sequence not starting with a zero is taken as a back reference if it comes +after a suitable subexpression (i.e. the number is in the legal range for a +back reference), and otherwise is taken as octal. @section overview_resyntax_metasyntax Metasyntax @@ -651,7 +561,7 @@ the end of a parenthesized subexpression, and @b * is an ordinary character if it appears at the beginning of the RE or the beginning of a parenthesized subexpression (after a possible leading '@b ^'). Finally, single-digit back references are available, and @b \ and @b \ are synonyms -for @b [[::]] and @b [[::]] respectively; +for [[:@<:]] and [[:@>:]] respectively; no other escapes are available. @@ -659,1051 +569,129 @@ no other escapes are available. Note that the character names are case sensitive. +
+ + + + -NUL - - - - -'\0' - - - - - -SOH - - - - -'\001' - - - - - -STX - - - - -'\002' - - - - - -ETX - - - - -'\003' - - - - - -EOT - - - - -'\004' - - - - - -ENQ - - - - -'\005' - - - - - -ACK - - - - -'\006' - - - - - -BEL - - - - -'\007' - - - - - -alert - - - - -'\007' - - - - - -BS - - - - -'\010' - - - - - -backspace - - - - -'\b' - - - - - -HT - - - - -'\011' - - - - - -tab - - - - -'\t' - - - - - -LF - - - - -'\012' - - - - - -newline - - - - -'\n' - - - - - -VT - - - - -'\013' - - - - - -vertical-tab - - - - -'\v' - - - - - -FF - - - - -'\014' - - - - - -form-feed - - - - -'\f' - - - - - -CR - - - - -'\015' - - - - - -carriage-return - - - - -'\r' - - - - - -SO - - - - -'\016' - - - - - -SI - - - - -'\017' - - - - - -DLE - - - - -'\020' - - - - - -DC1 - - - - -'\021' - - - - - -DC2 - - - - -'\022' - - - - - -DC3 - - - - -'\023' - - - - - -DC4 - - - - -'\024' - - - - - -NAK - - - - -'\025' - - - - - -SYN - - - - -'\026' - - - - - -ETB - - - - -'\027' - - - - - -CAN - - - - -'\030' - - - - - -EM - - - - -'\031' - - - - - -SUB - - - - -'\032' - - - - - -ESC - - - - -'\033' - - - - - -IS4 - - - - -'\034' - - - - - -FS - - - - -'\034' - - - - - -IS3 - - - - -'\035' - - - - - -GS - - - - -'\035' - - - - - -IS2 - - - - -'\036' - - - - - -RS - - - - -'\036' - - - - - -IS1 - - - - -'\037' - - - - - -US - - - - -'\037' - - - - - -space - - - - -' ' - - - - - -exclamation-mark - - - - -'!' - - - - - -quotation-mark - - - - -'"' - - - - - -number-sign - - - - -'#' - - - - - -dollar-sign - - - - -'$' - - - - - -percent-sign - - - - -'%' - - - - - -ampersand - - - - -'' - - - - - -apostrophe - - - - -'\'' - - - - - -left-parenthesis - - - - -'(' - - - - - -right-parenthesis - - - - -')' - - - - - -asterisk - - - - -'*' - - - - - -plus-sign - - - - -'+' - - - - - -comma - - - - -',' - - - - - -hyphen - - - - -'-' - - - - - -hyphen-minus - - - - -'-' - - - - - -period - - - - -'.' - - - - - -full-stop - - - - -'.' - - - - - -slash - - - - -'/' - - - - - -solidus - - - - -'/' - - - - - -zero - - - - -'0' - - - - - -one - - - - -'1' - - - - - -two - - - - -'2' - - - - - -three - - - - -'3' - - - - - -four - - - - -'4' - - - - - -five - - - - -'5' - - - - - -six - - - - -'6' - - - - - -seven - - - - -'7' - - - - - -eight - - - - -'8' - - - - - -nine - - - - -'9' - - - - - -colon - - - - -':' - - - - - -semicolon - - - - -';' - - - - - -less-than-sign - - - - -'' - - - - - -equals-sign - - - - -'=' - - - - - -greater-than-sign - - - - -'' - - - - - -question-mark - - - - -'?' - - - - - -commercial-at - - - - -'@' - - - - - -left-square-bracket - - - - -'[' - - - - - -backslash - - - - -'\' - - - - - -reverse-solidus - - - - -'\' - - - - - -right-square-bracket - - - - -']' - - - - - -circumflex - - - - -'^' - - - - - -circumflex-accent - - - - -'^' - - - - - -underscore - - - - -'_' - - - - - -low-line - - - - -'_' - - - - - -grave-accent - - - - -''' - - - - - -left-brace - - - - -'{' - - - - - -left-curly-bracket - - - - -'{' - - - - - -vertical-line - - - - -'|' - - - - - -right-brace - - - - -'}' - - - - - -right-curly-bracket - - - - -'}' - - - - - -tilde - - - - -'~' - - - - - -DEL - - - + -'\177' +
+@beginTable +@row2col{ NUL , @\0 } +@row2col{ SOH , @\001 } +@row2col{ STX , @\002 } +@row2col{ ETX , @\003 } +@row2col{ EOT , @\004 } +@row2col{ ENQ , @\005 } +@row2col{ ACK , @\006 } +@row2col{ BEL , @\007 } +@row2col{ alert , @\007 } +@row2col{ BS , @\010 } +@row2col{ backspace , @\b } +@row2col{ HT , @\011 } +@row2col{ tab , @\t } +@row2col{ LF , @\012 } +@row2col{ newline , @\n } +@row2col{ VT , @\013 } +@row2col{ vertical-tab , @\v } +@row2col{ FF , @\014 } +@row2col{ form-feed , @\f } +@endTable + +@beginTable +@row2col{ CR , @\015 } +@row2col{ carriage-return , @\r } +@row2col{ SO , @\016 } +@row2col{ SI , @\017 } +@row2col{ DLE , @\020 } +@row2col{ DC1 , @\021 } +@row2col{ DC2 , @\022 } +@row2col{ DC3 , @\023 } +@row2col{ DC4 , @\024 } +@row2col{ NAK , @\025 } +@row2col{ SYN , @\026 } +@row2col{ ETB , @\027 } +@row2col{ CAN , @\030 } +@row2col{ EM , @\031 } +@row2col{ SUB , @\032 } +@row2col{ ESC , @\033 } +@row2col{ IS4 , @\034 } +@row2col{ FS , @\034 } +@row2col{ IS3 , @\035 } +@endTable + +@beginTable +@row2col{ GS , @\035 } +@row2col{ IS2 , @\036 } +@row2col{ RS , @\036 } +@row2col{ IS1 , @\037 } +@row2col{ US , @\037 } +@row2col{ space , " " (space) } +@row2col{ exclamation-mark , ! } +@row2col{ quotation-mark , " } +@row2col{ number-sign , @# } +@row2col{ dollar-sign , @$ } +@row2col{ percent-sign , @% } +@row2col{ ampersand , @& } +@row2col{ apostrophe , ' } +@row2col{ left-parenthesis , ( } +@row2col{ right-parenthesis , ) } +@row2col{ asterisk , * } +@row2col{ plus-sign , + } +@row2col{ comma , \, } +@row2col{ hyphen , - } +@endTable + +@beginTable +@row2col{ hyphen-minus , - } +@row2col{ period , . } +@row2col{ full-stop , . } +@row2col{ slash , / } +@row2col{ solidus , / } +@row2col{ zero , 0 } +@row2col{ one , 1 } +@row2col{ two , 2 } +@row2col{ three , 3 } +@row2col{ four , 4 } +@row2col{ five , 5 } +@row2col{ six , 6 } +@row2col{ seven , 7 } +@row2col{ eight , 8 } +@row2col{ nine , 9 } +@row2col{ colon , : } +@row2col{ semicolon , ; } +@row2col{ less-than-sign , @< } +@row2col{ equals-sign , = } +@endTable + +@beginTable +@row2col{ greater-than-sign , @> } +@row2col{ question-mark , ? } +@row2col{ commercial-at , @@ } +@row2col{ left-square-bracket , [ } +@row2col{ backslash , @\ } +@row2col{ reverse-solidus , @\ } +@row2col{ right-square-bracket , ] } +@row2col{ circumflex , ^ } +@row2col{ circumflex-accent , ^ } +@row2col{ underscore , _ } +@row2col{ low-line , _ } +@row2col{ grave-accent , ' } +@row2col{ left-brace , @leftCurly } +@row2col{ left-curly-bracket , @leftCurly } +@row2col{ vertical-line , | } +@row2col{ right-brace , @rightCurly } +@row2col{ right-curly-bracket , @rightCurly } +@row2col{ tilde , ~ } +@row2col{ DEL , @\177 } +@endTable +
*/ diff --git a/docs/doxygen/overviews/roughguide.h b/docs/doxygen/overviews/roughguide.h index 535367e209..dbcda42ff1 100644 --- a/docs/doxygen/overviews/roughguide.h +++ b/docs/doxygen/overviews/roughguide.h @@ -8,47 +8,55 @@ /*! - @page roughguide_overview Writing a wxWidgets application: a rough guide - - To set a wxWidgets application going, you will need to derive a #wxApp class and - override wxApp::OnInit. - An application must have a top-level #wxFrame or #wxDialog window. - Each frame may contain one or more instances of classes such as #wxPanel, #wxSplitterWindow - or other windows and controls. - A frame can have a #wxMenuBar, a #wxToolBar, a status line, and a #wxIcon for - when the frame is iconized. - A #wxPanel is used to place controls (classes derived from #wxControl) - which are used for user interaction. Examples of controls are #wxButton, - #wxCheckBox, #wxChoice, #wxListBox, - #wxRadioBox, #wxSlider. - Instances of #wxDialog can also be used for controls and they have - the advantage of not requiring a separate frame. - Instead of creating a dialog box and populating it with items, it is possible to choose - one of the convenient common dialog classes, such as #wxMessageDialog - and #wxFileDialog. - You never draw directly onto a window - you use a @e device context (DC). #wxDC is - the base for #wxClientDC, #wxPaintDC, #wxMemoryDC, #wxPostScriptDC, - #wxMemoryDC, #wxMetafileDC and #wxPrinterDC. - If your drawing functions have @b wxDC as a parameter, you can pass any of these DCs - to the function, and thus use the same code to draw to several different devices. - You can draw using the member functions of @b wxDC, such as wxDC::DrawLine - and wxDC::DrawText. Control colour on a window (#wxColour) with - brushes (#wxBrush) and pens (#wxPen). - To intercept events, you add a DECLARE_EVENT_TABLE macro to the window class declaration, - and put a BEGIN_EVENT_TABLE ... END_EVENT_TABLE block in the implementation file. Between these - macros, you add event macros which map the event (such as a mouse click) to a member function. - These might override predefined event handlers such as for #wxKeyEvent and - #wxMouseEvent. - Most modern applications will have an on-line, hypertext help system; for this, you - need wxHelp and the #wxHelpController class to control - wxHelp. - GUI applications aren't all graphical wizardry. List and hash table needs are - catered for by #wxList and #wxHashMap. - You will undoubtedly need some platform-independent @ref filefunctions_overview, - and you may find it handy to maintain and search a list of paths using #wxPathList. - There's a #miscellany of operating system and other functions. - See also @ref classesbycat_overview for a list of classes. - - */ +@page overview_roughguide Writing a wxWidgets Application: A Rough Guide +To set a wxWidgets application going, you will need to derive a #wxApp class +and override wxApp::OnInit. + +An application must have a top-level #wxFrame or #wxDialog window. Each frame +may contain one or more instances of classes such as #wxPanel, +#wxSplitterWindow or other windows and controls. + +A frame can have a #wxMenuBar, a #wxToolBar, a status line, and a #wxIcon for +when the frame is iconized. + +A #wxPanel is used to place controls (classes derived from #wxControl) which +are used for user interaction. Examples of controls are #wxButton, #wxCheckBox, +#wxChoice, #wxListBox, #wxRadioBox, #wxSlider. + +Instances of #wxDialog can also be used for controls and they have the +advantage of not requiring a separate frame. + +Instead of creating a dialog box and populating it with items, it is possible +to choose one of the convenient common dialog classes, such as #wxMessageDialog +and #wxFileDialog. + +You never draw directly onto a window - you use a device context (DC). +#wxDC is the base for #wxClientDC, #wxPaintDC, #wxMemoryDC, #wxPostScriptDC, +#wxMemoryDC, #wxMetafileDC and #wxPrinterDC. If your drawing functions have +wxDC as a parameter, you can pass any of these DCs to the function, and thus +use the same code to draw to several different devices. You can draw using the +member functions of wxDC, such as wxDC::DrawLine and wxDC::DrawText. Control +colour on a window (#wxColour) with brushes (#wxBrush) and pens (#wxPen). + +To intercept events, you add a DECLARE_EVENT_TABLE macro to the window class +declaration, and put a BEGIN_EVENT_TABLE ... END_EVENT_TABLE block in the +implementation file. Between these macros, you add event macros which map the +event (such as a mouse click) to a member function. These might override +predefined event handlers such as for #wxKeyEvent and #wxMouseEvent. + +Most modern applications will have an on-line, hypertext help system; for this, +you need wxHelp and the #wxHelpController class to control wxHelp. + +GUI applications aren't all graphical wizardry. List and hash table needs are +catered for by #wxList and #wxHashMap. You will undoubtedly need some +platform-independent @ref functions_file, and you may find it handy to +maintain and search a list of paths using #wxPathList. There's many +@ref functions_miscellany of operating system methods and other functions. + +@seealso + +@li @ref overview_classesbycat + +*/ -- 2.45.2