]> git.saurik.com Git - wxWidgets.git/commitdiff
interface revisions of ta*h te*h headers; grouped wxTextAttr #defines into enums...
authorFrancesco Montorsi <f18m_cpp217828@yahoo.it>
Sat, 4 Oct 2008 11:01:50 +0000 (11:01 +0000)
committerFrancesco Montorsi <f18m_cpp217828@yahoo.it>
Sat, 4 Oct 2008 11:01:50 +0000 (11:01 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56075 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/tarstrm.h
include/wx/textctrl.h
interface/wx/archive.h
interface/wx/tarstrm.h
interface/wx/taskbar.h
interface/wx/textctrl.h
interface/wx/textdlg.h
interface/wx/textfile.h
interface/wx/zipstrm.h

index e405375925a7005212db242741b526835fa1cdd4..5043c5f29e8c43145a5c09409d1b395e3eca86db 100644 (file)
@@ -22,7 +22,8 @@
 // Constants
 
 // TypeFlag values
-enum {
+enum wxTarType
+{
     wxTAR_REGTYPE   = '0',      // regular file
     wxTAR_LNKTYPE   = '1',      // hard link
     wxTAR_SYMTYPE   = '2',      // symbolic link
index d92157292a4ee0c367b42d922e778bd5dca2d568..fa14d7a4a1ea14ebc8441ad11084bb3598ab25ff 100644 (file)
@@ -161,96 +161,108 @@ enum wxTextAttrAlignment
 };
 
 // Flags to indicate which attributes are being applied
-
-#define wxTEXT_ATTR_TEXT_COLOUR             0x00000001
-#define wxTEXT_ATTR_BACKGROUND_COLOUR       0x00000002
-#define wxTEXT_ATTR_FONT_FACE               0x00000004
-#define wxTEXT_ATTR_FONT_SIZE               0x00000008
-#define wxTEXT_ATTR_FONT_WEIGHT             0x00000010
-#define wxTEXT_ATTR_FONT_ITALIC             0x00000020
-#define wxTEXT_ATTR_FONT_UNDERLINE          0x00000040
-#define wxTEXT_ATTR_FONT_ENCODING           0x02000000
-#define wxTEXT_ATTR_FONT \
-  ( wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT | \
-    wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING )
-#define wxTEXT_ATTR_ALIGNMENT               0x00000080
-#define wxTEXT_ATTR_LEFT_INDENT             0x00000100
-#define wxTEXT_ATTR_RIGHT_INDENT            0x00000200
-#define wxTEXT_ATTR_TABS                    0x00000400
-
-#define wxTEXT_ATTR_PARA_SPACING_AFTER      0x00000800
-#define wxTEXT_ATTR_PARA_SPACING_BEFORE     0x00001000
-#define wxTEXT_ATTR_LINE_SPACING            0x00002000
-#define wxTEXT_ATTR_CHARACTER_STYLE_NAME    0x00004000
-#define wxTEXT_ATTR_PARAGRAPH_STYLE_NAME    0x00008000
-#define wxTEXT_ATTR_LIST_STYLE_NAME         0x00010000
-#define wxTEXT_ATTR_BULLET_STYLE            0x00020000
-#define wxTEXT_ATTR_BULLET_NUMBER           0x00040000
-#define wxTEXT_ATTR_BULLET_TEXT             0x00080000
-#define wxTEXT_ATTR_BULLET_NAME             0x00100000
-#define wxTEXT_ATTR_URL                     0x00200000
-#define wxTEXT_ATTR_PAGE_BREAK              0x00400000
-#define wxTEXT_ATTR_EFFECTS                 0x00800000
-#define wxTEXT_ATTR_OUTLINE_LEVEL           0x01000000
-
-/*!
- * Character and paragraph combined styles
- */
-
-#define wxTEXT_ATTR_CHARACTER (wxTEXT_ATTR_FONT|wxTEXT_ATTR_FONT_ENCODING|wxTEXT_ATTR_EFFECTS|wxTEXT_ATTR_BACKGROUND_COLOUR|wxTEXT_ATTR_TEXT_COLOUR|wxTEXT_ATTR_CHARACTER_STYLE_NAME|wxTEXT_ATTR_URL)
-
-#define wxTEXT_ATTR_PARAGRAPH (wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_TABS|\
-    wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|wxTEXT_ATTR_LINE_SPACING|\
-    wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_TEXT|wxTEXT_ATTR_BULLET_NAME|\
-    wxTEXT_ATTR_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL)
-
-#define wxTEXT_ATTR_ALL (wxTEXT_ATTR_CHARACTER|wxTEXT_ATTR_PARAGRAPH)
+enum wxTextAttrFlags
+{
+    wxTEXT_ATTR_TEXT_COLOUR          = 0x00000001,
+    wxTEXT_ATTR_BACKGROUND_COLOUR    = 0x00000002,
+    wxTEXT_ATTR_FONT_FACE            = 0x00000004,
+    wxTEXT_ATTR_FONT_SIZE            = 0x00000008,
+    wxTEXT_ATTR_FONT_WEIGHT          = 0x00000010,
+    wxTEXT_ATTR_FONT_ITALIC          = 0x00000020,
+    wxTEXT_ATTR_FONT_UNDERLINE       = 0x00000040,
+    wxTEXT_ATTR_FONT_ENCODING        = 0x02000000,
+    wxTEXT_ATTR_FONT = \
+        ( wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT | \
+            wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING ),
+
+    wxTEXT_ATTR_ALIGNMENT            = 0x00000080,
+    wxTEXT_ATTR_LEFT_INDENT          = 0x00000100,
+    wxTEXT_ATTR_RIGHT_INDENT         = 0x00000200,
+    wxTEXT_ATTR_TABS                 = 0x00000400,
+
+    wxTEXT_ATTR_PARA_SPACING_AFTER   = 0x00000800,
+    wxTEXT_ATTR_PARA_SPACING_BEFORE  = 0x00001000,
+    wxTEXT_ATTR_LINE_SPACING         = 0x00002000,
+    wxTEXT_ATTR_CHARACTER_STYLE_NAME = 0x00004000,
+    wxTEXT_ATTR_PARAGRAPH_STYLE_NAME = 0x00008000,
+    wxTEXT_ATTR_LIST_STYLE_NAME      = 0x00010000,
+    wxTEXT_ATTR_BULLET_STYLE         = 0x00020000,
+    wxTEXT_ATTR_BULLET_NUMBER        = 0x00040000,
+    wxTEXT_ATTR_BULLET_TEXT          = 0x00080000,
+    wxTEXT_ATTR_BULLET_NAME          = 0x00100000,
+    wxTEXT_ATTR_URL                  = 0x00200000,
+    wxTEXT_ATTR_PAGE_BREAK           = 0x00400000,
+    wxTEXT_ATTR_EFFECTS              = 0x00800000,
+    wxTEXT_ATTR_OUTLINE_LEVEL        = 0x01000000,
+
+    /*!
+    * Character and paragraph combined styles
+    */
+
+    wxTEXT_ATTR_CHARACTER = \
+        (wxTEXT_ATTR_FONT|wxTEXT_ATTR_FONT_ENCODING|wxTEXT_ATTR_EFFECTS| \
+            wxTEXT_ATTR_BACKGROUND_COLOUR|wxTEXT_ATTR_TEXT_COLOUR|wxTEXT_ATTR_CHARACTER_STYLE_NAME|wxTEXT_ATTR_URL),
+
+    wxTEXT_ATTR_PARAGRAPH = \
+        (wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_TABS|\
+            wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|wxTEXT_ATTR_LINE_SPACING|\
+            wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_TEXT|wxTEXT_ATTR_BULLET_NAME|\
+            wxTEXT_ATTR_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL),
+
+    wxTEXT_ATTR_ALL = (wxTEXT_ATTR_CHARACTER|wxTEXT_ATTR_PARAGRAPH)
+};
 
 /*!
  * Styles for wxTextAttr::SetBulletStyle
  */
-
-#define wxTEXT_ATTR_BULLET_STYLE_NONE               0x00000000
-#define wxTEXT_ATTR_BULLET_STYLE_ARABIC             0x00000001
-#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER      0x00000002
-#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER      0x00000004
-#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER        0x00000008
-#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER        0x00000010
-#define wxTEXT_ATTR_BULLET_STYLE_SYMBOL             0x00000020
-#define wxTEXT_ATTR_BULLET_STYLE_BITMAP             0x00000040
-#define wxTEXT_ATTR_BULLET_STYLE_PARENTHESES        0x00000080
-#define wxTEXT_ATTR_BULLET_STYLE_PERIOD             0x00000100
-#define wxTEXT_ATTR_BULLET_STYLE_STANDARD           0x00000200
-#define wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS  0x00000400
-#define wxTEXT_ATTR_BULLET_STYLE_OUTLINE            0x00000800
-
-#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT         0x00000000
-#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT        0x00001000
-#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE       0x00002000
+enum wxTextAttrBulletStyle
+{
+    wxTEXT_ATTR_BULLET_STYLE_NONE            = 0x00000000,
+    wxTEXT_ATTR_BULLET_STYLE_ARABIC          = 0x00000001,
+    wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER   = 0x00000002,
+    wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER   = 0x00000004,
+    wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER     = 0x00000008,
+    wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER     = 0x00000010,
+    wxTEXT_ATTR_BULLET_STYLE_SYMBOL          = 0x00000020,
+    wxTEXT_ATTR_BULLET_STYLE_BITMAP          = 0x00000040,
+    wxTEXT_ATTR_BULLET_STYLE_PARENTHESES     = 0x00000080,
+    wxTEXT_ATTR_BULLET_STYLE_PERIOD          = 0x00000100,
+    wxTEXT_ATTR_BULLET_STYLE_STANDARD        = 0x00000200,
+    wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS = 0x00000400,
+    wxTEXT_ATTR_BULLET_STYLE_OUTLINE         = 0x00000800,
+
+    wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT      = 0x00000000,
+    wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT     = 0x00001000,
+    wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE    = 0x00002000
+};
 
 /*!
  * Styles for wxTextAttr::SetTextEffects
  */
-
-#define wxTEXT_ATTR_EFFECT_NONE                     0x00000000
-#define wxTEXT_ATTR_EFFECT_CAPITALS                 0x00000001
-#define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS           0x00000002
-#define wxTEXT_ATTR_EFFECT_STRIKETHROUGH            0x00000004
-#define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH     0x00000008
-#define wxTEXT_ATTR_EFFECT_SHADOW                   0x00000010
-#define wxTEXT_ATTR_EFFECT_EMBOSS                   0x00000020
-#define wxTEXT_ATTR_EFFECT_OUTLINE                  0x00000040
-#define wxTEXT_ATTR_EFFECT_ENGRAVE                  0x00000080
-#define wxTEXT_ATTR_EFFECT_SUPERSCRIPT              0x00000100
-#define wxTEXT_ATTR_EFFECT_SUBSCRIPT                0x00000200
+enum wxTextAttrEffects
+{
+    wxTEXT_ATTR_EFFECT_NONE                  = 0x00000000,
+    wxTEXT_ATTR_EFFECT_CAPITALS              = 0x00000001,
+    wxTEXT_ATTR_EFFECT_SMALL_CAPITALS        = 0x00000002,
+    wxTEXT_ATTR_EFFECT_STRIKETHROUGH         = 0x00000004,
+    wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH  = 0x00000008,
+    wxTEXT_ATTR_EFFECT_SHADOW                = 0x00000010,
+    wxTEXT_ATTR_EFFECT_EMBOSS                = 0x00000020,
+    wxTEXT_ATTR_EFFECT_OUTLINE               = 0x00000040,
+    wxTEXT_ATTR_EFFECT_ENGRAVE               = 0x00000080,
+    wxTEXT_ATTR_EFFECT_SUPERSCRIPT           = 0x00000100,
+    wxTEXT_ATTR_EFFECT_SUBSCRIPT             = 0x00000200
+};
 
 /*!
  * Line spacing values
  */
-
-#define wxTEXT_ATTR_LINE_SPACING_NORMAL         10
-#define wxTEXT_ATTR_LINE_SPACING_HALF           15
-#define wxTEXT_ATTR_LINE_SPACING_TWICE          20
+enum wxTextAttrLineSpacing
+{
+    wxTEXT_ATTR_LINE_SPACING_NORMAL         = 10,
+    wxTEXT_ATTR_LINE_SPACING_HALF           = 15,
+    wxTEXT_ATTR_LINE_SPACING_TWICE          = 20
+};
 
 // ----------------------------------------------------------------------------
 // wxTextAttr: a structure containing the visual attributes of a text
@@ -345,6 +357,8 @@ public:
     const wxString& GetListStyleName() const { return m_listStyleName; }
     int GetParagraphSpacingAfter() const { return m_paragraphSpacingAfter; }
     int GetParagraphSpacingBefore() const { return m_paragraphSpacingBefore; }
+
+    // TODO: should return the relative wxTextAttr* enumeration values
     int GetLineSpacing() const { return m_lineSpacing; }
     int GetBulletStyle() const { return m_bulletStyle; }
     int GetBulletNumber() const { return m_bulletNumber; }
index 3a06fac0b5d4b6f0815acdfc9a5e34a4a1818025..ccec5851c5e96ecae8f90b299de4988e813feb23 100644 (file)
@@ -22,7 +22,7 @@
     When there are no more entries, GetNextEntry() returns @NULL and sets Eof().
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive, wxArchiveEntry, wxArchiveOutputStream
 */
@@ -65,7 +65,7 @@ public:
     Another call to PutNextEntry() closes the current entry and begins the next.
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive, wxArchiveEntry, wxArchiveInputStream
 */
@@ -178,7 +178,7 @@ public:
         been reached, i.e. after GetNextEntry() returns NULL and Eof() is true.
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive, @ref overview_archive_generic,
          wxArchiveInputStream, wxArchiveOutputStream, wxArchiveNotifier
@@ -332,7 +332,7 @@ enum wxStreamProtocolType
     wxArchiveClassFactory::GetFirst() and wxArchiveClassFactory::GetNext().
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive, @ref overview_archive_generic, wxArchiveEntry,
          wxArchiveInputStream, wxArchiveOutputStream, wxFilterClassFactory
@@ -488,7 +488,7 @@ public:
     See @ref overview_archive_noseek.
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive_noseek, wxArchiveEntry, wxArchiveInputStream,
          wxArchiveOutputStream
@@ -597,7 +597,7 @@ public:
     @endcode
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see wxArchiveEntry, wxArchiveInputStream, wxArchiveOutputStream
 */
index 26d208d7025f373db005a5c5eef795025b410ba1..d2a7a52d166cde4f8dc14765f458f2ba5041905b 100644 (file)
@@ -1,31 +1,55 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        tarstrm.h
-// Purpose:     interface of wxTarInputStream
+// Purpose:     interface of wxTar* classes
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+
+/** wxTarEntry::GetTypeFlag() values */
+enum wxTarType
+{
+    wxTAR_REGTYPE   = '0',      //!< regular file
+    wxTAR_LNKTYPE   = '1',      //!< hard link
+    wxTAR_SYMTYPE   = '2',      //!< symbolic link
+    wxTAR_CHRTYPE   = '3',      //!< character special
+    wxTAR_BLKTYPE   = '4',      //!< block special
+    wxTAR_DIRTYPE   = '5',      //!< directory
+    wxTAR_FIFOTYPE  = '6',      //!< named pipe
+    wxTAR_CONTTYPE  = '7'       //!< contiguous file
+};
+
+/** Archive Formats (use wxTAR_PAX, it's backward compatible) used by wxTarEntry */
+enum wxTarFormat
+{
+    wxTAR_USTAR,                //!< POSIX.1-1990 tar format
+    wxTAR_PAX                   //!< POSIX.1-2001 tar format
+};
+
+
 /**
     @class wxTarInputStream
 
     Input stream for reading tar files.
 
-    wxTarInputStream::GetNextEntry returns an
-     wxTarEntry object containing the meta-data
-    for the next entry in the tar (and gives away ownership). Reading from
-    the wxTarInputStream then returns the entry's data. Eof() becomes @true
-    after an attempt has been made to read past the end of the entry's data.
-    When there are no more entries, GetNextEntry() returns @NULL and sets Eof().
+    wxTarInputStream::GetNextEntry() returns a wxTarEntry object containing the
+    meta-data for the next entry in the tar (and gives away ownership).
+    Reading from the wxTarInputStream then returns the entry's data.
+    wxTarInputStream::Eof() becomes @true after an attempt has been made to read
+    past the end of the entry's data.
+
+    When there are no more entries, wxTarInputStream::GetNextEntry() returns @NULL
+    and sets wxTarInputStream::Eof().
 
     Tar entries are seekable if the parent stream is seekable. In practice this
     usually means they are only seekable if the tar is stored as a local file and
     is not compressed.
 
     @library{wxbase}
-    @category{streams}
+    @category{archive,streams}
 
-    @see @ref overview_wxarcbyname "Looking up an archive entry by name"
+    @see @ref overview_archive_byname
 */
 class wxTarInputStream : public wxArchiveInputStream
 {
@@ -33,9 +57,11 @@ public:
     //@{
     /**
         Constructor. In a Unicode build the second parameter @a conv is
-        used to translate fields from the standard tar header into Unicode. It has
-        no effect on the stream's data. @a conv is only used for the standard
+        used to translate fields from the standard tar header into Unicode.
+
+        It has no effect on the stream's data. @a conv is only used for the standard
         tar headers, any pax extended headers are always UTF-8 encoded.
+
         If the parent stream is passed as a pointer then the new filter stream
         takes ownership of it. If it is passed by reference then it does not.
     */
@@ -46,23 +72,24 @@ public:
     //@}
 
     /**
-        Closes the current entry. On a non-seekable stream reads to the end of
-        the current entry first.
+        Closes the current entry.
+        On a non-seekable stream reads to the end of the current entry first.
     */
     bool CloseEntry();
 
     /**
         Closes the current entry if one is open, then reads the meta-data for
-        the next entry and returns it in a wxTarEntry
-        object, giving away ownership. The stream is then open and can be read.
+        the next entry and returns it in a wxTarEntry object, giving away ownership.
+        The stream is then open and can be read.
     */
     wxTarEntry* GetNextEntry();
 
     /**
         Closes the current entry if one is open, then opens the entry specified
         by the @a entry object.
-        @a entry should be from the same tar file, and the tar should
-        be on a seekable stream.
+
+        @a entry should be from the same tar file, and the tar should be on a
+        seekable stream.
     */
     bool OpenEntry(wxTarEntry& entry);
 };
@@ -72,14 +99,14 @@ public:
 /**
     @class wxTarClassFactory
 
-    Class factory for the tar archive format. See the base class
-    for details.
+    Class factory for the tar archive format.
+    See the base class for details.
 
     @library{wxbase}
-    @category{FIXME}
+    @category{archive,streams}
 
-    @see @ref overview_wxarc "Archive formats such as zip", @ref
-    overview_wxarcgeneric "Generic archive programming", wxTarEntry, wxTarInputStream, wxTarOutputStream
+    @see @ref overview_archive, @ref overview_archive_generic,
+         wxTarEntry, wxTarInputStream, wxTarOutputStream
 */
 class wxTarClassFactory : public wxArchiveClassFactory
 {
@@ -94,16 +121,15 @@ public:
 
     Output stream for writing tar files.
 
-    wxTarOutputStream::PutNextEntry is used to create
-    a new entry in the output tar, then the entry's data is written to the
-    wxTarOutputStream. Another call to PutNextEntry() closes the current
-    entry and begins the next.
+    wxTarOutputStream::PutNextEntry() is used to create a new entry in the output tar,
+    then the entry's data is written to the wxTarOutputStream.
+    Another call to wxTarOutputStream::PutNextEntry() closes the current entry
+    and begins the next.
 
     @library{wxbase}
     @category{streams}
 
-    @see @ref overview_wxarc "Archive formats such as zip", wxTarEntry,
-    wxTarInputStream
+    @see @ref overview_archive, wxTarEntry, wxTarInputStream
 */
 class wxTarOutputStream : public wxArchiveOutputStream
 {
@@ -112,18 +138,21 @@ public:
     /**
         If the parent stream is passed as a pointer then the new filter stream
         takes ownership of it. If it is passed by reference then it does not.
+
         In a Unicode build the third parameter @a conv is used to translate the
         headers fields into an 8-bit encoding. It has no effect on the stream's data.
+
         When the @a format is @e wxTAR_PAX, pax extended headers are generated
         when any header field will not fit the standard tar header block or if it
         uses any non-ascii characters.
+
         Extended headers are stored as extra 'files' within the tar, and will be
         extracted as such by any other tar program that does not understand them.
         The @a conv parameter only affect the standard tar headers, the extended
         headers are always UTF-8 encoded.
-        When the @a format is @e wxTAR_USTAR, no extended headers are
-        generated, and instead a warning message is logged if any header field
-        overflows.
+
+        When the @a format is @e wxTAR_USTAR, no extended headers are generated,
+        and instead a warning message is logged if any header field overflows.
     */
     wxTarOutputStream(wxOutputStream& stream,
                       wxTarFormat format = wxTAR_PAX,
@@ -134,8 +163,8 @@ public:
     //@}
 
     /**
-        The destructor calls Close() to finish
-        writing the tar if it has not been called already.
+        The destructor calls Close() to finish writing the tar if it has
+        not been called already.
     */
     virtual ~wxTarOutputStream();
 
@@ -146,63 +175,64 @@ public:
     bool Close();
 
     /**
-        Close the current entry. It is called implicitly whenever another new
-        entry is created with CopyEntry()
-        or PutNextEntry(), or
-        when the tar is closed.
+        Close the current entry.
+
+        It is called implicitly whenever another new entry is created with
+        CopyEntry() or PutNextEntry(), or when the tar is closed.
     */
     bool CloseEntry();
 
     /**
-        See wxArchiveOutputStream::CopyArchiveMetaData.
+        See wxArchiveOutputStream::CopyArchiveMetaData().
         For the tar format this function does nothing.
     */
     bool CopyArchiveMetaData(wxTarInputStream& s);
 
     /**
-        Takes ownership of @a entry and uses it to create a new entry
-        in the tar. @a entry is then opened in @a inputStream and its contents
-        copied to this stream.
+        Takes ownership of @a entry and uses it to create a new entry in the tar.
+        @a entry is then opened in @a inputStream and its contents copied to this stream.
+
         For some other archive formats CopyEntry() is much more efficient than
         transferring the data using Read() and Write() since it will copy them
-        without decompressing and recompressing them. For tar however it makes
-        no difference.
+        without decompressing and recompressing them.
+        For tar however it makes no difference.
+
         For tars on seekable streams, @a entry must be from the same tar file
-        as @e stream. For non-seekable streams, @a entry must also be the
-        last thing read from @e inputStream.
+        as @a inputStream. For non-seekable streams, @a entry must also be the
+        last thing read from @a inputStream.
     */
     bool CopyEntry(wxTarEntry* entry, wxTarInputStream& inputStream);
 
     //@{
     /**
         The tar is zero padded to round its size up to @e BlockingFactor * 512 bytes.
-        Defaults to 10 for @e wxTAR_PAX and 20 for @e wxTAR_USTAR
-        (see the @ref wxtaroutputstream() constructor), as
-        specified in the POSIX standards.
+
+        The blocking factor defaults to 10 for @e wxTAR_PAX and 20 for @e wxTAR_USTAR
+        (see wxTarOutputStream()), as specified in the POSIX standards.
     */
-    int GetBlockingFactor();
-    const void SetBlockingFactor(int factor);
+    int GetBlockingFactor() const;
+    void SetBlockingFactor(int factor);
     //@}
 
     /**
-        )
-        Create a new directory entry
-        (see wxArchiveEntry::IsDir)
-        with the given name and timestamp.
-        PutNextEntry() can
-        also be used to create directory entries, by supplying a name with
-        a trailing path separator.
+        Create a new directory entry (see wxArchiveEntry::IsDir()) with the given
+        name and timestamp.
+
+        PutNextEntry() can also be used to create directory entries, by supplying
+        a name with a trailing path separator.
     */
-    bool PutNextDirEntry(const wxString& name);
+    bool PutNextDirEntry(const wxString& name, const wxDateTime& dt = wxDateTime::Now());
 
-    //@{
     /**
-        , @b wxFileOffset@e size = wxInvalidOffset)
-        Create a new entry with the given name, timestamp and size.
+        Takes ownership of entry and uses it to create a new entry in the tar.
     */
     bool PutNextEntry(wxTarEntry* entry);
-    bool PutNextEntry(const wxString& name);
-    //@}
+
+    /**
+        Create a new entry with the given name, timestamp and size.
+    */
+    bool PutNextEntry(const wxString& name, const wxDateTime& dt = wxDateTime::Now(),
+                      wxFileOffset size = wxInvalidOffset);
 };
 
 
@@ -212,135 +242,161 @@ public:
 
     Holds the meta-data for an entry in a tar.
 
+    @section tarentry_fields Field availability
+
+    The tar format stores all the meta-data for an entry ahead of its data,
+    therefore GetNextEntry() always returns a fully populated wxTarEntry object,
+    both when reading from seekable and non-seekable streams.
+
     @library{wxbase}
-    @category{FIXME}
+    @category{archive,streams}
 
-    @see @ref overview_wxarc "Archive formats such as zip", wxTarInputStream,
-    wxTarOutputStream
+    @see @ref overview_archive, wxTarInputStream, wxTarOutputStream
 */
 class wxTarEntry : public wxArchiveEntry
 {
 public:
-    //@{
+    /**
+        Constructor.
+
+        The tar archive format stores the entry's size ahead of the entry's data.
+        Therefore when creating an archive on a non-seekable stream it is necessary
+        to supply the correct size when each entry is created.
+    */
+    wxTarEntry(const wxString& name = wxEmptyString,
+               const wxDateTime& dt = wxDateTime::Now(),
+               wxFileOffset size = wxInvalidOffset);
+
     /**
         Copy constructor.
     */
-    wxTarEntry(const wxString& name = wxEmptyString);
     wxTarEntry(const wxTarEntry& entry);
-    //@}
 
     //@{
     /**
-        The entry's access time stamp. See also
-         wxArchiveEntry::Get/SetDateTime.
+        Gets/sets the entry's access time stamp.
+        See also wxArchiveEntry::GetDateTime() and wxArchiveEntry::SetDateTime().
     */
-    wxDateTime GetAccessTime();
-    const void SetAccessTime(const wxDateTime& dt);
+    wxDateTime GetAccessTime() const;
+    void SetAccessTime(const wxDateTime& dt);
     //@}
 
     //@{
     /**
-        The entry's creation time stamp. See also
-         wxArchiveEntry::Get/SetDateTime.
+        The entry's creation time stamp.
+        See also wxArchiveEntry::GetDateTime() and wxArchiveEntry::SetDateTime().
     */
-    wxDateTime GetCreateTime();
-    const void SetCreateTime(const wxDateTime& dt);
+    wxDateTime GetCreateTime() const;
+    void SetCreateTime(const wxDateTime& dt);
     //@}
 
     //@{
     /**
-        OS specific IDs defining a device, these are only meaningful when
-         TypeFlag() is set to @e wxTAR_CHRTYPE
-         or @e wxTAR_BLKTYPE.
+        OS specific IDs defining a device; these are only meaningful when
+        wxTarEntry::GetTypeFlag() is @e wxTAR_CHRTYPE or @e wxTAR_BLKTYPE.
     */
-    int GetDevMajor();
-    const int GetDevMinor();
-    const void SetDevMajor(int dev);
+    int GetDevMajor() const;
+    int GetDevMinor() const;
+    void SetDevMajor(int dev);
     void SetDevMinor(int dev);
     //@}
 
     //@{
     /**
-        The user ID and group ID that has @ref mode() permissions over
-        this entry. These values aren't usually useful unless the file will only be
-        restored to the same system it originated from. @ref unamegname()
-        "Get/SetGroupName and
-        Get/SetUserName" can be used instead.
+        The user ID and group ID that has permissions (see wxTarEntry::GetMode())
+        over this entry.
+
+        These values aren't usually useful unless the file will only be
+        restored to the same system it originated from.
+        wxTarEntry::GetGroupName() and wxTarEntry::GetUserName() can be used instead.
     */
-    int GetGroupId();
-    const int GetUserId();
-    const void SetGroupId(int id);
+    int GetGroupId() const;
+    int GetUserId() const;
+    void SetGroupId(int id);
     void SetUserId(int id);
     //@}
 
     //@{
     /**
-        The names of the user and group that has @ref mode() permissions
+        The names of the user and group that has permissions (see wxTarEntry::GetMode())
         over this entry. These are not present in very old tars.
     */
-    wxString GetGroupName();
-    const wxString  GetUserName();
-    const void SetGroupName(const wxString& group);
+    wxString GetGroupName() const;
+    wxString GetUserName() const;
+    void SetGroupName(const wxString& group);
     void SetUserName(const wxString& user);
     //@}
 
     //@{
     /**
         The filename of a previous entry in the tar that this entry is a link to.
-        Only meaningful when TypeFlag() is set
-        to @e wxTAR_LNKTYPE or @e wxTAR_SYMTYPE.
+        Only meaningful when wxTarEntry::GetTypeFlag() is set to @e wxTAR_LNKTYPE
+        or @e wxTAR_SYMTYPE.
     */
-    wxString GetLinkName();
-    const void SetLinkName(const wxString& link);
+    wxString GetLinkName() const;
+    void SetLinkName(const wxString& link);
     //@}
 
     //@{
     /**
-        UNIX permission bits for this entry. Giving read, write and execute permissions
-        to the file's @ref unamegname() "User and Group" and to others.
-        Symbols are defined for them in wx/file.h.
+        UNIX permission bits for this entry.
+        Giving read, write and execute permissions to the file's user and group
+        (see GetGroupName() and GetUserName()) and to others.
+
+        The integer is one or more ::wxPosixPermissions flags OR-combined.
     */
-    int GetMode();
-    const void SetMode(int mode);
+    int GetMode() const;
+    void SetMode(int mode);
     //@}
 
     //@{
     /**
         The size of the entry's data in bytes.
+
         The tar archive format stores the entry's size ahead of the entry's data.
         Therefore when creating an archive on a non-seekable stream it is necessary to
-        supply the correct size when each entry is created. For seekable streams this
-        is not necessary as wxTarOutputStream will attempt
+        supply the correct size when each entry is created.
+
+        For seekable streams this is not necessary as wxTarOutputStream will attempt
         to seek back and fix the entry's header when the entry is closed, though it is
         still more efficient if the size is given beforehand.
     */
-    void SetSize(wxFileOffset size) const;
+    void SetSize(wxFileOffset size);
     wxFileOffset GetSize() const;
     //@}
 
     //@{
     /**
-        Returns the type of the entry. It should be one of the following:
+        Returns/Sets the type of the entry as a ::wxTarType value.
 
-        When creating archives use just these values. When reading archives
-        any other values should be treated as @e wxTAR_REGTYPE.
+        When creating archives use only one of ::wxTarType values.
+        When reading archives, GetTypeFlag() may return a value which does not
+        match any value of ::wxTarType; in this case the returned value should be
+        treated as @e wxTAR_REGTYPE.
     */
-    int GetTypeFlag();
-    const void SetTypeFlag(int type);
+    int GetTypeFlag() const;
+    void SetTypeFlag(int type);
     //@}
 
-    //@{
+    /**
+        Returns the entry's filename in the internal format used within the archive.
+
+        The name can include directory components, i.e. it can be a full path.
+        The names of directory entries are returned without any trailing path separator.
+        This gives a canonical name that can be used in comparisons.
+    */
+    wxString GetInternalName() const;
+
     /**
         A static member that translates a filename into the internal format used
-        within the archive. If the third parameter is provided, the bool pointed
-        to is set to indicate whether the name looks like a directory name
-        (i.e. has a trailing path separator).
+        within the archive.
+
+        If the third parameter is provided, the bool pointed to is set to indicate
+        whether the name looks like a directory name (i.e. has a trailing path separator).
     */
-    wxString GetInternalName();
-    const wxString  GetInternalName(const wxString& name,
+    static wxString GetInternalName(const wxString& name,
                                     wxPathFormat format = wxPATH_NATIVE,
                                     bool* pIsDir = NULL);
-    //@}
 
     /**
         Assignment operator.
index b4aeaef4606a8cb1a14ca461ccf1281d1a2701fb..3c17db5f76d4857697981c9c14694ffd70e5ded8 100644 (file)
@@ -9,11 +9,49 @@
 /**
     @class wxTaskBarIcon
 
-    This class represents a taskbar icon. A taskbar icon is an icon that appears in
-    the 'system tray' and responds to mouse clicks, optionally with a tooltip above it to help provide information.
+    This class represents a taskbar icon.
+    A taskbar icon is an icon that appears in the 'system tray' and responds to
+    mouse clicks, optionally with a tooltip above it to help provide information.
+
+    @section taskbaricon_xnote X Window System Note
+    Under X Window System, the window manager must support either the
+    @link http://freedesktop.org/wiki/Specifications/systemtray-spec "System Tray Protocol"
+    by freedesktop.org (WMs used by modern desktop environments such as GNOME >= 2,
+    KDE >= 3 and XFCE >= 4 all do) or the older methods used in GNOME 1.2 and KDE 1 and 2.
+
+    If it doesn't, the icon will appear as a toplevel window on user's desktop.
+    Because not all window managers have system tray, there's no guarantee that
+    wxTaskBarIcon will work correctly under X Window System and so the applications
+    should use it only as an optional component of their user interface.
+    The user should be required to explicitly enable the taskbar icon on Unix,
+    it shouldn't be on by default.
+
+    @beginEventTable{wxTaskBarIconEvent}
+    Note that not all ports are required to send these events and so it's better
+    to override wxTaskBarIcon::CreatePopupMenu() if all that the application does
+    is that it shows a popup menu in reaction to mouse click.
+    @event{EVT_TASKBAR_MOVE(func)}
+        Process a wxEVT_TASKBAR_MOVE event.
+    @event{EVT_TASKBAR_LEFT_DOWN(func)}
+        Process a wxEVT_TASKBAR_LEFT_DOWN event.
+    @event{EVT_TASKBAR_LEFT_UP(func)}
+        Process a wxEVT_TASKBAR_LEFT_UP event.
+    @event{EVT_TASKBAR_RIGHT_DOWN(func)}
+        Process a wxEVT_TASKBAR_RIGHT_DOWN event.
+    @event{EVT_TASKBAR_RIGHT_UP(func)}
+        Process a wxEVT_TASKBAR_RIGHT_UP event.
+    @event{EVT_TASKBAR_LEFT_DCLICK(func)}
+        Process a wxEVT_TASKBAR_LEFT_DCLICK event.
+    @event{EVT_TASKBAR_RIGHT_DCLICK(func)}
+        Process a wxEVT_TASKBAR_RIGHT_DCLICK event.
+    @event{EVT_TASKBAR_CLICK(func)}
+        This is a synonym for either EVT_TASKBAR_RIGHT_DOWN or UP depending on
+        the platform, use this event macro to catch the event which should result
+        in the menu being displayed on the current platform.
+    @endEventTable
 
     @library{wxadv}
-    @category{FIXME}
+    @category{misc}
 */
 class wxTaskBarIcon : public wxEvtHandler
 {
@@ -31,18 +69,20 @@ public:
     /**
         This method is called by the library when the user requests popup menu
         (on Windows and Unix platforms, this is when the user right-clicks the icon).
+
         Override this function in order to provide popup menu associated with the icon.
-        If CreatePopupMenu returns @NULL (this happens by default),
-        no menu is shown, otherwise the menu is
-        displayed and then deleted by the library as soon as the user dismisses it.
+        If CreatePopupMenu() returns @NULL (this happens by default), no menu is shown,
+        otherwise the menu is displayed and then deleted by the library as soon as the
+        user dismisses it.
+
         The events can be handled by a class derived from wxTaskBarIcon.
     */
     virtual wxMenu* CreatePopupMenu();
 
     /**
-        This method is similar to wxWindow::Destroy and can
-        be used to schedule the task bar icon object for the delayed destruction: it
-        will be deleted during the next event loop iteration, which allows the task bar
+        This method is similar to wxWindow::Destroy and can be used to schedule
+        the task bar icon object for the delayed destruction: it will be deleted
+        during the next event loop iteration, which allows the task bar
         icon to process any pending events for it before being destroyed.
     */
     void Destroy();
@@ -58,8 +98,13 @@ public:
     bool IsOk() const;
 
     /**
-        Pops up a menu at the current mouse position. The events can be handled by
-        a class derived from wxTaskBarIcon.
+        Pops up a menu at the current mouse position.
+        The events can be handled by a class derived from wxTaskBarIcon.
+
+        @note
+        It is recommended to override CreatePopupMenu() callback instead of
+        calling this method from event handler, because some ports (e.g. wxCocoa)
+        may not implement PopupMenu() and mouse click events at all.
     */
     virtual bool PopupMenu(wxMenu* menu);
 
index 97b3b2876ae2234182a799e3836616cd2eb22673..dd0cad1d1e21d897013b80bce0dfc68466baff31 100644 (file)
@@ -6,6 +6,163 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+
+
+/**
+    The following values can be passed to wxTextAttr::SetAlignment to determine paragraph alignment.
+*/
+enum wxTextAttrAlignment
+{
+    wxTEXT_ALIGNMENT_DEFAULT,
+    wxTEXT_ALIGNMENT_LEFT,
+    wxTEXT_ALIGNMENT_CENTRE,
+    wxTEXT_ALIGNMENT_CENTER = wxTEXT_ALIGNMENT_CENTRE,
+    wxTEXT_ALIGNMENT_RIGHT,
+
+    /** wxTEXT_ALIGNMENT_JUSTIFIED is unimplemented.
+        In future justification may be supported when printing or previewing, only. */
+    wxTEXT_ALIGNMENT_JUSTIFIED
+};
+
+/**
+    The following values are passed in a bitlist to wxTextAttr::SetFlags() to
+    determine what attributes will be considered when setting the attributes for a text control.
+*/
+enum wxTextAttrFlags
+{
+    wxTEXT_ATTR_TEXT_COLOUR          = 0x00000001,
+    wxTEXT_ATTR_BACKGROUND_COLOUR    = 0x00000002,
+    wxTEXT_ATTR_FONT_FACE            = 0x00000004,
+    wxTEXT_ATTR_FONT_SIZE            = 0x00000008,
+    wxTEXT_ATTR_FONT_WEIGHT          = 0x00000010,
+    wxTEXT_ATTR_FONT_ITALIC          = 0x00000020,
+    wxTEXT_ATTR_FONT_UNDERLINE       = 0x00000040,
+    wxTEXT_ATTR_FONT_ENCODING        = 0x02000000,
+    wxTEXT_ATTR_FONT = \
+        ( wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT | \
+            wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING ),
+
+    wxTEXT_ATTR_ALIGNMENT            = 0x00000080,
+    wxTEXT_ATTR_LEFT_INDENT          = 0x00000100,
+    wxTEXT_ATTR_RIGHT_INDENT         = 0x00000200,
+    wxTEXT_ATTR_TABS                 = 0x00000400,
+
+    wxTEXT_ATTR_PARA_SPACING_AFTER   = 0x00000800,
+    wxTEXT_ATTR_PARA_SPACING_BEFORE  = 0x00001000,
+    wxTEXT_ATTR_LINE_SPACING         = 0x00002000,
+    wxTEXT_ATTR_CHARACTER_STYLE_NAME = 0x00004000,
+    wxTEXT_ATTR_PARAGRAPH_STYLE_NAME = 0x00008000,
+    wxTEXT_ATTR_LIST_STYLE_NAME      = 0x00010000,
+    wxTEXT_ATTR_BULLET_STYLE         = 0x00020000,
+    wxTEXT_ATTR_BULLET_NUMBER        = 0x00040000,
+    wxTEXT_ATTR_BULLET_TEXT          = 0x00080000,
+    wxTEXT_ATTR_BULLET_NAME          = 0x00100000,
+    wxTEXT_ATTR_URL                  = 0x00200000,
+    wxTEXT_ATTR_PAGE_BREAK           = 0x00400000,
+    wxTEXT_ATTR_EFFECTS              = 0x00800000,
+    wxTEXT_ATTR_OUTLINE_LEVEL        = 0x01000000,
+
+    /**
+        Character and paragraph combined styles
+    */
+
+    wxTEXT_ATTR_CHARACTER = \
+        (wxTEXT_ATTR_FONT|wxTEXT_ATTR_FONT_ENCODING|wxTEXT_ATTR_EFFECTS| \
+            wxTEXT_ATTR_BACKGROUND_COLOUR|wxTEXT_ATTR_TEXT_COLOUR|wxTEXT_ATTR_CHARACTER_STYLE_NAME|wxTEXT_ATTR_URL),
+
+    wxTEXT_ATTR_PARAGRAPH = \
+        (wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_TABS|\
+            wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|wxTEXT_ATTR_LINE_SPACING|\
+            wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_TEXT|wxTEXT_ATTR_BULLET_NAME|\
+            wxTEXT_ATTR_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL),
+
+    wxTEXT_ATTR_ALL = (wxTEXT_ATTR_CHARACTER|wxTEXT_ATTR_PARAGRAPH)
+};
+
+/**
+    Styles for wxTextAttr::SetBulletStyle
+*/
+enum wxTextAttrBulletStyle
+{
+    wxTEXT_ATTR_BULLET_STYLE_NONE            = 0x00000000,
+    wxTEXT_ATTR_BULLET_STYLE_ARABIC          = 0x00000001,
+    wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER   = 0x00000002,
+    wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER   = 0x00000004,
+    wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER     = 0x00000008,
+    wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER     = 0x00000010,
+    wxTEXT_ATTR_BULLET_STYLE_SYMBOL          = 0x00000020,
+
+    /** wxTEXT_ATTR_BULLET_STYLE_BITMAP is unimplemented. */
+    wxTEXT_ATTR_BULLET_STYLE_BITMAP          = 0x00000040,
+    wxTEXT_ATTR_BULLET_STYLE_PARENTHESES     = 0x00000080,
+    wxTEXT_ATTR_BULLET_STYLE_PERIOD          = 0x00000100,
+    wxTEXT_ATTR_BULLET_STYLE_STANDARD        = 0x00000200,
+    wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS = 0x00000400,
+    wxTEXT_ATTR_BULLET_STYLE_OUTLINE         = 0x00000800,
+
+    wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT      = 0x00000000,
+    wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT     = 0x00001000,
+    wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE    = 0x00002000
+};
+
+/**
+    Styles for wxTextAttr::SetTextEffects().
+
+    Of these, only wxTEXT_ATTR_EFFECT_CAPITALS and wxTEXT_ATTR_EFFECT_STRIKETHROUGH are implemented.
+*/
+enum wxTextAttrEffects
+{
+    wxTEXT_ATTR_EFFECT_NONE                  = 0x00000000,
+    wxTEXT_ATTR_EFFECT_CAPITALS              = 0x00000001,
+    wxTEXT_ATTR_EFFECT_SMALL_CAPITALS        = 0x00000002,
+    wxTEXT_ATTR_EFFECT_STRIKETHROUGH         = 0x00000004,
+    wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH  = 0x00000008,
+    wxTEXT_ATTR_EFFECT_SHADOW                = 0x00000010,
+    wxTEXT_ATTR_EFFECT_EMBOSS                = 0x00000020,
+    wxTEXT_ATTR_EFFECT_OUTLINE               = 0x00000040,
+    wxTEXT_ATTR_EFFECT_ENGRAVE               = 0x00000080,
+    wxTEXT_ATTR_EFFECT_SUPERSCRIPT           = 0x00000100,
+    wxTEXT_ATTR_EFFECT_SUBSCRIPT             = 0x00000200
+};
+
+/**
+    Line spacing values; see wxTextAttr::SetLineSpacing().
+*/
+enum wxTextAttrLineSpacing
+{
+    wxTEXT_ATTR_LINE_SPACING_NORMAL         = 10,
+    wxTEXT_ATTR_LINE_SPACING_HALF           = 15,
+    wxTEXT_ATTR_LINE_SPACING_TWICE          = 20
+};
+
+
+/**
+    Describes the possible return values of wxTextCtrl::HitTest().
+
+    The element names correspond to the relationship between the point asked
+    for and the character returned, e.g. @c wxTE_HT_BEFORE means that the point
+    is before (leftward or upward) it and so on.
+ */
+enum wxTextCtrlHitTestResult
+{
+    /// Indicates that wxTextCtrl::HitTest() is not implemented on this
+    /// platform.
+    wxTE_HT_UNKNOWN = -2,
+
+    /// The point is before the character returned.
+    wxTE_HT_BEFORE,
+
+    /// The point is directly on the character returned.
+    wxTE_HT_ON_TEXT,
+
+    /// The point is below the last line of the control.
+    wxTE_HT_BELOW,
+
+    /// The point is beyond the end of line containing the character returned.
+    wxTE_HT_BEYOND
+};
+
+
 /**
     @class wxTextAttr
 
     for a range of text in a wxTextCtrl or wxRichTextCtrl.
 
     When setting up a wxTextAttr object, pass a bitlist mask to
-    wxTextAttr::SetFlags to indicate which style elements should be changed. As
-    a convenience, when you call a setter such as SetFont, the relevant bit
+    wxTextAttr::SetFlags() to indicate which style elements should be changed.
+    As a convenience, when you call a setter such as SetFont, the relevant bit
     will be set.
 
     @library{wxcore}
@@ -51,37 +208,38 @@ public:
 
     /**
         Returns the alignment flags.
-        See SetAlignment() for a list of available styles.
+        See ::wxTextAttrAlignment for a list of available styles.
     */
     wxTextAttrAlignment GetAlignment() const;
 
     /**
         Returns the background colour.
     */
-    const wxColour GetBackgroundColour() const;
+    const wxColour& GetBackgroundColour() const;
 
     /**
-        Returns a string containing the name of the font associated with the bullet
-        symbol.
+        Returns a string containing the name of the font associated with the bullet symbol.
         Only valid for attributes with wxTEXT_ATTR_BULLET_SYMBOL.
     */
-    const wxString GetBulletFont() const;
+    const wxString& GetBulletFont() const;
 
     /**
         Returns the standard bullet name, applicable if the bullet style is
         wxTEXT_ATTR_BULLET_STYLE_STANDARD.
+
         Currently the following standard bullet names are supported:
-         @c standard/circle
-         @c standard/square
-         @c standard/diamond
-         @c standard/triangle
+         - @c standard/circle
+         - @c standard/square
+         - @c standard/diamond
+         - @c standard/triangle
+
+        @note
         For wxRichTextCtrl users only: if you wish your rich text controls to support
-        further bullet graphics, you can derive a
-        class from wxRichTextRenderer or wxRichTextStdRenderer, override @c
-        DrawStandardBullet and @c EnumerateStandardBulletNames, and
-        set an instance of the class using wxRichTextBuffer::SetRenderer.
+        further bullet graphics, you can derive a class from wxRichTextRenderer or
+        wxRichTextStdRenderer, override @c DrawStandardBullet and @c EnumerateStandardBulletNames,
+        and set an instance of the class using wxRichTextBuffer::SetRenderer.
     */
-    const wxString GetBulletName() const;
+    const wxString& GetBulletName() const;
 
     /**
         Returns the bullet number.
@@ -90,7 +248,7 @@ public:
 
     /**
         Returns the bullet style.
-        See SetBulletStyle() for a list of available styles.
+        See ::wxTextAttrBulletStyle for a list of available styles.
     */
     int GetBulletStyle() const;
 
@@ -113,10 +271,10 @@ public:
 
     /**
         Creates and returns a font specified by the font attributes in the wxTextAttr
-        object. Note that
-        wxTextAttr does not store a wxFont object, so this is only a temporary font.
-        For greater
-        efficiency, access the font attributes directly.
+        object. Note that wxTextAttr does not store a wxFont object, so this is only
+        a temporary font.
+
+        For greater efficiency, access the font attributes directly.
     */
     wxFont GetFont() const;
 
@@ -168,8 +326,7 @@ public:
     long GetLeftSubIndent() const;
 
     /**
-        Returns the line spacing value, one of wxTEXT_ATTR_LINE_SPACING_NORMAL,
-        wxTEXT_ATTR_LINE_SPACING_HALF, and wxTEXT_ATTR_LINE_SPACING_TWICE.
+        Returns the line spacing value, one of ::wxTextAttrLineSpacing values.
     */
     int GetLineSpacing() const;
 
@@ -204,10 +361,10 @@ public:
     long GetRightIndent() const;
 
     /**
-        Returns an array of tab stops, each expressed in tenths of a millimeter. Each
-        stop
-        is measured from the left margin and therefore each value must be larger than
-        the last.
+        Returns an array of tab stops, each expressed in tenths of a millimeter.
+
+        Each stop is measured from the left margin and therefore each value must
+        be larger than the last.
     */
     const wxArrayInt GetTabs() const;
 
@@ -217,22 +374,23 @@ public:
     const wxColour GetTextColour() const;
 
     /**
-        Returns the text effect bits of interest. See SetFlags() for further
-        information.
+        Returns the text effect bits of interest.
+        See SetFlags() for further information.
     */
     int GetTextEffectFlags() const;
 
     /**
-        Returns the text effects, a bit list of styles. See SetTextEffects() for
-        details.
+        Returns the text effects, a bit list of styles.
+        See SetTextEffects() for details.
     */
     int GetTextEffects() const;
 
     /**
-        Returns the URL for the content. Content with wxTEXT_ATTR_URL style
-        causes wxRichTextCtrl to show a hand cursor over it, and wxRichTextCtrl
-        generates
-        a wxTextUrlEvent when the content is clicked.
+        Returns the URL for the content.
+
+        Content with @a wxTEXT_ATTR_URL style causes wxRichTextCtrl to show a
+        hand cursor over it, and wxRichTextCtrl generates a wxTextUrlEvent
+        when the content is clicked.
     */
     const wxString GetURL() const;
 
@@ -399,24 +557,25 @@ public:
     */
     bool IsParagraphStyle() const;
 
-    //@{
     /**
-        Creates a new @c wxTextAttr which is a merge of @a base and
-        @a overlay. Properties defined in @a overlay take precedence over those
-        in @a base. Properties undefined/invalid in both are undefined in the
-        result.
+        Copies all defined/valid properties from overlay to current object.
     */
     void Merge(const wxTextAttr& overlay);
+
+    /**
+        Creates a new @c wxTextAttr which is a merge of @a base and @a overlay.
+
+        Properties defined in @a overlay take precedence over those in @a base.
+        Properties undefined/invalid in both are undefined in the result.
+    */
     static wxTextAttr Merge(const wxTextAttr& base,
                             const wxTextAttr& overlay);
-    //@}
 
     /**
-        Sets the paragraph alignment. These are the possible values for @a alignment:
+        Sets the paragraph alignment. See ::wxTextAttrAlignment enumeration values.
 
-        Of these, wxTEXT_ALIGNMENT_JUSTIFIED is unimplemented. In future justification
-        may be supported
-        when printing or previewing, only.
+        Of these, wxTEXT_ALIGNMENT_JUSTIFIED is unimplemented.
+        In future justification may be supported when printing or previewing, only.
     */
     void SetAlignment(wxTextAttrAlignment alignment);
 
@@ -434,8 +593,9 @@ public:
     /**
         Sets the standard bullet name, applicable if the bullet style is
         wxTEXT_ATTR_BULLET_STYLE_STANDARD.
-        See GetBulletName() for a list
-        of supported names, and how to expand the range of supported types.
+
+        See GetBulletName() for a list of supported names, and how
+        to expand the range of supported types.
     */
     void SetBulletName(const wxString& name);
 
@@ -445,15 +605,16 @@ public:
     void SetBulletNumber(int n);
 
     /**
-        Sets the bullet style. The following styles can be passed:
+        Sets the bullet style.
 
-        Currently wxTEXT_ATTR_BULLET_STYLE_BITMAP is not supported.
+        The ::wxTextAttrBulletStyle enumeration values are all supported,
+        except for wxTEXT_ATTR_BULLET_STYLE_BITMAP.
     */
     void SetBulletStyle(int style);
 
     /**
-        Sets the bullet text, which could be a symbol, or (for example) cached outline
-        text.
+        Sets the bullet text, which could be a symbol, or (for example) cached
+        outline text.
     */
     void SetBulletText(const wxString text);
 
@@ -463,14 +624,14 @@ public:
     void SetCharacterStyleName(const wxString& name);
 
     /**
-        Sets the flags determining which styles are being specified. The following
-        flags can be passed in a bitlist:
+        Sets the flags determining which styles are being specified.
+        The ::wxTextAttrFlags values can be passed in a bitlist.
     */
     void SetFlags(long flags);
 
     /**
-        Sets the attributes for the given font. Note that wxTextAttr does not store an
-        actual wxFont object.
+        Sets the attributes for the given font.
+        Note that wxTextAttr does not store an actual wxFont object.
     */
     void SetFont(const wxFont& font);
 
@@ -507,26 +668,25 @@ public:
     /**
         Sets the left indent and left subindent in tenths of a millimetre.
         The sub-indent is an offset from the left of the paragraph, and is used for all
-        but the
-        first line in a paragraph. A positive value will cause the first line to appear
-        to the left
+        but the first line in a paragraph.
+
+        A positive value will cause the first line to appear to the left
         of the subsequent lines, and a negative value will cause the first line to be
-        indented
-        relative to the subsequent lines.
-        wxRichTextBuffer uses indentation to render a bulleted item. The left indent is
-        the distance between
-        the margin and the bullet. The content of the paragraph, including the first
-        line, starts
-        at leftMargin + leftSubIndent. So the distance between the left edge of the
-        bullet and the
+        indented relative to the subsequent lines.
+
+        wxRichTextBuffer uses indentation to render a bulleted item.
+        The left indent is the distance between the margin and the bullet.
+        The content of the paragraph, including the first line, starts
+        at leftMargin + leftSubIndent.
+        So the distance between the left edge of the bullet and the
         left of the actual paragraph is leftSubIndent.
     */
     void SetLeftIndent(int indent, int subIndent = 0);
 
     /**
         Sets the line spacing. @a spacing is a multiple, where 10 means single-spacing,
-        15 means 1.5 spacing, and 20 means double spacing. The following constants are
-        defined for convenience:
+        15 means 1.5 spacing, and 20 means double spacing.
+        The ::wxTextAttrLineSpacing values are defined for convenience.
     */
     void SetLineSpacing(int spacing);
 
@@ -536,11 +696,10 @@ public:
     void SetListStyleName(const wxString& name);
 
     /**
-        Specifies the outline level. Zero represents normal text. At present, the
-        outline level is
-        not used, but may be used in future for determining list levels and for
-        applications
-        that need to store document structure information.
+        Specifies the outline level. Zero represents normal text.
+        At present, the outline level is not used, but may be used in future for
+        determining list levels and for applications that need to store document
+        structure information.
     */
     void SetOutlineLevel(int level);
 
@@ -582,33 +741,34 @@ public:
     void SetTextColour(const wxColour& colText);
 
     /**
-        Sets the text effect bits of interest. You should also pass wxTEXT_ATTR_EFFECTS
-        to SetFlags().
+        Sets the text effect bits of interest.
+
+        You should also pass wxTEXT_ATTR_EFFECTS to SetFlags().
         See SetFlags() for further information.
     */
     void SetTextEffectFlags(int flags);
 
     /**
         Sets the text effects, a bit list of styles.
-        The following styles can be passed:
+        The ::wxTextAttrEffects enumeration values can be used.
 
         Of these, only wxTEXT_ATTR_EFFECT_CAPITALS and wxTEXT_ATTR_EFFECT_STRIKETHROUGH
         are implemented.
+
         wxTEXT_ATTR_EFFECT_CAPITALS capitalises text when displayed (leaving the case
-        of the actual buffer
-        text unchanged), and wxTEXT_ATTR_EFFECT_STRIKETHROUGH draws a line through text.
+        of the actual buffer text unchanged), and wxTEXT_ATTR_EFFECT_STRIKETHROUGH draws
+        a line through text.
+
         To set effects, you should also pass wxTEXT_ATTR_EFFECTS to SetFlags(), and call
-        SetTextEffectFlags() with the styles (taken from the
-        above set) that you are interested in setting.
+        SetTextEffectFlags() with the styles (taken from the above set) that you
+        are interested in setting.
     */
     void SetTextEffects(int effects);
 
     /**
         Sets the URL for the content. Sets the wxTEXT_ATTR_URL style; content with this
-        style
-        causes wxRichTextCtrl to show a hand cursor over it, and wxRichTextCtrl
-        generates
-        a wxTextUrlEvent when the content is clicked.
+        style causes wxRichTextCtrl to show a hand cursor over it, and wxRichTextCtrl
+        generates a wxTextUrlEvent when the content is clicked.
     */
     void SetURL(const wxString& url);
 
@@ -618,32 +778,6 @@ public:
     void operator operator=(const wxTextAttr& attr);
 };
 
-/**
-    Describes the possible return values of wxTextCtrl::HitTest().
-
-    The element names correspond to the relationship between the point asked
-    for and the character returned, e.g. @c wxTE_HT_BEFORE means that the point
-    is before (leftward or upward) it and so on.
- */
-enum wxTextCtrlHitTestResult
-{
-    /// Indicates that wxTextCtrl::HitTest() is not implemented on this
-    /// platform.
-    wxTE_HT_UNKNOWN = -2,
-
-    /// The point is before the character returned.
-    wxTE_HT_BEFORE,
-
-    /// The point is directly on the character returned.
-    wxTE_HT_ON_TEXT,
-
-    /// The point is below the last line of the control.
-    wxTE_HT_BELOW,
-
-    /// The point is beyond the end of line containing the character returned.
-    wxTE_HT_BEYOND
-};
-
 
 /**
     @class wxTextCtrl
@@ -716,6 +850,11 @@ enum wxTextCtrlHitTestResult
            capitalized.
     @endStyleTable
 
+    Note that alignment styles (wxTE_LEFT, wxTE_CENTRE and wxTE_RIGHT) can be
+    changed dynamically after control creation on wxMSW and wxGTK. wxTE_READONLY,
+    wxTE_PASSWORD and wrapping styles can be dynamically changed under wxGTK but
+    not wxMSW. The other styles can be only set during control creation.
+
 
     @section textctrl_text_format wxTextCtrl Text Format
 
@@ -840,17 +979,14 @@ enum wxTextCtrlHitTestResult
     wxID_REDO. The associated UI update events are also processed
     automatically, when the control has the focus.
 
-    To process input from a text control, use these event handler macros to
-    direct input to member functions that take a wxCommandEvent argument.
-
     @beginEventTable{wxCommandEvent}
     @event{EVT_TEXT(id, func)}
         Respond to a wxEVT_COMMAND_TEXT_UPDATED event, generated when the text
         changes. Notice that this event will be sent when the text controls
         contents changes -- whether this is due to user input or comes from the
-        program itself (for example, if SetValue() is called); see
-        ChangeValue() for a function which does not send this event. This
-        event is however not sent during the control creation.
+        program itself (for example, if wxTextCtrl::SetValue() is called); see
+        wxTextCtrl::ChangeValue() for a function which does not send this event.
+        This event is however not sent during the control creation.
     @event{EVT_TEXT_ENTER(id, func)}
         Respond to a wxEVT_COMMAND_TEXT_ENTER event, generated when enter is
         pressed in a text control which must have wxTE_PROCESS_ENTER style for
@@ -860,7 +996,7 @@ enum wxTextCtrlHitTestResult
         wxGTK2 only currently).
     @event{EVT_TEXT_MAXLEN(id, func)}
         This event is generated when the user tries to enter more text into the
-        control than the limit set by SetMaxLength(), see its description.
+        control than the limit set by wxTextCtrl::SetMaxLength(), see its description.
     @endEventTable
 
     @library{wxcore}
@@ -872,12 +1008,10 @@ enum wxTextCtrlHitTestResult
 class wxTextCtrl : public wxControl
 {
 public:
-    //@{
     /**
-       Constructor, creating and showing a text control.
-       @see Create()
+        Default ctor.
     */
-         wxTextCtrl();
+    wxTextCtrl();
 
     /**
         Constructor, creating and showing a text control.
@@ -899,13 +1033,13 @@ public:
         @param name
             Window name.
 
-        @remarks The horizontal scrollbar (wxHSCROLL style flag) will only be
+        @remarks
+            The horizontal scrollbar (wxHSCROLL style flag) will only be
             created for multi-line text controls. Without a horizontal
             scrollbar, text lines that don't fit in the control's size will be
-            wrapped (but no newline character is inserted). Single line
-            controls don't have a horizontal scrollbar, the text is
-            automatically scrolled so that the insertion point is always
-            visible.
+            wrapped (but no newline character is inserted).
+            Single line controls don't have a horizontal scrollbar, the text is
+            automatically scrolled so that the insertion point is always visible.
 
         @see Create(), wxValidator
     */
@@ -916,7 +1050,6 @@ public:
                long style = 0,
                const wxValidator& validator = wxDefaultValidator,
                const wxString& name = wxTextCtrlNameStr);
-    //@}
 
     /**
         Destructor, destroying the text control.
@@ -929,9 +1062,10 @@ public:
         @param text
             Text to write to the text control.
 
-        @remarks After the text is appended, the insertion point will be at the
+        @remarks
+            After the text is appended, the insertion point will be at the
             end of the text control. If this behaviour is not desired, the
-            programmer should use GetInsertionPoint and SetInsertionPoint.
+            programmer should use GetInsertionPoint() and SetInsertionPoint().
 
         @see WriteText()
     */
@@ -1006,12 +1140,11 @@ public:
 
     /**
         Sets the text value and marks the control as not-modified (which means
-        that IsModified() would return @false immediately after the call to
-        SetValue).
+        that IsModified() would return @false immediately after the call to SetValue()).
 
         This functions does not generate the @c wxEVT_COMMAND_TEXT_UPDATED
         event but otherwise is identical to SetValue().
-        See @ref overview_progevent "this topic" for more information.
+        See @ref overview_eventhandling_prog for more information.
 
         @since 2.7.1
 
@@ -1064,14 +1197,12 @@ public:
         This functions inserts into the control the character which would have
         been inserted if the given key event had occurred in the text control.
 
-        The @a event object should be the same as the one passed to @c
-        EVT_KEY_DOWN handler previously by wxWidgets. Please note that this
-        function doesn't currently work correctly for all keys under any
-        platform but MSW.
+        The @a event object should be the same as the one passed to @c EVT_KEY_DOWN
+        handler previously by wxWidgets. Please note that this function doesn't
+        currently work correctly for all keys under any platform but MSW.
 
         @return
-            @true if the event resulted in a change to the control, @false
-            otherwise.
+            @true if the event resulted in a change to the control, @false otherwise.
     */
     virtual bool EmulateKeyPress(const wxKeyEvent& event);
 
@@ -1088,9 +1219,20 @@ public:
         This is defined as the zero based index of the character position to
         the right of the insertion point. For example, if the insertion point
         is at the end of the single-line text control, it is equal to both
-        GetLastPosition() and GetValue().length() (but notice that the latter
+        GetLastPosition() and @c "GetValue().Length()" (but notice that the latter
         equality is not necessarily true for multiline edit controls which may
         use multiple new line characters).
+
+        The following code snippet safely returns the character at the insertion
+        point or the zero character if the point is at the end of the control.
+
+        @code
+        char GetCurrentChar(wxTextCtrl *tc) {
+            if (tc->GetInsertionPoint() == tc->GetLastPosition())
+            return '\0';
+            return tc->GetValue[tc->GetInsertionPoint()];
+        }
+        @endcode
     */
     virtual long GetInsertionPoint() const;
 
@@ -1127,9 +1269,19 @@ public:
     /**
         Returns the number of lines in the text control buffer.
 
-        @remarks Note that even empty text controls have one line (where the
-                 insertion point is), so GetNumberOfLines() never
-                 returns 0.
+        @remarks
+            Note that even empty text controls have one line (where the
+            insertion point is), so GetNumberOfLines() never returns 0.
+            For wxGTK using GTK+ 1.2.x and earlier, the number of lines in a
+            multi-line text control is calculated by actually counting newline
+            characters in the buffer, i.e. this function returns the number of
+            logical lines and doesn't depend on whether any of them are wrapped.
+            For all the other platforms, the number of physical lines in the
+            control is returned.
+            Also note that you may wish to avoid using functions that work with
+            line numbers if you are working with controls that contain large
+            amounts of text as this function has O(N) complexity for N being
+            the number of lines.
     */
     virtual int GetNumberOfLines() const;
 
@@ -1185,6 +1337,7 @@ public:
 
     /**
         Gets the contents of the control.
+
         Notice that for a multiline text control, the lines will be separated
         by (Unix-style) @c \\n characters, even under Windows where they are
         separated by a @c \\r\\n sequence in the native control.
@@ -1197,8 +1350,8 @@ public:
 
         If the return code is not @c wxTE_HT_UNKNOWN the row and column of the
         character closest to this position are returned in the @a col and @a
-        row parameters (unless the pointers are @NULL which is allowed). Please
-        note that this function is currently only implemented in wxUniv, wxMSW
+        row parameters (unless the pointers are @NULL which is allowed).
+        Please note that this function is currently only implemented in wxUniv, wxMSW
         and wxGTK2 ports.
 
         @see PositionToXY(), XYToPosition()
@@ -1236,18 +1389,16 @@ public:
     virtual bool IsModified() const;
 
     /**
-        Returns @true if this is a multi line edit control and @false
-        otherwise.
+        Returns @true if this is a multi line edit control and @false otherwise.
 
         @see IsSingleLine()
     */
     bool IsMultiLine() const;
 
     /**
-        Returns @true if this is a single line edit control and @false
-        otherwise.
+        Returns @true if this is a single line edit control and @false otherwise.
 
-        @see @ref IsSingleLine() IsMultiLine
+        @see IsSingleLine(), IsMultiLine()
     */
     bool IsSingleLine() const;
 
@@ -1317,8 +1468,8 @@ public:
     virtual void Redo();
 
     /**
-        Removes the text starting at the first given position up to (but not
-        including) the character at the last position.
+        Removes the text starting at the first given position up to
+        (but not including) the character at the last position.
 
         @param from
             The first position.
@@ -1328,8 +1479,8 @@ public:
     virtual void Remove(long from, long to);
 
     /**
-        Replaces the text starting at the first position up to (but not
-        including) the character at the last position with the given text.
+        Replaces the text starting at the first position up to
+        (but not including) the character at the last position with the given text.
 
         @param from
             The first position.
@@ -1361,8 +1512,9 @@ public:
         If either of the font, foreground, or background colour is not set in
         @a style, the values of the previous default style are used for them.
         If the previous default style didn't set them neither, the global font
-        or colours of the text control itself are used as fall back. However if
-        the @a style parameter is the default wxTextAttr, then the default
+        or colours of the text control itself are used as fall back.
+
+        However if the @a style parameter is the default wxTextAttr, then the default
         style is just reset (instead of being combined with the new style which
         wouldn't change it at all).
 
@@ -1410,15 +1562,17 @@ public:
         into the control.
 
         In other words, it allows to limit the text value length to @a len not
-        counting the terminating @c NUL character. If @a len is 0, the
-        previously set max length limit, if any, is discarded and the user may
-        enter as much text as the underlying native text control widget
-        supports (typically at least 32Kb). If the user tries to enter more
-        characters into the text control when it already is filled up to the
-        maximal length, a @c wxEVT_COMMAND_TEXT_MAXLEN event is sent to notify
-        the program about it (giving it the possibility to show an explanatory
-        message, for example) and the extra input is discarded. Note that in
-        wxGTK this function may only be used with single line text controls.
+        counting the terminating @c NUL character.
+
+        If @a len is 0, the previously set max length limit, if any, is discarded
+        and the user may enter as much text as the underlying native text control widget
+        supports (typically at least 32Kb).
+        If the user tries to enter more characters into the text control when it
+        already is filled up to the maximal length, a @c wxEVT_COMMAND_TEXT_MAXLEN
+        event is sent to notify the program about it (giving it the possibility
+        to show an explanatory message, for example) and the extra input is discarded.
+
+        Note that in wxGTK this function may only be used with single line text controls.
     */
     virtual void SetMaxLength(unsigned long len);
 
@@ -1477,8 +1631,7 @@ public:
 
     /**
         Sets the text value and marks the control as not-modified (which means
-        that IsModified() would return @false immediately after the call to
-        SetValue).
+        that IsModified() would return @false immediately after the call to SetValue()).
 
         Note that this function generates a @c wxEVT_COMMAND_TEXT_UPDATED
         event, to avoid this you can use ChangeValue() instead.
@@ -1511,9 +1664,15 @@ public:
         @param text
             Text to write to the text control.
 
-        @remarks Newlines in the text string are the only control characters
-            allowed, and they will cause appropriate line breaks. See () and
-            AppendText() for more convenient ways of writing to the window.
+        @remarks
+            Newlines in the text string are the only control characters
+            allowed, and they will cause appropriate line breaks.
+            See operator<<() and AppendText() for more convenient ways of
+            writing to the window.
+            After the write operation, the insertion point will be at the end
+            of the inserted text, so subsequent write operations will be appended.
+            To append text after the user may have interacted with the control,
+            call wxTextCtrl::SetInsertionPointEnd() before writing.
     */
     virtual void WriteText(const wxString& text);
 
@@ -1561,11 +1720,13 @@ public:
     This class can be used to (temporarily) redirect all output sent to a C++
     ostream object to a wxTextCtrl instead.
 
-    @note Some compilers and/or build configurations don't support multiply
-    inheriting wxTextCtrl from @c std::streambuf in which
-    case this class is not compiled in. You also must have @c wxUSE_STD_IOSTREAM
-    option on (i.e. set to 1) in your setup.h to be able to use it. Under Unix,
-    specify @c --enable-std_iostreams switch when running configure for this.
+    @note
+        Some compilers and/or build configurations don't support multiply
+        inheriting wxTextCtrl from @c std::streambuf in which case this class is
+        not compiled in.
+        You also must have @c wxUSE_STD_IOSTREAM option on (i.e. set to 1) in your
+        @c setup.h to be able to use it. Under Unix, specify @c --enable-std_iostreams
+        switch when running configure for this.
 
     Example of usage:
 
index fb589701c26634252a295775633062a1a5dc35e8..9147e419e4ee51f4a5c4535885be6fcced16c07a 100644 (file)
 
     This class represents a dialog that requests a one-line password string from
     the user.
+
     It is implemented as a generic wxWidgets dialog.
 
     @library{wxbase}
     @category{cmndlg}
 
-    @see @ref overview_wxpasswordentrydialogoverview "wxPassowrdEntryDialog
-    overview"
+    @see @ref overview_cmndlg_password
 */
 class wxPasswordEntryDialog : public wxTextEntryDialog
 {
 public:
+    /**
+        Constructor.
 
+        Use wxTextEntryDialog::ShowModal to show the dialog.
+
+        @param parent
+            Parent window.
+        @param message
+            Message to show on the dialog.
+        @param defaultValue
+            The default value, which may be the empty string.
+        @param style
+            A dialog style, specifying the buttons (wxOK, wxCANCEL) and an
+            optional wxCENTRE style. You do not need to specify the wxTE_PASSWORD style,
+            it is always applied.
+        @param pos
+            Dialog position.
+    */
+    wxPasswordEntryDialog(wxWindow* parent, const wxString& message,
+                          const wxString& caption = "Enter password",
+                          const wxString& defaultValue = wxEmptyString,
+                          long style = wxOK | wxCANCEL | wxCENTRE,
+                          const wxPoint& pos = wxDefaultPosition);
 };
 
 
@@ -30,14 +52,13 @@ public:
 /**
     @class wxTextEntryDialog
 
-    This class represents a dialog that requests a one-line text string from the
-    user.
+    This class represents a dialog that requests a one-line text string from the user.
     It is implemented as a generic wxWidgets dialog.
 
     @library{wxbase}
     @category{cmndlg}
 
-    @see @ref overview_wxtextentrydialogoverview "wxTextEntryDialog overview"
+    @see @ref overview_cmndlg_textentry
 */
 class wxTextEntryDialog : public wxDialog
 {
@@ -53,8 +74,8 @@ public:
             The default value, which may be the empty string.
         @param style
             A dialog style, specifying the buttons (wxOK, wxCANCEL)
-            and an optional wxCENTRE style. Additionally, wxTextCtrl styles (such as
-            wxTE_PASSWORD) may be specified here.
+            and an optional wxCENTRE style. Additionally, wxTextCtrl styles
+            (such as wxTE_PASSWORD) may be specified here.
         @param pos
             Dialog position.
     */
@@ -71,8 +92,7 @@ public:
 
     /**
         Returns the text that the user has entered if the user has pressed OK, or the
-        original value
-        if the user has pressed Cancel.
+        original value if the user has pressed Cancel.
     */
     wxString GetValue() const;
 
index 4d0158d7fb432c7cc1e6c1274e0e9d02f5caa1f2..6d5b77183a93a3de8fe0ab93fc25f45eb66ddb37 100644 (file)
@@ -6,6 +6,18 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+
+/** The line termination type (kept wxTextFileType name for compability) */
+enum wxTextFileType
+{
+    wxTextFileType_None,  //!< incomplete (the last line of the file only)
+    wxTextFileType_Unix,  //!< line is terminated with 'LF' = 0xA = 10 = '\n'
+    wxTextFileType_Dos,   //!< line is terminated with 'CR' 'LF'
+    wxTextFileType_Mac,   //!< line is terminated with 'CR' = 0xD = 13 = '\r'
+    wxTextFileType_Os2    //!< line is terminated with 'CR' 'LF'
+};
+
+
 /**
     @class wxTextFile
 
 
     One word of warning: the class is not at all optimized for big files and thus
     it will load the file entirely into memory when opened. Of course, you should
-    not
-    work in this way with large files (as an estimation, anything over 1 Megabyte is
-    surely too big for this class). On the other hand, it is not a serious
+    not work in this way with large files (as an estimation, anything over 1 Megabyte
+    is surely too big for this class). On the other hand, it is not a serious
     limitation for small files like configuration files or program sources
     which are well handled by wxTextFile.
 
     The typical things you may do with wxTextFile in order are:
 
-     Create and open it: this is done with either
-    wxTextFile::Create or wxTextFile::Open
-    function which opens the file (name may be specified either as the argument to
-    these functions or in the constructor), reads its contents in memory (in the
-    case of @c Open()) and closes it.
-     Work with the lines in the file: this may be done either with "direct
-    access" functions like wxTextFile::GetLineCount and
-    wxTextFile::GetLine (@e operator[] does exactly the same
-    but looks more like array addressing) or with "sequential access" functions
-    which include wxTextFile::GetFirstLine/
-    wxTextFile::GetNextLine and also
-    wxTextFile::GetLastLine/wxTextFile::GetPrevLine.
-    For the sequential access functions the current line number is maintained: it is
-    returned by wxTextFile::GetCurrentLine and may be
-    changed with wxTextFile::GoToLine.
-     Add/remove lines to the file: wxTextFile::AddLine and
-    wxTextFile::InsertLine add new lines while
-    wxTextFile::RemoveLine deletes the existing ones.
-    wxTextFile::Clear resets the file to empty.
-     Save your changes: notice that the changes you make to the file will @b not be
-    saved automatically; calling wxTextFile::Close or doing
-    nothing discards them! To save the changes you must explicitly call
-    wxTextFile::Write - here, you may also change the line
-    termination type if you wish.
+    - Create and open it: this is done with either wxTextFile::Create or wxTextFile::Open
+      function which opens the file (name may be specified either as the argument to
+      these functions or in the constructor), reads its contents in memory (in the
+      case of @c Open()) and closes it.
+    - Work with the lines in the file: this may be done either with "direct
+      access" functions like wxTextFile::GetLineCount and wxTextFile::GetLine
+      (@e operator[] does exactly the same but looks more like array addressing)
+      or with "sequential access" functions which include wxTextFile::GetFirstLine,
+      wxTextFile::GetNextLine and also wxTextFile::GetLastLine, wxTextFile::GetPrevLine.
+      For the sequential access functions the current line number is maintained: it is
+      returned by wxTextFile::GetCurrentLine and may be changed with wxTextFile::GoToLine.
+    - Add/remove lines to the file: wxTextFile::AddLine and wxTextFile::InsertLine
+      add new lines while wxTextFile::RemoveLine deletes the existing ones.
+      wxTextFile::Clear resets the file to empty.
+    - Save your changes: notice that the changes you make to the file will @b not be
+      saved automatically; calling wxTextFile::Close or doing nothing discards them!
+      To save the changes you must explicitly callwxTextFile::Write - here, you may
+      also change the line termination type if you wish.
 
 
     @library{wxbase}
 class wxTextFile
 {
 public:
+    /**
+        Default constructor, use Create() or Open() with a file name parameter to
+        initialize the object.
+    */
+    wxTextFile();
+
     /**
         Constructor does not load the file into memory, use Open() to do it.
     */
@@ -82,21 +93,20 @@ public:
     void Clear() const;
 
     /**
-        Closes the file and frees memory, @b losing all changes. Use Write()
-        if you want to save them.
+        Closes the file and frees memory, @b "losing all changes".
+        Use Write() if you want to save them.
     */
     bool Close() const;
 
     //@{
     /**
         Creates the file with the given name or the name which was given in the
-        @ref ctor() constructor. The array of file lines is initially
-        empty.
-        It will fail if the file already exists, Open() should
-        be used in this case.
+        @ref ctor() constructor. The array of file lines is initially empty.
+
+        It will fail if the file already exists, Open() should be used in this case.
     */
     bool Create() const;
-    const bool Create(const wxString& strFile) const;
+    bool Create(const wxString& strFile) const;
     //@}
 
     /**
@@ -113,41 +123,64 @@ public:
     /**
         Returns the current line: it has meaning only when you're using
         GetFirstLine()/GetNextLine() functions, it doesn't get updated when
-        you're using "direct access" functions like GetLine(). GetFirstLine() and
-        GetLastLine() also change the value of the current line, as well as
-        GoToLine().
+        you're using "direct access" functions like GetLine().
+        GetFirstLine() and GetLastLine() also change the value of the current line,
+        as well as GoToLine().
     */
     size_t GetCurrentLine() const;
 
     /**
-        Get the line termination string corresponding to given constant. @e typeDefault
-        is
-        the value defined during the compilation and corresponds to the native format
-        of the platform, i.e. it will be wxTextFileType_Dos under Windows,
-        wxTextFileType_Unix under Unix (including Mac OS X when compiling with the
-        Apple Developer Tools) and wxTextFileType_Mac under Mac OS (including
-        Mac OS X when compiling with CodeWarrior).
+        Get the line termination string corresponding to given constant.
+
+        @e typeDefault is the value defined during the compilation and corresponds
+        to the native format of the platform, i.e. it will be @c wxTextFileType_Dos
+        under Windows, @c wxTextFileType_Unix under Unix (including Mac OS X when
+        compiling with the Apple Developer Tools) and @c wxTextFileType_Mac under
+        Mac OS (including Mac OS X when compiling with CodeWarrior).
     */
     static const char* GetEOL(wxTextFileType type = typeDefault) const;
 
     /**
-        This method together with GetNextLine()
-        allows more "iterator-like" traversal of the list of lines, i.e. you may
-        write something like:
+        This method together with GetNextLine() allows more "iterator-like"
+        traversal of the list of lines, i.e. you may write something like:
+
+        @code
+        wxTextFile file;
+        ...
+        for ( str = file.GetFirstLine(); !file.Eof(); str = file.GetNextLine() )
+        {
+            // do something with the current line in str
+        }
+        // do something with the last line in str
+        @endcode
     */
     wxString GetFirstLine() const;
 
     /**
-        Gets the last line of the file. Together with
-        GetPrevLine() it allows to enumerate the lines
+        Gets the last line of the file.
+
+        Together with GetPrevLine() it allows to enumerate the lines
         in the file from the end to the beginning like this:
+
+        @code
+        wxTextFile file;
+        ...
+        for ( str = file.GetLastLine();
+            file.GetCurrentLine() > 0;
+            str = file.GetPrevLine() )
+        {
+            // do something with the current line in str
+        }
+        // do something with the first line in str
+        @endcode
     */
     wxString GetLastLine();
 
     /**
-        Retrieves the line number @a n from the file. The returned line may be
-        modified but you shouldn't add line terminator at the end - this will be done
-        by wxTextFile.
+        Retrieves the line number @a n from the file.
+
+        The returned line may be modified but you shouldn't add line terminator
+        at the end - this will be done by wxTextFile.
     */
     wxString GetLine(size_t n) const;
 
@@ -157,7 +190,7 @@ public:
     size_t GetLineCount() const;
 
     /**
-        Get the type of the line (see also wxTextFile::GetEOL)
+        Get the type of the line (see also wxTextFile::GetEOL).
     */
     wxTextFileType GetLineType(size_t n) const;
 
@@ -167,8 +200,7 @@ public:
     const char* GetName() const;
 
     /**
-        Gets the next line (see GetFirstLine() for
-        the example).
+        Gets the next line (see GetFirstLine() for the example).
     */
     wxString GetNextLine();
 
@@ -178,20 +210,22 @@ public:
     wxString GetPrevLine();
 
     /**
-        Changes the value returned by GetCurrentLine()
-        and used by wxTextFile::GetFirstLine/GetNextLine().
+        Changes the value returned by GetCurrentLine() and used by GetFirstLine()
+        and GetNextLine().
     */
     void GoToLine(size_t n) const;
 
     /**
-        Guess the type of file (which is supposed to be opened). If sufficiently
-        many lines of the file are in DOS/Unix/Mac format, the corresponding value will
-        be returned. If the detection mechanism fails wxTextFileType_None is returned.
+        Guess the type of file (which is supposed to be opened).
+
+        If sufficiently many lines of the file are in DOS/Unix/Mac format,
+        the corresponding value will be returned.
+        If the detection mechanism fails @c wxTextFileType_None is returned.
     */
     wxTextFileType GuessType() const;
 
     /**
-        Insert a line before the line number @e n.
+        Insert a line before the line number @a n.
     */
     void InsertLine(const wxString& str, size_t n,
                     wxTextFileType type = typeDefault) const;
@@ -203,16 +237,16 @@ public:
 
     //@{
     /**
-        )
         Open() opens the file with the given name or the name which was given in the
-        @ref ctor() constructor and also loads file in memory on
-        success. It will fail if the file does not exist,
-        Create() should be used in this case.
-        The @e conv argument is only meaningful in Unicode build of wxWidgets when
+        @ref ctor() constructor and also loads file in memory on success.
+
+        It will fail if the file does not exist, Create() should be used in this case.
+
+        The @a conv argument is only meaningful in Unicode build of wxWidgets when
         it is used to convert the file to wide character representation.
     */
-    bool Open() const;
-    const bool Open(const wxString& strFile) const;
+    bool Open(const wxMBConv& conv = wxConvAuto()) const;
+    bool Open(const wxString& strFile, const wxMBConv& conv = wxConvAuto()) const;
     //@}
 
     /**
@@ -221,16 +255,21 @@ public:
     void RemoveLine(size_t n) const;
 
     /**
-        )
-        Change the file on disk. The @a typeNew parameter allows you to change the
-        file format (default argument means "don't change type") and may be used to
-        convert, for example, DOS files to Unix.
-        The @e conv argument is only meaningful in Unicode build of wxWidgets when
+        Change the file on disk.
+
+        The @a typeNew parameter allows you to change the file format
+        (default argument means "don't change type") and may be used to convert,
+        for example, DOS files to Unix.
+
+        The @a conv argument is only meaningful in Unicode build of wxWidgets when
         it is used to convert all lines to multibyte representation before writing them
         them to physical file.
-        Returns @true if operation succeeded, @false if it failed.
+
+        @return
+            @true if operation succeeded, @false if it failed.
     */
-    bool Write(wxTextFileType typeNew = wxTextFileType_None) const;
+    bool Write(wxTextFileType typeNew = wxTextFileType_None,
+               const wxMBConv& conv = wxConvAuto()) const;
 
     /**
         The same as GetLine().
index 705a570e45fb69cbc5d9e0542a0dee2a84609313..f7cdd400a015763e788e62f4ba041b515d0b2536 100644 (file)
@@ -98,7 +98,7 @@ enum wxZipFlags
     See @ref overview_archive_noseek.
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive_noseek, wxZipEntry, wxZipInputStream, wxZipOutputStream
 */
@@ -160,7 +160,7 @@ public:
     - wxZipEntry::IsText
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive, wxZipInputStream, wxZipOutputStream, wxZipNotifier
 */
@@ -363,7 +363,7 @@ public:
     wxZipInputStream::SeekI() always returns ::wxInvalidOffset.
 
     @library{wxbase}
-    @category{streams}
+    @category{archive,streams}
 
     @see @ref overview_archive, wxZipEntry, wxZipOutputStream
 */
@@ -445,7 +445,7 @@ public:
     See the base class for details.
 
     @library{wxbase}
-    @category{archive}
+    @category{archive,streams}
 
     @see @ref overview_archive,
          @ref overview_archive_generic,
@@ -470,7 +470,7 @@ public:
     entry and begins the next.
 
     @library{wxbase}
-    @category{streams}
+    @category{archive,streams}
 
     @see @ref overview_archive, wxZipEntry, wxZipInputStream
 */