⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 richtextformatdlg.h

📁 wxGTK 是 wxWidgets 的 linux GTK+ (>2.2.3)版本。wxWidgets 是一个跨平台的 GUI 框架
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        wx/richtext/richtextformatdlg.h// Purpose:     Formatting dialog for wxRichTextCtrl// Author:      Julian Smart// Modified by:// Created:     2006-10-01// RCS-ID:      $Id: richtextformatdlg.h,v 1.10 2006/11/25 13:52:12 MBN Exp $// Copyright:   (c) Julian Smart// Licence:     wxWindows licence/////////////////////////////////////////////////////////////////////////////#ifndef _WX_RICHTEXTFORMATDLG_H_#define _WX_RICHTEXTFORMATDLG_H_/*! * Includes */#include "wx/defs.h"#if wxUSE_RICHTEXT#include "wx/propdlg.h"#include "wx/bookctrl.h"#if wxUSE_HTML#include "wx/htmllbox.h"#endif#include "wx/richtext/richtextbuffer.h"#include "wx/richtext/richtextstyles.h"class WXDLLIMPEXP_RICHTEXT wxRichTextFormattingDialog;class WXDLLIMPEXP_CORE wxImageList;/*! * Flags determining the pages and buttons to be created in the 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#define wxRICHTEXT_FORMAT_LIST_STYLE        0x0020#define wxRICHTEXT_FORMAT_HELP_BUTTON       0x0100/*! * Indices for bullet styles in list control */enum {    wxRICHTEXT_BULLETINDEX_NONE = 0,    wxRICHTEXT_BULLETINDEX_ARABIC,    wxRICHTEXT_BULLETINDEX_UPPER_CASE,    wxRICHTEXT_BULLETINDEX_LOWER_CASE,    wxRICHTEXT_BULLETINDEX_UPPER_CASE_ROMAN,    wxRICHTEXT_BULLETINDEX_LOWER_CASE_ROMAN,    wxRICHTEXT_BULLETINDEX_OUTLINE,    wxRICHTEXT_BULLETINDEX_SYMBOL,    wxRICHTEXT_BULLETINDEX_BITMAP,    wxRICHTEXT_BULLETINDEX_STANDARD};/*! * Shorthand for common combinations of pages */#define wxRICHTEXT_FORMAT_PARAGRAPH         (wxRICHTEXT_FORMAT_INDENTS_SPACING | wxRICHTEXT_FORMAT_BULLETS | wxRICHTEXT_FORMAT_TABS | wxRICHTEXT_FORMAT_FONT)#define wxRICHTEXT_FORMAT_CHARACTER         (wxRICHTEXT_FORMAT_FONT)#define wxRICHTEXT_FORMAT_STYLE             (wxRICHTEXT_FORMAT_PARAGRAPH | wxRICHTEXT_FORMAT_STYLE_EDITOR)/*! * Factory for formatting dialog */class WXDLLIMPEXP_RICHTEXT wxRichTextFormattingDialogFactory: public wxObject{public:    wxRichTextFormattingDialogFactory() {}    virtual ~wxRichTextFormattingDialogFactory() {}// Overrideables    /// Create all pages, under the dialog's book control, also calling AddPage    virtual bool CreatePages(long pages, wxRichTextFormattingDialog* dialog);    /// Create a page, given a page identifier    virtual wxPanel* CreatePage(int page, wxString& title, wxRichTextFormattingDialog* dialog);    /// Enumerate all available page identifiers    virtual int GetPageId(int i) const;    /// Get the number of available page identifiers    virtual int GetPageIdCount() const;    /// Get the image index for the given page identifier    virtual int GetPageImage(int WXUNUSED(id)) const { return -1; }    /// Invoke help for the dialog    virtual bool ShowHelp(int WXUNUSED(page), wxRichTextFormattingDialog* WXUNUSED(dialog)) { return false; }    /// Set the sheet style, called at the start of wxRichTextFormattingDialog::Create    virtual bool SetSheetStyle(wxRichTextFormattingDialog* dialog);    /// Create the main dialog buttons    virtual bool CreateButtons(wxRichTextFormattingDialog* dialog);};/*! * Formatting dialog for a wxRichTextCtrl */class WXDLLIMPEXP_RICHTEXT wxRichTextFormattingDialog: public wxPropertySheetDialog{DECLARE_CLASS(wxRichTextFormattingDialog)public:    wxRichTextFormattingDialog() { Init(); }    wxRichTextFormattingDialog(long flags, wxWindow* parent, const wxString& title = wxGetTranslation(wxT("Formatting")), wxWindowID id = wxID_ANY,        const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize,        long style = wxDEFAULT_DIALOG_STYLE)    {        Init();        Create(flags, parent, title, id, pos, sz, style);    }    ~wxRichTextFormattingDialog();    void Init();    bool Create(long flags, wxWindow* parent, const wxString& title = wxGetTranslation(wxT("Formatting")), wxWindowID id = wxID_ANY,        const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize,        long style = wxDEFAULT_DIALOG_STYLE);    /// Get attributes from the given range    virtual bool GetStyle(wxRichTextCtrl* ctrl, const wxRichTextRange& range);    /// Set the attributes and optionally update the display    virtual bool SetStyle(const wxTextAttrEx& style, bool update = true);    /// Set the style definition and optionally update the display    virtual bool SetStyleDefinition(const wxRichTextStyleDefinition& styleDef, wxRichTextStyleSheet* sheet, bool update = true);    /// Get the style definition, if any    virtual wxRichTextStyleDefinition* GetStyleDefinition() const { return m_styleDefinition; }    /// Get the style sheet, if any    virtual wxRichTextStyleSheet* GetStyleSheet() const { return m_styleSheet; }    /// Update the display    virtual bool UpdateDisplay();    /// Apply attributes to the given range    virtual bool ApplyStyle(wxRichTextCtrl* ctrl, const wxRichTextRange& range, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE);    /// Gets and sets the attributes    const wxTextAttrEx& GetAttributes() const { return m_attributes; }    wxTextAttrEx& GetAttributes() { return m_attributes; }    void SetAttributes(const wxTextAttrEx& attr) { m_attributes = attr; }    /// Transfers the data and from to the window    virtual bool TransferDataToWindow();    virtual bool TransferDataFromWindow();    /// Apply the styles when a different tab is selected, so the previews are    /// up to date    void OnTabChanged(wxBookCtrlEvent& event);    /// Respond to help command    void OnHelp(wxCommandEvent& event);    /// Set/get image list    void SetImageList(wxImageList* imageList) { m_imageList = imageList; }    wxImageList* GetImageList() const { return m_imageList; }    /// Get/set formatting factory object    static void SetFormattingDialogFactory(wxRichTextFormattingDialogFactory* factory);    static wxRichTextFormattingDialogFactory* GetFormattingDialogFactory() { return ms_FormattingDialogFactory; }    /// Helper for pages to get the top-level dialog    static wxRichTextFormattingDialog* GetDialog(wxWindow* win);    /// Helper for pages to get the attributes    static wxTextAttrEx* GetDialogAttributes(wxWindow* win);    /// Helper for pages to get the style    static wxRichTextStyleDefinition* GetDialogStyleDefinition(wxWindow* win);    /// Should we show tooltips?    static bool ShowToolTips() { return sm_showToolTips; }    /// Determines whether tooltips will be shown    static void SetShowToolTips(bool show) { sm_showToolTips = show; }    /// Map book control page index to our page id    void AddPageId(int id) { m_pageIds.Add(id); }protected:    wxImageList*                                m_imageList;    wxTextAttrEx                                m_attributes;    wxRichTextStyleDefinition*                  m_styleDefinition;    wxRichTextStyleSheet*                       m_styleSheet;    wxArrayInt                                  m_pageIds; // mapping of book control indexes to page ids    static wxRichTextFormattingDialogFactory*   ms_FormattingDialogFactory;    static bool                                 sm_showToolTips;DECLARE_EVENT_TABLE()};//-----------------------------------------------------------------------------// helper class - wxRichTextFontPreviewCtrl//-----------------------------------------------------------------------------class WXDLLIMPEXP_RICHTEXT wxRichTextFontPreviewCtrl : public wxWindow{public:    wxRichTextFontPreviewCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize, long style = 0) :        wxWindow(parent, id, pos, sz, style)    {        SetBackgroundColour(*wxWHITE);        m_textEffects = 0;    }    void SetTextEffects(int effects) { m_textEffects = effects; }    int GetTextEffects() const { return m_textEffects; }private:    int m_textEffects;    void OnPaint(wxPaintEvent& event);    DECLARE_EVENT_TABLE()};/* * A control for displaying a small preview of a colour or bitmap */class WXDLLIMPEXP_RICHTEXT wxRichTextColourSwatchCtrl: public wxControl{    DECLARE_CLASS(wxRichTextColourSwatchCtrl)public:    wxRichTextColourSwatchCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0);    ~wxRichTextColourSwatchCtrl();    void OnMouseEvent(wxMouseEvent& event);    void SetColour(const wxColour& colour) { m_colour = colour; SetBackgroundColour(m_colour); }    wxColour& GetColour() { return m_colour; }    virtual wxSize DoGetBestSize() const { return GetSize(); }protected:    wxColour    m_colour;DECLARE_EVENT_TABLE()};/*! * wxRichTextFontListBox class declaration * A listbox to display fonts. */class WXDLLIMPEXP_RICHTEXT wxRichTextFontListBox: public wxHtmlListBox{    DECLARE_CLASS(wxRichTextFontListBox)    DECLARE_EVENT_TABLE()public:    wxRichTextFontListBox()    {        Init();    }    wxRichTextFontListBox(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,        const wxSize& size = wxDefaultSize, long style = 0);    virtual ~wxRichTextFontListBox();    void Init()    {    }    bool Create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,        const wxSize& size = wxDefaultSize, long style = 0);    /// Creates a suitable HTML fragment for a font    wxString CreateHTML(const wxString& facename) const;    /// Get font name for index    wxString GetFaceName(size_t i) const ;    /// Set selection for string, returning the index.    int SetFaceNameSelection(const wxString& name);    /// Updates the font list    void UpdateFonts();    /// Does this face name exist?    bool HasFaceName(const wxString& faceName) const { return m_faceNames.Index(faceName) != wxNOT_FOUND; }    /// Returns the array of face names    const wxArrayString& GetFaceNames() const { return m_faceNames; }protected:    /// Returns the HTML for this item    virtual wxString OnGetItem(size_t n) const;private:    wxArrayString           m_faceNames;};#endif    // wxUSE_RICHTEXT#endif    // _WX_RICHTEXTFORMATDLG_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -