From 1f65137f8de90aba96242d5e44b00dfd0efa4b67 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Thu, 9 Nov 2006 20:22:33 +0000 Subject: [PATCH 1/1] Some documentation enhancements for wxRichTextCtrl Comment fixes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/richtextattr.tex | 137 ++++++++++++++++++---- docs/latex/wx/richtextctrl.tex | 22 +++- docs/latex/wx/richtextfilehandler.tex | 19 +++ docs/latex/wx/richtexthtmlhandler.tex | 78 ++++++++++++ docs/latex/wx/richtextoverview.tex | 1 + docs/latex/wx/richtextstyledefinition.tex | 12 ++ docs/latex/wx/richtextstylelistbox.tex | 115 ++++++++++++++++++ docs/latex/wx/richtextstylesheet.tex | 24 ++++ docs/latex/wx/richtextxmlhandler.tex | 11 ++ docs/latex/wx/textattrex.tex | 82 ++++++++++++- include/wx/richtext/richtextstyles.h | 6 +- src/richtext/richtextxml.cpp | 10 ++ 12 files changed, 483 insertions(+), 34 deletions(-) diff --git a/docs/latex/wx/richtextattr.tex b/docs/latex/wx/richtextattr.tex index ecb81e1146..2c3631d44a 100644 --- a/docs/latex/wx/richtextattr.tex +++ b/docs/latex/wx/richtextattr.tex @@ -7,9 +7,9 @@ standard \helpref{wxTextAttr}{wxtextattr} class with wxRichTextCtrl. When setting up a wxRichTextAttr object, pass a bitlist mask to \helpref{SetFlags}{wxrichtextattrsetflags} to indicate which style elements should be changed. As a convenience, when you call a setter such -s SetFont, the relevant bit will be set. +as SetFont, the relevant bit will be set. -wxRichTextAttr stores attributes without a wxFont object, so is a much more +wxRichTextAttr stores attributes without a wxFont object, so is a more efficient way to query styles than using a \helpref{wxTextAttr}{wxtextattr} or \helpref{wxTextAttrEx}{wxtextattrex} object. \wxheading{Derived from} @@ -22,7 +22,7 @@ No base class \wxheading{Constants} -The following values can be passed to SetAlignment to determine +The following values can be passed to wxRichTextAttr::SetAlignment to determine paragraph alignment. {\small @@ -39,7 +39,10 @@ enum wxTextAttrAlignment \end{verbatim} } -These values are passed in a bitlist to SetFlags to determine +Of these, wxTEXT\_ALIGNMENT\_JUSTIFIED is unimplemented. In future justification may be supported +when printing or previewing, only. + +The following values are passed in a bitlist to wxRichTextAttr::SetFlags to determine what attributes will be considered when setting the attributes for a text control. @@ -47,20 +50,20 @@ for a text control. \begin{verbatim} // Standard wxTextAttr constants -#define wxTEXT_ATTR_TEXT_COLOUR 0x0001 -#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x0002 -#define wxTEXT_ATTR_FONT_FACE 0x0004 -#define wxTEXT_ATTR_FONT_SIZE 0x0008 -#define wxTEXT_ATTR_FONT_WEIGHT 0x0010 -#define wxTEXT_ATTR_FONT_ITALIC 0x0020 -#define wxTEXT_ATTR_FONT_UNDERLINE 0x0040 +#define wxTEXT_ATTR_TEXT_COLOUR 0x00000001 +#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x00000002 +#define wxTEXT_ATTR_FONT_FACE 0x00000004 +#define wxTEXT_ATTR_FONT_SIZE 0x00000008 +#define wxTEXT_ATTR_FONT_WEIGHT 0x00000010 +#define wxTEXT_ATTR_FONT_ITALIC 0x00000020 +#define wxTEXT_ATTR_FONT_UNDERLINE 0x00000040 #define wxTEXT_ATTR_FONT \ wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT \ | wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE -#define wxTEXT_ATTR_ALIGNMENT 0x0080 -#define wxTEXT_ATTR_LEFT_INDENT 0x0100 -#define wxTEXT_ATTR_RIGHT_INDENT 0x0200 -#define wxTEXT_ATTR_TABS 0x0400 +#define wxTEXT_ATTR_ALIGNMENT 0x00000080 +#define wxTEXT_ATTR_LEFT_INDENT 0x00000100 +#define wxTEXT_ATTR_RIGHT_INDENT 0x00000200 +#define wxTEXT_ATTR_TABS 0x00000400 // Extra formatting flags not in wxTextAttr @@ -76,6 +79,7 @@ for a text control. #define wxTEXT_ATTR_BULLET_NAME 0x00100000 #define wxTEXT_ATTR_URL 0x00200000 #define wxTEXT_ATTR_PAGE_BREAK 0x00400000 +#define wxTEXT_ATTR_EFFECTS 0x00800000 \end{verbatim} } @@ -102,6 +106,8 @@ The following styles can be passed to wxRichTextAttr::SetBulletStyle: \end{verbatim} } +Of these, wxTEXT\_ATTR\_BULLET\_STYLE\_BITMAP is unimplemented. + The following constants can be passed to wxRichTextAttr::SetLineSpacing: {\small @@ -112,6 +118,26 @@ The following constants can be passed to wxRichTextAttr::SetLineSpacing: \end{verbatim} } +The following styles can be passed to wxTextAttrEx::SetTextEffects: + +{\small +\begin{verbatim} +#define wxTEXT_ATTR_EFFECT_NONE 0x00000000 +#define wxTEXT_ATTR_EFFECT_CAPITALS 0x00000001 +#define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS 0x00000002 +#define wxTEXT_ATTR_EFFECT_STRIKETHROUGH 0x00000004 +#define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH 0x00000008 +#define wxTEXT_ATTR_EFFECT_SHADOW 0x00000010 +#define wxTEXT_ATTR_EFFECT_EMBOSS 0x00000020 +#define wxTEXT_ATTR_EFFECT_OUTLINE 0x00000040 +#define wxTEXT_ATTR_EFFECT_ENGRAVE 0x00000080 +#define wxTEXT_ATTR_EFFECT_SUPERSCRIPT 0x00000100 +#define wxTEXT_ATTR_EFFECT_SUBSCRIPT 0x00000200 +\end{verbatim} +} + +Of these, only wxTEXT\_ATTR\_EFFECT\_CAPITALS and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH are implemented. + \wxheading{See also} \helpref{wxTextAttr}{wxtextattr}, \helpref{wxTextAttrEx}{wxtextattrex}, \helpref{wxRichTextCtrl}{wxrichtextctrl} @@ -308,6 +334,19 @@ is measured from the left margin and therefore each value must be larger than th Returns the text foreground colour. +\membersection{wxRichTextAttr::GetTextEffectFlags}\label{wxrichtextattrgettexteffectflags} + +\constfunc{int}{GetTextEffectFlags}{\void} + +Returns the text effect bits of interest. See \helpref{wxRichTextAttr::SetFlags}{wxrichtextattrsetflags} for further information. + +\membersection{wxRichTextAttr::GetTextEffects}\label{wxrichtextattrgettexteffects} + +\constfunc{int}{GetTextEffects}{\void} + +Returns the text effects, a bit list of styles. See \helpref{wxRichTextAttr::SetTextEffects}{wxrichtextattrsettexteffects} for +details. + \membersection{wxRichTextAttr::GetURL}\label{wxrichtextattrgeturl} \constfunc{const wxString\&}{GetURL}{\void} @@ -507,6 +546,9 @@ enum wxTextAttrAlignment \end{verbatim} } +Of these, wxTEXT\_ALIGNMENT\_JUSTIFIED is unimplemented. In future justification may be supported +when printing or previewing, only. + \membersection{wxRichTextAttr::SetBackgroundColour}\label{wxrichtextattrsetbackgroundcolour} \func{void}{SetBackgroundColour}{\param{const wxColour\& }{colBack}} @@ -561,6 +603,8 @@ Sets the bullet style. The following styles can be passed: \end{verbatim} } +Currently wxTEXT\_ATTR\_BULLET\_STYLE\_BITMAP is not supported. + \membersection{wxRichTextAttr::SetBulletText}\label{wxrichtextattrsetbullettext} \func{void}{SetBulletText}{\param{const wxString& }{text}} @@ -584,20 +628,20 @@ flags can be passed in a bitlist: \begin{verbatim} // Standard wxTextAttr constants -#define wxTEXT_ATTR_TEXT_COLOUR 0x0001 -#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x0002 -#define wxTEXT_ATTR_FONT_FACE 0x0004 -#define wxTEXT_ATTR_FONT_SIZE 0x0008 -#define wxTEXT_ATTR_FONT_WEIGHT 0x0010 -#define wxTEXT_ATTR_FONT_ITALIC 0x0020 -#define wxTEXT_ATTR_FONT_UNDERLINE 0x0040 +#define wxTEXT_ATTR_TEXT_COLOUR 0x00000001 +#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x00000002 +#define wxTEXT_ATTR_FONT_FACE 0x00000004 +#define wxTEXT_ATTR_FONT_SIZE 0x00000008 +#define wxTEXT_ATTR_FONT_WEIGHT 0x00000010 +#define wxTEXT_ATTR_FONT_ITALIC 0x00000020 +#define wxTEXT_ATTR_FONT_UNDERLINE 0x00000040 #define wxTEXT_ATTR_FONT \ wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT \ | wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE -#define wxTEXT_ATTR_ALIGNMENT 0x0080 -#define wxTEXT_ATTR_LEFT_INDENT 0x0100 -#define wxTEXT_ATTR_RIGHT_INDENT 0x0200 -#define wxTEXT_ATTR_TABS 0x0400 +#define wxTEXT_ATTR_ALIGNMENT 0x00000080 +#define wxTEXT_ATTR_LEFT_INDENT 0x00000100 +#define wxTEXT_ATTR_RIGHT_INDENT 0x00000200 +#define wxTEXT_ATTR_TABS 0x00000400 // Extra formatting flags not in wxTextAttr @@ -612,6 +656,8 @@ flags can be passed in a bitlist: #define wxTEXT_ATTR_BULLET_TEXT 0x00080000 #define wxTEXT_ATTR_BULLET_NAME 0x00100000 #define wxTEXT_ATTR_URL 0x00200000 +#define wxTEXT_ATTR_PAGE_BREAK 0x00400000 +#define wxTEXT_ATTR_EFFECTS 0x00800000 \end{verbatim} } @@ -726,6 +772,45 @@ Each stop is measured from the left margin and therefore each value must be larg Sets the text foreground colout. +\membersection{wxRichTextAttr::SetTextEffectFlags}\label{wxrichtextattrsettexteffectflags} + +\func{void}{SetTextEffectFlags}{\param{int }{flags}} + +Sets the text effect bits of interest. You should also pass wxTEXT\_ATTR\_EFFECTS to \helpref{wxRichTextAttr::SetFlags}{wxrichtextattrsetflags}. +See \helpref{wxRichTextAttr::SetFlags}{wxrichtextattrsetflags} for further information. + +\membersection{wxRichTextAttr::SetTextEffects}\label{wxrichtextattrsettexteffects} + +\func{void}{SetTextEffects}{\param{int }{effects}} + +Sets the text effects, a bit list of styles. + +The following styles can be passed: + +{\small +\begin{verbatim} +#define wxTEXT_ATTR_EFFECT_NONE 0x00000000 +#define wxTEXT_ATTR_EFFECT_CAPITALS 0x00000001 +#define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS 0x00000002 +#define wxTEXT_ATTR_EFFECT_STRIKETHROUGH 0x00000004 +#define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH 0x00000008 +#define wxTEXT_ATTR_EFFECT_SHADOW 0x00000010 +#define wxTEXT_ATTR_EFFECT_EMBOSS 0x00000020 +#define wxTEXT_ATTR_EFFECT_OUTLINE 0x00000040 +#define wxTEXT_ATTR_EFFECT_ENGRAVE 0x00000080 +#define wxTEXT_ATTR_EFFECT_SUPERSCRIPT 0x00000100 +#define wxTEXT_ATTR_EFFECT_SUBSCRIPT 0x00000200 +\end{verbatim} +} + +Of these, only wxTEXT\_ATTR\_EFFECT\_CAPITALS and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH are implemented. +wxTEXT\_ATTR\_EFFECT\_CAPITALS capitalises text when displayed (leaving the case of the actual buffer +text unchanged), and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH draws a line through text. + +To set effects, you should also pass wxTEXT\_ATTR\_EFFECTS to \helpref{wxRichTextAttr::SetFlags}{wxrichtextattrsetflags}, and call\rtfsp +\helpref{wxRichTextAttr::SetTextEffectFlags}{wxrichtextattrsettexteffectflags} with the styles (taken from the +above set) that you are interested in setting. + \membersection{wxRichTextAttr::SetURL}\label{wxrichtextattrseturl} \func{void}{SetURL}{\param{const wxString\& }{url}} diff --git a/docs/latex/wx/richtextctrl.tex b/docs/latex/wx/richtextctrl.tex index b3d4787647..87b3b88e0a 100644 --- a/docs/latex/wx/richtextctrl.tex +++ b/docs/latex/wx/richtextctrl.tex @@ -19,7 +19,9 @@ wxTextCtrlBase \func{}{wxRichTextCtrl}{\void} -\func{}{wxRichTextCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{value = wxEmptyString}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxRE\_MULTILINE}} +\func{}{wxRichTextCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{value = wxEmptyString}, + \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxRE\_MULTILINE}, + \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxTextCtrlNameStr}} Constructors. @@ -345,7 +347,9 @@ Copies the selected content (if any) to the clipboard. \membersection{wxRichTextCtrl::Create}\label{wxrichtextctrlcreate} -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{value = wxEmptyString}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxRE\_MULTILINE}} +\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{value = wxEmptyString}, + \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxRE\_MULTILINE}, + \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxTextCtrlNameStr}} Creates the underlying window. @@ -591,6 +595,13 @@ Gets the current filename associated with the control. Returns the first visible position in the current view. +\membersection{wxRichTextCtrl::GetHandlerFlags}\label{wxrichtextfilehandlergethandlerflags} + +\constfunc{int}{GetHandlerFlags}{\void} + +Returns flags that change the behaviour of loading or saving. See the documentation for each +handler class to see what flags are relevant for each handler. + \membersection{wxRichTextCtrl::GetInsertionPoint}\label{wxrichtextctrlgetinsertionpoint} \constfunc{long}{GetInsertionPoint}{\void} @@ -1271,6 +1282,13 @@ Sets the current filename. Sets the font, and also the basic and default attributes (see \helpref{SetDefaultStyle}{wxrichtextctrlsetdefaultstyle}). +\membersection{wxRichTextCtrl::SetHandlerFlags}\label{wxrichtextctrlsethandlerflags} + +\func{void}{SetHandlerFlags}{\param{int }{flags}} + +Sets flags that change the behaviour of loading or saving. See the documentation for each +handler class to see what flags are relevant for each handler. + \membersection{wxRichTextCtrl::SetInsertionPoint}\label{wxrichtextctrlsetinsertionpoint} \func{void}{SetInsertionPoint}{\param{long }{pos}} diff --git a/docs/latex/wx/richtextfilehandler.tex b/docs/latex/wx/richtextfilehandler.tex index d97d817329..ced2008585 100644 --- a/docs/latex/wx/richtextfilehandler.tex +++ b/docs/latex/wx/richtextfilehandler.tex @@ -64,6 +64,13 @@ Returns the encoding associated with the handler (if any). Returns the extension associated with the handler. +\membersection{wxRichTextFileHandler::GetFlags}\label{wxrichtextfilehandlergetflags} + +\constfunc{int}{GetFlags}{\void} + +Returns flags that change the behaviour of loading or saving. See the documentation for each +handler class to see what flags are relevant for each handler. + \membersection{wxRichTextFileHandler::GetName}\label{wxrichtextfilehandlergetname} \constfunc{wxString}{GetName}{\void} @@ -110,6 +117,18 @@ Sets the encoding to use when saving a file. If empty, a suitable encoding is ch Sets the default extension to recognise. +\membersection{wxRichTextFileHandler::SetFlags}\label{wxrichtextfilehandlersetflags} + +\func{void}{SetFlags}{\param{int }{flags}} + +Sets flags that change the behaviour of loading or saving. See the documentation for each +handler class to see what flags are relevant for each handler. + +You call this function directly if you are using a file handler explicitly (without +going through the text control or buffer LoadFile/SaveFile API). Or, you can +call the control or buffer's SetHandlerFlags function to set the flags that will +be used for subsequent load and save operations. + \membersection{wxRichTextFileHandler::SetName}\label{wxrichtextfilehandlersetname} \func{void}{SetName}{\param{const wxString\& }{name}} diff --git a/docs/latex/wx/richtexthtmlhandler.tex b/docs/latex/wx/richtexthtmlhandler.tex index 02cea9151b..e98a928421 100644 --- a/docs/latex/wx/richtexthtmlhandler.tex +++ b/docs/latex/wx/richtexthtmlhandler.tex @@ -2,6 +2,35 @@ Handles HTML output (only) for \helpref{wxRichTextCtrl}{wxrichtextctrl} content. +The most flexible way to use this class is to create a temporary object and call +its functions directly, rather than use \helpref{wxRichTextBuffer::SaveFile}{wxrichtextbuffersavefile} or\rtfsp +\helpref{wxRichTextCtrl::SaveFile}{wxrichtextctrlsavefile}. + +Image handling requires a little extra work from the application, to choose an +appropriate image format for the target HTML viewer and to clean up the temporary images +later. If you are planning to load the HTML into a standard web browser, you can +specify the handler flag wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_BASE64 (the default) +and no extra work is required: the images will be written with the HTML. + +However, if you want wxHTML compatibility, you will need to use wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_MEMORY +or wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_FILES. In this case, you must either call \helpref{DeleteTemporaryImages}{wxrichtexthtmlhandlerdeletetemporaryimages} before +the next load operation, or you must store the image +locations and delete them yourself when appropriate. You can call \helpref{GetTemporaryImageLocations}{wxrichtexthtmlhandlergettemporaryimagelocations} to +get the array of temporary image names. + +\wxheading{Handler flags} + +The following flags can be used with this handler, via +the handler's SetFlags function or the buffer or control's +SetHandlerFlags function: + +\twocolwidtha{7cm} +\begin{twocollist}\itemsep=0pt +\twocolitem{\windowstyle{wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_MEMORY}}{Images are saved to the memory filesystem: suitable for showing wxHTML windows.} +\twocolitem{\windowstyle{wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_FILES}}{Images are saved to temporary files: suitable for showing in wxHTML windows.} +\twocolitem{\windowstyle{wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_BASE64}}{Images are written with the HTML files in Base 64 format: suitable for showing in web browsers.} +\end{twocollist} + \wxheading{Derived from} \helpref{wxRichTextFileHandler}{wxrichtextfilehandler} @@ -20,9 +49,58 @@ Handles HTML output (only) for \helpref{wxRichTextCtrl}{wxrichtextctrl} content. Constructor. +\membersection{wxRichTextHTMLHandler::ClearTemporaryImageLocations}\label{wxrichtexthtmlhandlercleartemporaryimagelocations} + +\func{void}{ClearTemporaryImageLocations}{\void} + +Clears the image locations generated by the last operation. + +\membersection{wxRichTextHTMLHandler::DeleteTemporaryImages}\label{wxrichtexthtmlhandlerdeletetemporaryimages} + +\func{bool}{DeleteTemporaryImages}{\void} + +Deletes the in-memory or temporary files generated by the last operation. + +\func{bool}{DeleteTemporaryImages}{\param{int }{flags}, \param{const wxArrayString\& }{imageLocations}} + +Delete the in-memory or temporary files generated by the last operation. This is a static +function that can be used to delete the saved locations from an earlier operation, +for example after the user has viewed the HTML file. + \membersection{wxRichTextHTMLHandler::DoSaveFile}\label{wxrichtexthtmlhandlerdosavefile} \func{bool}{DoSaveFile}{\param{wxRichTextBuffer* }{buffer}, \param{wxOutputStream\& }{stream}} Saves the buffer content to the HTML stream. +\membersection{wxRichTextHTMLHandler::GetTempDir}\label{wxrichtexthtmlhandlergettempdir} + +\constfunc{const wxString\&}{GetTempDir}{\void} + +Returns the directory used to store temporary image files. + +\membersection{wxRichTextHTMLHandler::GetTemporaryImageLocations}\label{wxrichtexthtmlhandlergettemporaryimagelocations} + +\constfunc{const wxArrayString\&}{GetTemporaryImageLocations}{\void} + +Returns the image locations for the last operation. + +\membersection{wxRichTextHTMLHandler::SetFileCounter}\label{wxrichtexthtmlhandlersetfilecounter} + +\func{void}{SetFileCounter}{\param{int }{counter}} + +Reset the file counter, in case, for example, the same names are required each time + +\membersection{wxRichTextHTMLHandler::SetTempDir}\label{wxrichtexthtmlhandlersettempdir} + +\func{void}{SetTempDir}{\param{const wxString\& }{tempDir}} + +Sets the directory for storing temporary files. If empty, the system +temporary directory will be used. + +\membersection{wxRichTextHTMLHandler::SetTemporaryImageLocations}\label{wxrichtexthtmlhandlersettemporaryimagelocations} + +\func{void}{SetTemporaryImageLocations}{\param{const wxArrayString\& }{locations}} + +Sets the list of image locations generated by the last operation. + diff --git a/docs/latex/wx/richtextoverview.tex b/docs/latex/wx/richtextoverview.tex index a7d7dfc766..481319eecb 100644 --- a/docs/latex/wx/richtextoverview.tex +++ b/docs/latex/wx/richtextoverview.tex @@ -8,6 +8,7 @@ Classes: \helpref{wxRichTextCtrl}{wxrichtextctrl}, \helpref{wxRichTextBuffer}{wx \helpref{wxRichTextStyleSheet}{wxrichtextstylesheet}, \helpref{wxRichTextStyleComboCtrl}{wxrichtextstylecomboctrl}, \helpref{wxRichTextStyleListBox}{wxrichtextstylelistbox}, +\helpref{wxRichTextStyleListCtrl}{wxrichtextstylelistctrl}, \helpref{wxRichTextEvent}{wxrichtextevent}, \helpref{wxRichTextRange}{wxrichtextrange}, \helpref{wxRichTextFileHandler}{wxrichtextfilehandler}, \helpref{wxRichTextHTMLHandler}{wxrichtexthtmlhandler}, \helpref{wxRichTextXMLHandler}{wxrichtextxmlhandler}, diff --git a/docs/latex/wx/richtextstyledefinition.tex b/docs/latex/wx/richtextstyledefinition.tex index 19e5fcc514..2ed18ab5fa 100644 --- a/docs/latex/wx/richtextstyledefinition.tex +++ b/docs/latex/wx/richtextstyledefinition.tex @@ -32,6 +32,12 @@ Destructor. Returns the style on which this style is based. +\membersection{wxRichTextStyleDefinition::GetDescription}\label{wxrichtextstyledefinitiongetdescription} + +\constfunc{const wxString\&}{GetDescription}{\void} + +Returns the style's description. + \membersection{wxRichTextStyleDefinition::GetName}\label{wxrichtextstyledefinitiongetname} \constfunc{const wxString\&}{GetName}{\void} @@ -58,6 +64,12 @@ Initialises the definition. Sets the name of the style that this style is based on. +\membersection{wxRichTextStyleDefinition::SetDescription}\label{wxrichtextstyledefinitionsetdescription} + +\func{void}{SetDescription}{\param{const wxString\& }{descr}} + +Sets the style description. + \membersection{wxRichTextStyleDefinition::SetName}\label{wxrichtextstyledefinitionsetname} \func{void}{SetName}{\param{const wxString\& }{name}} diff --git a/docs/latex/wx/richtextstylelistbox.tex b/docs/latex/wx/richtextstylelistbox.tex index 92081ea2fd..eb748648c9 100644 --- a/docs/latex/wx/richtextstylelistbox.tex +++ b/docs/latex/wx/richtextstylelistbox.tex @@ -138,6 +138,12 @@ Gets a style for a listbox index. Returns the style sheet associated with this listbox. +\membersection{wxRichTextStyleListBox::GetStyleType}\label{wxrichtextstylelistboxgetstyletype} + +\constfunc{wxRichTextStyleListBox::wxRichTextStyleType}{GetStyleType}{\void} + +Returns the type of style to show in the list box. + \membersection{wxRichTextStyleListBox::OnGetItem}\label{wxrichtextstylelistboxongetitem} \constfunc{wxString}{OnGetItem}{\param{size\_t }{n}} @@ -175,9 +181,118 @@ Associates the listbox with a \helpref{wxRichTextCtrl}{wxrichtextctrl}. Associates the control with a style sheet. +\membersection{wxRichTextStyleListBox::SetStyleType}\label{wxrichtextstylelistboxsetstyletype} + +\func{void}{SetStyleType}{\param{wxRichTextStyleListBox::wxRichTextStyleType }{styleType}} + +Sets the style type to display. One of wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_ALL, wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_PARAGRAPH, +wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_CHARACTER and wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_LIST. + \membersection{wxRichTextStyleListBox::UpdateStyles}\label{wxrichtextstylelistboxupdatestyles} \func{void}{UpdateStyles}{\void} Updates the list from the associated style sheet. + +\section{\class{wxRichTextStyleListCtrl}}\label{wxrichtextstylelistctrl} + +This class incorporates a \helpref{wxRichTextStyleListBox}{wxrichtextstylelistbox} and +a choice control that allows the user to select the category of style to view. +It is demonstrated in the wxRichTextCtrl sample in {\tt samples/richtext}. + +To use wxRichTextStyleListCtrl, add the control to your window hierarchy and +call \helpref{SetStyleType}{wxrichtextstylelistctrlsetstyletype} with +one of wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_ALL, wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_PARAGRAPH, +wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_CHARACTER and wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_LIST to set the current view. +Associate the control with a style sheet and rich text control with SetStyleSheet and SetRichTextCtrl, +so that when a style is double-clicked, it is applied to the selection. + +\wxheading{Window styles} + +\twocolwidtha{5cm} +\begin{twocollist}\itemsep=0pt +\twocolitem{\windowstyle{wxRICHTEXTSTYLELIST\_HIDE\_TYPE\_SELECTOR}}{This style hides the category selection control.} +\end{twocollist} + +\wxheading{Derived from} + +\helpref{wxControl}{wxcontrol} + +\wxheading{Include files} + + + +\wxheading{Data structures} + +\latexignore{\rtfignore{\wxheading{Members}}} + +\membersection{wxRichTextStyleListCtrl::wxRichTextStyleListCtrl}\label{wxrichtextstylelistctrlwxrichtextstylelistctrl} + +\func{}{wxRichTextStyleListCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}} + +\func{}{wxRichTextStyleListCtrl}{\void} + +Constructors. + +\membersection{wxRichTextStyleListCtrl::Create}\label{wxrichtextstylelistctrlcreate} + +\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}} + +Creates the windows. + +\membersection{wxRichTextStyleListCtrl::GetRichTextCtrl}\label{wxrichtextstylelistctrlgetrichtextctrl} + +\constfunc{wxRichTextCtrl*}{GetRichTextCtrl}{\void} + +Returns the associated rich text control, if any. + +\membersection{wxRichTextStyleListCtrl::GetStyleChoice}\label{wxrichtextstylelistctrlgetstylechoice} + +\constfunc{wxChoice*}{GetStyleChoice}{\void} + +Returns the wxChoice control used for selecting the style category. + +\membersection{wxRichTextStyleListCtrl::GetStyleListBox}\label{wxrichtextstylelistctrlgetstylelistbox} + +\constfunc{wxRichTextStyleListBox*}{GetStyleListBox}{\void} + +Returns the wxListBox control used to view the style list. + +\membersection{wxRichTextStyleListCtrl::GetStyleSheet}\label{wxrichtextstylelistctrlgetstylesheet} + +\constfunc{wxRichTextStyleSheet*}{GetStyleSheet}{\void} + +Returns the associated style sheet, if any. + +\membersection{wxRichTextStyleListCtrl::GetStyleType}\label{wxrichtextstylelistctrlgetstyletype} + +\constfunc{wxRichTextStyleListBox::wxRichTextStyleType}{GetStyleType}{\void} + +Returns the type of style to show in the list box. + +\membersection{wxRichTextStyleListCtrl::SetRichTextCtrl}\label{wxrichtextstylelistctrlsetrichtextctrl} + +\func{void}{SetRichTextCtrl}{\param{wxRichTextCtrl* }{ctrl}} + +Associates the control with a wxRichTextCtrl. + +\membersection{wxRichTextStyleListCtrl::SetStyleSheet}\label{wxrichtextstylelistctrlsetstylesheet} + +\func{void}{SetStyleSheet}{\param{wxRichTextStyleSheet* }{styleSheet}} + +Associates the control with a style sheet. + +\membersection{wxRichTextStyleListCtrl::SetStyleType}\label{wxrichtextstylelistctrlsetstyletype} + +\func{void}{SetStyleType}{\param{wxRichTextStyleListBox::wxRichTextStyleType }{styleType}} + +Sets the style type to display. One of wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_ALL, wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_PARAGRAPH, +wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_CHARACTER and wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_LIST. + +\membersection{wxRichTextStyleListCtrl::UpdateStyles}\label{wxrichtextstylelistctrlupdatestyles} + +\func{void}{UpdateStyles}{\void} + +Updates the style list box. + diff --git a/docs/latex/wx/richtextstylesheet.tex b/docs/latex/wx/richtextstylesheet.tex index 33f89516f7..c1b3fe5ce6 100644 --- a/docs/latex/wx/richtextstylesheet.tex +++ b/docs/latex/wx/richtextstylesheet.tex @@ -85,6 +85,12 @@ Returns the {\it n}th character style. Returns the number of character styles. +\membersection{wxRichTextStyleSheet::GetDescription}\label{wxrichtextstylesheetgetdescription} + +\constfunc{const wxString\&}{GetDescription}{\void} + +Returns the style sheet's description. + \membersection{wxRichTextStyleSheet::GetListStyle}\label{wxrichtextstylesheetgetliststyle} \constfunc{wxRichTextListStyleDefinition*}{GetListStyle}{\param{size\_t }{n}} @@ -97,6 +103,12 @@ Returns the {\it n}th list style. Returns the number of list styles. +\membersection{wxRichTextStyleSheet::GetName}\label{wxrichtextstylesheetgetname} + +\constfunc{const wxString\&}{GetName}{\void} + +Returns the style sheet's name. + \membersection{wxRichTextStyleSheet::GetParagraphStyle}\label{wxrichtextstylesheetgetparagraphstyle} \constfunc{wxRichTextParagraphStyleDefinition*}{GetParagraphStyle}{\param{size\_t }{n}} @@ -133,3 +145,15 @@ Removes a list style. Removes a paragraph style. +\membersection{wxRichTextStyleSheet::SetDescription}\label{wxrichtextstylesheetsetdescription} + +\func{void}{SetDescription}{\param{const wxString\& }{descr}} + +Sets the style sheet's description. + +\membersection{wxRichTextStyleSheet::SetName}\label{wxrichtextstylesheetsetname} + +\func{void}{SetName}{\param{const wxString\& }{name}} + +Sets the style sheet's name. + diff --git a/docs/latex/wx/richtextxmlhandler.tex b/docs/latex/wx/richtextxmlhandler.tex index 224d132eff..6711ecaa45 100644 --- a/docs/latex/wx/richtextxmlhandler.tex +++ b/docs/latex/wx/richtextxmlhandler.tex @@ -6,6 +6,17 @@ and load and save through the buffer or control API, or you can create an instance of the handler on the stack and call its functions directly. +\wxheading{Handler flags} + +The following flags can be used with this handler, via +the handler's SetFlags function or the buffer or control's +SetHandlerFlags function: + +\twocolwidtha{7cm} +\begin{twocollist}\itemsep=0pt +\twocolitem{\windowstyle{wxRICHTEXT\_HANDLER\_INCLUDE\_STYLESHEET}}{Include the style sheet in loading and saving operations.} +\end{twocollist} + \wxheading{Derived from} \helpref{wxRichTextFileHandler}{wxrichtextfilehandler} diff --git a/docs/latex/wx/textattrex.tex b/docs/latex/wx/textattrex.tex index 04f26ada5c..5c94102976 100644 --- a/docs/latex/wx/textattrex.tex +++ b/docs/latex/wx/textattrex.tex @@ -82,10 +82,11 @@ for a text control. #define wxTEXT_ATTR_BULLET_NAME 0x00100000 #define wxTEXT_ATTR_URL 0x00200000 #define wxTEXT_ATTR_PAGE_BREAK 0x00400000 +#define wxTEXT_ATTR_EFFECTS 0x00800000 \end{verbatim} } -The following styles can be passed to wxRichTextAttr::SetBulletStyle: +The following styles can be passed to wxTextAttrEx::SetBulletStyle: {\small \begin{verbatim} @@ -108,7 +109,9 @@ The following styles can be passed to wxRichTextAttr::SetBulletStyle: \end{verbatim} } -The following constants can be passed to wxRichTextAttr::SetLineSpacing: +Of these, wxTEXT\_ATTR\_BULLET\_STYLE\_BITMAP is unimplemented. + +The following constants can be passed to wxTextAttrEx::SetLineSpacing: {\small \begin{verbatim} @@ -118,6 +121,26 @@ The following constants can be passed to wxRichTextAttr::SetLineSpacing: \end{verbatim} } +The following styles can be passed to wxTextAttrEx::SetTextEffects: + +{\small +\begin{verbatim} +#define wxTEXT_ATTR_EFFECT_NONE 0x00000000 +#define wxTEXT_ATTR_EFFECT_CAPITALS 0x00000001 +#define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS 0x00000002 +#define wxTEXT_ATTR_EFFECT_STRIKETHROUGH 0x00000004 +#define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH 0x00000008 +#define wxTEXT_ATTR_EFFECT_SHADOW 0x00000010 +#define wxTEXT_ATTR_EFFECT_EMBOSS 0x00000020 +#define wxTEXT_ATTR_EFFECT_OUTLINE 0x00000040 +#define wxTEXT_ATTR_EFFECT_ENGRAVE 0x00000080 +#define wxTEXT_ATTR_EFFECT_SUPERSCRIPT 0x00000100 +#define wxTEXT_ATTR_EFFECT_SUBSCRIPT 0x00000200 +\end{verbatim} +} + +Of these, only wxTEXT\_ATTR\_EFFECT\_CAPITALS and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH are implemented. + \wxheading{See also} \helpref{wxTextAttr}{wxtextattr}, \helpref{wxRichTextAttr}{wxrichtextattr}, \helpref{wxRichTextCtrl}{wxrichtextctrl} @@ -172,7 +195,7 @@ Returns the bullet number. Returns the bullet style. See \helpref{wxTextAttrEx::SetBulletStyle}{wxtextattrexsetbulletstyle} for a list of available styles. -\membersection{wxTextAttrEx::GetBulletText}\label{wxrichtextattrgetbullettext} +\membersection{wxTextAttrEx::GetBulletText}\label{wxtextattrexgetbullettext} \constfunc{const wxString\&}{GetBulletText}{\void} @@ -215,6 +238,19 @@ Returns the space in tenths of a millimeter before the paragraph. Returns the name of the paragraph style. +\membersection{wxTextAttrEx::GetTextEffectFlags}\label{wxtextattrexgettexteffectflags} + +\constfunc{int}{GetTextEffectFlags}{\void} + +Returns the text effect bits of interest. See \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags} for further information. + +\membersection{wxTextAttrEx::GetTextEffects}\label{wxtextattrexgettexteffects} + +\constfunc{int}{GetTextEffects}{\void} + +Returns the text effects, a bit list of styles. See \helpref{wxTextAttrEx::SetTextEffects}{wxtextattrexsettexteffects} for +details. + \membersection{wxTextAttrEx::GetURL}\label{wxtextattrexgeturl} \constfunc{const wxString\&}{GetURL}{\void} @@ -364,6 +400,8 @@ Sets the bullet style. The following styles can be passed: \end{verbatim} } +Currently wxTEXT\_ATTR\_BULLET\_STYLE\_BITMAP is not supported. + \membersection{wxTextAttrEx::SetBulletText}\label{wxtextattrexsetbullettext} \func{void}{SetBulletText}{\param{const wxString\& }{text}} @@ -422,6 +460,44 @@ Sets the spacing before a paragraph, in tenths of a millimetre. Sets the name of the paragraph style. +\membersection{wxTextAttrEx::SetTextEffectFlags}\label{wxtextattrexsettexteffectflags} + +\func{void}{SetTextEffectFlags}{\param{int }{flags}} + +Sets the text effect bits of interest. You should also pass wxTEXT\_ATTR\_EFFECTS to \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags}. + +\membersection{wxTextAttrEx::SetTextEffects}\label{wxtextattrexsettexteffects} + +\func{void}{SetTextEffects}{\param{int }{effects}} + +Sets the text effects, a bit list of styles. + +The following styles can be passed: + +{\small +\begin{verbatim} +#define wxTEXT_ATTR_EFFECT_NONE 0x00000000 +#define wxTEXT_ATTR_EFFECT_CAPITALS 0x00000001 +#define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS 0x00000002 +#define wxTEXT_ATTR_EFFECT_STRIKETHROUGH 0x00000004 +#define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH 0x00000008 +#define wxTEXT_ATTR_EFFECT_SHADOW 0x00000010 +#define wxTEXT_ATTR_EFFECT_EMBOSS 0x00000020 +#define wxTEXT_ATTR_EFFECT_OUTLINE 0x00000040 +#define wxTEXT_ATTR_EFFECT_ENGRAVE 0x00000080 +#define wxTEXT_ATTR_EFFECT_SUPERSCRIPT 0x00000100 +#define wxTEXT_ATTR_EFFECT_SUBSCRIPT 0x00000200 +\end{verbatim} +} + +Of these, only wxTEXT\_ATTR\_EFFECT\_CAPITALS and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH are implemented. +wxTEXT\_ATTR\_EFFECT\_CAPITALS capitalises text when displayed (leaving the case of the actual buffer +text unchanged), and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH draws a line through text. + +To set effects, you should also pass wxTEXT\_ATTR\_EFFECTS to \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags}, and call\rtfsp +\helpref{wxTextAttrEx::SetTextEffectFlags}{wxtextattrexsettexteffectflags} with the styles (taken from the +above set) that you are interested in setting. + \membersection{wxTextAttrEx::SetURL}\label{wxtextattrexseturl} \func{void}{SetURL}{\param{const wxString\& }{url}} diff --git a/include/wx/richtext/richtextstyles.h b/include/wx/richtext/richtextstyles.h index 30ec7fe3f9..729e5e3f34 100644 --- a/include/wx/richtext/richtextstyles.h +++ b/include/wx/richtext/richtextstyles.h @@ -408,7 +408,7 @@ public: /// Creates a suitable HTML fragment for a definition wxString CreateHTML(wxRichTextStyleDefinition* def) const; - /// Associates the control with a style manager + /// Associates the control with a style sheet void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { m_styleSheet = styleSheet; } wxRichTextStyleSheet* GetStyleSheet() const { return m_styleSheet; } @@ -514,7 +514,7 @@ public: /// Updates the style list box void UpdateStyles(); - /// Associates the control with a style manager + /// Associates the control with a style sheet void SetStyleSheet(wxRichTextStyleSheet* styleSheet); wxRichTextStyleSheet* GetStyleSheet() const; @@ -638,7 +638,7 @@ public: /// Updates the list void UpdateStyles() { m_stylePopup->UpdateStyles(); } - /// Associates the control with a style manager + /// Associates the control with a style sheet void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { m_stylePopup->SetStyleSheet(styleSheet); } wxRichTextStyleSheet* GetStyleSheet() const { return m_stylePopup->GetStyleSheet(); } diff --git a/src/richtext/richtextxml.cpp b/src/richtext/richtextxml.cpp index 2a9ac747cc..26189e93ec 100644 --- a/src/richtext/richtextxml.cpp +++ b/src/richtext/richtextxml.cpp @@ -917,6 +917,10 @@ wxString wxRichTextXMLHandler::CreateStyle(const wxTextAttrEx& attr, bool isPara str << wxT(" texteffects=\""); str << attr.GetTextEffects(); str << wxT("\""); + + str << wxT(" texteffectflags=\""); + str << attr.GetTextEffectFlags(); + str << wxT("\""); } if (!attr.GetCharacterStyleName().empty()) @@ -1082,6 +1086,12 @@ bool wxRichTextXMLHandler::GetStyle(wxTextAttrEx& attr, wxXmlNode* node, bool is attr.SetTextEffects(wxAtoi(value)); } + value = node->GetPropVal(wxT("texteffectflags"), wxEmptyString); + if (!value.IsEmpty()) + { + attr.SetTextEffectFlags(wxAtoi(value)); + } + // Set paragraph attributes if (isPara) { -- 2.45.2