More interface header reviews by Azriel Fasten, and added skeleton docs for wxBookCtrlBase (still needs docs though).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Bryan Petty
2008-05-20 07:48:30 +00:00
parent 79996663e2
commit 7977b62ae2
7 changed files with 991 additions and 680 deletions

25
interface/bookctrl.h Normal file
View File

@@ -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:
};

View File

@@ -10,49 +10,123 @@
@class wxToolBar @class wxToolBar
@wxheader{toolbar.h} @wxheader{toolbar.h}
The name wxToolBar is defined to be a synonym for one of the following classes: 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 - @b wxToolBar95 - The native Windows 95 toolbar. Used on Windows 95, NT 4
above. and above.
@b wxToolBarMSW A Windows implementation. Used on 16-bit Windows. - @b wxToolBarMSW - A Windows implementation. Used on 16-bit Windows.
@b wxToolBarGTK The GTK toolbar. - @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 @beginStyleTable
@style{wxTB_FLAT} @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 Shows the text in the toolbar buttons; by default only icons are shown.
shown.
@style{wxTB_NOICONS} @style{wxTB_NOICONS}
Specifies no icons in the toolbar buttons; by default they are Specifies no icons in the toolbar buttons; by default they are shown.
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 Specifies no alignment with the parent window (Windows only, not very
very useful). useful).
@style{wxTB_HORZ_LAYOUT} @style{wxTB_HORZ_LAYOUT}
Shows the text and the icons alongside, not vertically stacked Shows the text and the icons alongside, not vertically stacked (Windows
(Windows and GTK 2 only). This style must be used with wxTB_TEXT. 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 Don't show the short help tooltips for the tools when the mouse hovers
hovers over them. 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} @category{miscwnd}
@see @ref overview_toolbar @see @ref overview_toolbar
@@ -60,7 +134,11 @@
class wxToolBar : public wxControl class wxToolBar : public wxControl
{ {
public: public:
//@{ /**
Default constructor.
*/
wxToolBar();
/** /**
Constructs a toolbar. Constructs a toolbar.
@@ -69,31 +147,26 @@ public:
@param id @param id
Window identifier. If -1, will automatically create an identifier. Window identifier. If -1, will automatically create an identifier.
@param pos @param pos
Window position. wxDefaultPosition is (-1, -1) which indicates that Window position. ::wxDefaultPosition is (-1, -1) which indicates that
wxWidgets wxWidgets should generate a default position for the window. If
should generate a default position for the window. If using the wxWindow using the wxWindow class directly, supply an actual position.
class directly, supply
an actual position.
@param size @param size
Window size. wxDefaultSize is (-1, -1) which indicates that wxWidgets Window size. ::wxDefaultSize is (-1, -1) which indicates that
should generate a default size for the window. wxWidgets should generate a default size for the window.
@param style @param style
Window style. See wxToolBar for details. Window style. See wxToolBar for details.
@param name @param name
Window name. Window name.
@remarks After a toolbar is created, you use AddTool() and @remarks After a toolbar is created, you use AddTool() and perhaps
perhaps AddSeparator(), and then you must call AddSeparator(), and then you must call Realize() to construct and
Realize() to construct and display the toolbar display the toolbar tools.
tools.
*/ */
wxToolBar();
wxToolBar(wxWindow* parent, wxWindowID id, wxToolBar(wxWindow* parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = wxTB_HORIZONTAL | wxBORDER_NONE, long style = wxTB_HORIZONTAL | wxBORDER_NONE,
const wxString& name = wxPanelNameStr); 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 Adds a new check (or toggle) tool to the toolbar. The parameters are the
as in AddTool(). 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 @param control
The control to be added. The control to be added.
@param label @param label
Text to be displayed near the control. Text to be displayed near the control.
@remarks wxMSW: the label is only displayed if there is enough space @remarks
available below the embedded control. 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 Adds a new radio tool to the toolbar. Consecutive radio tools form a
group such that exactly one button in the group is pressed at any moment, in radio group such that exactly one button in the group is pressed at any
other words whenever a button in the group is pressed the previously pressed moment, in other words whenever a button in the group is pressed the
button is automatically released. You should avoid having the radio groups of previously pressed button is automatically released. You should avoid
only one element as it would be impossible for the user to use such button. having the radio groups of only one element as it would be impossible
By default, the first button in the radio group is initially pressed, the for the user to use such button.
others are not.
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 Adds a tool to the toolbar. The first (short and most commonly used)
has fewer parameters than the full version at the price of not being able to version has fewer parameters than the full version at the price of not
specify some of the more rarely used button features. The last version allows being able to specify some of the more rarely used button features. The
you to add an existing tool. last version allows you to add an existing tool.
@param toolId @param toolId
An integer by which An integer by which the tool may be identified in subsequent
the tool may be identified in subsequent operations. operations.
@param kind @param kind
May be wxITEM_NORMAL for a normal button (default), May be ::wxITEM_NORMAL for a normal button (default), ::wxITEM_CHECK
wxITEM_CHECK for a checkable tool (such tool stays pressed after it had been 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 toggled) or ::wxITEM_RADIO for a checkable tool which makes part of
group of tools each of which is automatically unchecked whenever another a radio group of tools each of which is automatically unchecked
button whenever another button in the group is checked.
in the group is checked
@param bitmap1 @param bitmap1
The primary tool bitmap. The primary tool bitmap.
@param bitmap2 @param bitmap2
The bitmap used when the tool is disabled. If it is equal to The bitmap used when the tool is disabled. If it is equal to
wxNullBitmap, the disabled bitmap is automatically generated by greing the ::wxNullBitmap, the disabled bitmap is automatically generated by
normal one. 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 This string is shown in the statusbar (if any) of the parent frame
parent frame when the mouse pointer is inside the tool when the mouse pointer is inside the tool.
@param clientData @param clientData
An optional pointer to client data which can be An optional pointer to client data which can be retrieved later
retrieved later using GetToolClientData(). using GetToolClientData().
@param tool @param tool
The tool to be added. The tool to be added.
@remarks After you have added tools to a toolbar, you must call @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(), @see AddSeparator(), AddCheckTool(), AddRadioTool(),
InsertTool(), DeleteTool(), Realize() 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 Removes the specified tool from the toolbar and deletes it. If you don't
to delete the tool, but just to remove it from the toolbar (to possibly add it want to delete the tool, but just to remove it from the toolbar (to
back later), you may use RemoveTool() instead. 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. @note It is unnecessary to call Realize() for the change to take
Returns @true if the tool was deleted, @false otherwise. place, it will happen immediately.
@returns @true if the tool was deleted, @false otherwise.
@see DeleteToolByPos() @see DeleteToolByPos()
*/ */
bool DeleteTool(int toolId); bool DeleteTool(int toolId);
/** /**
This function behaves like DeleteTool() but it This function behaves like DeleteTool() but it deletes the tool at the
deletes the tool at the specified position and not the one with the given id. 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. If @true, enables the tool, otherwise disables it.
@remarks Some implementations will change the visible state of the tool @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() @see GetToolEnabled(), ToggleTool()
*/ */
void EnableTool(int toolId, bool enable); void EnableTool(int toolId, bool enable);
/** /**
Returns a pointer to the tool identified by @a id or Returns a pointer to the tool identified by @a id or @NULL if no
@NULL if no corresponding tool is found. corresponding tool is found.
*/ */
wxToolBarToolBase* FindById(int id); wxToolBarToolBase* FindById(int id);
/** /**
Returns a pointer to the control identified by @a id or Returns a pointer to the control identified by @a id or @NULL if no
@NULL if no corresponding control is found. 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 Returns the size of bitmap that the toolbar expects to have. The default
size is 16 by 15 pixels. bitmap size is 16 by 15 pixels.
@remarks Note that this is the size of the bitmap you pass to @remarks Note that this is the size of the bitmap you pass to AddTool(),
AddTool(), and not the eventual size of the and not the eventual size of the tool button.
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 Returns the tool position in the toolbar, or @c wxNOT_FOUND if the tool
found. 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 Returns the size of a whole button, which is usually larger than a tool
because bitmap because of added 3D effects.
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. Inserts the control into the toolbar at the given position. You must
You must call Realize() for the change to take place. call Realize() for the change to take place.
@see AddControl(), InsertTool() @see AddControl(), InsertTool()
*/ */
wxToolBarToolBase* InsertControl(size_t pos, wxControl* control); wxToolBarToolBase* InsertControl(size_t pos, wxControl* control);
/** /**
Inserts the separator into the toolbar at the given position. Inserts the separator into the toolbar at the given position. You must
You must call Realize() for the change to take place. 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 Inserts the tool with the specified attributes into the toolbar at the
position. given position.
You must call Realize() for the change to take place. You must call Realize() for the change to take place.
@see AddTool(), InsertControl(), InsertSeparator() @see AddTool(), InsertControl(), InsertSeparator()
@@ -415,49 +498,50 @@ public:
//@} //@}
/** /**
Called when the user clicks on a tool with the left mouse button. Called when the user clicks on a tool with the left mouse button. This
This is the old way of detecting tool clicks; although it will still work, is the old way of detecting tool clicks; although it will still work,
you should use the EVT_MENU or EVT_TOOL macro instead. you should use the EVT_MENU() or EVT_TOOL() macro instead.
@param toolId @param toolId
The identifier passed to AddTool(). The identifier passed to AddTool().
@param toggleDown @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 toggle state (internal and visual) will not be changed. This
changed. This provides a way of specifying that toggle provides a way of specifying that toggle operations are not
operations are not permitted in some circumstances. permitted in some circumstances.
@see OnMouseEnter(), OnRightClick() @see OnMouseEnter(), OnRightClick()
*/ */
bool OnLeftClick(int toolId, bool toggleDown); bool OnLeftClick(int toolId, bool toggleDown);
/** /**
This is called when the mouse cursor moves into a tool or out of This is called when the mouse cursor moves into a tool or out of the
the toolbar. toolbar. This is the old way of detecting mouse enter events;
This is the old way of detecting mouse enter events; although it will still although it will still work, you should use the EVT_TOOL_ENTER()
work, macro instead.
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, Greater than -1 if the mouse cursor has moved into the tool, or -1
or -1 if the mouse cursor has moved. The if the mouse cursor has moved. The programmer can override this to
programmer can override this to provide extra information about the tool, provide extra information about the tool, such as a short
such as a short description on the status line. 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 out of the toolbar, wxWidgets may not be able to detect it.
it. Therefore this function may not always be called Therefore this function may not always be called when expected.
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 Called when the user clicks on a tool with the right mouse button. The
programmer should override this function to detect right tool clicks. 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 @param toolId
The identifier passed to AddTool(). 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 Removes the given tool from the toolbar but doesn't delete it. This
insert/add this tool back to this (or another) toolbar later. 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. @note It is unnecessary to call Realize() for the change to take place,
it will happen immediately.
@see DeleteTool() @see DeleteTool()
*/ */
wxToolBarToolBase* RemoveTool(int id); wxToolBarToolBase* RemoveTool(int id);
/** /**
Sets the bitmap resource identifier for specifying tool bitmaps as indices Sets the bitmap resource identifier for specifying tool bitmaps as
into a custom bitmap. Windows CE only. 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 Sets the dropdown menu for the tool given by its @e id. The tool itself
delete the menu when it's no longer needed. 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. 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. Top margin, bottom margin and inter-tool separation value.
@remarks This must be called before the tools are added if absolute @remarks This must be called before the tools are added if absolute
positioning is to be used, and the default (zero-size) positioning is to be used, and the default (zero-size) margins are
margins are to be overridden. 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 Sets the default size of each tool bitmap. The default bitmap size is 16
pixels. by 15 pixels.
@param size @param size
The size of the bitmaps in the toolbar. The size of the bitmaps in the toolbar.
@remarks This should be called to tell the toolbar what the tool bitmap @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 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 controls.
synthesize the disabled bitmap from the normal bitmap, so this
function will have no effect on those platforms. @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. A string for the long help.
@remarks You might use the long help for displaying the tool purpose on @remarks You might use the long help for displaying the tool purpose on
the status line. the status line.
@see GetToolLongHelp(), SetToolShortHelp(), @see GetToolLongHelp(), SetToolShortHelp(),
*/ */
void SetToolLongHelp(int toolId, const wxString& helpString); void SetToolLongHelp(int toolId, const wxString& helpString);
/** /**
Sets the bitmap to be used by the tool with the given ID. This can Sets the bitmap to be used by the tool with the given ID. This can only
only be used on Button tools, not controls. 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 @param packing
The value for packing. The value for packing.
@remarks The packing is used for spacing in the vertical direction if the @remarks The packing is used for spacing in the vertical direction if
toolbar is horizontal, and for spacing in the the toolbar is horizontal, and for spacing in the horizontal
horizontal direction if the toolbar is vertical. direction if the toolbar is vertical.
@see GetToolPacking() @see GetToolPacking()
*/ */
@@ -604,7 +694,8 @@ public:
The string for the short help. The string for the short help.
@remarks An application might use short help for identifying the tool @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 @param toggle
If @true, toggles the tool on, otherwise toggles it off. 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);
}; };

View File

@@ -10,25 +10,23 @@
@class wxTrackable @class wxTrackable
@wxheader{tracker.h} @wxheader{tracker.h}
Add-on base class for a trackable object. This class maintains Add-on base class for a trackable object. This class maintains an internal
an internal linked list of classes of type wxTrackerNode and linked list of classes of type wxTrackerNode and calls OnObjectDestroy() on
calls OnObjectDestroy() on them if this object is destroyed. them if this object is destroyed. The most common usage is by using the
The most common usage is by using the wxWeakRefT() wxWeakRef<T> class template which automates this. This class has no public
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.
API. Its only use is by deriving another class from it to
make it trackable.
@code @code
class MyClass: public Foo, public wxTrackable class MyClass: public Foo, public wxTrackable
{ {
// whatever // whatever
} }
typedef wxWeakRefMyClass MyClassRef; typedef wxWeakRef<MyClass> MyClassRef;
@endcode @endcode
@library{wxbase} @library{wxbase}
@category{FIXME} @category{smartpointers}
*/ */
class wxTrackable class wxTrackable
{ {

View File

@@ -13,18 +13,17 @@
An opaque reference to a tree item. An opaque reference to a tree item.
@library{wxcore} @library{wxcore}
@category{FIXME} @category{misc}
@see wxTreeCtrl, wxTreeItemData, @ref overview_wxtreectrloverview "wxTreeCtrl @see wxTreeCtrl, wxTreeItemData, @ref overview_treectrl
overview"
*/ */
class wxTreeItemId class wxTreeItemId
{ {
public: public:
/** /**
Default constructor. wxTreemItemIds are not meant to be constructed explicitly Default constructor. A wxTreeItemId is not meant to be constructed
by explicitly by the user; only those returned by the wxTreeCtrl functions
the user; they are returned by the wxTreeCtrl functions instead. 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; bool operator ==(const wxTreeItemId& item) const;
const bool operator ==(const wxTreeItemId& item) const; bool operator !=(const wxTreeItemId& item) const;
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
};

View File

@@ -11,20 +11,34 @@
@wxheader{treebook.h} @wxheader{treebook.h}
This class represents the events generated by a treebook control: currently, 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 there are four of them. The EVT_TREEBOOK_PAGE_CHANGING() and
same EVT_TREEBOOK_PAGE_CHANGED() - have exactly the same behaviour as
behaviour as wxNotebookEvent. 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.
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} @library{wxcore}
@category{events} @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 Returns the page that was selected before the change, @c wxNOT_FOUND if
selected. 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 @class wxTreebook
@wxheader{treebook.h} @wxheader{treebook.h}
This class is an extension of the Notebook class that allows a tree structured This class is an extension of the wxNotebook class that allows a tree
set of pages to be shown in a control. structured set of pages to be shown in a control. A classic example is a
A classic example is a netscape preferences dialog that shows a tree netscape preferences dialog that shows a tree of preference sections on
of preference sections on the left and select section page on the right. 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, InsertPage(), InsertSubPage(), AddPage(), AddSubPage().
wxTreebook::InsertSubPage,
wxTreebook::AddPage,
wxTreebook::AddSubPage.
If your tree is no more than 1 level in depth then you could If your tree is no more than 1 level in depth then you could simply use
simply use wxTreebook::AddPage and AddPage() and AddSubPage() to sequentially populate your tree by adding at
wxTreebook::AddSubPage to sequentially populate your tree every step a page or a subpage to the end of the 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} @library{wxcore}
@category{miscwnd} @category{miscwnd}
@see wxNotebook, wxTreebookEvent, wxImageList, @ref overview_samplenotebook @see wxTreebookEvent, wxNotebook, wxTreeCtrl, wxImageList,
"notebook sample" @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 @param parent
The parent window. Must be non-@NULL. The parent window. Must be non-@NULL.
@@ -96,59 +129,61 @@ public:
@param name @param name
The name of the control (used only under Motif). The name of the control (used only under Motif).
*/ */
wxTreebook();
wxTreebook(wxWindow* parent, wxWindowID id, wxTreebook(wxWindow* parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, const wxSize& size = wxDefaultSize,
long style = wxBK_DEFAULT, long style = wxBK_DEFAULT,
const wxString& name = wxEmptyString); const wxString& name = wxEmptyString);
//@}
/** /**
Destroys the wxTreebook object. Destroys the wxTreebook object. Also deletes all the pages owned by the
Also deletes all the pages owned by the control (inserted previously into it). control (inserted previously into it).
*/ */
~wxTreebook(); ~wxTreebook();
/** /**
Adds a new page. The page is placed at the topmost level after all other pages. Adds a new page. The page is placed at the topmost level after all other
@NULL could be specified for page to create an empty page. pages. @NULL could be specified for page to create an empty page.
*/ */
bool AddPage(wxWindow* page, const wxString& text, bool AddPage(wxWindow* page, const wxString& text,
bool bSelect = false, bool bSelect = false,
int imageId = wxNOT_FOUND); int imageId = wxNOT_FOUND);
/** /**
Adds a new child-page to the last top-level page. Adds a new child-page to the last top-level page. @NULL could be
@NULL could be specified for page to create an empty page. specified for page to create an empty page.
*/ */
bool AddSubPage(wxWindow* page, const wxString& text, bool AddSubPage(wxWindow* page, const wxString& text,
bool bSelect = false, bool bSelect = false,
int imageId = wxNOT_FOUND); 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() @see wxImageList, SetImageList()
*/ */
void AssignImageList(wxImageList* imageList); 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(). This is the only difference with SetSelection(). See
See @ref overview_progevent "this topic" for more info. @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 Creates a treebook control. See wxTreebook::wxTreebook() for the
parameters. description of the parameters.
*/ */
bool Create(wxWindow* parent, wxWindowID id, bool Create(wxWindow* parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, 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 Deletes the page at the specified position and all its children. Could
page selection change trigger page selection change in a case when selected page is removed.
in a case when selected page is removed. In that case its parent is selected In that case its parent is selected (or the next page if no parent).
(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. Expands (collapses) the @a pageId node. Returns the previous state. May
May generate page changing events (if selected page generate page changing events (if selected page is under the collapsed
is under the collapsed branch, then its parent is autoselected). 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. Returns the currently selected page, or @c wxNOT_FOUND if none was
Note that this method may return either the previously or newly selected page selected.
when called from the EVT_TREEBOOK_PAGE_CHANGED handler
depending on the platform and so wxTreebookEvent::GetSelection should be used @note This method may return either the previously or newly selected
instead in this case. 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. Inserts a new page just before the page indicated by @a pagePos. The new
The new page is placed before pagePos page and on the same level. page is placed before @a pagePos page and on the same level. @NULL could
@NULL could be specified for page to create an empty page. be specified for page to create an empty page.
*/ */
bool InsertPage(size_t pagePos, wxWindow* page, bool InsertPage(size_t pagePos, wxWindow* page,
const wxString& text, 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. @NULL could be specified for page to create an empty page.
*/ */
bool InsertSubPage(size_t pagePos, wxWindow* 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 Sets the image list for the page control. It does not take ownership of
image list, you must delete it yourself. the image list, you must delete it yourself.
@see wxImageList, AssignImageList() @see wxImageList, AssignImageList()
*/ */
void SetImageList(wxImageList* imageList); void SetImageList(wxImageList* imageList);
/** /**
Sets the image index for the given page. ImageId is an index into the image list Sets the image index for the given @a page. @a imageId is an index into
which was set with SetImageList(). 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);
/** /**
Sets the selection for the given page, returning the previous selection. @deprecated Please use ChangeSelection() instead.
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() Sets the selection for the given page, returning the previous selection.
The call to this function generates page changing events.
@see GetSelection(), ChangeSelection()
*/ */
int SetSelection(size_t n); int SetSelection(size_t n);
}; };

File diff suppressed because it is too large Load Diff

View File

@@ -6,57 +6,56 @@
// Licence: wxWindows license // Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
/** /**
@class wxTextInputStream @class wxTextInputStream
@wxheader{txtstrm.h} @wxheader{txtstrm.h}
This class provides functions that read text datas using an input stream. This class provides functions that reads text data using an input stream,
So, you can read @e text floats, integers. allowing you to read text, floats, and integers.
The wxTextInputStream correctly reads text files (or streams) in DOS, Macintosh The wxTextInputStream correctly reads text files (or streams) in DOS,
and Unix formats and reports a single newline char as a line ending. 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. wxTextInputStream::operator>>() is overloaded and you can use this class
Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc like a standard C++ iostream. Note, however, that the arguments are the
and on a typical 32-bit computer, none of these match to the "long" type fixed size types wxUint32, wxInt32 etc and on a typical 32-bit computer,
(wxInt32 none of these match to the "long" type (wxInt32 is defined as int on 32-bit
is defined as int on 32-bit architectures) so that you cannot use long. To avoid architectures) so that you cannot use long. To avoid problems (here and
problems (here and elsewhere), make use of wxInt32, wxUint32 and similar types. elsewhere), make use of wxInt32, wxUint32 and similar types.
If you're scanning through a file using wxTextInputStream, you should check for If you're scanning through a file using wxTextInputStream, you should check
EOF @b before for @c EOF @b before reading the next item (word / number), because
reading the next item (word / number), because otherwise the last item may get otherwise the last item may get lost. You should however be prepared to
lost. receive an empty item (empty string / zero number) at the end of file,
You should however be prepared to receive an empty item (empty string / zero especially on Windows systems. This is unavoidable because most (but not
number) at the all) files end with whitespace (i.e. usually a newline).
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: For example:
@code @code
wxFileInputStream input( "mytext.txt" ); wxFileInputStream input( "mytext.txt" );
wxTextInputStream text( input ); wxTextInputStream text( input );
wxUint8 i1; wxUint8 i1;
float f2; float f2;
wxString line; wxString line;
text i1; // read a 8 bit integer. text >> i1; // read a 8 bit integer.
text i1 f2; // read a 8 bit integer followed by float. text >> i1 >> f2; // read a 8 bit integer followed by float.
text line; // read a text line text >> line; // read a text line
@endcode @endcode
@library{wxbase} @library{wxbase}
@category{streams} @category{streams}
@see wxTextInputStream::SetStringSeparators @see wxTextOutputStream
*/ */
class wxTextInputStream class wxTextInputStream
{ {
public: public:
/** /**
)
Constructs a text stream associated to the given input stream. Constructs a text stream associated to the given input stream.
@param stream @param stream
@@ -64,67 +63,69 @@ public:
@param sep @param sep
The initial string separator characters. The initial string separator characters.
@param conv @param conv
In Unicode build only: The encoding converter used to convert the bytes in <b>In Unicode build only:</b> The encoding converter used to
the convert the bytes in the underlying input stream to characters.
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(); wxChar GetChar();
/** /**
Reads a unsigned 16 bit integer from the stream. 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); wxUint16 Read16(int base = 10);
/** /**
Reads a signed 16 bit integer from the stream. 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); wxInt16 Read16S(int base = 10);
/** /**
Reads a 32 bit unsigned integer from the stream. 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); wxUint32 Read32(int base = 10);
/** /**
Reads a 32 bit signed integer from the stream. 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 16, if it starts with 0 - in base 8 and in base 10 otherwise. Note that
that you may not want to specify the base 0 if you are parsing the numbers 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 which may have leading zeroes as they can yield unexpected (to the user
familiar with C) results. not familiar with C) results.
*/ */
wxUint8 Read8(int base = 10); wxUint8 Read8(int base = 10);
/** /**
Reads a single signed byte from the stream. 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 Reads a line from the input stream and returns it (without the end of
character). line character).
*/ */
wxString ReadLine(); wxString ReadLine();
/** /**
@note This method is deprecated, use ReadLine() @deprecated Use ReadLine() or ReadWord() instead.
or ReadWord() instead.
Same as ReadLine(). Same as ReadLine().
*/ */
wxString ReadString(); wxString ReadString();
/** /**
Reads a word (a sequence of characters until the next separator) from the Reads a word (a sequence of characters until the next separator) from
input stream. the input stream.
@see SetStringSeparators() @see SetStringSeparators()
*/ */
@@ -157,55 +158,84 @@ public:
/** /**
Sets the characters which are used to define the word boundaries in Sets the characters which are used to define the word boundaries in
ReadWord(). 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 @class wxTextOutputStream
@wxheader{txtstrm.h} @wxheader{txtstrm.h}
This class provides functions that write text datas using an output stream. This class provides functions that writes text data using an output stream,
So, you can write @e text floats, integers. allowing you to write text, floats, and integers.
You can also simulate the C++ cout class: You can also simulate the C++ cout class:
@code @code
wxFFileOutputStream output( stderr ); wxFFileOutputStream output( stderr );
wxTextOutputStream cout( output ); wxTextOutputStream cout( output );
cout "This is a text line" endl; cout << "This is a text line" << endl;
cout 1234; cout << 1234;
cout 1.23456; cout << 1.23456;
@endcode @endcode
The wxTextOutputStream writes text files (or streams) on DOS, Macintosh The wxTextOutputStream writes text files (or streams) on DOS, Macintosh and
and Unix in their native formats (concerning the line ending). Unix in their native formats (concerning the line ending).
@library{wxbase} @library{wxbase}
@category{streams} @category{streams}
@see wxTextInputStream
*/ */
class wxTextOutputStream class wxTextOutputStream
{ {
public: public:
/** /**
)
Constructs a text stream object associated to the given output stream. Constructs a text stream object associated to the given output stream.
@param stream @param stream
The output stream. The output stream.
@param mode @param mode
The end-of-line mode. One of wxEOL_NATIVE, wxEOL_DOS, wxEOL_MAC and The end-of-line mode. One of ::wxEOL_NATIVE, ::wxEOL_DOS,
wxEOL_UNIX. ::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. Unicode text into ASCII characters written to the output stream.
*/ */
wxTextOutputStream(wxOutputStream& 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 Returns the end-of-line mode. One of ::wxEOL_DOS, ::wxEOL_MAC and
wxEOL_UNIX. ::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 Set the end-of-line mode. One of ::wxEOL_NATIVE, ::wxEOL_DOS,
and @b wxEOL_UNIX. ::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 ('\\n') characters in the string are converted to the correct line
line ending terminator. ending terminator.
*/ */
virtual void WriteString(const wxString& string); virtual void WriteString(const wxString& string);
}; };