Use "wxWindows licence" and not "wxWidgets licence" (the latter doesn't exist) and consistently spell "licence" using British spelling. See #12165. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			262 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			262 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        richtext/richtextformatdlg.h
 | |
| // Purpose:     interface of wxRichTextFormattingDialog*
 | |
| // Author:      wxWidgets team
 | |
| // RCS-ID:      $Id$
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| /**
 | |
|     @class wxRichTextFormattingDialogFactory
 | |
| 
 | |
|     This class provides pages for wxRichTextFormattingDialog, and allows other
 | |
|     customization of the dialog.
 | |
| 
 | |
|     A default instance of this class is provided automatically.
 | |
|     If you wish to change the behaviour of the formatting dialog (for example add
 | |
|     or replace a page), you may derive from this class, override one or more
 | |
|     functions, and call the static function
 | |
|     wxRichTextFormattingDialog::SetFormattingDialogFactory.
 | |
| 
 | |
|     @library{wxrichtext}
 | |
|     @category{richtext}
 | |
| */
 | |
| class wxRichTextFormattingDialogFactory : public wxObject
 | |
| {
 | |
| public:
 | |
|     /**
 | |
|         Constructor.
 | |
|     */
 | |
|     wxRichTextFormattingDialogFactory();
 | |
| 
 | |
|     /**
 | |
|         Destructor.
 | |
|     */
 | |
|     virtual ~wxRichTextFormattingDialogFactory();
 | |
| 
 | |
|     /**
 | |
|         Creates the main dialog buttons.
 | |
|     */
 | |
|     virtual bool CreateButtons(wxRichTextFormattingDialog* dialog);
 | |
| 
 | |
|     /**
 | |
|         Creates a page, given a page identifier.
 | |
|     */
 | |
|     virtual wxPanel* CreatePage(int page, wxString& title,
 | |
|                                 wxRichTextFormattingDialog* dialog);
 | |
| 
 | |
|     /**
 | |
|         Creates all pages under the dialog's book control, also calling AddPage().
 | |
|     */
 | |
|     virtual bool CreatePages(long pages,
 | |
|                              wxRichTextFormattingDialog* dialog);
 | |
| 
 | |
|     /**
 | |
|         Enumerate all available page identifiers.
 | |
|     */
 | |
|     virtual int GetPageId(int i) const;
 | |
| 
 | |
|     /**
 | |
|         Gets the number of available page identifiers.
 | |
|     */
 | |
|     virtual int GetPageIdCount() const;
 | |
| 
 | |
|     /**
 | |
|         Gets the image index for the given page identifier.
 | |
|     */
 | |
|     virtual int GetPageImage(int id) const;
 | |
| 
 | |
|     /**
 | |
|         Set the property sheet style, called at the start of
 | |
|         wxRichTextFormattingDialog::Create.
 | |
|     */
 | |
|     virtual bool SetSheetStyle(wxRichTextFormattingDialog* dialog);
 | |
| 
 | |
|     /**
 | |
|         Invokes help for the dialog.
 | |
|     */
 | |
|     virtual bool ShowHelp(int page,
 | |
|                           wxRichTextFormattingDialog* dialog);
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 | |
| #define wxRICHTEXT_FORMAT_STYLE_EDITOR      0x0001
 | |
| #define wxRICHTEXT_FORMAT_FONT              0x0002
 | |
| #define wxRICHTEXT_FORMAT_TABS              0x0004
 | |
| #define wxRICHTEXT_FORMAT_BULLETS           0x0008
 | |
| #define wxRICHTEXT_FORMAT_INDENTS_SPACING   0x0010
 | |
| 
 | |
| /**
 | |
|     @class wxRichTextFormattingDialog
 | |
| 
 | |
|     This dialog allows the user to edit a character and/or paragraph style.
 | |
| 
 | |
|     In the constructor, specify the pages that will be created.
 | |
|     Use wxRichTextFormattingDialog::GetStyle() to retrieve the common style
 | |
|     for a given range, and then use wxRichTextFormattingDialog::ApplyStyle()
 | |
|     to apply the user-selected formatting to a control.
 | |
| 
 | |
|     For example:
 | |
|     @code
 | |
|         wxRichTextRange range;
 | |
|         if (m_richTextCtrl-HasSelection())
 | |
|             range = m_richTextCtrl-GetSelectionRange();
 | |
|         else
 | |
|             range = wxRichTextRange(0, m_richTextCtrl-GetLastPosition()+1);
 | |
| 
 | |
|         int pages = wxRICHTEXT_FORMAT_FONT|wxRICHTEXT_FORMAT_INDENTS_SPACING| \
 | |
|                     wxRICHTEXT_FORMAT_TABS|wxRICHTEXT_FORMAT_BULLETS;
 | |
| 
 | |
|         wxRichTextFormattingDialog formatDlg(pages, this);
 | |
|         formatDlg.GetStyle(m_richTextCtrl, range);
 | |
| 
 | |
|         if (formatDlg.ShowModal() == wxID_OK)
 | |
|         {
 | |
|             formatDlg.ApplyStyle(m_richTextCtrl, range);
 | |
|         }
 | |
|     @endcode
 | |
| 
 | |
|     @library{wxrichtext}
 | |
|     @category{richtext}
 | |
| */
 | |
| class wxRichTextFormattingDialog : public wxPropertySheetDialog
 | |
| {
 | |
| public:
 | |
|     /**
 | |
|         Default ctor.
 | |
|     */
 | |
|     wxRichTextFormattingDialog();
 | |
| 
 | |
|     /**
 | |
|         Constructors.
 | |
| 
 | |
|         @param flags
 | |
|             The pages to show.
 | |
|         @param parent
 | |
|             The dialog's parent.
 | |
|         @param title
 | |
|             The dialog's title.
 | |
|         @param id
 | |
|             The dialog's ID.
 | |
|         @param pos
 | |
|             The dialog's position.
 | |
|         @param sz
 | |
|             The dialog's size.
 | |
|         @param style
 | |
|             The dialog's window style.
 | |
|     */
 | |
|     wxRichTextFormattingDialog(long flags, wxWindow* parent, const wxString& title = "Formatting",
 | |
|                                wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
 | |
|                                const wxSize& sz = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE);
 | |
| 
 | |
|     /**
 | |
|         Destructor.
 | |
|     */
 | |
|     virtual ~wxRichTextFormattingDialog();
 | |
| 
 | |
|     /**
 | |
|         Apply attributes to the given range, only changing attributes that
 | |
|         need to be changed.
 | |
|     */
 | |
|     virtual bool ApplyStyle(wxRichTextCtrl* ctrl, const wxRichTextRange& range,
 | |
|                             int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE);
 | |
| 
 | |
|     /**
 | |
|         Creation: see wxRichTextFormattingDialog() "the constructor" for
 | |
|         details about the parameters.
 | |
|     */
 | |
|     bool Create(long flags, wxWindow* parent,
 | |
|                 const wxString& title = wxGetTranslation("Formatting"), wxWindowID id = wxID_ANY,
 | |
|                 const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize,
 | |
|                 long style = wxDEFAULT_DIALOG_STYLE);
 | |
| 
 | |
|     //@{
 | |
|     /**
 | |
|         Gets the attributes being edited.
 | |
|     */
 | |
|     const wxTextAttr& GetAttributes() const;
 | |
|     wxTextAttr& GetAttributes();
 | |
|     //@}
 | |
| 
 | |
|     /**
 | |
|         Helper for pages to get the top-level dialog.
 | |
|     */
 | |
|     static wxRichTextFormattingDialog* GetDialog(wxWindow* win);
 | |
| 
 | |
|     /**
 | |
|         Helper for pages to get the attributes.
 | |
|     */
 | |
|     static wxTextAttr* GetDialogAttributes(wxWindow* win);
 | |
| 
 | |
|     /**
 | |
|         Helper for pages to get the style.
 | |
|     */
 | |
|     static wxRichTextStyleDefinition* GetDialogStyleDefinition(wxWindow* win);
 | |
| 
 | |
|     /**
 | |
|         Returns the object to be used to customize the dialog and provide pages.
 | |
|     */
 | |
|     static wxRichTextFormattingDialogFactory* GetFormattingDialogFactory();
 | |
| 
 | |
|     /**
 | |
|         Returns the image list associated with the dialog, used for example if showing
 | |
|         the dialog as a toolbook.
 | |
|     */
 | |
|     wxImageList* GetImageList() const;
 | |
| 
 | |
|     /**
 | |
|         Gets common attributes from the given range and calls SetAttributes().
 | |
|         Attributes that do not have common values in the given range
 | |
|         will be omitted from the style's flags.
 | |
|     */
 | |
|     virtual bool GetStyle(wxRichTextCtrl* ctrl, const wxRichTextRange& range);
 | |
| 
 | |
|     /**
 | |
|         Gets the associated style definition, if any.
 | |
|     */
 | |
|     virtual wxRichTextStyleDefinition* GetStyleDefinition() const;
 | |
| 
 | |
|     /**
 | |
|         Gets the associated style sheet, if any.
 | |
|     */
 | |
|     virtual wxRichTextStyleSheet* GetStyleSheet() const;
 | |
| 
 | |
|     /**
 | |
|         Sets the attributes to be edited.
 | |
|     */
 | |
|     void SetAttributes(const wxTextAttr& attr);
 | |
| 
 | |
|     /**
 | |
|         Sets the formatting factory object to be used for customization and page
 | |
|         creation.
 | |
| 
 | |
|         It deletes the existing factory object.
 | |
|     */
 | |
|     static void SetFormattingDialogFactory(wxRichTextFormattingDialogFactory* factory);
 | |
| 
 | |
|     /**
 | |
|         Sets the image list associated with the dialog's property sheet.
 | |
|     */
 | |
|     void SetImageList(wxImageList* imageList);
 | |
| 
 | |
|     /**
 | |
|         Sets the attributes and optionally updates the display, if @a update is @true.
 | |
|     */
 | |
|     virtual bool SetStyle(const wxTextAttr& style, bool update = true);
 | |
| 
 | |
|     /**
 | |
|         Sets the style definition and optionally update the display,
 | |
|         if @a update is @true.
 | |
|     */
 | |
|     virtual bool SetStyleDefinition(const wxRichTextStyleDefinition& styleDef,
 | |
|                                     wxRichTextStyleSheet* sheet,
 | |
|                                     bool update = true);
 | |
| 
 | |
|     /**
 | |
|         Updates the display.
 | |
|     */
 | |
|     virtual bool UpdateDisplay();
 | |
| };
 | |
| 
 |