]> git.saurik.com Git - wxWidgets.git/commitdiff
More interface header reviews by Azriel Fasten, and added skeleton docs for wxBookCtr...
authorBryan Petty <bryan@ibaku.net>
Tue, 20 May 2008 07:48:30 +0000 (07:48 +0000)
committerBryan Petty <bryan@ibaku.net>
Tue, 20 May 2008 07:48:30 +0000 (07:48 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

interface/bookctrl.h [new file with mode: 0644]
interface/toolbar.h
interface/tracker.h
interface/treebase.h
interface/treebook.h
interface/treectrl.h
interface/txtstrm.h

diff --git a/interface/bookctrl.h b/interface/bookctrl.h
new file mode 100644 (file)
index 0000000..c4d68d7
--- /dev/null
@@ -0,0 +1,25 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        bookctrl.h
+// Purpose:     interface of wxBookCtrlBase
+// Author:      wxWidgets team
+// RCS-ID:      $Id$
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+/**
+    @class wxBookCtrlBase
+    @wxheader{bookctrl.h}
+
+    @todo Document this class.
+
+    @library{wxcore}
+    @category{miscwnd}
+
+    @see @ref overview_bookctrl
+*/
+class wxBookCtrlBase : public wxControl
+{
+public:
+
+};
+
index 7c7714b9af0508acd2bacc53dc2c84007ce01069..72e8ecebb544953019717cd3dad6df77d6d91b5c 100644 (file)
     @class wxToolBar
     @wxheader{toolbar.h}
 
     @class wxToolBar
     @wxheader{toolbar.h}
 
-    The name wxToolBar is defined to be a synonym for one of the following classes:
-
-     @b wxToolBar95 The native Windows 95 toolbar. Used on Windows 95, NT 4 and
-    above.
-     @b wxToolBarMSW A Windows implementation. Used on 16-bit Windows.
-     @b wxToolBarGTK The GTK toolbar.
-
+    The name wxToolBar is defined to be a synonym for one of the following
+    classes:
+
+    - @b wxToolBar95 - The native Windows 95 toolbar. Used on Windows 95, NT 4
+      and above.
+    - @b wxToolBarMSW - A Windows implementation. Used on 16-bit Windows.
+    - @b wxToolBarGTK - The GTK toolbar.
+
+    You may also create a toolbar that is managed by the frame, by calling
+    wxFrame::CreateToolBar(). Under Pocket PC, you should always use this
+    function for creating the toolbar to be managed by the frame, so that
+    wxWidgets can use a combined menubar and toolbar. Where you manage your
+    own toolbars, create a wxToolBar as usual.
+
+    The meaning of a "separator" is a vertical line under Windows and simple
+    space under GTK+.
+
+    @b wxToolBar95: Note that this toolbar paints tools to reflect
+    system-wide colours. If you use more than 16 colours in your tool
+    bitmaps, you may wish to suppress this behaviour, otherwise system
+    colours in your bitmaps will inadvertently be mapped to system colours.
+    To do this, set the msw.remap system option before creating the toolbar:
+
+    @code
+    wxSystemOptions::SetOption(wxT("msw.remap"), 0);
+    @endcode
+
+    If you wish to use 32-bit images (which include an alpha channel for
+    transparency) use:
+
+    @code
+    wxSystemOptions::SetOption(wxT("msw.remap"), 2);
+    @endcode
+
+    Then colour remapping is switched off, and a transparent background
+    used. But only use this option under Windows XP with true colour:
+
+    @code
+    if (wxTheApp->GetComCtl32Version() >= 600 && ::wxDisplayDepth() >= 32)
+    @endcode
+    
+    There are several different types of tools you can add to a toolbar. These
+    types are controlled by the ::wxItemKind enumeration.
 
     @beginStyleTable
     @style{wxTB_FLAT}
 
     @beginStyleTable
     @style{wxTB_FLAT}
-           Gives the toolbar a flat look (Windows and GTK only).
+        Gives the toolbar a flat look (Windows and GTK only).
     @style{wxTB_DOCKABLE}
     @style{wxTB_DOCKABLE}
-           Makes the toolbar floatable and dockable (GTK only).
+        Makes the toolbar floatable and dockable (GTK only).
     @style{wxTB_HORIZONTAL}
     @style{wxTB_HORIZONTAL}
-           Specifies horizontal layout (default).
+        Specifies horizontal layout (default).
     @style{wxTB_VERTICAL}
     @style{wxTB_VERTICAL}
-           Specifies vertical layout.
+        Specifies vertical layout.
     @style{wxTB_TEXT}
     @style{wxTB_TEXT}
-           Shows the text in the toolbar buttons; by default only icons are
-           shown.
+        Shows the text in the toolbar buttons; by default only icons are shown.
     @style{wxTB_NOICONS}
     @style{wxTB_NOICONS}
-           Specifies no icons in the toolbar buttons; by default they are
-           shown.
+        Specifies no icons in the toolbar buttons; by default they are shown.
     @style{wxTB_NODIVIDER}
     @style{wxTB_NODIVIDER}
-           Specifies no divider (border) above the toolbar (Windows only).
+        Specifies no divider (border) above the toolbar (Windows only)
     @style{wxTB_NOALIGN}
     @style{wxTB_NOALIGN}
-           Specifies no alignment with the parent window (Windows only, not
-           very useful).
+        Specifies no alignment with the parent window (Windows only, not very
+        useful).
     @style{wxTB_HORZ_LAYOUT}
     @style{wxTB_HORZ_LAYOUT}
-           Shows the text and the icons alongside, not vertically stacked
-           (Windows and GTK 2 only). This style must be used with wxTB_TEXT.
+        Shows the text and the icons alongside, not vertically stacked (Windows
+        and GTK 2 only). This style must be used with @c wxTB_TEXT.
     @style{wxTB_HORZ_TEXT}
     @style{wxTB_HORZ_TEXT}
-           Combination of wxTB_HORZ_LAYOUT and wxTB_TEXT.
+        Combination of @c wxTB_HORZ_LAYOUT and @c wxTB_TEXT.
     @style{wxTB_NO_TOOLTIPS}
     @style{wxTB_NO_TOOLTIPS}
-           Don't show the short help tooltips for the tools when the mouse
-           hovers over them.
+        Don't show the short help tooltips for the tools when the mouse hovers
+        over them.
     @style{wxTB_BOTTOM}
     @style{wxTB_BOTTOM}
-           Align the toolbar at the bottom of parent window.
+        Align the toolbar at the bottom of parent window.
     @style{wxTB_RIGHT}
     @style{wxTB_RIGHT}
-           Align the toolbar at the right side of parent window.
+        Align the toolbar at the right side of parent window.
     @endStyleTable
 
     @endStyleTable
 
-    @library{wxbase}
+    See also @ref overview_windowstyles. Note that the Win32 native toolbar
+    ignores @c wxTB_NOICONS style. Also, toggling the @c wxTB_TEXT works only
+    if the style was initially on.
+
+    @beginEventTable{wxCommandEvent}
+    @event{EVT_TOOL(id, func)}
+        Process a @c wxEVT_COMMAND_TOOL_CLICKED event (a synonym for @c
+        wxEVT_COMMAND_MENU_SELECTED). Pass the id of the tool.
+    @event{EVT_MENU(id, func)}
+        The same as EVT_TOOL().
+    @event{EVT_TOOL_RANGE(id1, id2, func)}
+        Process a @c wxEVT_COMMAND_TOOL_CLICKED event for a range of
+        identifiers. Pass the ids of the tools.
+    @event{EVT_MENU_RANGE(id1, id2, func)}
+        The same as EVT_TOOL_RANGE().
+    @event{EVT_TOOL_RCLICKED(id, func)}
+        Process a @c wxEVT_COMMAND_TOOL_RCLICKED event. Pass the id of the
+        tool.
+    @event{EVT_TOOL_RCLICKED_RANGE(id1, id2, func)}
+        Process a @c wxEVT_COMMAND_TOOL_RCLICKED event for a range of ids. Pass
+        the ids of the tools.
+    @event{EVT_TOOL_ENTER(id, func)}
+        Process a @c wxEVT_COMMAND_TOOL_ENTER event. Pass the id of the toolbar
+        itself. The value of wxCommandEvent::GetSelection() is the tool id, or
+        -1 if the mouse cursor has moved off a tool.
+    @event{EVT_TOOL_DROPDOWN(id, func)}
+        Process a @c wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED event. If unhandled,
+        displays the default dropdown menu set using
+        wxToolBar::SetDropdownMenu().
+    @endEventTable
+    
+    The toolbar class emits menu commands in the same way that a frame menubar
+    does, so you can use one EVT_MENU() macro for both a menu item and a toolbar
+    button. The event handler functions take a wxCommandEvent argument. For most
+    event macros, the identifier of the tool is passed, but for EVT_TOOL_ENTER()
+    the toolbar window identifier is passed and the tool identifier is retrieved
+    from the wxCommandEvent. This is because the identifier may be -1 when the
+    mouse moves off a tool, and -1 is not allowed as an identifier in the event
+    system.
+
+    @library{wxcore}
     @category{miscwnd}
 
     @see @ref overview_toolbar
     @category{miscwnd}
 
     @see @ref overview_toolbar
 class wxToolBar : public wxControl
 {
 public:
 class wxToolBar : public wxControl
 {
 public:
-    //@{
+    /**
+        Default constructor.
+    */
+    wxToolBar();
+
     /**
         Constructs a toolbar.
 
     /**
         Constructs a toolbar.
 
@@ -69,31 +147,26 @@ public:
         @param id
             Window identifier. If -1, will automatically create an identifier.
         @param pos
         @param id
             Window identifier. If -1, will automatically create an identifier.
         @param pos
-            Window position. wxDefaultPosition is (-1, -1) which indicates that
-        wxWidgets
-            should generate a default position for the window. If using the wxWindow
-        class directly, supply
-            an actual position.
+            Window position. ::wxDefaultPosition is (-1, -1) which indicates that
+            wxWidgets should generate a default position for the window. If
+            using the wxWindow class directly, supply an actual position.
         @param size
         @param size
-            Window size. wxDefaultSize is (-1, -1) which indicates that wxWidgets
-            should generate a default size for the window.
+            Window size. ::wxDefaultSize is (-1, -1) which indicates that
+            wxWidgets should generate a default size for the window.
         @param style
             Window style. See wxToolBar for details.
         @param name
             Window name.
 
         @param style
             Window style. See wxToolBar for details.
         @param name
             Window name.
 
-        @remarks After a toolbar is created, you use AddTool() and
-                 perhaps AddSeparator(), and then you must call
-                 Realize() to construct and display the toolbar
-                 tools.
+        @remarks After a toolbar is created, you use AddTool() and perhaps
+            AddSeparator(), and then you must call Realize() to construct and
+            display the toolbar tools.
     */
     */
-    wxToolBar();
     wxToolBar(wxWindow* parent, wxWindowID id,
               const wxPoint& pos = wxDefaultPosition,
               const wxSize& size = wxDefaultSize,
               long style = wxTB_HORIZONTAL | wxBORDER_NONE,
               const wxString& name = wxPanelNameStr);
     wxToolBar(wxWindow* parent, wxWindowID id,
               const wxPoint& pos = wxDefaultPosition,
               const wxSize& size = wxDefaultSize,
               long style = wxTB_HORIZONTAL | wxBORDER_NONE,
               const wxString& name = wxPanelNameStr);
-    //@}
 
     /**
         Toolbar destructor.
 
     /**
         Toolbar destructor.
@@ -101,8 +174,8 @@ public:
     ~wxToolBar();
 
     /**
     ~wxToolBar();
 
     /**
-        Adds a new check (or toggle) tool to the toolbar. The parameters are the same
-        as in AddTool().
+        Adds a new check (or toggle) tool to the toolbar. The parameters are the
+        same as in AddTool().
 
         @see AddTool()
     */
 
         @see AddTool()
     */
@@ -115,26 +188,34 @@ public:
                                     wxObject* clientData = NULL);
 
     /**
                                     wxObject* clientData = NULL);
 
     /**
-        Adds any control to the toolbar, typically e.g. a combobox.
+        Adds any control to the toolbar, typically e.g. a wxComboBox.
 
         @param control
             The control to be added.
         @param label
             Text to be displayed near the control.
 
 
         @param control
             The control to be added.
         @param label
             Text to be displayed near the control.
 
-        @remarks wxMSW: the label is only displayed if there is enough space
-                 available below the embedded control.
+        @remarks
+            wxMSW: the label is only displayed if there is enough space
+            available below the embedded control.
+
+        @remarks
+            wxMac: labels are only displayed if wxWidgets is built with @c
+            wxMAC_USE_NATIVE_TOOLBAR set to 1
     */
     bool AddControl(wxControl* control, const wxString label = "");
 
     /**
     */
     bool AddControl(wxControl* control, const wxString label = "");
 
     /**
-        Adds a new radio tool to the toolbar. Consecutive radio tools form a radio
-        group such that exactly one button in the group is pressed at any moment, in
-        other words whenever a button in the group is pressed the previously pressed
-        button is automatically released. You should avoid having the radio groups of
-        only one element as it would be impossible for the user to use such button.
-        By default, the first button in the radio group is initially pressed, the
-        others are not.
+        Adds a new radio tool to the toolbar. Consecutive radio tools form a
+        radio group such that exactly one button in the group is pressed at any
+        moment, in other words whenever a button in the group is pressed the
+        previously pressed button is automatically released. You should avoid
+        having the radio groups of only one element as it would be impossible
+        for the user to use such button.
+        
+        By default, the first button in the radio group is initially pressed,
+        the others are not.
+
 
         @see AddTool()
     */
 
         @see AddTool()
     */
@@ -155,40 +236,39 @@ public:
 
     //@{
     /**
 
     //@{
     /**
-        Adds a tool to the toolbar. The first (short and most commonly used) version
-        has fewer parameters than the full version at the price of not being able to
-        specify some of the more rarely used button features. The last version allows
-        you to add an existing tool.
+        Adds a tool to the toolbar. The first (short and most commonly used)
+        version has fewer parameters than the full version at the price of not
+        being able to specify some of the more rarely used button features. The
+        last version allows you to add an existing tool.
 
         @param toolId
 
         @param toolId
-            An integer by which
-            the tool may be identified in subsequent operations.
+            An integer by which the tool may be identified in subsequent
+            operations.
         @param kind
         @param kind
-            May be wxITEM_NORMAL for a normal button (default),
-            wxITEM_CHECK for a checkable tool (such tool stays pressed after it had been
-            toggled) or wxITEM_RADIO for a checkable tool which makes part of a radio
-            group of tools each of which is automatically unchecked whenever another
-        button
-            in the group is checked
+            May be ::wxITEM_NORMAL for a normal button (default), ::wxITEM_CHECK
+            for a checkable tool (such tool stays pressed after it had been
+            toggled) or ::wxITEM_RADIO for a checkable tool which makes part of
+            a radio group of tools each of which is automatically unchecked 
+            whenever another button in the group is checked.
         @param bitmap1
             The primary tool bitmap.
         @param bitmap2
             The bitmap used when the tool is disabled. If it is equal to
         @param bitmap1
             The primary tool bitmap.
         @param bitmap2
             The bitmap used when the tool is disabled. If it is equal to
-            wxNullBitmap, the disabled bitmap is automatically generated by greing the
-            normal one.
+            ::wxNullBitmap, the disabled bitmap is automatically generated by
+            greying the normal one.
         @param shortHelpString
         @param shortHelpString
-            This string is used for the tools tooltip
+            This string is used for the tools tooltip.
         @param longHelpString
         @param longHelpString
-            This string is shown in the statusbar (if any) of the
-            parent frame when the mouse pointer is inside the tool
+            This string is shown in the statusbar (if any) of the parent frame
+            when the mouse pointer is inside the tool.
         @param clientData
         @param clientData
-            An optional pointer to client data which can be
-            retrieved later using GetToolClientData().
+            An optional pointer to client data which can be retrieved later
+            using GetToolClientData().
         @param tool
             The tool to be added.
 
         @remarks After you have added tools to a toolbar, you must call
         @param tool
             The tool to be added.
 
         @remarks After you have added tools to a toolbar, you must call
-                 Realize() in order to have the tools appear.
+            Realize() in order to have the tools appear.
 
         @see AddSeparator(), AddCheckTool(), AddRadioTool(),
              InsertTool(), DeleteTool(), Realize()
 
         @see AddSeparator(), AddCheckTool(), AddRadioTool(),
              InsertTool(), DeleteTool(), Realize()
@@ -213,20 +293,22 @@ public:
     void ClearTools();
 
     /**
     void ClearTools();
 
     /**
-        Removes the specified tool from the toolbar and deletes it. If you don't want
-        to delete the tool, but just to remove it from the toolbar (to possibly add it
-        back later), you may use RemoveTool() instead.
-        Note that it is unnecessary to call Realize() for the
-        change to take place, it will happen immediately.
-        Returns @true if the tool was deleted, @false otherwise.
+        Removes the specified tool from the toolbar and deletes it. If you don't
+        want to delete the tool, but just to remove it from the toolbar (to
+        possibly add it back later), you may use RemoveTool() instead.
+
+        @note It is unnecessary to call Realize() for the change to take
+            place, it will happen immediately.
+
+        @returns @true if the tool was deleted, @false otherwise.
 
         @see DeleteToolByPos()
     */
     bool DeleteTool(int toolId);
 
     /**
 
         @see DeleteToolByPos()
     */
     bool DeleteTool(int toolId);
 
     /**
-        This function behaves like DeleteTool() but it
-        deletes the tool at the specified position and not the one with the given id.
+        This function behaves like DeleteTool() but it deletes the tool at the
+        specified position and not the one with the given id.
     */
     bool DeleteToolByPos(size_t pos);
 
     */
     bool DeleteToolByPos(size_t pos);
 
@@ -239,21 +321,22 @@ public:
             If @true, enables the tool, otherwise disables it.
 
         @remarks Some implementations will change the visible state of the tool
             If @true, enables the tool, otherwise disables it.
 
         @remarks Some implementations will change the visible state of the tool
-                 to indicate that it is disabled.
+            to indicate that it is disabled.
+
 
         @see GetToolEnabled(), ToggleTool()
     */
     void EnableTool(int toolId, bool enable);
 
     /**
 
         @see GetToolEnabled(), ToggleTool()
     */
     void EnableTool(int toolId, bool enable);
 
     /**
-        Returns a pointer to the tool identified by @a id or
-        @NULL if no corresponding tool is found.
+        Returns a pointer to the tool identified by @a id or @NULL if no
+        corresponding tool is found.
     */
     wxToolBarToolBase* FindById(int id);
 
     /**
     */
     wxToolBarToolBase* FindById(int id);
 
     /**
-        Returns a pointer to the control identified by @a id or
-        @NULL if no corresponding control is found.
+        Returns a pointer to the control identified by @a id or @NULL if no
+        corresponding control is found.
     */
     wxControl* FindControl(int id);
 
     */
     wxControl* FindControl(int id);
 
@@ -267,7 +350,8 @@ public:
 
         @return A pointer to a tool if a tool is found, or @NULL otherwise.
 
 
         @return A pointer to a tool if a tool is found, or @NULL otherwise.
 
-        @remarks Currently not implemented in wxGTK (always returns @NULL there).
+        @remarks Currently not implemented in wxGTK (always returns @NULL
+        there).
     */
     wxToolBarToolBase* FindToolForPosition(wxCoord x, wxCoord y) const;
 
     */
     wxToolBarToolBase* FindToolForPosition(wxCoord x, wxCoord y) const;
 
@@ -280,12 +364,11 @@ public:
     wxSize GetMargins() const;
 
     /**
     wxSize GetMargins() const;
 
     /**
-        Returns the size of bitmap that the toolbar expects to have. The default bitmap
-        size is 16 by 15 pixels.
+        Returns the size of bitmap that the toolbar expects to have. The default
+        bitmap size is 16 by 15 pixels.
 
 
-        @remarks Note that this is the size of the bitmap you pass to
-                 AddTool(), and not the eventual size of the
-                 tool button.
+        @remarks Note that this is the size of the bitmap you pass to AddTool(),
+            and not the eventual size of the tool button.
 
         @see SetToolBitmapSize(), GetToolSize()
     */
 
         @see SetToolBitmapSize(), GetToolSize()
     */
@@ -331,8 +414,8 @@ public:
     int GetToolPacking() const;
 
     /**
     int GetToolPacking() const;
 
     /**
-        Returns the tool position in the toolbar, or @c wxNOT_FOUND if the tool is not
-        found.
+        Returns the tool position in the toolbar, or @c wxNOT_FOUND if the tool
+        is not found.
     */
     int GetToolPos(int toolId) const;
 
     */
     int GetToolPos(int toolId) const;
 
@@ -354,9 +437,8 @@ public:
     wxString GetToolShortHelp(int toolId) const;
 
     /**
     wxString GetToolShortHelp(int toolId) const;
 
     /**
-        Returns the size of a whole button, which is usually larger than a tool bitmap
-        because
-        of added 3D effects.
+        Returns the size of a whole button, which is usually larger than a tool
+        bitmap because of added 3D effects.
 
         @see SetToolBitmapSize(), GetToolBitmapSize()
     */
 
         @see SetToolBitmapSize(), GetToolBitmapSize()
     */
@@ -380,16 +462,16 @@ public:
     int GetToolsCount() const;
 
     /**
     int GetToolsCount() const;
 
     /**
-        Inserts the control into the toolbar at the given position.
-        You must call Realize() for the change to take place.
+        Inserts the control into the toolbar at the given position. You must
+        call Realize() for the change to take place.
 
         @see AddControl(), InsertTool()
     */
     wxToolBarToolBase* InsertControl(size_t pos, wxControl* control);
 
     /**
 
         @see AddControl(), InsertTool()
     */
     wxToolBarToolBase* InsertControl(size_t pos, wxControl* control);
 
     /**
-        Inserts the separator into the toolbar at the given position.
-        You must call Realize() for the change to take place.
+        Inserts the separator into the toolbar at the given position. You must
+        call Realize() for the change to take place.
 
         @see AddSeparator(), InsertTool()
     */
 
         @see AddSeparator(), InsertTool()
     */
@@ -397,8 +479,9 @@ public:
 
     //@{
     /**
 
     //@{
     /**
-        Inserts the tool with the specified attributes into the toolbar at the given
-        position.
+        Inserts the tool with the specified attributes into the toolbar at the
+        given position.
+
         You must call Realize() for the change to take place.
 
         @see AddTool(), InsertControl(), InsertSeparator()
         You must call Realize() for the change to take place.
 
         @see AddTool(), InsertControl(), InsertSeparator()
@@ -415,49 +498,50 @@ public:
     //@}
 
     /**
     //@}
 
     /**
-        Called when the user clicks on a tool with the left mouse button.
-        This is the old way of detecting tool clicks; although it will still work,
-        you should use the EVT_MENU or EVT_TOOL macro instead.
+        Called when the user clicks on a tool with the left mouse button. This
+        is the old way of detecting tool clicks; although it will still work,
+        you should use the EVT_MENU() or EVT_TOOL() macro instead.
 
         @param toolId
             The identifier passed to AddTool().
         @param toggleDown
 
         @param toolId
             The identifier passed to AddTool().
         @param toggleDown
-            @true if the tool is a toggle and the toggle is down, otherwise is @false.
+            @true if the tool is a toggle and the toggle is down, otherwise is
+            @false.
 
         @return If the tool is a toggle and this function returns @false, the
 
         @return If the tool is a toggle and this function returns @false, the
-                 toggle toggle state (internal and visual) will not be
-                 changed. This provides a way of specifying that toggle
-                 operations are not permitted in some circumstances.
+                toggle state (internal and visual) will not be changed. This
+                provides a way of specifying that toggle operations are not
+                permitted in some circumstances.
 
         @see OnMouseEnter(), OnRightClick()
     */
     bool OnLeftClick(int toolId, bool toggleDown);
 
     /**
 
         @see OnMouseEnter(), OnRightClick()
     */
     bool OnLeftClick(int toolId, bool toggleDown);
 
     /**
-        This is called when the mouse cursor moves into a tool or out of
-        the toolbar.
-        This is the old way of detecting mouse enter events; although it will still
-        work,
-        you should use the EVT_TOOL_ENTER macro instead.
+        This is called when the mouse cursor moves into a tool or out of the
+        toolbar. This is the old way of detecting mouse enter events;
+        although it will still work, you should use the EVT_TOOL_ENTER()
+        macro instead.
 
         @param toolId
 
         @param toolId
-            Greater than -1 if the mouse cursor has moved into the tool,
-            or -1 if the mouse cursor has moved. The
-            programmer can override this to provide extra information about the tool,
-            such as a short description on the status line.
+            Greater than -1 if the mouse cursor has moved into the tool, or -1
+            if the mouse cursor has moved. The programmer can override this to
+            provide extra information about the tool, such as a short
+            description on the status line.
 
         @remarks With some derived toolbar classes, if the mouse moves quickly
 
         @remarks With some derived toolbar classes, if the mouse moves quickly
-                 out of the toolbar, wxWidgets may not be able to detect
-                 it. Therefore this function may not always be called
-                 when expected.
+                 out of the toolbar, wxWidgets may not be able to detect it.
+                 Therefore this function may not always be called when expected.
     */
     void OnMouseEnter(int toolId);
 
     /**
     */
     void OnMouseEnter(int toolId);
 
     /**
+        @deprecated This is the old way of detecting tool right clicks;
+                    although it will still work, you should use the
+                    EVT_TOOL_RCLICKED() macro instead.
+
         Called when the user clicks on a tool with the right mouse button. The
         programmer should override this function to detect right tool clicks.
         Called when the user clicks on a tool with the right mouse button. The
         programmer should override this function to detect right tool clicks.
-        This is the old way of detecting tool right clicks; although it will still work,
-        you should use the EVT_TOOL_RCLICKED macro instead.
 
         @param toolId
             The identifier passed to AddTool().
 
         @param toolId
             The identifier passed to AddTool().
@@ -478,26 +562,29 @@ public:
     bool Realize();
 
     /**
     bool Realize();
 
     /**
-        Removes the given tool from the toolbar but doesn't delete it. This allows to
-        insert/add this tool back to this (or another) toolbar later.
-        Note that it is unnecessary to call Realize() for the
-        change to take place, it will happen immediately.
+        Removes the given tool from the toolbar but doesn't delete it. This
+        allows to insert/add this tool back to this (or another) toolbar later.
+
+        @note It is unnecessary to call Realize() for the change to take place,
+            it will happen immediately.
+
 
         @see DeleteTool()
     */
     wxToolBarToolBase* RemoveTool(int id);
 
     /**
 
         @see DeleteTool()
     */
     wxToolBarToolBase* RemoveTool(int id);
 
     /**
-        Sets the bitmap resource identifier for specifying tool bitmaps as indices
-        into a custom bitmap. Windows CE only.
+        Sets the bitmap resource identifier for specifying tool bitmaps as
+        indices into a custom bitmap. Windows CE only.
     */
     void SetBitmapResource(int resourceId);
 
     /**
     */
     void SetBitmapResource(int resourceId);
 
     /**
-        Sets the dropdown menu for the tool given by its @e id. The tool itself will
-        delete the menu when it's no longer needed.
-        If you define a EVT_TOOL_DROPDOWN handler in your program, you must call
-        wxEvent::Skip from it or the menu won't be displayed.
+        Sets the dropdown menu for the tool given by its @e id. The tool itself
+        will delete the menu when it's no longer needed.
+
+        If you define a EVT_TOOL_DROPDOWN() handler in your program, you must
+        call wxEvent::Skip() from it or the menu won't be displayed.
     */
     bool SetDropdownMenu(int id, wxMenu* menu);
 
     */
     bool SetDropdownMenu(int id, wxMenu* menu);
 
@@ -513,8 +600,8 @@ public:
             Top margin, bottom margin and inter-tool separation value.
 
         @remarks This must be called before the tools are added if absolute
             Top margin, bottom margin and inter-tool separation value.
 
         @remarks This must be called before the tools are added if absolute
-                 positioning is to be used, and the default (zero-size)
-                 margins are to be overridden.
+            positioning is to be used, and the default (zero-size) margins are
+            to be overridden.
 
         @see GetMargins(), wxSize
     */
 
         @see GetMargins(), wxSize
     */
@@ -523,14 +610,14 @@ public:
     //@}
 
     /**
     //@}
 
     /**
-        Sets the default size of each tool bitmap. The default bitmap size is 16 by 15
-        pixels.
+        Sets the default size of each tool bitmap. The default bitmap size is 16
+        by 15 pixels.
 
         @param size
             The size of the bitmaps in the toolbar.
 
         @remarks This should be called to tell the toolbar what the tool bitmap
 
         @param size
             The size of the bitmaps in the toolbar.
 
         @remarks This should be called to tell the toolbar what the tool bitmap
-                 size is. Call it before you add tools.
+            size is. Call it before you add tools.
 
         @see GetToolBitmapSize(), GetToolSize()
     */
 
         @see GetToolBitmapSize(), GetToolSize()
     */
@@ -543,10 +630,13 @@ public:
 
     /**
         Sets the bitmap to be used by the tool with the given ID when the tool
 
     /**
         Sets the bitmap to be used by the tool with the given ID when the tool
-        is in a disabled state.  This can only be used on Button tools, not
-        controls.  NOTE: The native toolbar classes on the main platforms all
-        synthesize the disabled bitmap from the normal bitmap, so this
-        function will have no effect on those platforms.
+        is in a disabled state. This can only be used on Button tools, not
+        controls.
+
+        @note The native toolbar classes on the main platforms all synthesize
+            the disabled bitmap from the normal bitmap, so this function will
+            have no effect on those platforms.
+
     */
     void SetToolDisabledBitmap(int id, const wxBitmap& bitmap);
 
     */
     void SetToolDisabledBitmap(int id, const wxBitmap& bitmap);
 
@@ -559,15 +649,15 @@ public:
             A string for the long help.
 
         @remarks You might use the long help for displaying the tool purpose on
             A string for the long help.
 
         @remarks You might use the long help for displaying the tool purpose on
-                 the status line.
+            the status line.
 
         @see GetToolLongHelp(), SetToolShortHelp(),
     */
     void SetToolLongHelp(int toolId, const wxString& helpString);
 
     /**
 
         @see GetToolLongHelp(), SetToolShortHelp(),
     */
     void SetToolLongHelp(int toolId, const wxString& helpString);
 
     /**
-        Sets the bitmap to be used by the tool with the given ID.  This can
-        only be used on Button tools, not controls.
+        Sets the bitmap to be used by the tool with the given ID. This can only
+        be used on Button tools, not controls.
     */
     void SetToolNormalBitmap(int id, const wxBitmap& bitmap);
 
     */
     void SetToolNormalBitmap(int id, const wxBitmap& bitmap);
 
@@ -577,9 +667,9 @@ public:
         @param packing
             The value for packing.
 
         @param packing
             The value for packing.
 
-        @remarks The packing is used for spacing in the vertical direction if the
-                 toolbar is horizontal, and for spacing in the
-                 horizontal direction if the toolbar is vertical.
+        @remarks The packing is used for spacing in the vertical direction if 
+            the toolbar is horizontal, and for spacing in the horizontal
+            direction if the toolbar is vertical.
 
         @see GetToolPacking()
     */
 
         @see GetToolPacking()
     */
@@ -604,7 +694,8 @@ public:
             The string for the short help.
 
         @remarks An application might use short help for identifying the tool
             The string for the short help.
 
         @remarks An application might use short help for identifying the tool
-                 purpose in a tooltip.
+            purpose in a tooltip.
+
 
         @see GetToolShortHelp(), SetToolLongHelp()
     */
 
         @see GetToolShortHelp(), SetToolLongHelp()
     */
@@ -618,7 +709,8 @@ public:
         @param toggle
             If @true, toggles the tool on, otherwise toggles it off.
 
         @param toggle
             If @true, toggles the tool on, otherwise toggles it off.
 
-        @remarks Only applies to a tool that has been specified as a toggle tool.
+        @remarks Only applies to a tool that has been specified as a toggle
+            tool.
     */
     void ToggleTool(int toolId, bool toggle);
 };
     */
     void ToggleTool(int toolId, bool toggle);
 };
