X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/21fae46d761e53cf05e07e5427b35f0a67c6050a..c266eff98c5e44012647f54f38a1e29ecabd8759:/docs/latex/wx/richtextoverview.tex diff --git a/docs/latex/wx/richtextoverview.tex b/docs/latex/wx/richtextoverview.tex index ae8f304fde..8d88108db8 100644 --- a/docs/latex/wx/richtextoverview.tex +++ b/docs/latex/wx/richtextoverview.tex @@ -1,22 +1,27 @@ \section{wxRichTextCtrl overview}\label{wxrichtextctrloverview} -Classes: \helpref{wxRichTextCtrl}{wxrichtextctrl}, \helpref{wxRichTextBuffer}{wxrichtextbuffer}, -\helpref{wxRichTextAttr}{wxrichtextattr}, \helpref{wxTextAttrEx}{wxtextattrex}, -\helpref{wxRichTextCharacterStyleDefinition}{wxrichtextcharacterstyledefinition}, +{\bf Major classes:} \helpref{wxRichTextCtrl}{wxrichtextctrl}, \helpref{wxRichTextBuffer}{wxrichtextbuffer}, \helpref{wxRichTextEvent}{wxrichtextevent} + +{\bf Helper classes:} \helpref{wxTextAttr}{wxtextattr}, \helpref{wxRichTextRange}{wxrichtextrange} + +{\bf File handler classes:} \helpref{wxRichTextFileHandler}{wxrichtextfilehandler}, \helpref{wxRichTextHTMLHandler}{wxrichtexthtmlhandler}, +\helpref{wxRichTextXMLHandler}{wxrichtextxmlhandler} + +{\bf Style classes:} \helpref{wxRichTextCharacterStyleDefinition}{wxrichtextcharacterstyledefinition}, \helpref{wxRichTextParagraphStyleDefinition}{wxrichtextparagraphstyledefinition}, \helpref{wxRichTextListStyleDefinition}{wxrichtextliststyledefinition}, -\helpref{wxRichTextStyleSheet}{wxrichtextstylesheet}, -\helpref{wxRichTextStyleComboCtrl}{wxrichtextstylecomboctrl}, +\helpref{wxRichTextStyleSheet}{wxrichtextstylesheet} + +{\bf Additional controls:} \helpref{wxRichTextStyleComboCtrl}{wxrichtextstylecomboctrl}, \helpref{wxRichTextStyleListBox}{wxrichtextstylelistbox}, -\helpref{wxRichTextStyleListCtrl}{wxrichtextstylelistctrl}, -\helpref{wxRichTextStyleOrganiserDialog}{wxrichtextstyleorganiserdialog}, -\helpref{wxRichTextEvent}{wxrichtextevent}, \helpref{wxRichTextRange}{wxrichtextrange}, -\helpref{wxRichTextFileHandler}{wxrichtextfilehandler}, \helpref{wxRichTextHTMLHandler}{wxrichtexthtmlhandler}, -\helpref{wxRichTextXMLHandler}{wxrichtextxmlhandler}, -\helpref{wxRichTextFormattingDialog}{wxrichtextformattingdialog}, -\helpref{wxRichTextPrinting}{wxrichtextprinting}, +\helpref{wxRichTextStyleListCtrl}{wxrichtextstylelistctrl} + +{\bf Printing classes:} \helpref{wxRichTextPrinting}{wxrichtextprinting}, \helpref{wxRichTextPrintout}{wxrichtextprintout}, -\helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata}, +\helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} + +{\bf Dialog classes:} \helpref{wxRichTextStyleOrganiserDialog}{wxrichtextstyleorganiserdialog}, +\helpref{wxRichTextFormattingDialog}{wxrichtextformattingdialog}, \helpref{wxSymbolPickerDialog}{wxsymbolpickerdialog} wxRichTextCtrl provides a generic implementation of a rich text editor that can handle different character @@ -48,7 +53,7 @@ There are a few disadvantages to using wxRichTextCtrl. It is not native, so does not behave exactly as a native wxTextCtrl, although common editing conventions are followed. Users may miss the built-in spelling correction on Mac OS X, or any special character input that may be provided by the native control. It would also -be a bad choice if intended users rely on screen readers that would be unhappy +be a poor choice if intended users rely on screen readers that would be not work well with non-native text input implementation. You might mitigate this by providing the choice between wxTextCtrl and wxRichTextCtrl, with fewer features in the former case. @@ -64,7 +69,7 @@ The following code is taken from the sample, and adds text and styles to a rich {\small \begin{verbatim} - wxRichTextCtrl* richTextCtrl = new wxRichTextCtrl(splitter, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200, 200), wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS); + wxRichTextCtrl* richTextCtrl = new wxRichTextCtrl(splitter, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200, 200), wxVSCROLL|wxHSCROLL|wxBORDER_NONE|wxWANTS_CHARS); wxFont textFont = wxFont(12, wxROMAN, wxNORMAL, wxNORMAL); wxFont boldFont = wxFont(12, wxROMAN, wxNORMAL, wxBOLD); @@ -180,7 +185,7 @@ The following code is taken from the sample, and adds text and styles to a rich tabs.Add(600); tabs.Add(800); tabs.Add(1000); - wxTextAttrEx attr; + wxTextAttr attr; attr.SetFlags(wxTEXT_ATTR_TABS); attr.SetTabs(tabs); r.SetDefaultStyle(attr); @@ -214,14 +219,7 @@ be processed by the control rather than being used for navigation between contro \subsubsection{wxRichTextCtrl and styles} -Styling attributes are represented by one of three classes: \helpref{wxTextAttr}{wxtextattr}, \helpref{wxTextAttrEx}{wxtextattrex} and \helpref{wxRichTextAttr}{wxrichtextattr}. -wxTextAttr is shared across all controls that are derived from wxTextCtrl and -can store basic character and paragraph attributes. wxTextAttrEx derives -from wxTextAttr and adds some further attributes that are only supported -by wxRichTextCtrl. Finally, wxRichTextAttr is a more efficient version -of wxTextAttrEx that doesn't use a wxFont object and can be used to -query styles more quickly. wxTextAttrEx and wxRichTextAttr are largely -interchangeable and have suitable conversion operators between them. +Styling attributes are represented by \helpref{wxTextAttr}{wxtextattr}. When setting a style, the flags of the attribute object determine which attributes are applied. When querying a style, the passed flags are ignored @@ -342,17 +340,18 @@ always has one such buffer. The content is represented by a hierarchy of objects, all derived from wxRichTextObject. An object might be an image, a fragment of text, a paragraph, -or a whole buffer. Objects store a wxRichTextAttr containing style information; -although it contains both paragraph formatting and character style, the -paragraph style information is ignored by children of a paragraph (only -character style is relevant to these objects). +or a whole buffer. Objects store a wxTextAttr containing style information; +a paragraph object can contain both paragraph and character information, but +content objects such as text can only store character information. The final +style displayed in the control or in a printout is a combination of base +style, paragraph style and content (character) style. The top of the hierarchy is the buffer, a kind of wxRichTextParagraphLayoutBox. containing further wxRichTextParagraph objects, each of which can include text, images and potentially other types of object. Each object maintains a range (start and end position) measured -from the start of the main parent box. +from the start of the main parent object. When Layout is called on an object, it is given a size which the object must limit itself to, or one or more flexible directions (vertical @@ -368,7 +367,7 @@ A paragraph of pure text with the same style contains just one further object, a wxRichTextPlainText object. When styling is applied to part of this object, the object is decomposed into separate objects, one object for each different character style. So each object within a paragraph always has -just one wxRichTextAttr object to denote its character style. Of course, this can +just one wxTextAttr object to denote its character style. Of course, this can lead to fragmentation after a lot of edit operations, potentially leading to several objects with the same style where just one would do. So a Defragment function is called when updating the control's display, to ensure that