Added a list style editor page to the formatting dialog.
Added a style organiser dialog, which can be used to browse for and apply styles and can be limited to show one of the three style types, or all three. Added a font name cache since it's an expensive operation that's used frequently by the rich text dialogs. Added ability to switch off tooltips for new dialogs (off by default). Improved the previews. Pressing tab or shift-tab at the start of a list item now demotes or promotes the item. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42116 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
237
include/wx/richtext/richtextstyledlg.h
Normal file
237
include/wx/richtext/richtextstyledlg.h
Normal file
@@ -0,0 +1,237 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: richtextstyledlg.h
|
||||
// Purpose:
|
||||
// Author: Julian Smart
|
||||
// Modified by:
|
||||
// Created: 10/5/2006 12:05:31 PM
|
||||
// RCS-ID:
|
||||
// Copyright: (c) Julian Smart
|
||||
// Licence:
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _RICHTEXTSTYLEDLG_H_
|
||||
#define _RICHTEXTSTYLEDLG_H_
|
||||
|
||||
/*!
|
||||
* Includes
|
||||
*/
|
||||
|
||||
////@begin includes
|
||||
////@end includes
|
||||
|
||||
#include "wx/richtext/richtextbuffer.h"
|
||||
#include "wx/richtext/richtextstyles.h"
|
||||
#include "wx/richtext/richtextctrl.h"
|
||||
|
||||
/*!
|
||||
* Forward declarations
|
||||
*/
|
||||
|
||||
////@begin forward declarations
|
||||
class wxBoxSizer;
|
||||
class wxRichTextStyleListCtrl;
|
||||
class wxRichTextCtrl;
|
||||
////@end forward declarations
|
||||
|
||||
/*!
|
||||
* Control identifiers
|
||||
*/
|
||||
|
||||
////@begin control identifiers
|
||||
#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_STYLE wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
|
||||
#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_TITLE _("Style Organiser")
|
||||
#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_IDNAME ID_RICHTEXTSTYLEORGANISERDIALOG
|
||||
#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_SIZE wxSize(400, 300)
|
||||
#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_POSITION wxDefaultPosition
|
||||
////@end control identifiers
|
||||
|
||||
/*!
|
||||
* Flags for specifying permitted operations
|
||||
*/
|
||||
|
||||
#define wxRICHTEXT_ORGANISER_DELETE_STYLES 0x0001
|
||||
#define wxRICHTEXT_ORGANISER_CREATE_STYLES 0x0002
|
||||
#define wxRICHTEXT_ORGANISER_APPLY_STYLES 0x0004
|
||||
#define wxRICHTEXT_ORGANISER_EDIT_STYLES 0x0008
|
||||
#define wxRICHTEXT_ORGANISER_RENAME_STYLES 0x0010
|
||||
#define wxRICHTEXT_ORGANISER_OK_CANCEL 0x0020
|
||||
#define wxRICHTEXT_ORGANISER_RENUMBER 0x0040
|
||||
|
||||
// The permitted style types to show
|
||||
#define wxRICHTEXT_ORGANISER_SHOW_CHARACTER 0x0100
|
||||
#define wxRICHTEXT_ORGANISER_SHOW_PARAGRAPH 0x0200
|
||||
#define wxRICHTEXT_ORGANISER_SHOW_LIST 0x0400
|
||||
#define wxRICHTEXT_ORGANISER_SHOW_ALL 0x0800
|
||||
|
||||
// Common combinations
|
||||
#define wxRICHTEXT_ORGANISER_ORGANISE (wxRICHTEXT_ORGANISER_SHOW_ALL|wxRICHTEXT_ORGANISER_DELETE_STYLES|wxRICHTEXT_ORGANISER_CREATE_STYLES|wxRICHTEXT_ORGANISER_APPLY_STYLES|wxRICHTEXT_ORGANISER_EDIT_STYLES|wxRICHTEXT_ORGANISER_RENAME_STYLES)
|
||||
#define wxRICHTEXT_ORGANISER_BROWSE (wxRICHTEXT_ORGANISER_SHOW_ALL|wxRICHTEXT_ORGANISER_OK_CANCEL)
|
||||
#define wxRICHTEXT_ORGANISER_BROWSE_NUMBERING (wxRICHTEXT_ORGANISER_SHOW_LIST|wxRICHTEXT_ORGANISER_OK_CANCEL|wxRICHTEXT_ORGANISER_RENUMBER)
|
||||
|
||||
/*!
|
||||
* wxRichTextStyleOrganiserDialog class declaration
|
||||
*/
|
||||
|
||||
class wxRichTextStyleOrganiserDialog: public wxDialog
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS( wxRichTextStyleOrganiserDialog )
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
||||
public:
|
||||
/// Constructors
|
||||
wxRichTextStyleOrganiserDialog( );
|
||||
wxRichTextStyleOrganiserDialog( int flags, wxRichTextStyleSheet* sheet, wxRichTextCtrl* ctrl, wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_IDNAME, const wxString& caption = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_STYLE );
|
||||
|
||||
/// Creation
|
||||
bool Create( int flags, wxRichTextStyleSheet* sheet, wxRichTextCtrl* ctrl, wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_IDNAME, const wxString& caption = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_STYLE );
|
||||
|
||||
/// Creates the controls and sizers
|
||||
void CreateControls();
|
||||
|
||||
/// Initialise member variables
|
||||
void Init();
|
||||
|
||||
/// Transfer data from/to window
|
||||
virtual bool TransferDataFromWindow();
|
||||
virtual bool TransferDataToWindow();
|
||||
|
||||
/// Set/get style sheet
|
||||
void SetStyleSheet(wxRichTextStyleSheet* sheet) { m_richTextStyleSheet = sheet; }
|
||||
wxRichTextStyleSheet* GetStyleSheet() const { return m_richTextStyleSheet; }
|
||||
|
||||
/// Set/get control
|
||||
void SetRichTextCtrl(wxRichTextCtrl* ctrl) { m_richTextCtrl = ctrl; }
|
||||
wxRichTextCtrl* GetRichTextCtrl() const { return m_richTextCtrl; }
|
||||
|
||||
/// Set/get flags
|
||||
void SetFlags(int flags) { m_flags = flags; }
|
||||
int GetFlags() const { return m_flags; }
|
||||
|
||||
/// Show preview for given or selected preview
|
||||
void ShowPreview(int sel = -1);
|
||||
|
||||
/// Clears the preview
|
||||
void ClearPreview();
|
||||
|
||||
/// List selection
|
||||
void OnListSelection(wxCommandEvent& event);
|
||||
|
||||
/// Get/set restart numbering boolean
|
||||
bool GetRestartNumbering() const { return m_restartNumbering; }
|
||||
void SetRestartNumbering(bool restartNumbering) { m_restartNumbering = restartNumbering; }
|
||||
|
||||
/// Get selected style name or definition
|
||||
wxString GetSelectedStyle() const;
|
||||
wxRichTextStyleDefinition* GetSelectedStyleDefinition() const;
|
||||
|
||||
/// Apply the style
|
||||
bool ApplyStyle(wxRichTextCtrl* ctrl = NULL);
|
||||
|
||||
/// Should we show tooltips?
|
||||
static bool ShowToolTips() { return sm_showToolTips; }
|
||||
|
||||
/// Determines whether tooltips will be shown
|
||||
static void SetShowToolTips(bool show) { sm_showToolTips = show; }
|
||||
|
||||
////@begin wxRichTextStyleOrganiserDialog event handler declarations
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_CHAR
|
||||
void OnNewCharClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_CHAR
|
||||
void OnNewCharUpdate( wxUpdateUIEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_PARA
|
||||
void OnNewParaClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_PARA
|
||||
void OnNewParaUpdate( wxUpdateUIEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_LIST
|
||||
void OnNewListClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_LIST
|
||||
void OnNewListUpdate( wxUpdateUIEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_APPLY
|
||||
void OnApplyClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_APPLY
|
||||
void OnApplyUpdate( wxUpdateUIEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_RENAME
|
||||
void OnRenameClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_RENAME
|
||||
void OnRenameUpdate( wxUpdateUIEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_EDIT
|
||||
void OnEditClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_EDIT
|
||||
void OnEditUpdate( wxUpdateUIEvent& event );
|
||||
|
||||
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_DELETE
|
||||
void OnDeleteClick( wxCommandEvent& event );
|
||||
|
||||
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_DELETE
|
||||
void OnDeleteUpdate( wxUpdateUIEvent& event );
|
||||
|
||||
////@end wxRichTextStyleOrganiserDialog event handler declarations
|
||||
|
||||
////@begin wxRichTextStyleOrganiserDialog member function declarations
|
||||
|
||||
/// Retrieves bitmap resources
|
||||
wxBitmap GetBitmapResource( const wxString& name );
|
||||
|
||||
/// Retrieves icon resources
|
||||
wxIcon GetIconResource( const wxString& name );
|
||||
////@end wxRichTextStyleOrganiserDialog member function declarations
|
||||
|
||||
////@begin wxRichTextStyleOrganiserDialog member variables
|
||||
wxBoxSizer* m_innerSizer;
|
||||
wxBoxSizer* m_buttonSizerParent;
|
||||
wxRichTextStyleListCtrl* m_stylesListBox;
|
||||
wxRichTextCtrl* m_previewCtrl;
|
||||
wxBoxSizer* m_buttonSizer;
|
||||
wxButton* m_newCharacter;
|
||||
wxButton* m_newParagraph;
|
||||
wxButton* m_newList;
|
||||
wxButton* m_applyStyle;
|
||||
wxButton* m_renameStyle;
|
||||
wxButton* m_editStyle;
|
||||
wxButton* m_deleteStyle;
|
||||
wxButton* m_closeButton;
|
||||
wxBoxSizer* m_bottomButtonSizer;
|
||||
wxCheckBox* m_restartNumberingCtrl;
|
||||
wxButton* m_okButton;
|
||||
wxButton* m_cancelButton;
|
||||
/// Control identifiers
|
||||
enum {
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG = 10500,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_STYLES = 10501,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_PREVIEW = 10509,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_CHAR = 10504,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_PARA = 10505,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_LIST = 10508,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_APPLY = 10503,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_RENAME = 10502,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_EDIT = 10506,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_DELETE = 10507,
|
||||
ID_RICHTEXTSTYLEORGANISERDIALOG_RESTART_NUMBERING = 10511
|
||||
};
|
||||
////@end wxRichTextStyleOrganiserDialog member variables
|
||||
|
||||
private:
|
||||
|
||||
wxRichTextCtrl* m_richTextCtrl;
|
||||
wxRichTextStyleSheet* m_richTextStyleSheet;
|
||||
|
||||
bool m_dontUpdate;
|
||||
int m_flags;
|
||||
static bool sm_showToolTips;
|
||||
bool m_restartNumbering;
|
||||
};
|
||||
|
||||
#endif
|
||||
// _RICHTEXTSTYLEDLG_H_
|
Reference in New Issue
Block a user