index 64484b10d139778964507566bd2d8b9d0141a18f..67d4bc0a65b90b63af0fdfa41e34dad0b1d05da6 100644 (file)
     @class wxTrackable
     @wxheader{tracker.h}
 
     @class wxTrackable
     @wxheader{tracker.h}
 
-    Add-on base class for a trackable object. This class maintains
-    an internal linked list of classes of type wxTrackerNode and
-    calls OnObjectDestroy() on them if this object is destroyed.
-    The most common usage is by using the wxWeakRefT()
-    class template which automates this. This class has no public
-    API. Its only use is by deriving another class from it to
-    make it trackable.
+    Add-on base class for a trackable object. This class maintains an internal
+    linked list of classes of type wxTrackerNode and calls OnObjectDestroy() on
+    them if this object is destroyed. The most common usage is by using the
+    wxWeakRef<T> class template which automates this. This class has no public
+    API. Its only use is by deriving another class from it to make it trackable.
 
     @code
     class MyClass: public Foo, public wxTrackable
     {
 
     @code
     class MyClass: public Foo, public wxTrackable
     {
-       // whatever
+        // whatever
     }
 
     }
 
-    typedef wxWeakRefMyClass MyClassRef;
+    typedef wxWeakRef<MyClass> MyClassRef;
     @endcode
 
     @library{wxbase}
     @endcode
 
     @library{wxbase}
-    @category{FIXME}
+    @category{smartpointers}
 */
 class wxTrackable
 {
 */
 class wxTrackable
 {
index 9e83d58c79f1cfd5340e1406186a336284826aae..84ffd78598027b862e1c26260ffd45f82475f588 100644 (file)
     An opaque reference to a tree item.
 
     @library{wxcore}
     An opaque reference to a tree item.
 
     @library{wxcore}
-    @category{FIXME}
+    @category{misc}
 
 
-    @see wxTreeCtrl, wxTreeItemData, @ref overview_wxtreectrloverview "wxTreeCtrl
-    overview"
+    @see wxTreeCtrl, wxTreeItemData, @ref overview_treectrl
 */
 class wxTreeItemId
 {
 public:
     /**
 */
 class wxTreeItemId
 {
 public:
     /**
-        Default constructor. wxTreemItemIds are not meant to be constructed explicitly
-        by
-        the user; they are returned by the wxTreeCtrl functions instead.
+        Default constructor. A wxTreeItemId is not meant to be constructed
+        explicitly by the user; only those returned by the wxTreeCtrl functions
+        should be used.
     */
     wxTreeItemId();
 
     */
     wxTreeItemId();
 
@@ -35,11 +34,96 @@ public:
 
     //@{
     /**
 
     //@{
     /**
-        Operators for comparison between wxTreeItemId objects.
+         Operators for comparison between wxTreeItemId objects.
     */
     */
-    void operator !() const;
-    const bool operator ==(const wxTreeItemId& item) const;
-    const bool operator !=(const wxTreeItemId& item) const;
+    bool operator ==(const wxTreeItemId& item) const;
+    bool operator !=(const wxTreeItemId& item) const;
     //@}
     //@}
+
+    /**
+        Antonym of IsOk(), i.e. returns @true only if the item is not valid.
+    */
+    bool operator !() const;
 };
 
 };
 
+/**
+    @class wxTreeItemData
+    @wxheader{treebase.h}
+
+    wxTreeItemData is some (arbitrary) user class associated with some item. The
+    main advantage of having this class is that wxTreeItemData objects are
+    destroyed automatically by the tree and, as this class has virtual
+    destructor, it means that the memory and any other resources associated with
+    a tree item will be automatically freed when it is deleted. Note that we
+    don't use wxObject as the base class for wxTreeItemData because the size of
+    this class is critical: in many applications, each tree leaf will have
+    wxTreeItemData associated with it and the number of leaves may be quite big.
+
+    Also please note that because the objects of this class are deleted by the
+    tree using the operator @c delete, they must always be allocated on the heap
+    using @c new.
+
+    @library{wxcore}
+    @category{containers}
+
+    @see wxTreeCtrl
+*/
+class wxTreeItemData : public wxClientData
+{
+public:
+    /**
+        Default constructor.
+
+        @beginWxPythonOnly
+        The following methods are added in wxPython for accessing the object:
+        - GetData(): Returns a reference to the Python Object.
+        - SetData(obj): Associates a new Python Object with the wxTreeItemData.
+        @endWxPythonOnly
+    */
+    wxTreeItemData();
+
+    /**
+        Virtual destructor.
+    */
+    ~wxTreeItemData();
+
+    /**
+        Returns the item associated with this node.
+    */
+    const wxTreeItemId GetId();
+
+    /**
+        Sets the item associated with this node.
+    */
+    void SetId(const wxTreeItemId& id);
+};
+
+/**
+    Indicates which type to associate an image with a wxTreeCtrl item.
+    
+    @see wxTreeCtrl::GetItemImage(), wxTreeCtrl::SetItemImage()
+*/
+enum wxTreeItemIcon
+{
+    /**
+        To get/set the item image for when the item is
+        @b not selected and @b not expanded.
+    */
+    wxTreeItemIcon_Normal,
+    /**
+        To get/set the item image for when the item is
+        @b selected and @b not expanded.
+    */
+    wxTreeItemIcon_Selected,
+    /**
+        To get/set the item image for when the item is
+        @b not selected and @b expanded.
+    */
+    wxTreeItemIcon_Expanded,
+    /**
+        To get/set the item image for when the item is
+        @b selected and @b expanded.
+    */
+    wxTreeItemIcon_SelectedExpanded,
+    wxTreeItemIcon_Max
+};
index 524c819b4c9cef1c145752f1416c551aceeaaafd..c950031b2dad34e80f3cb5885ae28bd5cc7e9d86 100644 (file)
     @wxheader{treebook.h}
 
     This class represents the events generated by a treebook control: currently,
     @wxheader{treebook.h}
 
     This class represents the events generated by a treebook control: currently,
-    there are four of them. The PAGE_CHANGING and PAGE_CHANGED - have exactly the
-    same
-    behaviour as wxNotebookEvent.
-
-    The other two NODE_COLLAPSED and NODE_EXPANDED are triggered when page node in
-    the tree control
-    is collapsed/expanded. The page index could be retreived by calling
-    wxTreebookEvent::GetSelection.
-
-
+    there are four of them. The EVT_TREEBOOK_PAGE_CHANGING() and
+    EVT_TREEBOOK_PAGE_CHANGED() - have exactly the same behaviour as
+    wxNotebookEvent.
+
+    The other two EVT_TREEBOOK_NODE_COLLAPSED() and EVT_TREEBOOK_NODE_EXPANDED()
+    are triggered when page node in the tree control is collapsed/expanded. The
+    page index could be retreived by calling GetSelection().
+
+    @beginEventTable{wxTreebookEvent}
+    @event{EVT_TREEBOOK_PAGE_CHANGED(id, func)}
+        The page selection was changed. Processes a @c
+        wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED event.
+    @event{EVT_TREEBOOK_PAGE_CHANGING(id, func)}
+        The page selection is about to be changed. Processes a @c
+        wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING event. This event can be @ref
+        wxNotifyEvent::Veto() "vetoed".
+    @event{EVT_TREEBOOK_NODE_COLLAPSED(id, func)}
+        The page node is going to be collapsed. Processes a @c
+        wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED event.
+    @event{EVT_TREEBOOK_NODE_EXPANDED(id, func)}
+        The page node is going to be expanded. Processes a @c
+        wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED event.
+    @endEventTable
+    
     @library{wxcore}
     @category{events}
 
     @library{wxcore}
     @category{events}
 
-    @see wxNotebookEvent, wxTreebook
+    @see wxTreebook, wxNotebookEvent
 */
 class wxTreebookEvent : public wxNotifyEvent
 {
 */
 class wxTreebookEvent : public wxNotifyEvent
 {
@@ -37,13 +51,16 @@ public:
                     int nOldSel = wxNOT_FOUND);
 
     /**
                     int nOldSel = wxNOT_FOUND);
 
     /**
-        Returns the page that was selected before the change, wxNOT_FOUND if none was
-        selected.
+        Returns the page that was selected before the change, @c wxNOT_FOUND if
+        none was selected.
     */
     int GetOldSelection() const;
 
     /**
     */
     int GetOldSelection() const;
 
     /**
-        Returns the currently selected page, or wxNOT_FOUND if none was selected.
+        Returns the currently selected page, or @c wxNOT_FOUND if none was
+        selected.
+
+        @see wxNotebookEvent::GetSelection()
     */
     int GetSelection() const;
 };
     */
     int GetSelection() const;
 };
@@ -54,34 +71,50 @@ public:
     @class wxTreebook
     @wxheader{treebook.h}
 
     @class wxTreebook
     @wxheader{treebook.h}
 
-    This class is an extension of the Notebook class that allows a tree structured
-    set of pages to be shown in a control.
-    A classic example is a netscape preferences dialog that shows a tree
-    of preference sections on the left and select section page on the right.
+    This class is an extension of the wxNotebook class that allows a tree
+    structured set of pages to be shown in a control. A classic example is a
+    netscape preferences dialog that shows a tree of preference sections on
+    the left and select section page on the right.
 
     To use the class simply create it and populate with pages using
 
     To use the class simply create it and populate with pages using
-    wxTreebook::InsertPage,
-    wxTreebook::InsertSubPage,
-    wxTreebook::AddPage,
-    wxTreebook::AddSubPage.
-
-    If your tree is no more than 1 level in depth then you could
-    simply use wxTreebook::AddPage and
-    wxTreebook::AddSubPage to sequentially populate your tree
-    by adding at every step a page or a subpage to the end of the tree.
+    InsertPage(), InsertSubPage(), AddPage(), AddSubPage().
+
+    If your tree is no more than 1 level in depth then you could simply use
+    AddPage() and AddSubPage() to sequentially populate your tree by adding at
+    every step a page or a subpage to the end of the tree.
+
+    @beginEventTable{wxTreebookEvent}
+    @event{EVT_TREEBOOK_PAGE_CHANGED(id, func)}
+        The page selection was changed. Processes a @c
+        wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED event.
+    @event{EVT_TREEBOOK_PAGE_CHANGING(id, func)}
+        The page selection is about to be changed. Processes a @c
+        wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING event. This event can be @ref
+        wxNotifyEvent::Veto() "vetoed".
+    @event{EVT_TREEBOOK_NODE_COLLAPSED(id, func)}
+        The page node is going to be collapsed. Processes a @c
+        wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED event.
+    @event{EVT_TREEBOOK_NODE_EXPANDED(id, func)}
+        The page node is going to be expanded. Processes a @c
+        wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED event.
+    @endEventTable
 
     @library{wxcore}
     @category{miscwnd}
 
 
     @library{wxcore}
     @category{miscwnd}
 
-    @see wxNotebook, wxTreebookEvent, wxImageList, @ref overview_samplenotebook
-    "notebook sample"
+    @see wxTreebookEvent, wxNotebook, wxTreeCtrl, wxImageList,
+         @ref overview_bookctrl, @ref page_samples_notebook
 */
 */
-class wxTreebook : public wxBookCtrl overview
+class wxTreebook : public wxBookCtrlBase
 {
 public:
 {
 public:
-    //@{
     /**
     /**
-        Creates an empty TreeBook control.
+        Default constructor.
+    */
+    wxTreebook();
+
+    /**
+        Creates an empty wxTreebook.
 
         @param parent
             The parent window. Must be non-@NULL.
 
         @param parent
             The parent window. Must be non-@NULL.
@@ -96,59 +129,61 @@ public:
         @param name
             The name of the control (used only under Motif).
     */
         @param name
             The name of the control (used only under Motif).
     */
-    wxTreebook();
     wxTreebook(wxWindow* parent, wxWindowID id,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxBK_DEFAULT,
                const wxString& name = wxEmptyString);
     wxTreebook(wxWindow* parent, wxWindowID id,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxBK_DEFAULT,
                const wxString& name = wxEmptyString);
-    //@}
 
     /**
 
     /**
-        Destroys the wxTreebook object.
-        Also deletes all the pages owned by the control (inserted previously into it).
+        Destroys the wxTreebook object. Also deletes all the pages owned by the
+        control (inserted previously into it).
     */
     ~wxTreebook();
 
     /**
     */
     ~wxTreebook();
 
     /**
-        Adds a new page. The page is placed at the topmost level after all other pages.
-        @NULL could be specified for page to create an empty page.
+        Adds a new page. The page is placed at the topmost level after all other
+        pages. @NULL could be specified for page to create an empty page.
     */
     bool AddPage(wxWindow* page, const wxString& text,
                  bool bSelect = false,
                  int imageId = wxNOT_FOUND);
 
     /**
     */
     bool AddPage(wxWindow* page, const wxString& text,
                  bool bSelect = false,
                  int imageId = wxNOT_FOUND);
 
     /**
-        Adds a new child-page to the last top-level page.
-        @NULL could be specified for page to create an empty page.
+        Adds a new child-page to the last top-level page. @NULL could be
+        specified for page to create an empty page.
     */
     bool AddSubPage(wxWindow* page, const wxString& text,
                     bool bSelect = false,
                     int imageId = wxNOT_FOUND);
 
     /**
     */
     bool AddSubPage(wxWindow* page, const wxString& text,
                     bool bSelect = false,
                     int imageId = wxNOT_FOUND);
 
     /**
-        Sets the image list for the page control and takes ownership of the list.
+        Sets the image list for the page control and takes ownership of the
+        list.
 
         @see wxImageList, SetImageList()
     */
     void AssignImageList(wxImageList* imageList);
 
     /**
 
         @see wxImageList, SetImageList()
     */
     void AssignImageList(wxImageList* imageList);
 
     /**
-        Changes the selection for the given page, returning the previous selection.
+        Changes the selection for the given page, returning the previous
+        selection.
+
         The call to this function does not generate the page changing events.
         The call to this function does not generate the page changing events.
-        This is the only difference with SetSelection().
-        See @ref overview_progevent "this topic" for more info.
+        This is the only difference with SetSelection(). See
+        @ref overview_eventhandling_prog for more info.
     */
     int ChangeSelection(size_t page);
 
     /**
     */
     int ChangeSelection(size_t page);
 
     /**
-        Shortcut for wxTreebook::ExpandNode(pageId, @false).
+        Shortcut for @ref wxTreebook::ExpandNode() "ExpandNode"( @a pageId,
+        @false ).
     */
     bool CollapseNode(size_t pageId);
 
     /**
     */
     bool CollapseNode(size_t pageId);
 
     /**
-        Creates a treebook control. See wxTreebook() for the description of the
-        parameters.
+        Creates a treebook control. See wxTreebook::wxTreebook() for the
+        description of the parameters.
     */
     bool Create(wxWindow* parent, wxWindowID id,
                 const wxPoint& pos = wxDefaultPosition,
     */
     bool Create(wxWindow* parent, wxWindowID id,
                 const wxPoint& pos = wxDefaultPosition,
@@ -162,17 +197,16 @@ public:
     bool DeleteAllPages();
 
     /**
     bool DeleteAllPages();
 
     /**
-        Deletes the page at the specified position and all its children. Could trigger
-        page selection change
-        in a case when selected page is removed. In that case its parent is selected
-        (or the next page if no parent).
+        Deletes the page at the specified position and all its children. Could
+        trigger page selection change in a case when selected page is removed.
+        In that case its parent is selected (or the next page if no parent).
     */
     bool DeletePage(size_t pagePos);
 
     /**
     */
     bool DeletePage(size_t pagePos);
 
     /**
-        Expands (collapses) the pageId node. Returns the previous state.
-        May generate page changing events (if selected page
-        is under the collapsed branch, then its parent is autoselected).
+        Expands (collapses) the @a pageId node. Returns the previous state. May
+        generate page changing events (if selected page is under the collapsed
+        branch, then its parent is autoselected).
     */
     bool ExpandNode(size_t pageId, bool expand = true);
 
     */
     bool ExpandNode(size_t pageId, bool expand = true);
 
@@ -193,18 +227,20 @@ public:
     wxString GetPageText(size_t n) const;
 
     /**
     wxString GetPageText(size_t n) const;
 
     /**
-        Returns the currently selected page, or wxNOT_FOUND if none was selected.
-        Note that this method may return either the previously or newly selected page
-        when called from the EVT_TREEBOOK_PAGE_CHANGED handler
-        depending on the platform and so wxTreebookEvent::GetSelection should be used
-        instead in this case.
+        Returns the currently selected page, or @c wxNOT_FOUND if none was
+        selected.
+
+        @note This method may return either the previously or newly selected
+            page when called from the EVT_TREEBOOK_PAGE_CHANGED() handler
+            depending on the platform and so wxTreebookEvent::GetSelection()
+            should be used instead in this case.
     */
     int GetSelection() const;
 
     /**
     */
     int GetSelection() const;
 
     /**
-        Inserts a new page just before the page indicated by pagePos.
-        The new page is placed before pagePos page and on the same level.
-        @NULL could be specified for page to create an empty page.
+        Inserts a new page just before the page indicated by @a pagePos. The new
+        page is placed before @a pagePos page and on the same level. @NULL could
+        be specified for page to create an empty page.
     */
     bool InsertPage(size_t pagePos, wxWindow* page,
                     const wxString& text,
     */
     bool InsertPage(size_t pagePos, wxWindow* page,
                     const wxString& text,
@@ -213,6 +249,7 @@ public:
 
     /**
         Inserts a sub page under the specified page.
 
     /**
         Inserts a sub page under the specified page.
+
         @NULL could be specified for page to create an empty page.
     */
     bool InsertSubPage(size_t pagePos, wxWindow* page,
         @NULL could be specified for page to create an empty page.
     */
     bool InsertSubPage(size_t pagePos, wxWindow* page,
@@ -221,36 +258,37 @@ public:
                        int imageId = wxNOT_FOUND);
 
     /**
                        int imageId = wxNOT_FOUND);
 
     /**
-        Gets the pagePos page state -- whether it is expanded or collapsed
+        Returns @true if the page represented by @a pageId is expanded.
     */
     bool IsNodeExpanded(size_t pageId) const;
 
     /**
     */
     bool IsNodeExpanded(size_t pageId) const;
 
     /**
-        Sets the image list for the page control. It does not take ownership of the
-        image list, you must delete it yourself.
+        Sets the image list for the page control. It does not take ownership of
+        the image list, you must delete it yourself.
 
         @see wxImageList, AssignImageList()
     */
     void SetImageList(wxImageList* imageList);
 
     /**
 
         @see wxImageList, AssignImageList()
     */
     void SetImageList(wxImageList* imageList);
 
     /**
-        Sets the image index for the given page. ImageId is an index into the image list
-        which was set with SetImageList().
+        Sets the image index for the given @a page. @a imageId is an index into
+        the image list which was set with SetImageList().
     */
     bool SetPageImage(size_t page, int imageId);
 
     /**
     */
     bool SetPageImage(size_t page, int imageId);
 
     /**
-        Sets the text for the given page.
+        Sets the @a text for the given @a page.
     */
     bool SetPageText(size_t page, const wxString& text);
 
     /**
     */
     bool SetPageText(size_t page, const wxString& text);
 
     /**
+        @deprecated Please use ChangeSelection() instead.
+
         Sets the selection for the given page, returning the previous selection.
         Sets the selection for the given page, returning the previous selection.
-        The call to this function generates the page changing events.
-        This function is deprecated and should not be used in new code. Please use the
-        ChangeSelection() function instead.
 
 
-        @see GetSelection()
+        The call to this function generates page changing events.
+
+        @see GetSelection(), ChangeSelection()
     */
     int SetSelection(size_t n);
 };
     */
     int SetSelection(size_t n);
 };
index 42476c50f552792973d482b250942a363268c862..1e560475ce968d5958b1d0a8a4fc39bd34dc2412 100644 (file)
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-/**
-    @class wxTreeItemData
-    @wxheader{treectrl.h}
-
-    wxTreeItemData is some (arbitrary) user class associated with some item. The
-    main advantage of having this class is that wxTreeItemData objects are
-    destroyed automatically by the tree and, as this class has virtual destructor,
-    it means that the memory and any other resources associated with a tree item
-    will be automatically freed when it is deleted. Note that we don't use wxObject
-    as the base class for wxTreeItemData because the size of this class is
-    critical: in many applications, each tree leaf will have wxTreeItemData
-    associated with it and the number of leaves may be quite big.
-
-    Also please note that because the objects of this class are deleted by the tree
-    using the operator @c delete, they must always be allocated on the heap
-    using @c new.
-
-    @library{wxcore}
-    @category{FIXME}
-
-    @see wxTreeCtrl
-*/
-class wxTreeItemData : public wxClientData
-{
-public:
-    /**
-        Default constructor.
-
-        In addition, the following methods are added in wxPython for accessing
-        the object:
-
-        @b GetData()
-
-        Returns a reference to the Python Object
-
-        @b SetData(obj)
-
-        Associates a new Python Object with the
-        wxTreeItemData
-    */
-    wxTreeItemData();
-
-    /**
-        Virtual destructor.
-    */
-    ~wxTreeItemData();
-
-    /**
-        Returns the item associated with this node.
-    */
-    const wxTreeItemId GetId();
-
-    /**
-        Sets the item associated with this node.
-    */
-    void SetId(const wxTreeItemId& id);
-};
-
-
 
 /**
     @class wxTreeCtrl
     @wxheader{treectrl.h}
 
     A tree control presents information as a hierarchy, with items that may be
 
 /**
     @class wxTreeCtrl
     @wxheader{treectrl.h}
 
     A tree control presents information as a hierarchy, with items that may be
-    expanded
-    to show further items. Items in a tree control are referenced by wxTreeItemId
-    handles,
-    which may be tested for validity by calling wxTreeItemId::IsOk.
+    expanded to show further items. Items in a tree control are referenced by
+    wxTreeItemId handles, which may be tested for validity by calling
+    wxTreeItemId::IsOk().
 
 
-    To intercept events from a tree control, use the event table macros described
-    in wxTreeEvent.
+    To intercept events from a tree control, use the event table macros
+    described in wxTreeEvent.
 
     @beginStyleTable
     @style{wxTR_EDIT_LABELS}
 
     @beginStyleTable
     @style{wxTR_EDIT_LABELS}
-           Use this style if you wish the user to be able to edit labels in
-           the tree control.
+        Use this style if you wish the user to be able to edit labels in the
+        tree control.
     @style{wxTR_NO_BUTTONS}
     @style{wxTR_NO_BUTTONS}
-           For convenience to document that no buttons are to be drawn.
+        For convenience to document that no buttons are to be drawn.
     @style{wxTR_HAS_BUTTONS}
     @style{wxTR_HAS_BUTTONS}
-           Use this style to show + and - buttons to the left of parent items.
+        Use this style to show + and - buttons to the left of parent items.
     @style{wxTR_NO_LINES}
     @style{wxTR_NO_LINES}
-           Use this style to hide vertical level connectors.
+        Use this style to hide vertical level connectors.
     @style{wxTR_FULL_ROW_HIGHLIGHT}
     @style{wxTR_FULL_ROW_HIGHLIGHT}
-           Use this style to have the background colour and the selection
-           highlight extend over the entire horizontal row of the tree control
-           window. (This flag is ignored under Windows unless you specify
-           wxTR_NO_LINES as well.)
+        Use this style to have the background colour and the selection highlight
+        extend over the entire horizontal row of the tree control window. (This
+        flag is ignored under Windows unless you specify @c wxTR_NO_LINES as
+        well.)
     @style{wxTR_LINES_AT_ROOT}
     @style{wxTR_LINES_AT_ROOT}
-           Use this style to show lines between root nodes. Only applicable if
-           wxTR_HIDE_ROOT is set and wxTR_NO_LINES is not set.
+        Use this style to show lines between root nodes. Only applicable if @c
+        wxTR_HIDE_ROOT is set and @c wxTR_NO_LINES is not set.
     @style{wxTR_HIDE_ROOT}
     @style{wxTR_HIDE_ROOT}
-           Use this style to suppress the display of the root node,
-           effectively causing the first-level nodes to appear as a series of
-           root nodes.
+        Use this style to suppress the display of the root node, effectively
+        causing the first-level nodes to appear as a series of root nodes.
     @style{wxTR_ROW_LINES}
     @style{wxTR_ROW_LINES}
-           Use this style to draw a contrasting border between displayed rows.
+        Use this style to draw a contrasting border between displayed rows.
     @style{wxTR_HAS_VARIABLE_ROW_HEIGHT}
     @style{wxTR_HAS_VARIABLE_ROW_HEIGHT}
-           Use this style to cause row heights to be just big enough to fit
-           the content. If not set, all rows use the largest row height. The
-           default is that this flag is unset. Generic only.
+        Use this style to cause row heights to be just big enough to fit the
+        content. If not set, all rows use the largest row height. The default is
+        that this flag is unset. Generic only.
     @style{wxTR_SINGLE}
     @style{wxTR_SINGLE}
-           For convenience to document that only one item may be selected at a
-           time. Selecting another item causes the current selection, if any,
-           to be deselected.  This is the default.
+        For convenience to document that only one item may be selected at a
+        time. Selecting another item causes the current selection, if any, to be
+        deselected. This is the default.
     @style{wxTR_MULTIPLE}
     @style{wxTR_MULTIPLE}
-           Use this style to allow a range of items to be selected. If a
-           second range is selected, the current range, if any, is deselected.
+        Use this style to allow a range of items to be selected. If a second
+        range is selected, the current range, if any, is deselected.
     @style{wxTR_DEFAULT_STYLE}
     @style{wxTR_DEFAULT_STYLE}
-           The set of flags that are closest to the defaults for the native
-           control for a particular toolkit.
+        The set of flags that are closest to the defaults for the native control
+        for a particular toolkit.
     @endStyleTable
 
     @endStyleTable
 
+    See also @ref overview_windowstyles.
+    
+    @b Win32 @b notes:
+
+    wxTreeCtrl class uses the standard common treeview control under Win32
+    implemented in the system library comctl32.dll. Some versions of this
+    library are known to have bugs with handling the tree control colours: the
+    usual symptom is that the expanded items leave black (or otherwise
+    incorrectly coloured) background behind them, especially for the controls
+    using non-default background colour. The recommended solution is to upgrade
+    the comctl32.dll to a newer version: see
+    http://www.microsoft.com/downloads/details.aspx?familyid=cb2cf3a2-8025-4e8f-8511-9b476a8d35d2
+
     @library{wxcore}
     @category{ctrl}
     <!-- @appearance{treectrl.png} -->
 
     @library{wxcore}
     @category{ctrl}
     <!-- @appearance{treectrl.png} -->
 
-    @see wxTreeItemData, @ref overview_wxtreectrloverview "wxTreeCtrl overview",
-    wxListBox, wxListCtrl, wxImageList, wxTreeEvent
+    @see wxTreeEvent, wxTreeItemData, @ref overview_treectrl, wxListBox,
+         wxListCtrl, wxImageList
 */
 class wxTreeCtrl : public wxControl
 {
 public:
 */
 class wxTreeCtrl : public wxControl
 {
 public:
-    //@{
+    /**
+        Default Constructor.
+    */
+    wxTreeCtrl();
+
     /**
         Constructor, creating and showing a tree control.
 
         @param parent
             Parent window. Must not be @NULL.
         @param id
     /**
         Constructor, creating and showing a tree control.
 
         @param parent
             Parent window. Must not be @NULL.
         @param id
-            Window identifier. The value wxID_ANY indicates a default value.
+            Window identifier. The value @c wxID_ANY indicates a default value.
         @param pos
             Window position.
         @param size
         @param pos
             Window position.
         @param size
-            Window size. If wxDefaultSize is specified then the window is
-        sized
+            Window size. If wxDefaultSize is specified then the window is sized
             appropriately.
         @param style
             Window style. See wxTreeCtrl.
             appropriately.
         @param style
             Window style. See wxTreeCtrl.
@@ -152,14 +107,13 @@ public:
 
         @see Create(), wxValidator
     */
 
         @see Create(), wxValidator
     */
-    wxTreeCtrl();
     wxTreeCtrl(wxWindow* parent, wxWindowID id,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxTR_HAS_BUTTONS,
                const wxValidator& validator = wxDefaultValidator,
                const wxString& name = "treeCtrl");
     wxTreeCtrl(wxWindow* parent, wxWindowID id,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = wxTR_HAS_BUTTONS,
                const wxValidator& validator = wxDefaultValidator,
                const wxString& name = "treeCtrl");
-    //@}
+    
 
     /**
         Destructor, destroying the tree control.
 
     /**
         Destructor, destroying the tree control.
@@ -168,24 +122,24 @@ public:
 
     /**
         Adds the root node to the tree, returning the new item.
 
     /**
         Adds the root node to the tree, returning the new item.
-        The @a image and @a selImage parameters are an index within
-        the normal image list specifying the image to use for unselected and
-        selected items, respectively.
-        If @a image  -1 and @a selImage is -1, the same image is used for
-        both selected and unselected items.
+
+        The @a image and @a selImage parameters are an index within the normal
+        image list specifying the image to use for unselected and selected
+        items, respectively. If @a image -1 and @a selImage is -1, the same
+        image is used for both selected and unselected items.
     */
     wxTreeItemId AddRoot(const wxString& text, int image = -1,
                          int selImage = -1,
                          wxTreeItemData* data = NULL);
 
     /**
     */
     wxTreeItemId AddRoot(const wxString& text, int image = -1,
                          int selImage = -1,
                          wxTreeItemData* data = NULL);
 
     /**
-        Appends an item to the end of the branch identified by @e parent, return a new
-        item id.
-        The @a image and @a selImage parameters are an index within
-        the normal image list specifying the image to use for unselected and
-        selected items, respectively.
-        If @a image  -1 and @a selImage is -1, the same image is used for
-        both selected and unselected items.
+        Appends an item to the end of the branch identified by @a parent, return
+        a new item id.
+        
+        The @a image and @a selImage parameters are an index within the normal
+        image list specifying the image to use for unselected and selected
+        items, respectively. If @a image -1 and @a selImage is -1, the same
+        image is used for both selected and unselected items.
     */
     wxTreeItemId AppendItem(const wxTreeItemId& parent,
                             const wxString& text,
     */
     wxTreeItemId AppendItem(const wxTreeItemId& parent,
                             const wxString& text,
@@ -194,30 +148,35 @@ public:
                             wxTreeItemData* data = NULL);
 
     /**
                             wxTreeItemData* data = NULL);
 
     /**
-        Sets the buttons image list. The button images assigned with this method will
-        be automatically deleted by wxTreeCtrl as appropriate
-        (i.e. it takes ownership of the list).
-        Setting or assigning the button image list enables the display of image buttons.
-        Once enabled, the only way to disable the display of button images is to set
-        the button image list to @NULL.
+        Sets the buttons image list. The button images assigned with this method
+        will be automatically deleted by wxTreeCtrl as appropriate (i.e. it
+        takes ownership of the list).
+
+        Setting or assigning the button image list enables the display of image
+        buttons. Once enabled, the only way to disable the display of button
+        images is to set the button image list to @NULL.
+
         This function is only available in the generic version.
         This function is only available in the generic version.
-        See also SetButtonsImageList().
+
+        @see SetButtonsImageList().
     */
     void AssignButtonsImageList(wxImageList* imageList);
 
     /**
     */
     void AssignButtonsImageList(wxImageList* imageList);
 
     /**
-        Sets the normal image list. Image list assigned with this method will
-        be automatically deleted by wxTreeCtrl as appropriate
-        (i.e. it takes ownership of the list).
-        See also SetImageList().
+        Sets the normal image list. The image list assigned with this method
+        will be automatically deleted by wxTreeCtrl as appropriate (i.e. it
+        takes ownership of the list).
+
+        @see SetImageList().
     */
     void AssignImageList(wxImageList* imageList);
 
     /**
     */
     void AssignImageList(wxImageList* imageList);
 
     /**
-        Sets the state image list. Image list assigned with this method will
-        be automatically deleted by wxTreeCtrl as appropriate
-        (i.e. it takes ownership of the list).
-        See also SetStateImageList().
+        Sets the state image list. Image list assigned with this method will be
+        automatically deleted by wxTreeCtrl as appropriate (i.e. it takes
+        ownership of the list).
+
+        @see SetStateImageList().
     */
     void AssignStateImageList(wxImageList* imageList);
 
     */
     void AssignStateImageList(wxImageList* imageList);
 
@@ -246,54 +205,59 @@ public:
     void CollapseAndReset(const wxTreeItemId& item);
 
     /**
     void CollapseAndReset(const wxTreeItemId& item);
 
     /**
-        Creates the tree control. See wxTreeCtrl() for further details.
+        Creates the tree control. See wxTreeCtrl::wxTreeCtrl() for further
+        details.
     */
     */
-    bool wxTreeCtrl(wxWindow* parent, wxWindowID id,
-                    const wxPoint& pos = wxDefaultPosition,
-                    const wxSize& size = wxDefaultSize,
-                    long style = wxTR_HAS_BUTTONS,
-                    const wxValidator& validator = wxDefaultValidator,
-                    const wxString& name = "treeCtrl");
+    bool Create(wxWindow* parent, wxWindowID id,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = wxTR_HAS_BUTTONS,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = "treeCtrl");
 
     /**
 
     /**
-        Deletes the specified item. A @c EVT_TREE_DELETE_ITEM event will be
+        Deletes the specified item. A EVT_TREE_DELETE_ITEM() event will be
         generated.
         generated.
-        This function may cause a subsequent call to GetNextChild to fail.
+
+        This function may cause a subsequent call to GetNextChild() to fail.
     */
     void Delete(const wxTreeItemId& item);
 
     /**
         Deletes all items in the control. Note that this may not generate
     */
     void Delete(const wxTreeItemId& item);
 
     /**
         Deletes all items in the control. Note that this may not generate
-        @c EVT_TREE_DELETE_ITEM events under some Windows versions although
+        EVT_TREE_DELETE_ITEM() events under some Windows versions although
         normally such event is generated for each removed item.
     */
     void DeleteAllItems();
 
     /**
         normally such event is generated for each removed item.
     */
     void DeleteAllItems();
 
     /**
-        Deletes all children of the given item (but not the item itself). Note that
-        this will @b not generate any events unlike
-        Delete() method.
-        If you have called SetItemHasChildren(), you
-        may need to call it again since @e DeleteChildren does not automatically
-        clear the setting.
+        Deletes all children of the given item (but not the item itself). Note
+        that this will @b not generate any events unlike Delete() method.
+
+        If you have called SetItemHasChildren(), you may need to call it again
+        since DeleteChildren() does not automatically clear the setting.
     */
     void DeleteChildren(const wxTreeItemId& item);
 
     /**
     */
     void DeleteChildren(const wxTreeItemId& item);
 
     /**
-        Starts editing the label of the given item. This function generates a
-        EVT_TREE_BEGIN_LABEL_EDIT event which can be vetoed so that no
-        text control will appear for in-place editing.
-        If the user changed the label (i.e. s/he does not press ESC or leave
-        the text control without changes, a EVT_TREE_END_LABEL_EDIT event
-        will be sent which can be vetoed as well.
+        Starts editing the label of the given @a item. This function generates a
+        EVT_TREE_BEGIN_LABEL_EDIT() event which can be vetoed so that no text
+        control will appear for in-place editing.
+
+        If the user changed the label (i.e. s/he does not press ESC or leave the
+        text control without changes, a EVT_TREE_END_LABEL_EDIT() event will be
+        sent which can be vetoed as well.
 
         @see EndEditLabel(), wxTreeEvent
     */
     void EditLabel(const wxTreeItemId& item);
 
     /**
 
         @see EndEditLabel(), wxTreeEvent
     */
     void EditLabel(const wxTreeItemId& item);
 
     /**
-        Ends label editing. If @a cancelEdit is @true, the edit will be cancelled.
-        This function is currently supported under Windows only.
+        Ends label editing. If @a cancelEdit is @true, the edit will be
+        cancelled.
+
+        @note
+            This function is currently supported under Windows only.
 
         @see EditLabel()
     */
 
         @see EditLabel()
     */
@@ -320,31 +284,39 @@ public:
     void ExpandAllChildren(const wxTreeItemId& item);
 
     /**
     void ExpandAllChildren(const wxTreeItemId& item);
 
     /**
-        Retrieves the rectangle bounding the @e item. If @a textOnly is @true,
-        only the rectangle around the item's label will be returned, otherwise the
-        item's image is also taken into account.
-        The return value is @true if the rectangle was successfully retrieved or @c
-        @false
-        if it was not (in this case @a rect is not changed) -- for example, if the
-        item is currently invisible.
-        Notice that the rectangle coordinates are logical, not physical ones. So, for
-        example, the x coordinate may be negative if the tree has a horizontal
-        scrollbar and its position is not 0.
+        Retrieves the rectangle bounding the @a item. If @a textOnly is @true,
+        only the rectangle around the item's label will be returned, otherwise
+        the item's image is also taken into account.
+
+        The return value is @true if the rectangle was successfully retrieved or
+        @c @false if it was not (in this case @a rect is not changed) -- for
+        example, if the item is currently invisible.
+
+        Notice that the rectangle coordinates are logical, not physical ones.
+        So, for example, the x coordinate may be negative if the tree has a
+        horizontal scrollbar and its position is not 0.
+
+        @beginWxPythonOnly
+        The wxPython version of this method requires only the @a item and @a
+        textOnly parameters. The return value is either a wxRect object or @c
+        None.
+        @endWxPythonOnly
     */
     bool GetBoundingRect(const wxTreeItemId& item, wxRect& rect,
                          bool textOnly = false) const;
 
     /**
     */
     bool GetBoundingRect(const wxTreeItemId& item, wxRect& rect,
                          bool textOnly = false) const;
 
     /**
-        Returns the buttons image list (from which application-defined button images
-        are taken).
+        Returns the buttons image list (from which application-defined button
+        images are taken).
+
         This function is only available in the generic version.
     */
     wxImageList* GetButtonsImageList() const;
 
     /**
         Returns the number of items in the branch. If @a recursively is @true,
         This function is only available in the generic version.
     */
     wxImageList* GetButtonsImageList() const;
 
     /**
         Returns the number of items in the branch. If @a recursively is @true,
-        returns the total number
-        of descendants, otherwise only one level of children is counted.
+        returns the total number of descendants, otherwise only one level of
+        children is counted.
     */
     unsigned int GetChildrenCount(const wxTreeItemId& item,
                                   bool recursively = true) const;
     */
     unsigned int GetChildrenCount(const wxTreeItemId& item,
                                   bool recursively = true) const;
@@ -355,21 +327,29 @@ public:
     unsigned int GetCount() const;
 
     /**
     unsigned int GetCount() const;
 
     /**
-        Returns the edit control being currently used to edit a label. Returns @NULL
-        if no label is being edited.
-        @note It is currently only implemented for wxMSW.
+        Returns the edit control being currently used to edit a label. Returns
+        @NULL if no label is being edited.
+
+        @note This is currently only implemented for wxMSW.
     */
     wxTextCtrl* GetEditControl() const;
 
     /**
         Returns the first child; call GetNextChild() for the next child.
     */
     wxTextCtrl* GetEditControl() const;
 
     /**
         Returns the first child; call GetNextChild() for the next child.
+
         For this enumeration function you must pass in a 'cookie' parameter
         For this enumeration function you must pass in a 'cookie' parameter
-        which is opaque for the application but is necessary for the library
-        to make these functions reentrant (i.e. allow more than one
-        enumeration on one and the same object simultaneously). The cookie passed to
-        GetFirstChild and GetNextChild should be the same variable.
-        Returns an invalid tree item (i.e. IsOk() returns @false) if there are no
-        further children.
+        which is opaque for the application but is necessary for the library to
+        make these functions reentrant (i.e. allow more than one enumeration on
+        one and the same object simultaneously). The cookie passed to
+        GetFirstChild() and GetNextChild() should be the same variable.
+
+        Returns an invalid tree item (i.e. wxTreeItemId::IsOk() returns @false)
+        if there are no further children.
+
+        @beginWxPythonOnly
+        In wxPython the returned wxTreeItemId and the new cookie value are both
+        returned as a tuple containing the two values.
+        @endWxPythonOnly
 
         @see GetNextChild(), GetNextSibling()
     */
 
         @see GetNextChild(), GetNextSibling()
     */
@@ -396,9 +376,8 @@ public:
     */
     wxColour GetItemBackgroundColour(const wxTreeItemId& item) const;
 
     */
     wxColour GetItemBackgroundColour(const wxTreeItemId& item) const;
 
-    //@{
     /**
     /**
-        Returns the font of the item label.
+        Returns the tree item data associated with the item.
 
         @see wxTreeItemData
 
 
         @see wxTreeItemData
 
@@ -409,19 +388,23 @@ public:
         @endWxPythonOnly
     */
     wxTreeItemData* GetItemData(const wxTreeItemId& item) const;
         @endWxPythonOnly
     */
     wxTreeItemData* GetItemData(const wxTreeItemId& item) const;
-    wxFont  GetItemFont(const wxTreeItemId& item) const;
-    //@}
+
+    /**
+        Returns the font of the item label.
+    */
+    wxFont GetItemFont(const wxTreeItemId& item) const;
 
     /**
         Gets the specified item image. The value of @a which may be:
 
     /**
         Gets the specified item image. The value of @a which may be:
-        wxTreeItemIcon_Normal to get the normal item image
-        wxTreeItemIcon_Selected to get the selected item image (i.e. the image
-        which is shown when the item is currently selected)
-        wxTreeItemIcon_Expanded to get the expanded image (this only
-        makes sense for items which have children - then this image is shown when the
-        item is expanded and the normal image is shown when it is collapsed)
-        wxTreeItemIcon_SelectedExpanded to get the selected expanded image
-        (which is shown when an expanded item is currently selected)
+        - ::wxTreeItemIcon_Normal: to get the normal item image.
+        - ::wxTreeItemIcon_Selected: to get the selected item image (i.e. the
+            image which is shown when the item is currently selected).
+        - ::wxTreeItemIcon_Expanded: to get the expanded image (this only makes
+            sense for items which have children - then this image is shown when
+            the item is expanded and the normal image is shown when it is
+            collapsed).
+        - ::wxTreeItemIcon_SelectedExpanded: to get the selected expanded image
+            (which is shown when an expanded item is currently selected).
     */
     int GetItemImage(const wxTreeItemId& item,
                      wxTreeItemIcon which = wxTreeItemIcon_Normal) const;
     */
     int GetItemImage(const wxTreeItemId& item,
                      wxTreeItemIcon which = wxTreeItemIcon_Normal) const;
@@ -432,8 +415,9 @@ public:
     wxTreeItemId GetItemParent(const wxTreeItemId& item) const;
 
     /**
     wxTreeItemId GetItemParent(const wxTreeItemId& item) const;
 
     /**
-        Gets the selected item image (this function is obsolete, use
-        @c GetItemImage(item, wxTreeItemIcon_Selected) instead).
+        Gets the selected item image (this function is obsolete, use @ref
+        GetItemImage() "GetItemImage"( @a item, ::wxTreeItemIcon_Selected)
+        instead).
     */
     int GetItemSelectedImage(const wxTreeItemId& item) const;
 
     */
     int GetItemSelectedImage(const wxTreeItemId& item) const;
 
@@ -448,31 +432,37 @@ public:
     wxColour GetItemTextColour(const wxTreeItemId& item) const;
 
     /**
     wxColour GetItemTextColour(const wxTreeItemId& item) const;
 
     /**
-        Returns the last child of the item (or an invalid tree item if this item has no
-        children).
+        Returns the last child of the item (or an invalid tree item if this item
+        has no children).
 
 
-        @see GetFirstChild(), GetNextSibling(),
-             GetLastChild()
+        @see GetFirstChild(), GetNextSibling(), GetLastChild()
     */
     wxTreeItemId GetLastChild(const wxTreeItemId& item) const;
 
     /**
     */
     wxTreeItemId GetLastChild(const wxTreeItemId& item) const;
 
     /**
-        Returns the next child; call GetFirstChild() for the first child.
-        For this enumeration function you must pass in a 'cookie' parameter
-        which is opaque for the application but is necessary for the library
-        to make these functions reentrant (i.e. allow more than one
-        enumeration on one and the same object simultaneously). The cookie passed to
-        GetFirstChild and GetNextChild should be the same.
+        Returns the next child; call GetFirstChild() for the first child. For
+        this enumeration function you must pass in a 'cookie' parameter which is
+        opaque for the application but is necessary for the library to make
+        these functions reentrant (i.e. allow more than one enumeration on one
+        and the same object simultaneously). The cookie passed to
+        GetFirstChild() and GetNextChild() should be the same.
+
         Returns an invalid tree item if there are no further children.
 
         Returns an invalid tree item if there are no further children.
 
+        @beginWxPythonOnly
+        In wxPython the returned wxTreeItemId and the new cookie value are both
+        returned as a tuple containing the two values.
+        @endWxPythonOnly
+
         @see GetFirstChild()
     */
     wxTreeItemId GetNextChild(const wxTreeItemId& item,
                               wxTreeItemIdValue& cookie) const;
 
     /**
         @see GetFirstChild()
     */
     wxTreeItemId GetNextChild(const wxTreeItemId& item,
                               wxTreeItemIdValue& cookie) const;
 
     /**
-        Returns the next sibling of the specified item; call GetPrevSibling() for the
-        previous sibling.
+        Returns the next sibling of the specified item; call GetPrevSibling()
+        for the previous sibling.
+
         Returns an invalid tree item if there are no further siblings.
 
         @see GetPrevSibling()
         Returns an invalid tree item if there are no further siblings.
 
         @see GetPrevSibling()
@@ -480,15 +470,17 @@ public:
     wxTreeItemId GetNextSibling(const wxTreeItemId& item) const;
 
     /**
     wxTreeItemId GetNextSibling(const wxTreeItemId& item) const;
 
     /**
-        Returns the next visible item or an invalid item if this item is the last
-        visible one.
-        Notice that the @a item itself must be visible.
+        Returns the next visible item or an invalid item if this item is the
+        last visible one.
+
+        @note The @a item itself must be visible.
     */
     wxTreeItemId GetNextVisible(const wxTreeItemId& item) const;
 
     /**
     */
     wxTreeItemId GetNextVisible(const wxTreeItemId& item) const;
 
     /**
-        Returns the previous sibling of the specified item; call GetNextSibling() for
-        the next sibling.
+        Returns the previous sibling of the specified item; call
+        GetNextSibling() for the next sibling.
+
         Returns an invalid tree item if there are no further children.
 
         @see GetNextSibling()
         Returns an invalid tree item if there are no further children.
 
         @see GetNextSibling()
@@ -496,15 +488,16 @@ public:
     wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const;
 
     /**
     wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const;
 
     /**
-        Returns the previous visible item or an invalid item if this item is the first
-        visible one.
-        Notice that the @a item itself must be visible.
+        Returns the previous visible item or an invalid item if this item is the
+        first visible one.
+
+        @note The @a item itself must be visible.
     */
     wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const;
 
     /**
     */
     wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const;
 
     /**
-        Returns @true if the control will use a quick calculation for the best size,
-        looking only at the first and last items. The default is @false.
+        Returns @true if the control will use a quick calculation for the best
+        size, looking only at the first and last items. The default is @false.
 
         @see SetQuickBestSize()
     */
 
         @see SetQuickBestSize()
     */
@@ -516,87 +509,66 @@ public:
     wxTreeItemId GetRootItem() const;
 
     /**
     wxTreeItemId GetRootItem() const;
 
     /**
-        Returns the selection, or an invalid item if there is no selection.
-        This function only works with the controls without wxTR_MULTIPLE style, use
-        GetSelections() for the controls which do have
-        this style.
+        Returns the selection, or an invalid item if there is no selection. This
+        function only works with the controls without @c wxTR_MULTIPLE style,
+        use GetSelections() for the controls which do have this style.
     */
     wxTreeItemId GetSelection() const;
 
     /**
     */
     wxTreeItemId GetSelection() const;
 
     /**
-        Fills the array of tree items passed in with the currently selected items. This
-        function can be called only if the control has the wxTR_MULTIPLE style.
+        Fills the array of tree items passed in with the currently selected
+        items. This function can be called only if the control has the @c
+        wxTR_MULTIPLE style.
+
         Returns the number of selected items.
         Returns the number of selected items.
+        
+        @beginWxPythonOnly
+        The wxPython version of this method accepts no parameters and returns a
+        Python list of @ref wxTreeItemId "wxTreeItemId"s.
+        @endWxPythonOnly
     */
     unsigned int GetSelections(wxArrayTreeItemIds& selection) const;
 
     /**
     */
     unsigned int GetSelections(wxArrayTreeItemIds& selection) const;
 
     /**
-        Returns the state image list (from which application-defined state images are
-        taken).
+        Returns the state image list (from which application-defined state
+        images are taken).
     */
     wxImageList* GetStateImageList() const;
 
     /**
     */
     wxImageList* GetStateImageList() const;
 
     /**
-        Calculates which (if any) item is under the given point, returning the tree item
-        id at this point plus extra information @e flags. @a flags is a bitlist of the
-        following:
-
-        wxTREE_HITTEST_ABOVE
-
-        Above the client area.
-
-        wxTREE_HITTEST_BELOW
-
-        Below the client area.
-
-        wxTREE_HITTEST_NOWHERE
-
-        In the client area but below the last item.
-
-        wxTREE_HITTEST_ONITEMBUTTON
-
-        On the button associated with an item.
-
-        wxTREE_HITTEST_ONITEMICON
-
-        On the bitmap associated with an item.
-
-        wxTREE_HITTEST_ONITEMINDENT
-
-        In the indentation associated with an item.
-
-        wxTREE_HITTEST_ONITEMLABEL
-
-        On the label (string) associated with an item.
-
-        wxTREE_HITTEST_ONITEMRIGHT
-
-        In the area to the right of an item.
-
-        wxTREE_HITTEST_ONITEMSTATEICON
-
-        On the state icon for a tree view item that is in a user-defined state.
-
-        wxTREE_HITTEST_TOLEFT
-
-        To the right of the client area.
-
-        wxTREE_HITTEST_TORIGHT
-
-        To the left of the client area.
+        Calculates which (if any) item is under the given @a point, returning
+        the tree item id at this point plus extra information @a flags. @a flags
+        is a bitlist of the following:
+
+        - @c wxTREE_HITTEST_ABOVE: Above the client area.
+        - @c wxTREE_HITTEST_BELOW: Below the client area.
+        - @c wxTREE_HITTEST_NOWHERE: In the client area but below the last item.
+        - @c wxTREE_HITTEST_ONITEMBUTTON: On the button associated with an item.
+        - @c wxTREE_HITTEST_ONITEMICON: On the bitmap associated with an item.
+        - @c wxTREE_HITTEST_ONITEMINDENT: In the indentation associated with an
+            item.
+        - @c wxTREE_HITTEST_ONITEMLABEL: On the label (string) associated with
+            an item.
+        - @c wxTREE_HITTEST_ONITEMRIGHT: In the area to the right of an item.
+        - @c wxTREE_HITTEST_ONITEMSTATEICON: On the state icon for a tree view
+            item that is in a user-defined state.
+        - @c wxTREE_HITTEST_TOLEFT: To the right of the client area.
+        - @c wxTREE_HITTEST_TORIGHT: To the left of the client area.
+        
+        @beginWxPythonOnly
+        In wxPython both the wxTreeItemId and the flags are returned as a tuple.
+        @endWxPythonOnly
     */
     wxTreeItemId HitTest(const wxPoint& point, int& flags) const;
 
     */
     wxTreeItemId HitTest(const wxPoint& point, int& flags) const;
 
-    //@{
+
     /**
     /**
-        Inserts an item after a given one (@e previous) or before one identified by its
-        position (@e before).
-        @a before must be less than the number of children.
-        The @a image and @a selImage parameters are an index within
-        the normal image list specifying the image to use for unselected and
-        selected items, respectively.
-        If @a image  -1 and @a selImage is -1, the same image is used for
-        both selected and unselected items.
+        Inserts an item after a given one (@a previous).
+
+        The @a image and @a selImage parameters are an index within the normal
+        image list specifying the image to use for unselected and selected
+        items, respectively. If @a image -1 and @a selImage is -1, the same
+        image is used for both selected and unselected items.
     */
     wxTreeItemId InsertItem(const wxTreeItemId& parent,
                             const wxTreeItemId& previous,
     */
     wxTreeItemId InsertItem(const wxTreeItemId& parent,
                             const wxTreeItemId& previous,
@@ -604,27 +576,44 @@ public:
                             int image = -1,
                             int selImage = -1,
                             wxTreeItemData* data = NULL);
                             int image = -1,
                             int selImage = -1,
                             wxTreeItemData* data = NULL);
+
+    /**
+        Inserts an item before one identified
+        by its position (@a before). @a before must be less than the number of
+        children.
+
+        The @a image and @a selImage parameters are an index within the normal
+        image list specifying the image to use for unselected and selected
+        items, respectively. If @a image -1 and @a selImage is -1, the same
+        image is used for both selected and unselected items.
+
+        @beginWxPythonOnly
+        In wxPython, this form of this method is called @c InsertItemBefore().
+        @endWxPythonOnly
+    */
     wxTreeItemId InsertItem(const wxTreeItemId& parent,
                             size_t before,
                             const wxString& text,
                             int image = -1,
                             int selImage = -1,
                             wxTreeItemData* data = NULL);
     wxTreeItemId InsertItem(const wxTreeItemId& parent,
                             size_t before,
                             const wxString& text,
                             int image = -1,
                             int selImage = -1,
                             wxTreeItemData* data = NULL);
-    //@}
 
     /**
         Returns @true if the given item is in bold state.
 
     /**
         Returns @true if the given item is in bold state.
-        See also: SetItemBold()
+
+        @see SetItemBold()
     */
     bool IsBold(const wxTreeItemId& item) const;
 
     /**
     */
     bool IsBold(const wxTreeItemId& item) const;
 
     /**
-        Returns @true if the control is empty (i.e. has no items, even no root one).
+        Returns @true if the control is empty (i.e. has no items, even no root
+        one).
     */
     bool IsEmpty() const;
 
     /**
     */
     bool IsEmpty() const;
 
     /**
-        Returns @true if the item is expanded (only makes sense if it has children).
+        Returns @true if the item is expanded (only makes sense if it has
+        children).
     */
     bool IsExpanded(const wxTreeItemId& item) const;
 
     */
     bool IsExpanded(const wxTreeItemId& item) const;
 
@@ -644,28 +633,29 @@ public:
     bool ItemHasChildren(const wxTreeItemId& item) const;
 
     /**
     bool ItemHasChildren(const wxTreeItemId& item) const;
 
     /**
-        Override this function in the derived class to change the sort order of the
-        items in the tree control. The function should return a negative, zero or
-        positive value if the first item is less than, equal to or greater than the
-        second one.
-        Please note that you @b must use wxRTTI macros
-        DECLARE_DYNAMIC_CLASS() and
-        IMPLEMENT_DYNAMIC_CLASS() if you override this
-        function because otherwise the base class considers that it is not overridden
-        and uses the default comparison, i.e. sorts the items alphabetically, which
+        Override this function in the derived class to change the sort order of
+        the items in the tree control. The function should return a negative,
+        zero or positive value if the first item is less than, equal to or
+        greater than the second one.
+
+        Please note that you @b must use wxRTTI macros DECLARE_DYNAMIC_CLASS()
+        and IMPLEMENT_DYNAMIC_CLASS() if you override this function because
+        otherwise the base class considers that it is not overridden and uses
+        the default comparison, i.e. sorts the items alphabetically, which
         allows it optimize away the calls to the virtual function completely.
         allows it optimize away the calls to the virtual function completely.
-        See also: SortChildren()
+
+        @see SortChildren()
     */
     int OnCompareItems(const wxTreeItemId& item1,
                        const wxTreeItemId& item2);
 
     /**
     */
     int OnCompareItems(const wxTreeItemId& item1,
                        const wxTreeItemId& item2);
 
     /**
-        Appends an item as the first child of @e parent, return a new item id.
-        The @a image and @a selImage parameters are an index within
-        the normal image list specifying the image to use for unselected and
-        selected items, respectively.
-        If @a image  -1 and @a selImage is -1, the same image is used for
-        both selected and unselected items.
+        Appends an item as the first child of @a parent, return a new item id.
+
+        The @a image and @a selImage parameters are an index within the normal
+        image list specifying the image to use for unselected and selected
+        items, respectively. If @a image -1 and @a selImage is -1, the same
+        image is used for both selected and unselected items.
     */
     wxTreeItemId PrependItem(const wxTreeItemId& parent,
                              const wxString& text,
     */
     wxTreeItemId PrependItem(const wxTreeItemId& parent,
                              const wxString& text,
@@ -679,28 +669,34 @@ public:
     void ScrollTo(const wxTreeItemId& item);
 
     /**
     void ScrollTo(const wxTreeItemId& item);
 
     /**
-        Selects the given item. In multiple selection controls, can be also used to
-        deselect a currently selected item if the value of @a select is @false.
+        Selects the given item. In multiple selection controls, can be also used
+        to deselect a currently selected item if the value of @a select is
+        @false.
     */
     void SelectItem(const wxTreeItemId& item, bool select = true);
 
     /**
     */
     void SelectItem(const wxTreeItemId& item, bool select = true);
 
     /**
-        Sets the buttons image list (from which application-defined button images are
-        taken).
-        The button images assigned with this method will
-        @b not be deleted by wxTreeCtrl's destructor, you must delete it yourself.
-        Setting or assigning the button image list enables the display of image buttons.
-        Once enabled, the only way to disable the display of button images is to set
-        the button image list to @NULL.
-        This function is only available in the generic version.
-        See also AssignButtonsImageList().
+        Sets the buttons image list (from which application-defined button
+        images are taken).
+
+        The button images assigned with this method will @b not be deleted by
+        @ref wxTreeCtrl "wxTreeCtrl"'s destructor, you must delete it yourself.
+        Setting or assigning the button image list enables the display of image
+        buttons. Once enabled, the only way to disable the display of button
+        images is to set the button image list to @NULL.
+
+        @note This function is only available in the generic version.
+
+        @see AssignButtonsImageList().
     */
     void SetButtonsImageList(wxImageList* imageList);
 
     /**
     */
     void SetButtonsImageList(wxImageList* imageList);
 
     /**
-        Sets the normal image list. Image list assigned with this method will
-        @b not be deleted by wxTreeCtrl's destructor, you must delete it yourself.
-        See also AssignImageList().
+        Sets the normal image list. The image list assigned with this method
+        will @b not be deleted by @ref wxTreeCtrl "wxTreeCtrl"'s destructor, you
+        must delete it yourself.
+
+        @see AssignImageList().
     */
     void SetImageList(wxImageList* imageList);
 
     */
     void SetImageList(wxImageList* imageList);
 
@@ -716,43 +712,38 @@ public:
                                  const wxColour& col);
 
     /**
                                  const wxColour& col);
 
     /**
-        Makes item appear in bold font if @a bold parameter is @true or resets it to
-        the normal state.
-        See also: IsBold()
+        Makes item appear in bold font if @a bold parameter is @true or resets
+        it to the normal state.
+
+        @see IsBold()
     */
     void SetItemBold(const wxTreeItemId& item, bool bold = true);
 
     */
     void SetItemBold(const wxTreeItemId& item, bool bold = true);
 
-    //@{
+    /**
+        Sets the item client data.
+
+        @beginWxPythonOnly
+        - @b SetPyData( @a item, @c obj): Associate the given Python Object with
+            the wxTreeItemData for the given item Id.
+        @endWxPythonOnly
+
+    */
+    void SetItemData(const wxTreeItemId& item, wxTreeItemData* data);
+
+
     /**
         Gives the item the visual feedback for Drag'n'Drop actions, which is
         useful if something is dragged from the outside onto the tree control
         (as opposed to a DnD operation within the tree control, which already
         is implemented internally).
     */
     /**
         Gives the item the visual feedback for Drag'n'Drop actions, which is
         useful if something is dragged from the outside onto the tree control
         (as opposed to a DnD operation within the tree control, which already
         is implemented internally).
     */
-    void SetItemData(const wxTreeItemId& item, wxTreeItemData* data);
-wxPython note:
-    SetPyData(item, obj)
-
-
-
-
-    Associate the given Python
-    Object with the wxTreeItemData for the given item Id.
-
-
-
-
-
-
-
     void SetItemDropHighlight(const wxTreeItemId& item,
                               bool highlight = true);
     void SetItemDropHighlight(const wxTreeItemId& item,
                               bool highlight = true);
-    //@}
 
     /**
 
     /**
-        Sets the item's font. All items in the tree should have the same height to avoid
-        text clipping, so the fonts height should be the same for all of them,
-        although font attributes may vary.
+        Sets the item's font. All items in the tree should have the same height
+        to avoid text clipping, so the fonts height should be the same for all
+        of them, although font attributes may vary.
 
         @see SetItemBold()
     */
 
         @see SetItemBold()
     */
@@ -768,15 +759,16 @@ wxPython note:
                             bool hasChildren = true);
 
     /**
                             bool hasChildren = true);
 
     /**
-        Sets the specified item image. See GetItemImage()
-        for the description of the @a which parameter.
+        Sets the specified item's image. See GetItemImage() for the description
+        of the @a which parameter.
     */
     void SetItemImage(const wxTreeItemId& item, int image,
                       wxTreeItemIcon which = wxTreeItemIcon_Normal);
 
     /**
     */
     void SetItemImage(const wxTreeItemId& item, int image,
                       wxTreeItemIcon which = wxTreeItemIcon_Normal);
 
     /**
-        Sets the selected item image (this function is obsolete, use
-        @c SetItemImage(item, wxTreeItemIcon_Selected) instead).
+        Sets the selected item image (this function is obsolete, use @ref
+        SetItemImage() "SetItemImage"( @a item, ::wxTreeItemIcon_Selected )
+        instead).
     */
     void SetItemSelectedImage(const wxTreeItemId& item, int selImage);
 
     */
     void SetItemSelectedImage(const wxTreeItemId& item, int selImage);
 
@@ -792,36 +784,36 @@ wxPython note:
                            const wxColour& col);
 
     /**
                            const wxColour& col);
 
     /**
-        If @true is passed, specifies that the control will use a quick calculation for
-        the best size,
-        looking only at the first and last items. Otherwise, it will look at all items.
-        The default is @false.
+        If @true is passed, specifies that the control will use a quick
+        calculation for the best size, looking only at the first and last items.
+        Otherwise, it will look at all items. The default is @false.
 
         @see GetQuickBestSize()
     */
     void SetQuickBestSize(bool quickBestSize);
 
     /**
 
         @see GetQuickBestSize()
     */
     void SetQuickBestSize(bool quickBestSize);
 
     /**
-        Sets the state image list (from which application-defined state images are
-        taken).
-        Image list assigned with this method will
-        @b not be deleted by wxTreeCtrl's destructor, you must delete it yourself.
-        See also AssignStateImageList().
+        Sets the state image list (from which application-defined state images
+        are taken). Image list assigned with this method will @b not be deleted
+        by @ref wxTreeCtrl "wxTreeCtrl"'s destructor, you must delete it
+        yourself.
+
+        @see AssignStateImageList().
     */
     void SetStateImageList(wxImageList* imageList);
 
     /**
     */
     void SetStateImageList(wxImageList* imageList);
 
     /**
-        Sets the mode flags associated with the display of the tree control.
-        The new mode takes effect immediately.
-        (Generic only; MSW ignores changes.)
+        Sets the mode flags associated with the display of the tree control. The
+        new mode takes effect immediately.
+
+        @note Generic only; MSW ignores changes.
     */
     void SetWindowStyle(long styles);
 
     /**
     */
     void SetWindowStyle(long styles);
 
     /**
-        Sorts the children of the given item using
-        OnCompareItems() method of wxTreeCtrl. You
-        should override that method to change the sort order (the default is ascending
-        case-sensitive alphabetical order).
+        Sorts the children of the given item using OnCompareItems().
+        You should override that method to change the sort order (the default is
+        ascending case-sensitive alphabetical order).
 
         @see wxTreeItemData, OnCompareItems()
     */
 
         @see wxTreeItemData, OnCompareItems()
     */
@@ -844,9 +836,9 @@ wxPython note:
     void Unselect();
 
     /**
     void Unselect();
 
     /**
-        This function either behaves the same as Unselect()
-        if the control doesn't have wxTR_MULTIPLE style, or removes the selection from
-        all items if it does have this style.
+        This function either behaves the same as Unselect() if the control
+        doesn't have @c wxTR_MULTIPLE style, or removes the selection from all
+        items if it does have this style.
     */
     void UnselectAll();
 
     */
     void UnselectAll();
 
@@ -862,7 +854,59 @@ wxPython note:
     @class wxTreeEvent
     @wxheader{treectrl.h}
 
     @class wxTreeEvent
     @wxheader{treectrl.h}
 
-    A tree event holds information about events associated with wxTreeCtrl objects.
+    A tree event holds information about events associated with wxTreeCtrl
+    objects.
+
+    To process input from a tree control, use these event handler macros to
+    direct input to member functions that take a wxTreeEvent argument.
+
+    @beginEventTable{wxTreeEvent}
+    @event{EVT_TREE_BEGIN_DRAG(id, func)}
+        Begin dragging with the left mouse button.
+    @event{EVT_TREE_BEGIN_RDRAG(id, func)}
+        Begin dragging with the right mouse button.
+    @event{EVT_TREE_END_DRAG(id, func)}
+        End dragging with the left or right mouse button.
+    @event{EVT_TREE_BEGIN_LABEL_EDIT(id, func)}
+        Begin editing a label. This can be prevented by calling Veto().
+    @event{EVT_TREE_END_LABEL_EDIT(id, func)}
+        Finish editing a label. This can be prevented by calling Veto().
+    @event{EVT_TREE_DELETE_ITEM(id, func)}
+        Delete an item.
+    @event{EVT_TREE_GET_INFO(id, func)}
+        Request information from the application.
+    @event{EVT_TREE_SET_INFO(id, func)}
+        Information is being supplied.
+    @event{EVT_TREE_ITEM_ACTIVATED(id, func)}
+        The item has been activated, i.e. chosen by double clicking it with
+        mouse or from keyboard.
+    @event{EVT_TREE_ITEM_COLLAPSED(id, func)}
+        The item has been collapsed.
+    @event{EVT_TREE_ITEM_COLLAPSING(id, func)}
+        The item is being collapsed. This can be prevented by calling Veto().
+    @event{EVT_TREE_ITEM_EXPANDED(id, func)}
+        The item has been expanded.
+    @event{EVT_TREE_ITEM_EXPANDING(id, func)}
+        The item is being expanded. This can be prevented by calling Veto().
+    @event{EVT_TREE_ITEM_RIGHT_CLICK(id, func)}
+        The user has clicked the item with the right mouse button.
+    @event{EVT_TREE_ITEM_MIDDLE_CLICK(id, func)}
+        The user has clicked the item with the middle mouse button.
+    @event{EVT_TREE_SEL_CHANGED(id, func)}
+        Selection has changed.
+    @event{EVT_TREE_SEL_CHANGING(id, func)}
+        Selection is changing. This can be prevented by calling Veto().
+    @event{EVT_TREE_KEY_DOWN(id, func)}
+        A key has been pressed.
+    @event{EVT_TREE_ITEM_GETTOOLTIP(id, func)}
+        The opportunity to set the item tooltip is being given to the
+        application (call SetToolTip()). Windows only.
+    @event{EVT_TREE_ITEM_MENU(id, func)}
+        The context menu for the selected item has been requested, either by a
+        right click or by using the menu key.
+    @event{EVT_TREE_STATE_IMAGE_CLICK(id, func)}
+        The state image has been clicked. Windows only.
+    @endEventTable
 
     @library{wxbase}
     @category{events}
 
     @library{wxbase}
     @category{events}
@@ -873,7 +917,6 @@ class wxTreeEvent : public wxNotifyEvent
 {
 public:
     /**
 {
 public:
     /**
-        )
         Constructor, used by wxWidgets itself only.
     */
     wxTreeEvent(wxEventType commandType, wxTreeCtrl* tree);
         Constructor, used by wxWidgets itself only.
     */
     wxTreeEvent(wxEventType commandType, wxTreeCtrl* tree);
@@ -884,14 +927,13 @@ public:
     wxTreeItemId GetItem() const;
 
     /**
     wxTreeItemId GetItem() const;
 
     /**
-        Returns the key code if the event is a key event. Use
-        GetKeyEvent() to get the values of the
-        modifier keys for this event (i.e. Shift or Ctrl).
+        Returns the key code if the event is a key event. Use GetKeyEvent() to
+        get the values of the modifier keys for this event (i.e. Shift or Ctrl).
     */
     int GetKeyCode() const;
 
     /**
     */
     int GetKeyCode() const;
 
     /**
-        Returns the key event for @c EVT_TREE_KEY_DOWN events.
+        Returns the key event for EVT_TREE_KEY_DOWN() events.
     */
     const wxKeyEvent GetKeyEvent() const;
 
     */
     const wxKeyEvent GetKeyEvent() const;
 
@@ -901,28 +943,30 @@ public:
     const wxString GetLabel() const;
 
     /**
     const wxString GetLabel() const;
 
     /**
-        Returns the old item index (valid for EVT_TREE_ITEM_CHANGING and CHANGED events)
+        Returns the old item index (valid for EVT_TREE_ITEM_CHANGING() and
+        EVT_TREE_ITEM_CHANGED() events).
     */
     wxTreeItemId GetOldItem() const;
 
     /**
         Returns the position of the mouse pointer if the event is a drag or
         menu-context event.
     */
     wxTreeItemId GetOldItem() const;
 
     /**
         Returns the position of the mouse pointer if the event is a drag or
         menu-context event.
-        In both cases the position is in client coordinates - i.e. relative to the
-        wxTreeCtrl
-        window (so that you can pass it directly to e.g. wxWindow::PopupMenu).
+
+        In both cases the position is in client coordinates - i.e. relative to
+        the wxTreeCtrl window (so that you can pass it directly to e.g.
+        wxWindow::PopupMenu()).
     */
     wxPoint GetPoint() const;
 
     /**
     */
     wxPoint GetPoint() const;
 
     /**
-        Returns @true if the label edit was cancelled. This should be
-        called from within an EVT_TREE_END_LABEL_EDIT handler.
+        Returns @true if the label edit was cancelled. This should be called
+        from within an EVT_TREE_END_LABEL_EDIT() handler.
     */
     bool IsEditCancelled() const;
 
     /**
     */
     bool IsEditCancelled() const;
 
     /**
-        Set the tooltip for the item (valid for EVT_TREE_ITEM_GETTOOLTIP events).
-        Windows only.
+        Set the tooltip for the item (valid for EVT_TREE_ITEM_GETTOOLTIP()
+        events). Windows only.
     */
     void SetToolTip(const wxString& tooltip);
 };
     */
     void SetToolTip(const wxString& tooltip);
 };
index 7a126a3a1e2d277630e337416763a9855a83a692..83ab454d9b5f4a3f566ca2b45d6db9822e161dc4 100644 (file)
@@ -6,57 +6,56 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+
+
 /**
     @class wxTextInputStream
     @wxheader{txtstrm.h}
 
 /**
     @class wxTextInputStream
     @wxheader{txtstrm.h}
 
-    This class provides functions that read text datas using an input stream.
-    So, you can read @e text floats, integers.
-
-    The wxTextInputStream correctly reads text files (or streams) in DOS, Macintosh
-    and Unix formats and reports a single newline char as a line ending.
-
-    Operator  is overloaded and you can use this class like a standard C++ iostream.
-    Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc
-    and on a typical 32-bit computer, none of these match to the "long" type
-    (wxInt32
-    is defined as int on 32-bit architectures) so that you cannot use long. To avoid
-    problems (here and elsewhere), make use of wxInt32, wxUint32 and similar types.
-
-    If you're scanning through a file using wxTextInputStream, you should check for
-    EOF @b before
-    reading the next item (word / number), because otherwise the last item may get
-    lost.
-    You should however be prepared to receive an empty item (empty string / zero
-    number) at the
-    end of file, especially on Windows systems. This is unavoidable because most
-    (but not all) files end
-    with whitespace (i.e. usually a newline).
+    This class provides functions that reads text data using an input stream,
+    allowing you to read text, floats, and integers.
+
+    The wxTextInputStream correctly reads text files (or streams) in DOS,
+    Macintosh and Unix formats and reports a single newline char as a line
+    ending.
+
+    wxTextInputStream::operator>>() is overloaded and you can use this class
+    like a standard C++ iostream. Note, however, that the arguments are the
+    fixed size types wxUint32, wxInt32 etc and on a typical 32-bit computer,
+    none of these match to the "long" type (wxInt32 is defined as int on 32-bit
+    architectures) so that you cannot use long. To avoid problems (here and
+    elsewhere), make use of wxInt32, wxUint32 and similar types.
+
+    If you're scanning through a file using wxTextInputStream, you should check
+    for @c EOF @b before reading the next item (word / number), because
+    otherwise the last item may get lost. You should however be prepared to
+    receive an empty item (empty string / zero number) at the end of file,
+    especially on Windows systems. This is unavoidable because most (but not
+    all) files end with whitespace (i.e. usually a newline).
 
     For example:
 
     @code
     wxFileInputStream input( "mytext.txt" );
 
     For example:
 
     @code
     wxFileInputStream input( "mytext.txt" );
-      wxTextInputStream text( input );
-      wxUint8 i1;
-      float f2;
-      wxString line;
-
-      text  i1;       // read a 8 bit integer.
-      text  i1  f2; // read a 8 bit integer followed by float.
-      text  line;     // read a text line
+    wxTextInputStream text( input );
+    wxUint8 i1;
+    float f2;
+    wxString line;
+
+    text >> i1;       // read a 8 bit integer.
+    text >> i1 >> f2; // read a 8 bit integer followed by float.
+    text >> line;     // read a text line
     @endcode
 
     @library{wxbase}
     @category{streams}
 
     @endcode
 
     @library{wxbase}
     @category{streams}
 
-    @see wxTextInputStream::SetStringSeparators
+    @see wxTextOutputStream
 */
 class wxTextInputStream
 {
 public:
     /**
 */
 class wxTextInputStream
 {
 public:
     /**
-        )
         Constructs a text stream associated to the given input stream.
 
         @param stream
         Constructs a text stream associated to the given input stream.
 
         @param stream
@@ -64,67 +63,69 @@ public:
         @param sep
             The initial string separator characters.
         @param conv
         @param sep
             The initial string separator characters.
         @param conv
-            In Unicode build only: The encoding converter used to convert the bytes in
-        the
-              underlying input stream to characters.
+            <b>In Unicode build only:</b> The encoding converter used to
+            convert the bytes in the underlying input stream to characters.
     */
     wxTextInputStream(wxInputStream& stream,
     */
     wxTextInputStream(wxInputStream& stream,
-                      const wxString& sep = " \t");
+                      const wxString& sep = " \t",
+                      const wxMBConv& conv = wxConvAuto());
 
     /**
 
     /**
-        Destroys the wxTextInputStream object.
+        Destructor.
     */
     ~wxTextInputStream();
 
     /**
     */
     ~wxTextInputStream();
 
     /**
-        Reads a character, returns 0 if there are no more characters in the stream.
+        Reads a character, returns 0 if there are no more characters in the
+        stream.
     */
     wxChar GetChar();
 
     /**
         Reads a unsigned 16 bit integer from the stream.
     */
     wxChar GetChar();
 
     /**
         Reads a unsigned 16 bit integer from the stream.
-        See wxTextInputStream::Read8 for the
-        description of the @a base parameter.
+
+        See Read8() for the description of the @a base parameter.
     */
     wxUint16 Read16(int base = 10);
 
     /**
         Reads a signed 16 bit integer from the stream.
     */
     wxUint16 Read16(int base = 10);
 
     /**
         Reads a signed 16 bit integer from the stream.
-        See wxTextInputStream::Read8 for the
-        description of the @a base parameter.
+
+        See Read8() for the description of the @a base parameter.
     */
     wxInt16 Read16S(int base = 10);
 
     /**
         Reads a 32 bit unsigned integer from the stream.
     */
     wxInt16 Read16S(int base = 10);
 
     /**
         Reads a 32 bit unsigned integer from the stream.
-        See wxTextInputStream::Read8 for the
-        description of the @a base parameter.
+
+        See Read8() for the description of the @a base parameter.
     */
     wxUint32 Read32(int base = 10);
 
     /**
         Reads a 32 bit signed integer from the stream.
     */
     wxUint32 Read32(int base = 10);
 
     /**
         Reads a 32 bit signed integer from the stream.
-        See wxTextInputStream::Read8 for the
-        description of the @a base parameter.
+
+        See Read8() for the description of the @a base parameter.
     */
     wxInt32 Read32S(int base = 10);
 
     /**
     */
     wxInt32 Read32S(int base = 10);
 
     /**
-        Reads a single unsigned byte from the stream, given in base @e base.
+        Reads a single unsigned byte from the stream, given in base @a base.
+
         The value of @a base must be comprised between 2 and 36, inclusive, or
         The value of @a base must be comprised between 2 and 36, inclusive, or
-        be a special value 0 which means that the usual rules of @c C numbers are
+        be a special value 0 which means that the usual rules of C numbers are
         applied: if the number starts with @c 0x it is considered to be in base
         applied: if the number starts with @c 0x it is considered to be in base
-        16, if it starts with @c 0 - in base 8 and in base 10 otherwise. Note
-        that you may not want to specify the base 0 if you are parsing the numbers
-        which may have leading zeroes as they can yield unexpected (to the user not
-        familiar with C) results.
+        16, if it starts with 0 - in base 8 and in base 10 otherwise. Note that
+        you may not want to specify the base 0 if you are parsing the numbers
+        which may have leading zeroes as they can yield unexpected (to the user
+        not familiar with C) results.
     */
     wxUint8 Read8(int base = 10);
 
     /**
         Reads a single signed byte from the stream.
     */
     wxUint8 Read8(int base = 10);
 
     /**
         Reads a single signed byte from the stream.
-        See wxTextInputStream::Read8 for the
-        description of the @a base parameter.
+
+        See Read8() for the description of the @a base parameter.
     */
     wxInt8 Read8S(int base = 10);
 
     */
     wxInt8 Read8S(int base = 10);
 
@@ -134,21 +135,21 @@ public:
     double ReadDouble();
 
     /**
     double ReadDouble();
 
     /**
-        Reads a line from the input stream and returns it (without the end of line
-        character).
+        Reads a line from the input stream and returns it (without the end of
+        line character).
     */
     wxString ReadLine();
 
     /**
     */
     wxString ReadLine();
 
     /**
-        @note This method is deprecated, use ReadLine()
-        or ReadWord() instead.
+        @deprecated Use ReadLine() or ReadWord() instead.
+
         Same as ReadLine().
     */
     wxString ReadString();
 
     /**
         Same as ReadLine().
     */
     wxString ReadString();
 
     /**
-        Reads a word (a sequence of characters until the next separator) from the
-        input stream.
+        Reads a word (a sequence of characters until the next separator) from
+        the input stream.
 
         @see SetStringSeparators()
     */
 
         @see SetStringSeparators()
     */
@@ -157,55 +158,84 @@ public:
     /**
         Sets the characters which are used to define the word boundaries in
         ReadWord().
     /**
         Sets the characters which are used to define the word boundaries in
         ReadWord().
-        The default separators are the space and @c TAB characters.
+
+        The default separators are the @c space and @c TAB characters.
     */
     void SetStringSeparators(const wxString& sep);
 };
 
 
     */
     void SetStringSeparators(const wxString& sep);
 };
 
 
+/**
+    Specifies the end-of-line characters to use with wxTextOutputStream.
+*/
+typedef enum
+{
+    /**
+        Specifies wxTextOutputStream to use the native end-of-line characters.
+    */
+    wxEOL_NATIVE,
+
+    /**
+        Specifies wxTextOutputStream to use Unix end-of-line characters.
+    */
+    wxEOL_UNIX,
+
+    /**
+        Specifies wxTextOutputStream to use Mac end-of-line characters.
+    */
+    wxEOL_MAC,
+
+    /**
+        Specifies wxTextOutputStream to use DOS end-of-line characters.
+    */
+    wxEOL_DOS
+} wxEOL;
+
 
 /**
     @class wxTextOutputStream
     @wxheader{txtstrm.h}
 
 
 /**
     @class wxTextOutputStream
     @wxheader{txtstrm.h}
 
-    This class provides functions that write text datas using an output stream.
-    So, you can write @e text floats, integers.
+    This class provides functions that writes text data using an output stream,
+    allowing you to write text, floats, and integers.
 
     You can also simulate the C++ cout class:
 
     @code
     wxFFileOutputStream output( stderr );
 
     You can also simulate the C++ cout class:
 
     @code
     wxFFileOutputStream output( stderr );
-      wxTextOutputStream cout( output );
+    wxTextOutputStream cout( output );
 
 
-      cout  "This is a text line"  endl;
-      cout  1234;
-      cout  1.23456;
+    cout << "This is a text line" << endl;
+    cout << 1234;
+    cout << 1.23456;
     @endcode
 
     @endcode
 
-    The wxTextOutputStream writes text files (or streams) on DOS, Macintosh
-    and Unix in their native formats (concerning the line ending).
+    The wxTextOutputStream writes text files (or streams) on DOS, Macintosh and
+    Unix in their native formats (concerning the line ending).
 
     @library{wxbase}
     @category{streams}
 
     @library{wxbase}
     @category{streams}
+
+    @see wxTextInputStream
 */
 class wxTextOutputStream
 {
 public:
     /**
 */
 class wxTextOutputStream
 {
 public:
     /**
-        )
         Constructs a text stream object associated to the given output stream.
 
         @param stream
             The output stream.
         @param mode
         Constructs a text stream object associated to the given output stream.
 
         @param stream
             The output stream.
         @param mode
-            The end-of-line mode. One of wxEOL_NATIVE, wxEOL_DOS, wxEOL_MAC and
-        wxEOL_UNIX.
+            The end-of-line mode. One of ::wxEOL_NATIVE, ::wxEOL_DOS,
+            ::wxEOL_MAC and ::wxEOL_UNIX.
         @param conv
         @param conv
-            In Unicode build only: The object used to convert
+            <b>In Unicode build only:</b> The object used to convert
             Unicode text into ASCII characters written to the output stream.
     */
     wxTextOutputStream(wxOutputStream& stream,
             Unicode text into ASCII characters written to the output stream.
     */
     wxTextOutputStream(wxOutputStream& stream,
-                       wxEOL mode = wxEOL_NATIVE);
+                       wxEOL mode = wxEOL_NATIVE,
+                       const wxMBConv& conv = wxConvAuto());
 
     /**
         Destroys the wxTextOutputStream object.
 
     /**
         Destroys the wxTextOutputStream object.
@@ -213,8 +243,8 @@ public:
     ~wxTextOutputStream();
 
     /**
     ~wxTextOutputStream();
 
     /**
-        Returns the end-of-line mode. One of @b wxEOL_DOS, @b wxEOL_MAC and @b
-        wxEOL_UNIX.
+        Returns the end-of-line mode. One of ::wxEOL_DOS, ::wxEOL_MAC and
+        ::wxEOL_UNIX.
     */
     wxEOL GetMode();
 
     */
     wxEOL GetMode();
 
@@ -224,8 +254,8 @@ public:
     void PutChar(wxChar c);
 
     /**
     void PutChar(wxChar c);
 
     /**
-        Set the end-of-line mode. One of @b wxEOL_NATIVE, @b wxEOL_DOS, @b wxEOL_MAC
-        and @b wxEOL_UNIX.
+        Set the end-of-line mode. One of ::wxEOL_NATIVE, ::wxEOL_DOS,
+        ::wxEOL_MAC and ::wxEOL_UNIX.
     */
     void SetMode(wxEOL mode = wxEOL_NATIVE);
 
     */
     void SetMode(wxEOL mode = wxEOL_NATIVE);
 
@@ -251,8 +281,8 @@ public:
 
     /**
         Writes @a string as a line. Depending on the end-of-line mode the end of
 
     /**
         Writes @a string as a line. Depending on the end-of-line mode the end of
-        line ('\n') characters in the string are converted to the correct
-        line ending terminator.
+        line ('\\n') characters in the string are converted to the correct line
+        ending terminator.
     */
     virtual void WriteString(const wxString& string);
 };
     */
     virtual void WriteString(const wxString& string);
 };