Implemented text boxes and tables, and further editing pages for backgrounds, borders and margins.

wxRTC functions now operate on the currently focused object, which by default is the whole buffer.
Up to three property commands are now shown on the context menu, depending on
available objects in the current hierarchy.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2011-01-14 11:57:44 +00:00
parent 3625820490
commit 603f702b4a
42 changed files with 19398 additions and 3272 deletions

View File

@@ -0,0 +1,110 @@
/////////////////////////////////////////////////////////////////////////////
// Name: richtextbackgroundpage.h
// Purpose:
// Author: Julian Smart
// Modified by:
// Created: 13/11/2010 11:17:25
// RCS-ID:
// Copyright: (c) Julian Smart
// Licence:
/////////////////////////////////////////////////////////////////////////////
#ifndef _RICHTEXTBACKGROUNDPAGE_H_
#define _RICHTEXTBACKGROUNDPAGE_H_
/*!
* Includes
*/
#include "wx/richtext/richtextdialogpage.h"
////@begin includes
#include "wx/statline.h"
////@end includes
/*!
* Forward declarations
*/
class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextColourSwatchCtrl;
/*!
* Control identifiers
*/
////@begin control identifiers
#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_STYLE wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_IDNAME ID_RICHTEXTBACKGROUNDPAGE
#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_POSITION wxDefaultPosition
////@end control identifiers
/*!
* wxRichTextBackgroundPage class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextBackgroundPage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextBackgroundPage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors
wxRichTextBackgroundPage();
wxRichTextBackgroundPage( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_STYLE );
/// Destructor
~wxRichTextBackgroundPage();
/// Initialises member variables
void Init();
/// Creates the controls and sizers
void CreateControls();
/// Gets the attributes from the formatting dialog
wxRichTextAttr* GetAttributes();
/// Data transfer
virtual bool TransferDataToWindow();
virtual bool TransferDataFromWindow();
/// Respond to colour swatch click
void OnColourSwatch(wxCommandEvent& event);
////@begin wxRichTextBackgroundPage event handler declarations
////@end wxRichTextBackgroundPage event handler declarations
////@begin wxRichTextBackgroundPage member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end wxRichTextBackgroundPage member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin wxRichTextBackgroundPage member variables
wxCheckBox* m_backgroundColourCheckBox;
wxRichTextColourSwatchCtrl* m_backgroundColourSwatch;
/// Control identifiers
enum {
ID_RICHTEXTBACKGROUNDPAGE = 10845,
ID_RICHTEXT_BACKGROUND_COLOUR_CHECKBOX = 10846,
ID_RICHTEXT_BACKGROUND_COLOUR_SWATCH = 10847
};
////@end wxRichTextBackgroundPage member variables
};
#endif
// _RICHTEXTBACKGROUNDPAGE_H_

View File

@@ -0,0 +1,251 @@
/////////////////////////////////////////////////////////////////////////////
// Name: richtextborderspage.h
// Purpose:
// Author: Julian Smart
// Modified by:
// Created: 21/10/2010 11:34:24
// RCS-ID:
// Copyright: (c) Julian Smart
// Licence:
/////////////////////////////////////////////////////////////////////////////
#ifndef _RICHTEXTBORDERSPAGE_H_
#define _RICHTEXTBORDERSPAGE_H_
/*!
* Includes
*/
#include "wx/richtext/richtextdialogpage.h"
////@begin includes
#include "wx/notebook.h"
#include "wx/statline.h"
////@end includes
/*!
* Forward declarations
*/
class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextColourSwatchCtrl;
class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextBorderPreviewCtrl;
/*!
* Control identifiers
*/
////@begin control identifiers
#define SYMBOL_WXRICHTEXTBORDERSPAGE_STYLE wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTBORDERSPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTBORDERSPAGE_IDNAME ID_RICHTEXTBORDERSPAGE
#define SYMBOL_WXRICHTEXTBORDERSPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTBORDERSPAGE_POSITION wxDefaultPosition
////@end control identifiers
/*!
* wxRichTextBordersPage class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextBordersPage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextBordersPage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors
wxRichTextBordersPage();
wxRichTextBordersPage( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTBORDERSPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTBORDERSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBORDERSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBORDERSPAGE_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTBORDERSPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTBORDERSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBORDERSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBORDERSPAGE_STYLE );
/// Destructor
~wxRichTextBordersPage();
/// Initialises member variables
void Init();
/// Creates the controls and sizers
void CreateControls();
/// Gets the attributes from the formatting dialog
wxRichTextAttr* GetAttributes();
/// Data transfer
virtual bool TransferDataToWindow();
virtual bool TransferDataFromWindow();
/// Updates the preview
void OnCommand(wxCommandEvent& event);
/// Fill style combo
virtual void FillStyleComboBox(wxComboBox* styleComboBox);
/// Set the border controls
static void SetBorderValue(wxTextAttrBorder& border, /* wxTextAttrBorder& borderToReset, */ wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox,
wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles);
/// Get data from the border controls
static void GetBorderValue(wxTextAttrBorder& border, /* wxTextAttrBorder& borderToReset, */ wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox,
wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles);
////@begin wxRichTextBordersPage event handler declarations
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXT_BORDER_LEFT_CHECKBOX
void OnRichtextBorderCheckboxClick( wxCommandEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_LEFT
void OnRichtextBorderLeftUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_RIGHT
void OnRichtextBorderRightUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_TOP
void OnRichtextBorderTopUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_BOTTOM
void OnRichtextBorderBottomUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_LEFT
void OnRichtextOutlineLeftUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_RIGHT
void OnRichtextOutlineRightUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_TOP
void OnRichtextOutlineTopUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_BOTTOM
void OnRichtextOutlineBottomUpdate( wxUpdateUIEvent& event );
////@end wxRichTextBordersPage event handler declarations
////@begin wxRichTextBordersPage member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end wxRichTextBordersPage member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin wxRichTextBordersPage member variables
wxCheckBox* m_leftBorderCheckbox;
wxTextCtrl* m_leftBorderWidth;
wxComboBox* m_leftBorderWidthUnits;
wxComboBox* m_leftBorderStyle;
wxRichTextColourSwatchCtrl* m_leftBorderColour;
wxCheckBox* m_rightBorderCheckbox;
wxTextCtrl* m_rightBorderWidth;
wxComboBox* m_rightBorderWidthUnits;
wxComboBox* m_rightBorderStyle;
wxRichTextColourSwatchCtrl* m_rightBorderColour;
wxCheckBox* m_topBorderCheckbox;
wxTextCtrl* m_topBorderWidth;
wxComboBox* m_topBorderWidthUnits;
wxComboBox* m_topBorderStyle;
wxRichTextColourSwatchCtrl* m_topBorderColour;
wxCheckBox* m_bottomBorderCheckbox;
wxTextCtrl* m_bottomBorderWidth;
wxComboBox* m_bottomBorderWidthUnits;
wxComboBox* m_bottomBorderStyle;
wxRichTextColourSwatchCtrl* m_bottomBorderColour;
wxCheckBox* m_leftOutlineCheckbox;
wxTextCtrl* m_leftOutlineWidth;
wxComboBox* m_leftOutlineWidthUnits;
wxComboBox* m_leftOutlineStyle;
wxRichTextColourSwatchCtrl* m_leftOutlineColour;
wxCheckBox* m_rightOutlineCheckbox;
wxTextCtrl* m_rightOutlineWidth;
wxComboBox* m_rightOutlineWidthUnits;
wxComboBox* m_rightOutlineStyle;
wxRichTextColourSwatchCtrl* m_rightOutlineColour;
wxCheckBox* m_topOutlineCheckbox;
wxTextCtrl* m_topOutlineWidth;
wxComboBox* m_topOutlineWidthUnits;
wxComboBox* m_topOutlineStyle;
wxRichTextColourSwatchCtrl* m_topOutlineColour;
wxCheckBox* m_bottomOutlineCheckbox;
wxTextCtrl* m_bottomOutlineWidth;
wxComboBox* m_bottomOutlineWidthUnits;
wxComboBox* m_bottomOutlineStyle;
wxRichTextColourSwatchCtrl* m_bottomOutlineColour;
wxRichTextBorderPreviewCtrl* m_borderPreviewCtrl;
/// Control identifiers
enum {
ID_RICHTEXTBORDERSPAGE = 10800,
ID_RICHTEXTBORDERSPAGE_NOTEBOOK = 10801,
ID_RICHTEXTBORDERSPAGE_BORDERS = 10802,
ID_RICHTEXT_BORDER_LEFT_CHECKBOX = 10803,
ID_RICHTEXT_BORDER_LEFT = 10804,
ID_RICHTEXT_BORDER_LEFT_UNITS = 10805,
ID_RICHTEXT_BORDER_LEFT_STYLE = 10806,
ID_RICHTEXT_BORDER_LEFT_COLOUR = 10807,
ID_RICHTEXT_BORDER_RIGHT_CHECKBOX = 10808,
ID_RICHTEXT_BORDER_RIGHT = 10809,
ID_RICHTEXT_BORDER_RIGHT_UNITS = 10810,
ID_RICHTEXT_BORDER_RIGHT_STYLE = 10811,
ID_RICHTEXT_BORDER_RIGHT_COLOUR = 10812,
ID_RICHTEXT_BORDER_TOP_CHECKBOX = 10813,
ID_RICHTEXT_BORDER_TOP = 10814,
ID_RICHTEXT_BORDER_TOP_UNITS = 10815,
ID_RICHTEXT_BORDER_TOP_STYLE = 10816,
ID_RICHTEXT_BORDER_TOP_COLOUR = 10817,
ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX = 10818,
ID_RICHTEXT_BORDER_BOTTOM = 10819,
ID_RICHTEXT_BORDER_BOTTOM_UNITS = 10820,
ID_RICHTEXT_BORDER_BOTTOM_STYLE = 10821,
ID_RICHTEXT_BORDER_BOTTOM_COLOUR = 10822,
ID_RICHTEXTBORDERSPAGE_OUTLINE = 10823,
ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX = 10824,
ID_RICHTEXT_OUTLINE_LEFT = 10825,
ID_RICHTEXT_OUTLINE_LEFT_UNITS = 10826,
ID_RICHTEXT_OUTLINE_LEFT_STYLE = 10827,
ID_RICHTEXT_OUTLINE_LEFT_COLOUR = 10828,
ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX = 10829,
ID_RICHTEXT_OUTLINE_RIGHT = 10830,
ID_RICHTEXT_OUTLINE_RIGHT_UNITS = 10831,
ID_RICHTEXT_OUTLINE_RIGHT_STYLE = 10832,
ID_RICHTEXT_OUTLINE_RIGHT_COLOUR = 10833,
ID_RICHTEXT_OUTLINE_TOP_CHECKBOX = 10834,
ID_RICHTEXT_OUTLINE_TOP = 10835,
ID_RICHTEXT_OUTLINE_TOP_UNITS = 10836,
ID_RICHTEXT_OUTLINE_TOP_STYLE = 10837,
ID_RICHTEXT_OUTLINE_TOP_COLOUR = 10838,
ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX = 10839,
ID_RICHTEXT_OUTLINE_BOTTOM = 10840,
ID_RICHTEXT_OUTLINE_BOTTOM_UNITS = 10841,
ID_RICHTEXT_OUTLINE_BOTTOM_STYLE = 10842,
ID_RICHTEXT_OUTLINE_BOTTOM_COLOUR = 10843,
ID_RICHTEXT_BORDER_PREVIEW = 10844
};
////@end wxRichTextBordersPage member variables
wxArrayInt m_borderStyles;
wxArrayString m_borderStyleNames;
bool m_ignoreUpdates;
};
class WXDLLIMPEXP_RICHTEXT wxRichTextBorderPreviewCtrl : public wxWindow
{
public:
wxRichTextBorderPreviewCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize, long style = 0);
void SetAttributes(wxRichTextAttr* attr) { m_attributes = attr; }
wxRichTextAttr* GetAttributes() const { return m_attributes; }
private:
wxRichTextAttr* m_attributes;
void OnPaint(wxPaintEvent& event);
DECLARE_EVENT_TABLE()
};
#endif
// _RICHTEXTBORDERSPAGE_H_

File diff suppressed because it is too large Load Diff

View File

@@ -15,6 +15,8 @@
/*!
* Includes
*/
#include "wx/richtext/richtextdialogpage.h"
#include "wx/spinbutt.h" // for wxSpinEvent
/*!
@@ -32,7 +34,7 @@ class wxRichTextCtrl;
////@begin control identifiers
#define SYMBOL_WXRICHTEXTBULLETSPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTBULLETSPAGE_TITLE wxT("")
#define SYMBOL_WXRICHTEXTBULLETSPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTBULLETSPAGE_IDNAME ID_RICHTEXTBULLETSPAGE
#define SYMBOL_WXRICHTEXTBULLETSPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTBULLETSPAGE_POSITION wxDefaultPosition
@@ -42,10 +44,11 @@ class wxRichTextCtrl;
* wxRichTextBulletsPage class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextBulletsPage: public wxPanel
class WXDLLIMPEXP_RICHTEXT wxRichTextBulletsPage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextBulletsPage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors

View File

@@ -48,6 +48,13 @@ class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextStyleDefinition;
#define wxRICHTEXT_CTRL_DOWN 0x02
#define wxRICHTEXT_ALT_DOWN 0x04
/* Extra flags
*/
// Don't draw guide lines around boxes and tables
#define wxRICHTEXT_EX_NO_GUIDELINES 0x00000100
/* Defaults
*/
@@ -66,14 +73,17 @@ class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextStyleDefinition;
// Milliseconds before layout occurs after resize
#define wxRICHTEXT_DEFAULT_LAYOUT_INTERVAL 50
/* Identifiers
*/
#define wxID_RICHTEXT_PROPERTIES1 (wxID_HIGHEST + 1)
#define wxID_RICHTEXT_PROPERTIES2 (wxID_HIGHEST + 2)
#define wxID_RICHTEXT_PROPERTIES3 (wxID_HIGHEST + 3)
/*!
* Forward declarations
*/
/*!
* wxRichTextItem class declaration
*/
#if 0
// Drawing styles/states
#define wxRICHTEXT_SELECTED 0x01
#define wxRICHTEXT_TAGGED 0x02
@@ -81,6 +91,67 @@ class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextStyleDefinition;
#define wxRICHTEXT_FOCUSSED 0x04
// The item itself has the focus
#define wxRICHTEXT_IS_FOCUS 0x08
#endif
// Normal selection occurs initially and as user drags within one container.
// Common ancestor selection occurs when the user starts dragging across containers
// that have a common ancestor, for example the cells in a table.
enum wxRichTextCtrlSelectionState
{
wxRichTextCtrlSelectionState_Normal,
wxRichTextCtrlSelectionState_CommonAncestor
};
/*!
* wxRichTextContextMenuPropertiesInfo keeps track of objects that appear in the context menu,
* whose properties are available to be edited.
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextContextMenuPropertiesInfo
{
public:
wxRichTextContextMenuPropertiesInfo() { Init(); }
// Operations
/// Initialisation
void Init() {}
/// Add an item
bool AddItem(const wxString& label, wxRichTextObject* obj);
/// Returns number of menu items were added.
int AddMenuItems(wxMenu* menu, int startCmd = wxID_RICHTEXT_PROPERTIES1) const;
/// Add appropriate menu items for the current container and clicked on object
/// (and container's parent, if appropriate).
int AddItems(wxRichTextObject* container, wxRichTextObject* obj);
/// Clear the items
void Clear() { m_objects.Clear(); m_labels.Clear(); }
// Accessors
/// Gets the nth label
wxString GetLabel(int n) const { return m_labels[n]; }
/// Gets the nth object
wxRichTextObject* GetObject(int n) const { return m_objects[n]; }
/// Get objects
wxRichTextObjectPtrArray& GetObjects() { return m_objects; }
const wxRichTextObjectPtrArray& GetObjects() const { return m_objects; }
/// Get labels
wxArrayString& GetLabels() { return m_labels; }
const wxArrayString& GetLabels() const { return m_labels; }
/// Get number of items
int GetCount() const { return m_objects.GetCount(); }
//wxArrayInt m_ids;
wxRichTextObjectPtrArray m_objects;
wxArrayString m_labels;
};
/*!
* wxRichTextCtrl class declaration
@@ -133,6 +204,11 @@ public:
virtual wxString GetStringSelection() const;
const wxRichTextSelection& GetSelection() const { return m_selection; }
wxRichTextSelection& GetSelection() { return m_selection; }
void SetSelection(const wxRichTextSelection& sel) { m_selection = sel; }
/// Get filename
wxString GetFilename() const { return m_filename; }
@@ -185,12 +261,21 @@ public:
long GetSelectionAnchor() const { return m_selectionAnchor; }
void SetSelectionAnchor(long anchor) { m_selectionAnchor = anchor; }
/// The wxRichTextObject object under mouse if any
wxRichTextObject* GetCurrentObject() const { return m_currentObject; }
void SetCurrentObject(wxRichTextObject* obj) { m_currentObject = obj; }
/// Anchor object if selecting multiple containers.
wxRichTextObject* GetSelectionAnchorObject() const { return m_selectionAnchorObject; }
void SetSelectionAnchorObject(wxRichTextObject* anchor) { m_selectionAnchorObject = anchor; }
wxRichTextContextMenuPropertiesInfo& GetContextMenuPropertiesInfo() { return m_contextMenuPropertiesInfo; }
const wxRichTextContextMenuPropertiesInfo& GetContextMenuPropertiesInfo() const { return m_contextMenuPropertiesInfo; }
/// The wxRichTextObject object that currently has the editing focus
wxRichTextParagraphLayoutBox* GetFocusObject() const { return m_focusObject; }
bool SetFocusObject(wxRichTextParagraphLayoutBox* obj, bool setCaretPosition = true);
// Operations
void Invalidate() { GetBuffer().Invalidate(wxRICHTEXT_ALL); }
// editing
virtual void Clear();
virtual void Replace(long from, long to, const wxString& value);
@@ -229,13 +314,15 @@ public:
virtual bool SetStyle(const wxRichTextRange& range, const wxRichTextAttr& style);
virtual bool GetStyle(long position, wxTextAttr& style);
virtual bool GetStyle(long position, wxRichTextAttr& style);
virtual bool GetStyle(long position, wxRichTextAttr& style, wxRichTextParagraphLayoutBox* container);
// Set an image style
void SetImageStyle(wxRichTextImage *image, const wxRichTextAttr& textAttr);
// Set the style for a single object
virtual void SetStyle(wxRichTextObject *obj, const wxRichTextAttr& textAttr);
// get the common set of styles for the range
virtual bool GetStyleForRange(const wxRichTextRange& range, wxTextAttr& style);
virtual bool GetStyleForRange(const wxRichTextRange& range, wxRichTextAttr& style);
virtual bool GetStyleForRange(const wxRichTextRange& range, wxRichTextAttr& style, wxRichTextParagraphLayoutBox* container);
// extended style setting operation with flags including:
// wxRICHTEXT_SETSTYLE_WITH_UNDO, wxRICHTEXT_SETSTYLE_OPTIMIZE, wxRICHTEXT_SETSTYLE_PARAGRAPHS_ONLY, wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY
// see richtextbuffer.h for more details.
@@ -243,6 +330,7 @@ public:
/// Get the content (uncombined) attributes for this position.
virtual bool GetUncombinedStyle(long position, wxRichTextAttr& style);
virtual bool GetUncombinedStyle(long position, wxRichTextAttr& style, wxRichTextParagraphLayoutBox* container);
virtual bool SetDefaultStyle(const wxTextAttr& style);
virtual bool SetDefaultStyle(const wxRichTextAttr& style);
@@ -316,8 +404,14 @@ public:
virtual void SelectAll();
virtual void SetEditable(bool editable);
/// Returns true if there was a selection and the object containing the selection
/// was the same as the current focus object.
virtual bool HasSelection() const;
/// Returns true if there was a selection, whether or not the current focus object
/// is the same as the selection's container object.
virtual bool HasUnfocusedSelection() const;
///// Functionality specific to wxRichTextCtrl
/// Write an image at the current insertion point. Supply optional type to use
@@ -338,6 +432,14 @@ public:
virtual bool WriteImage(const wxRichTextImageBlock& imageBlock,
const wxRichTextAttr& textAttr = wxRichTextAttr());
/// Write a text box at the current insertion point, returning the text box.
/// You can then call SetFocusObject() to set the focus to the new object.
virtual wxRichTextBox* WriteTextBox(const wxRichTextAttr& textAttr = wxRichTextAttr());
/// Write a table at the current insertion point, returning the table.
/// You can then call SetFocusObject() to set the focus to the new object.
virtual wxRichTextTable* WriteTable(int rows, int cols, const wxRichTextAttr& tableAttr = wxRichTextAttr(), const wxRichTextAttr& cellAttr = wxRichTextAttr());
/// Insert a newline (actually paragraph) at the current insertion point.
virtual bool Newline();
@@ -484,11 +586,12 @@ public:
wxRichTextRange GetSelectionRange() const;
void SetSelectionRange(const wxRichTextRange& range);
/// Get/set the selection range in character positions. -1, -1 means no selection.
/// Get/set the selection range in character positions. -2, -2 means no selection
/// -1, -1 means select everything.
/// The range is in internal format, i.e. a single character selection is denoted
/// by (n, n)
const wxRichTextRange& GetInternalSelectionRange() const { return m_selectionRange; }
void SetInternalSelectionRange(const wxRichTextRange& range) { m_selectionRange = range; }
wxRichTextRange GetInternalSelectionRange() const { return m_selection.GetRange(); }
void SetInternalSelectionRange(const wxRichTextRange& range) { m_selection.Set(range, GetFocusObject()); }
/// Add a new paragraph of text to the end of the buffer
virtual wxRichTextRange AddParagraph(const wxString& text);
@@ -501,7 +604,7 @@ public:
virtual bool LayoutContent(bool onlyVisibleRect = false);
/// Move the caret to the given character position
virtual bool MoveCaret(long pos, bool showAtLineStart = false);
virtual bool MoveCaret(long pos, bool showAtLineStart = false, wxRichTextParagraphLayoutBox* container = NULL);
/// Move right
virtual bool MoveRight(int noPositions = 1, int flags = 0);
@@ -638,7 +741,7 @@ public:
void OnUndo(wxCommandEvent& event);
void OnRedo(wxCommandEvent& event);
void OnSelectAll(wxCommandEvent& event);
void OnImage(wxCommandEvent& event);
void OnProperties(wxCommandEvent& event);
void OnClear(wxCommandEvent& event);
void OnUpdateCut(wxUpdateUIEvent& event);
@@ -647,7 +750,7 @@ public:
void OnUpdateUndo(wxUpdateUIEvent& event);
void OnUpdateRedo(wxUpdateUIEvent& event);
void OnUpdateSelectAll(wxUpdateUIEvent& event);
void OnUpdateImage(wxUpdateUIEvent& event);
void OnUpdateProperties(wxUpdateUIEvent& event);
void OnUpdateClear(wxUpdateUIEvent& event);
// Show a context menu for Rich Edit controls (the standard
@@ -721,7 +824,7 @@ public:
virtual bool ShouldInheritColours() const { return false; }
/// Position the caret
virtual void PositionCaret();
virtual void PositionCaret(wxRichTextParagraphLayoutBox* container = NULL);
/// Extend the selection, returning true if the selection was
/// changed. Selections are in caret positions.
@@ -731,7 +834,7 @@ public:
virtual bool ScrollIntoView(long position, int keyCode);
/// Refresh the area affected by a selection change
bool RefreshForSelectionChange(const wxRichTextRange& oldSelection, const wxRichTextRange& newSelection);
bool RefreshForSelectionChange(const wxRichTextSelection& oldSelection, const wxRichTextSelection& newSelection);
/// The caret position is the character position just before the caret.
/// A value of -1 means the caret is at the start of the buffer.
@@ -753,8 +856,9 @@ public:
/// to the start of the next, which may be the exact same caret position.
void MoveCaretBack(long oldPosition) ;
/// Get the caret height and position for the given character position
bool GetCaretPositionForIndex(long position, wxRect& rect);
/// Get the caret height and position for the given character position. If container is null,
/// the current focus object will be used.
bool GetCaretPositionForIndex(long position, wxRect& rect, wxRichTextParagraphLayoutBox* container = NULL);
/// Gets the line for the visible caret position. If the caret is
/// shown at the very end of the line, it means the next character is actually
@@ -812,6 +916,15 @@ public:
// Implementation
/// Set up the caret for the given position and container, after a mouse click
bool SetCaretPositionAfterClick(wxRichTextParagraphLayoutBox* container, long position, int hitTestFlags, bool extendSelection = false);
/// Find the caret position for the combination of hit-test flags and character position.
/// Returns the caret position and also an indication of where to place the caret (caretLineStart)
/// since this is ambiguous (same position used for end of line and start of next).
long FindCaretPositionForCharacterPosition(long position, int hitTestFlags, wxRichTextParagraphLayoutBox* container,
bool& caretLineStart);
/// Font names take a long time to retrieve, so cache them (on demand)
static const wxArrayString& GetAvailableFontNames();
static void ClearAvailableFontNames();
@@ -825,6 +938,10 @@ protected:
// implement the wxTextEntry pure virtual method
virtual wxWindow *GetEditableWindow() { return this; }
// margins functions
virtual bool DoSetMargins(const wxPoint& pt);
virtual wxPoint DoGetMargins() const;
// FIXME: this does not work, it allows this code to compile but will fail
// during run-time
#ifndef __WXUNIVERSAL__
@@ -872,12 +989,17 @@ private:
long m_caretPositionForDefaultStyle;
/// Selection range in character positions. -2, -2 means no selection.
wxRichTextRange m_selectionRange;
wxRichTextSelection m_selection;
wxRichTextCtrlSelectionState m_selectionState;
/// Anchor so we know how to extend the selection
/// It's a caret position since it's between two characters.
long m_selectionAnchor;
/// Anchor object if selecting multiple container objects, such as grid cells.
wxRichTextObject* m_selectionAnchorObject;
/// Are we editable?
bool m_editable;
@@ -904,9 +1026,11 @@ private:
wxCursor m_urlCursor;
static wxArrayString sm_availableFontNames;
/// The wxRichTextObject object under mouse if any
wxRichTextObject* m_currentObject;
long m_imagePropertyId;
wxRichTextContextMenuPropertiesInfo m_contextMenuPropertiesInfo;
/// The object that currently has the editing focus
wxRichTextParagraphLayoutBox* m_focusObject;
};
/*!
@@ -919,14 +1043,14 @@ public:
wxRichTextEvent(wxEventType commandType = wxEVT_NULL, int winid = 0)
: wxNotifyEvent(commandType, winid),
m_flags(0), m_position(-1), m_oldStyleSheet(NULL), m_newStyleSheet(NULL),
m_char((wxChar) 0)
m_char((wxChar) 0), m_container(NULL), m_oldContainer(NULL)
{ }
wxRichTextEvent(const wxRichTextEvent& event)
: wxNotifyEvent(event),
m_flags(event.m_flags), m_position(-1),
m_oldStyleSheet(event.m_oldStyleSheet), m_newStyleSheet(event.m_newStyleSheet),
m_char((wxChar) 0)
m_char((wxChar) 0), m_container(event.m_container), m_oldContainer(event.m_oldContainer)
{ }
long GetPosition() const { return m_position; }
@@ -947,6 +1071,12 @@ public:
wxChar GetCharacter() const { return m_char; }
void SetCharacter(wxChar ch) { m_char = ch; }
wxRichTextParagraphLayoutBox* GetContainer() const { return m_container; }
void SetContainer(wxRichTextParagraphLayoutBox* container) { m_container = container; }
wxRichTextParagraphLayoutBox* GetOldContainer() const { return m_oldContainer; }
void SetOldContainer(wxRichTextParagraphLayoutBox* container) { m_oldContainer = container; }
virtual wxEvent *Clone() const { return new wxRichTextEvent(*this); }
protected:
@@ -956,6 +1086,8 @@ protected:
wxRichTextStyleSheet* m_newStyleSheet;
wxRichTextRange m_range;
wxChar m_char;
wxRichTextParagraphLayoutBox* m_container;
wxRichTextParagraphLayoutBox* m_oldContainer;
private:
DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxRichTextEvent)
@@ -982,6 +1114,7 @@ wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_CONTENT_D
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED, wxRichTextEvent );
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_SELECTION_CHANGED, wxRichTextEvent );
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_BUFFER_RESET, wxRichTextEvent );
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_COMMAND_RICHTEXT_FOCUS_OBJECT_CHANGED, wxRichTextEvent );
typedef void (wxEvtHandler::*wxRichTextEventFunction)(wxRichTextEvent&);

View File

@@ -0,0 +1,41 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/richtext/richtextdialogpage.h
// Purpose: Formatting dialog page base class for wxRTC
// Author: Julian Smart
// Modified by:
// Created: 2010-11-14
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_RICHTEXTDIALOGPAGE_H_
#define _WX_RICHTEXTDIALOGPAGE_H_
#if wxUSE_RICHTEXT
#include "wx/panel.h"
#include "wx/richtext/richtextuicustomization.h"
/**
@class wxRichTextDialogPage
The base class for formatting dialog pages.
**/
class WXDLLIMPEXP_RICHTEXT wxRichTextDialogPage: public wxPanel
{
public:
wxRichTextDialogPage() {}
wxRichTextDialogPage(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0)
{
Create(parent, id, pos, size, style);
}
DECLARE_BASE_CLASS_HELP_PROVISION()
};
#endif
// wxUSE_RICHTEXT
#endif
// _WX_RICHTEXTDIALOGPAGE_H_

View File

@@ -16,6 +16,8 @@
* Includes
*/
#include "wx/richtext/richtextdialogpage.h"
////@begin includes
////@end includes
@@ -35,7 +37,7 @@ class wxRichTextFontPreviewCtrl;
////@begin control identifiers
#define SYMBOL_WXRICHTEXTFONTPAGE_STYLE wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTFONTPAGE_TITLE wxT("")
#define SYMBOL_WXRICHTEXTFONTPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTFONTPAGE_IDNAME ID_RICHTEXTFONTPAGE
#define SYMBOL_WXRICHTEXTFONTPAGE_SIZE wxSize(200, 100)
#define SYMBOL_WXRICHTEXTFONTPAGE_POSITION wxDefaultPosition
@@ -45,10 +47,11 @@ class wxRichTextFontPreviewCtrl;
* wxRichTextFontPage class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextFontPage: public wxPanel
class WXDLLIMPEXP_RICHTEXT wxRichTextFontPage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextFontPage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors

View File

@@ -29,6 +29,7 @@
#include "wx/richtext/richtextbuffer.h"
#include "wx/richtext/richtextstyles.h"
#include "wx/richtext/richtextuicustomization.h"
class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextFormattingDialog;
class WXDLLIMPEXP_FWD_CORE wxImageList;
@@ -43,8 +44,12 @@ class WXDLLIMPEXP_FWD_CORE wxImageList;
#define wxRICHTEXT_FORMAT_BULLETS 0x0008
#define wxRICHTEXT_FORMAT_INDENTS_SPACING 0x0010
#define wxRICHTEXT_FORMAT_LIST_STYLE 0x0020
#define wxRICHTEXT_FORMAT_MARGINS 0x0040
#define wxRICHTEXT_FORMAT_SIZE 0x0080
#define wxRICHTEXT_FORMAT_BORDERS 0x0100
#define wxRICHTEXT_FORMAT_BACKGROUND 0x0200
#define wxRICHTEXT_FORMAT_HELP_BUTTON 0x0100
#define wxRICHTEXT_FORMAT_HELP_BUTTON 0x1000
/*!
* Indices for bullet styles in list control
@@ -99,7 +104,7 @@ public:
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; }
virtual bool ShowHelp(int page, wxRichTextFormattingDialog* dialog);
/// Set the sheet style, called at the start of wxRichTextFormattingDialog::Create
virtual bool SetSheetStyle(wxRichTextFormattingDialog* dialog);
@@ -115,6 +120,8 @@ public:
class WXDLLIMPEXP_RICHTEXT wxRichTextFormattingDialog: public wxPropertySheetDialog
{
DECLARE_CLASS(wxRichTextFormattingDialog)
DECLARE_HELP_PROVISION()
public:
wxRichTextFormattingDialog() { Init(); }
@@ -155,10 +162,23 @@ public:
/// Apply attributes to the given range
virtual bool ApplyStyle(wxRichTextCtrl* ctrl, const wxRichTextRange& range, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE);
/// Apply attributes to the object being edited, if any
virtual bool ApplyStyle(wxRichTextCtrl* ctrl, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO);
/// Gets and sets the attributes
const wxRichTextAttr& GetAttributes() const { return m_attributes; }
wxRichTextAttr& GetAttributes() { return m_attributes; }
void SetAttributes(const wxRichTextAttr& attr) { m_attributes = attr; }
#if 0
/// Gets and sets the attributes that the user wants to reset
const wxRichTextAttr& GetResetAttributes() const { return m_resetAttributes; }
wxRichTextAttr& GetResetAttributes() { return m_resetAttributes; }
void SetResetAttributes(const wxRichTextAttr& attr) { m_resetAttributes = attr; }
#endif
/// If editing the attributes for a particular object, such as an image,
/// set the object so the code can initialize attributes such as size correctly.
wxRichTextObject* GetObject() const { return m_object; }
void SetObject(wxRichTextObject* obj) { m_object = obj; }
/// Transfers the data and from to the window
virtual bool TransferDataToWindow();
@@ -170,6 +190,7 @@ public:
/// Respond to help command
void OnHelp(wxCommandEvent& event);
void OnUpdateHelp(wxUpdateUIEvent& event);
/// Set/get image list
void SetImageList(wxImageList* imageList) { m_imageList = imageList; }
@@ -185,6 +206,9 @@ public:
/// Helper for pages to get the attributes
static wxRichTextAttr* GetDialogAttributes(wxWindow* win);
/// Helper for pages to get the reset attributes
static wxRichTextAttr* GetDialogResetAttributes(wxWindow* win);
/// Helper for pages to get the style
static wxRichTextStyleDefinition* GetDialogStyleDefinition(wxWindow* win);
@@ -194,15 +218,29 @@ public:
/// Determines whether tooltips will be shown
static void SetShowToolTips(bool show) { sm_showToolTips = show; }
/// Set the dimension into the value and units controls
static void SetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl, wxCheckBox* checkBox);
/// Get the dimension from the value and units controls
static void GetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl, wxCheckBox* checkBox);
/// Convert CM to MM
static bool ConvertFromString(const wxString& string, int& ret, int scale);
/// Map book control page index to our page id
void AddPageId(int id) { m_pageIds.Add(id); }
/// Find a page by class
wxWindow* FindPage(wxClassInfo* info) const;
protected:
wxImageList* m_imageList;
wxRichTextAttr m_attributes;
//wxRichTextAttr m_resetAttributes;
wxRichTextStyleDefinition* m_styleDefinition;
wxRichTextStyleSheet* m_styleSheet;
wxRichTextObject* m_object;
wxArrayInt m_pageIds; // mapping of book control indexes to page ids
static wxRichTextFormattingDialogFactory* ms_FormattingDialogFactory;

View File

@@ -2,10 +2,10 @@
// Name: wx/richtext/richtextimagedlg.h
// Purpose:
// Author: Mingquan Yang
// Modified by:
// Modified by: Julian Smart
// Created: Wed 02 Jun 2010 11:27:23 CST
// RCS-ID:
// Copyright: (c) Mingquan Yang
// Copyright: (c) Mingquan Yang, Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
@@ -17,7 +17,9 @@
/*!
* Includes
*/
#include "wx/richtext/richtextbuffer.h"
#include "wx/richtext/richtextformatdlg.h"
/*!
* Forward declarations
@@ -32,33 +34,32 @@ class WXDLLIMPEXP_FWD_CORE wxTextCtrl;
*/
////@begin control identifiers
#define SYMBOL_WXRICHTEXTIMAGEDIALOG_STYLE wxDEFAULT_DIALOG_STYLE|wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTIMAGEDIALOG_TITLE _("Image Properties")
#define SYMBOL_WXRICHTEXTIMAGEDIALOG_IDNAME ID_WXRICHTEXTIMAGEPAGE
#define SYMBOL_WXRICHTEXTIMAGEDIALOG_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTIMAGEDIALOG_POSITION wxDefaultPosition
#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_STYLE wxDEFAULT_DIALOG_STYLE|wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_TITLE _("Object Properties")
#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_IDNAME ID_RICHTEXTOBJECTPROPERTIESDIALOG
#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_POSITION wxDefaultPosition
////@end control identifiers
/*!
* wxRichTextImageDialog class declaration
* wxRichTextObjectPropertiesDialog class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextImageDialog: public wxDialog
class WXDLLIMPEXP_RICHTEXT wxRichTextObjectPropertiesDialog: public wxRichTextFormattingDialog
{
DECLARE_DYNAMIC_CLASS( wxRichTextImageDialog )
DECLARE_DYNAMIC_CLASS( wxRichTextObjectPropertiesDialog )
DECLARE_EVENT_TABLE()
public:
/// Constructors
wxRichTextImageDialog();
wxRichTextImageDialog( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTIMAGEDIALOG_IDNAME, const wxString& caption = SYMBOL_WXRICHTEXTIMAGEDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTIMAGEDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTIMAGEDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTIMAGEDIALOG_STYLE );
wxRichTextObjectPropertiesDialog();
wxRichTextObjectPropertiesDialog( wxRichTextObject* obj, wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_IDNAME, const wxString& caption = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTIMAGEDIALOG_IDNAME, const wxString& caption = SYMBOL_WXRICHTEXTIMAGEDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTIMAGEDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTIMAGEDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTIMAGEDIALOG_STYLE );
bool Create( wxRichTextObject* obj, wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_IDNAME, const wxString& caption = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_STYLE );
/// Destructor
~wxRichTextImageDialog();
~wxRichTextObjectPropertiesDialog();
/// Initialises member variables
void Init();
@@ -66,77 +67,28 @@ public:
/// Creates the controls and sizers
void CreateControls();
/// Set the dimension into the value and units controls
void SetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl);
////@begin wxRichTextObjectPropertiesDialog event handler declarations
/// Get the dimension from the value and units controls
void GetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl);
////@end wxRichTextObjectPropertiesDialog event handler declarations
////@begin wxRichTextImageDialog event handler declarations
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTIMAGEDIALOG_PARA_UP
void OnRichtextimagedialogParaUpClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTIMAGEDIALOG_DOWN
void OnRichtextimagedialogDownClick( wxCommandEvent& event );
////@end wxRichTextImageDialog event handler declarations
////@begin wxRichTextImageDialog member function declarations
////@begin wxRichTextObjectPropertiesDialog member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end wxRichTextImageDialog member function declarations
////@end wxRichTextObjectPropertiesDialog member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
/// Set the image attribute
void SetImageAttr(const wxRichTextAttr& textAttr);
wxRichTextImage* ApplyImageAttr();
/// Set the anchored object
void SetImageObject(wxRichTextImage *image, wxRichTextBuffer* buffer);
virtual bool TransferDataFromWindow();
virtual bool TransferDataToWindow();
private:
/// Convert CM to MM
bool ConvertFromString(const wxString& string, int& ret, int scale);
private:
wxRichTextAttr m_textAttr;
////@begin wxRichTextImageDialog member variables
wxComboBox* m_float;
wxTextCtrl* m_width;
wxComboBox* m_unitsW;
wxTextCtrl* m_height;
wxComboBox* m_unitsH;
wxTextCtrl* m_offset;
wxComboBox* m_unitsOffset;
wxButton* m_saveButton;
wxButton* m_cancelButton;
////@begin wxRichTextObjectPropertiesDialog member variables
/// Control identifiers
enum {
ID_WXRICHTEXTIMAGEPAGE = 10015,
ID_RICHTEXTIMAGEDIALOG_FLOATING_MODE = 10017,
ID_RICHTEXTIMAGEDIALOG_WIDTH = 10018,
ID_RICHTEXTIMAGEDIALOG_UNITS_W = 10019,
ID_RICHTEXTIMAGEDIALOG_HEIGHT = 10020,
ID_RICHTEXTIMAGEDIALOG_UNITS_H = 10021,
ID_RICHTEXTIMAGEDIALOG_OFFSET = 10022,
ID_RICHTEXTIMAGEDIALOG_OFFSET_UNITS = 10023,
ID_RICHTEXTIMAGEDIALOG_PARA_UP = 10024,
ID_RICHTEXTIMAGEDIALOG_DOWN = 10025
ID_RICHTEXTOBJECTPROPERTIESDIALOG = 10650
};
////@end wxRichTextImageDialog member variables
wxRichTextBuffer* m_buffer;
wxRichTextObject* m_image;
wxRichTextObject* m_parent;
////@end wxRichTextObjectPropertiesDialog member variables
};
#endif

View File

@@ -16,6 +16,8 @@
* Includes
*/
#include "wx/richtext/richtextdialogpage.h"
////@begin includes
#include "wx/statline.h"
////@end includes
@@ -44,10 +46,11 @@ class wxRichTextCtrl;
* wxRichTextIndentsSpacingPage class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextIndentsSpacingPage: public wxPanel
class WXDLLIMPEXP_RICHTEXT wxRichTextIndentsSpacingPage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextIndentsSpacingPage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors

View File

@@ -16,6 +16,8 @@
* Includes
*/
#include "wx/richtext/richtextdialogpage.h"
////@begin includes
#include "wx/spinctrl.h"
#include "wx/notebook.h"
@@ -28,7 +30,7 @@
////@begin control identifiers
#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_TITLE wxT("")
#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_IDNAME ID_RICHTEXTLISTSTYLEPAGE
#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_POSITION wxDefaultPosition
@@ -38,10 +40,11 @@
* wxRichTextListStylePage class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextListStylePage: public wxPanel
class WXDLLIMPEXP_RICHTEXT wxRichTextListStylePage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextListStylePage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors

View File

@@ -0,0 +1,179 @@
/////////////////////////////////////////////////////////////////////////////
// Name: richtextmarginspage.h
// Purpose:
// Author: Julian Smart
// Modified by:
// Created: 20/10/2010 10:27:34
// RCS-ID:
// Copyright: (c) Julian Smart
// Licence:
/////////////////////////////////////////////////////////////////////////////
#ifndef _RICHTEXTMARGINSPAGE_H_
#define _RICHTEXTMARGINSPAGE_H_
/*!
* Includes
*/
#include "wx/richtext/richtextdialogpage.h"
////@begin includes
#include "wx/statline.h"
////@end includes
/*!
* Forward declarations
*/
////@begin forward declarations
////@end forward declarations
/*!
* Control identifiers
*/
////@begin control identifiers
#define SYMBOL_WXRICHTEXTMARGINSPAGE_STYLE wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTMARGINSPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTMARGINSPAGE_IDNAME ID_WXRICHTEXTMARGINSPAGE
#define SYMBOL_WXRICHTEXTMARGINSPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTMARGINSPAGE_POSITION wxDefaultPosition
////@end control identifiers
/*!
* wxRichTextMarginsPage class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextMarginsPage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextMarginsPage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors
wxRichTextMarginsPage();
wxRichTextMarginsPage( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTMARGINSPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTMARGINSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTMARGINSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTMARGINSPAGE_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTMARGINSPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTMARGINSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTMARGINSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTMARGINSPAGE_STYLE );
/// Destructor
~wxRichTextMarginsPage();
/// Initialises member variables
void Init();
/// Creates the controls and sizers
void CreateControls();
/// Gets the attributes from the formatting dialog
wxRichTextAttr* GetAttributes();
/// Data transfer
virtual bool TransferDataToWindow();
virtual bool TransferDataFromWindow();
////@begin wxRichTextMarginsPage event handler declarations
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT_MARGIN
void OnRichtextLeftMarginUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_RIGHT_MARGIN
void OnRichtextRightMarginUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_TOP_MARGIN
void OnRichtextTopMarginUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BOTTOM_MARGIN
void OnRichtextBottomMarginUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT_PADDING
void OnRichtextLeftPaddingUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_RIGHT_PADDING
void OnRichtextRightPaddingUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_TOP_PADDING
void OnRichtextTopPaddingUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BOTTOM_PADDING
void OnRichtextBottomPaddingUpdate( wxUpdateUIEvent& event );
////@end wxRichTextMarginsPage event handler declarations
////@begin wxRichTextMarginsPage member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end wxRichTextMarginsPage member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin wxRichTextMarginsPage member variables
wxCheckBox* m_leftMarginCheckbox;
wxTextCtrl* m_marginLeft;
wxComboBox* m_unitsMarginLeft;
wxCheckBox* m_rightMarginCheckbox;
wxTextCtrl* m_marginRight;
wxComboBox* m_unitsMarginRight;
wxCheckBox* m_topMarginCheckbox;
wxTextCtrl* m_marginTop;
wxComboBox* m_unitsMarginTop;
wxCheckBox* m_bottomMarginCheckbox;
wxTextCtrl* m_marginBottom;
wxComboBox* m_unitsMarginBottom;
wxCheckBox* m_leftPaddingCheckbox;
wxTextCtrl* m_paddingLeft;
wxComboBox* m_unitsPaddingLeft;
wxCheckBox* m_rightPaddingCheckbox;
wxTextCtrl* m_paddingRight;
wxComboBox* m_unitsPaddingRight;
wxCheckBox* m_topPaddingCheckbox;
wxTextCtrl* m_paddingTop;
wxComboBox* m_unitsPaddingTop;
wxCheckBox* m_bottomPaddingCheckbox;
wxTextCtrl* m_paddingBottom;
wxComboBox* m_unitsPaddingBottom;
/// Control identifiers
enum {
ID_WXRICHTEXTMARGINSPAGE = 10750,
ID_RICHTEXT_LEFT_MARGIN_CHECKBOX = 10751,
ID_RICHTEXT_LEFT_MARGIN = 10752,
ID_RICHTEXT_LEFT_MARGIN_UNITS = 10753,
ID_RICHTEXT_RIGHT_MARGIN_CHECKBOX = 10754,
ID_RICHTEXT_RIGHT_MARGIN = 10755,
ID_RICHTEXT_RIGHT_MARGIN_UNITS = 10756,
ID_RICHTEXT_TOP_MARGIN_CHECKBOX = 10757,
ID_RICHTEXT_TOP_MARGIN = 10758,
ID_RICHTEXT_TOP_MARGIN_UNITS = 10759,
ID_RICHTEXT_BOTTOM_MARGIN_CHECKBOX = 10760,
ID_RICHTEXT_BOTTOM_MARGIN = 10761,
ID_RICHTEXT_BOTTOM_MARGIN_UNITS = 10762,
ID_RICHTEXT_LEFT_PADDING_CHECKBOX = 10763,
ID_RICHTEXT_LEFT_PADDING = 10764,
ID_RICHTEXT_LEFT_PADDING_UNITS = 10765,
ID_RICHTEXT_RIGHT_PADDING_CHECKBOX = 10766,
ID_RICHTEXT_RIGHT_PADDING = 10767,
ID_RICHTEXT_RIGHT_PADDING_UNITS = 10768,
ID_RICHTEXT_TOP_PADDING_CHECKBOX = 10769,
ID_RICHTEXT_TOP_PADDING = 10770,
ID_RICHTEXT_TOP_PADDING_UNITS = 10771,
ID_RICHTEXT_BOTTOM_PADDING_CHECKBOX = 10772,
ID_RICHTEXT_BOTTOM_PADDING = 10773,
ID_RICHTEXT_BOTTOM_PADDING_UNITS = 10774
};
////@end wxRichTextMarginsPage member variables
bool m_ignoreUpdates;
};
#endif
// _RICHTEXTMARGINSPAGE_H_

View File

@@ -145,6 +145,7 @@ private:
int m_numPages;
wxArrayInt m_pageBreaksStart;
wxArrayInt m_pageBreaksEnd;
wxArrayInt m_pageYOffsets;
int m_marginLeft, m_marginTop, m_marginRight, m_marginBottom;
wxRichTextHeaderFooterData m_headerFooterData;

View File

@@ -0,0 +1,159 @@
/////////////////////////////////////////////////////////////////////////////
// Name: richtextsizepage.h
// Purpose:
// Author: Julian Smart
// Modified by:
// Created: 20/10/2010 10:23:24
// RCS-ID:
// Copyright: (c) Julian Smart
// Licence:
/////////////////////////////////////////////////////////////////////////////
#ifndef _RICHTEXTSIZEPAGE_H_
#define _RICHTEXTSIZEPAGE_H_
/*!
* Includes
*/
#include "wx/richtext/richtextdialogpage.h"
#include "wx/sizer.h"
////@begin includes
#include "wx/statline.h"
////@end includes
/*!
* Forward declarations
*/
/*!
* Control identifiers
*/
////@begin control identifiers
#define SYMBOL_WXRICHTEXTSIZEPAGE_STYLE wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTSIZEPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTSIZEPAGE_IDNAME ID_WXRICHTEXTSIZEPAGE
#define SYMBOL_WXRICHTEXTSIZEPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTSIZEPAGE_POSITION wxDefaultPosition
////@end control identifiers
/*!
* wxRichTextSizePage class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextSizePage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextSizePage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors
wxRichTextSizePage();
wxRichTextSizePage( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTSIZEPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTSIZEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSIZEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTSIZEPAGE_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTSIZEPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTSIZEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSIZEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTSIZEPAGE_STYLE );
/// Destructor
~wxRichTextSizePage();
/// Initialises member variables
void Init();
/// Creates the controls and sizers
void CreateControls();
/// Gets the attributes from the formatting dialog
wxRichTextAttr* GetAttributes();
/// Data transfer
virtual bool TransferDataToWindow();
virtual bool TransferDataFromWindow();
/// Show/hide position controls
void ShowPositionControls(bool show);
/// Show/hide floating controls
void ShowFloatingControls(bool show);
////@begin wxRichTextSizePage event handler declarations
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_WIDTH
void OnRichtextWidthUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_HEIGHT
void OnRichtextHeightUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX
void OnRichtextVerticalAlignmentComboboxUpdate( wxUpdateUIEvent& event );
/// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OFFSET
void OnRichtextOffsetUpdate( wxUpdateUIEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_PARA_UP
void OnRichtextParaUpClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_PARA_DOWN
void OnRichtextParaDownClick( wxCommandEvent& event );
////@end wxRichTextSizePage event handler declarations
////@begin wxRichTextSizePage member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end wxRichTextSizePage member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
////@begin wxRichTextSizePage member variables
wxBoxSizer* m_parentSizer;
wxBoxSizer* m_floatingControls;
wxComboBox* m_float;
wxCheckBox* m_widthCheckbox;
wxTextCtrl* m_width;
wxComboBox* m_unitsW;
wxCheckBox* m_heightCheckbox;
wxTextCtrl* m_height;
wxComboBox* m_unitsH;
wxBoxSizer* m_alignmentControls;
wxCheckBox* m_verticalAlignmentCheckbox;
wxComboBox* m_verticalAlignmentComboBox;
wxBoxSizer* m_positionControls;
wxBoxSizer* m_moveObjectParentSizer;
wxCheckBox* m_offsetYCheckbox;
wxTextCtrl* m_offset;
wxComboBox* m_unitsOffset;
wxBoxSizer* m_moveObjectSizer;
/// Control identifiers
enum {
ID_WXRICHTEXTSIZEPAGE = 10700,
ID_RICHTEXT_FLOATING_MODE = 10701,
ID_RICHTEXT_WIDTH_CHECKBOX = 10702,
ID_RICHTEXT_WIDTH = 10703,
ID_RICHTEXT_UNITS_W = 10704,
ID_RICHTEXT_HEIGHT_CHECKBOX = 10705,
ID_RICHTEXT_HEIGHT = 10706,
ID_RICHTEXT_UNITS_H = 10707,
ID_RICHTEXT_VERTICAL_ALIGNMENT_CHECKBOX = 10708,
ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX = 10709,
ID_RICHTEXT_OFFSET_CHECKBOX = 10710,
ID_RICHTEXT_OFFSET = 10711,
ID_RICHTEXT_OFFSET_UNITS = 10712,
ID_RICHTEXT_PARA_UP = 10713,
ID_RICHTEXT_PARA_DOWN = 10714
};
////@end wxRichTextSizePage member variables
};
#endif
// _RICHTEXTSIZEPAGE_H_

View File

@@ -16,6 +16,8 @@
* Includes
*/
#include "wx/richtext/richtextuicustomization.h"
////@begin includes
////@end includes
@@ -31,6 +33,7 @@
class wxBoxSizer;
class wxRichTextStyleListCtrl;
class wxRichTextCtrl;
class wxStdDialogButtonSizer;
////@end forward declarations
class WXDLLIMPEXP_FWD_CORE wxButton;
@@ -79,6 +82,7 @@ class WXDLLIMPEXP_RICHTEXT wxRichTextStyleOrganiserDialog: public wxDialog
{
DECLARE_DYNAMIC_CLASS( wxRichTextStyleOrganiserDialog )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors
@@ -207,6 +211,7 @@ public:
wxButton* m_closeButton;
wxBoxSizer* m_bottomButtonSizer;
wxCheckBox* m_restartNumberingCtrl;
wxStdDialogButtonSizer* m_stdButtonSizer;
wxButton* m_okButton;
wxButton* m_cancelButton;
/// Control identifiers

View File

@@ -12,13 +12,15 @@
#ifndef _RICHTEXTSTYLEPAGE_H_
#define _RICHTEXTSTYLEPAGE_H_
#include "wx/richtext/richtextdialogpage.h"
/*!
* Control identifiers
*/
////@begin control identifiers
#define SYMBOL_WXRICHTEXTSTYLEPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTSTYLEPAGE_TITLE wxT("")
#define SYMBOL_WXRICHTEXTSTYLEPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTSTYLEPAGE_IDNAME ID_RICHTEXTSTYLEPAGE
#define SYMBOL_WXRICHTEXTSTYLEPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTSTYLEPAGE_POSITION wxDefaultPosition
@@ -28,10 +30,11 @@
* wxRichTextStylePage class declaration
*/
class wxRichTextStylePage: public wxPanel
class WXDLLIMPEXP_RICHTEXT wxRichTextStylePage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextStylePage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors

View File

@@ -240,6 +240,40 @@ protected:
wxRichTextAttr m_levelStyles[10];
};
/*!
* wxRichTextBoxStyleDefinition class declaration, for box attributes in objects such as wxRichTextBox.
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextBoxStyleDefinition: public wxRichTextStyleDefinition
{
DECLARE_DYNAMIC_CLASS(wxRichTextBoxStyleDefinition)
public:
/// Copy constructor
wxRichTextBoxStyleDefinition(const wxRichTextBoxStyleDefinition& def) { Copy(def); }
/// Default constructor
wxRichTextBoxStyleDefinition(const wxString& name = wxEmptyString):
wxRichTextStyleDefinition(name) {}
// Destructor
virtual ~wxRichTextBoxStyleDefinition() {}
/// Copies from def
void Copy(const wxRichTextBoxStyleDefinition& def);
/// Assignment operator
void operator =(const wxRichTextBoxStyleDefinition& def) { Copy(def); }
/// Equality operator
bool operator ==(const wxRichTextBoxStyleDefinition& def) const;
/// Clones the object
virtual wxRichTextStyleDefinition* Clone() const { return new wxRichTextBoxStyleDefinition(*this); }
protected:
};
/*!
* The style sheet
*/
@@ -280,6 +314,9 @@ public:
/// Add a definition to the list style list
bool AddListStyle(wxRichTextListStyleDefinition* def);
/// Add a definition to the box style list
bool AddBoxStyle(wxRichTextBoxStyleDefinition* def);
/// Add a definition to the appropriate style list
bool AddStyle(wxRichTextStyleDefinition* def);
@@ -292,6 +329,9 @@ public:
/// Remove a list style
bool RemoveListStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_listStyleDefinitions, def, deleteStyle); }
/// Remove a box style
bool RemoveBoxStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_boxStyleDefinitions, def, deleteStyle); }
/// Remove a style
bool RemoveStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false);
@@ -304,6 +344,9 @@ public:
/// Find a list definition by name
wxRichTextListStyleDefinition* FindListStyle(const wxString& name, bool recurse = true) const { return (wxRichTextListStyleDefinition*) FindStyle(m_listStyleDefinitions, name, recurse); }
/// Find a box definition by name
wxRichTextBoxStyleDefinition* FindBoxStyle(const wxString& name, bool recurse = true) const { return (wxRichTextBoxStyleDefinition*) FindStyle(m_boxStyleDefinitions, name, recurse); }
/// Find any definition by name
wxRichTextStyleDefinition* FindStyle(const wxString& name, bool recurse = true) const;
@@ -316,6 +359,9 @@ public:
/// Return the number of list styles
size_t GetListStyleCount() const { return m_listStyleDefinitions.GetCount(); }
/// Return the number of box styles
size_t GetBoxStyleCount() const { return m_boxStyleDefinitions.GetCount(); }
/// Return the nth character style
wxRichTextCharacterStyleDefinition* GetCharacterStyle(size_t n) const { return (wxRichTextCharacterStyleDefinition*) m_characterStyleDefinitions.Item(n)->GetData(); }
@@ -325,6 +371,9 @@ public:
/// Return the nth list style
wxRichTextListStyleDefinition* GetListStyle(size_t n) const { return (wxRichTextListStyleDefinition*) m_listStyleDefinitions.Item(n)->GetData(); }
/// Return the nth box style
wxRichTextBoxStyleDefinition* GetBoxStyle(size_t n) const { return (wxRichTextBoxStyleDefinition*) m_boxStyleDefinitions.Item(n)->GetData(); }
/// Delete all styles
void DeleteStyles();
@@ -372,6 +421,7 @@ protected:
wxList m_characterStyleDefinitions;
wxList m_paragraphStyleDefinitions;
wxList m_listStyleDefinitions;
wxList m_boxStyleDefinitions;
wxRichTextStyleSheet* m_previousSheet;
wxRichTextStyleSheet* m_nextSheet;
@@ -395,7 +445,8 @@ public:
wxRICHTEXT_STYLE_ALL,
wxRICHTEXT_STYLE_PARAGRAPH,
wxRICHTEXT_STYLE_CHARACTER,
wxRICHTEXT_STYLE_LIST
wxRICHTEXT_STYLE_LIST,
wxRICHTEXT_STYLE_BOX
};
wxRichTextStyleListBox()

View File

@@ -16,6 +16,7 @@
* Includes
*/
#include "wx/richtext/richtextuicustomization.h"
#include "wx/dialog.h"
#include "wx/vscroll.h"
@@ -29,6 +30,7 @@ class WXDLLIMPEXP_FWD_CORE wxTextCtrl;
////@begin forward declarations
class wxSymbolListCtrl;
class wxStdDialogButtonSizer;
////@end forward declarations
// __UNICODE__ is a symbol used by DialogBlocks-generated code.
@@ -56,6 +58,7 @@ class WXDLLIMPEXP_RICHTEXT wxSymbolPickerDialog: public wxDialog
{
DECLARE_DYNAMIC_CLASS( wxSymbolPickerDialog )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors
@@ -158,6 +161,7 @@ public:
#if defined(__UNICODE__)
wxComboBox* m_fromUnicodeCtrl;
#endif
wxStdDialogButtonSizer* m_stdButtonSizer;
wxString m_fontName;
wxString m_symbol;
bool m_fromUnicode;

View File

@@ -16,6 +16,8 @@
* Includes
*/
#include "wx/richtext/richtextdialogpage.h"
////@begin includes
////@end includes
@@ -32,7 +34,7 @@
////@begin control identifiers
#define SYMBOL_WXRICHTEXTTABSPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL
#define SYMBOL_WXRICHTEXTTABSPAGE_TITLE wxT("")
#define SYMBOL_WXRICHTEXTTABSPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTTABSPAGE_IDNAME ID_RICHTEXTTABSPAGE
#define SYMBOL_WXRICHTEXTTABSPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTTABSPAGE_POSITION wxDefaultPosition
@@ -42,10 +44,11 @@
* wxRichTextTabsPage class declaration
*/
class WXDLLIMPEXP_RICHTEXT wxRichTextTabsPage: public wxPanel
class WXDLLIMPEXP_RICHTEXT wxRichTextTabsPage: public wxRichTextDialogPage
{
DECLARE_DYNAMIC_CLASS( wxRichTextTabsPage )
DECLARE_EVENT_TABLE()
DECLARE_HELP_PROVISION()
public:
/// Constructors

View File

@@ -0,0 +1,123 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/richtext/richtextuicustomization.h
// Purpose: UI customization base class for wxRTC
// Author: Julian Smart
// Modified by:
// Created: 2010-11-14
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_RICHTEXTUICUSTOMIZATION_H_
#define _WX_RICHTEXTUICUSTOMIZATION_H_
#if wxUSE_RICHTEXT
/**
@class wxRichTextUICustomization
The base class for functionality to plug in to various rich text control dialogs,
currently allowing the application to respond to Help button clicks without the
need to derive new dialog classes.
The application will typically have calls like this in its initialisation:
wxRichTextFormattingDialog::SetHelpId(ID_HELP_FORMATTINGDIALOG);
wxRichTextFormattingDialog::SetUICustomization(& wxGetApp().GetRichTextUICustomization());
wxRichTextBordersPage::SetHelpId(ID_HELP_BORDERSPAGE);
Only the wxRichTextFormattingDialog class needs to have its customization object and help id set,
though the application set them for individual pages if it wants.
**/
class WXDLLIMPEXP_RICHTEXT wxRichTextUICustomization
{
public:
wxRichTextUICustomization() {}
virtual ~wxRichTextUICustomization() {}
/// Show the help given the current active window, and a help topic id.
virtual bool ShowHelp(wxWindow* win, long id) = 0;
};
/**
@class wxRichTextHelpInfo
This class is used as a static member of dialogs, to store the help topic for the dialog
and also the customization object that will allow help to be shown appropriately for the application.
**/
class WXDLLIMPEXP_RICHTEXT wxRichTextHelpInfo
{
public:
wxRichTextHelpInfo()
{
m_helpTopic = -1;
m_uiCustomization = NULL;
}
virtual ~wxRichTextHelpInfo() {}
virtual bool ShowHelp(wxWindow* win)
{
if (m_uiCustomization && m_helpTopic != -1)
return m_uiCustomization->ShowHelp(win, m_helpTopic);
else
return false;
}
/// Get the help topic identifier.
long GetHelpId() const { return m_helpTopic; }
/// Set the help topic identifier.
void SetHelpId(long id) { m_helpTopic = id; }
/// Get the UI customization object.
wxRichTextUICustomization* GetUICustomization() const { return m_uiCustomization; }
/// Set the UI customization object.
void SetUICustomization(wxRichTextUICustomization* customization) { m_uiCustomization = customization; }
/// Is there a valid help topic id?
bool HasHelpId() const { return m_helpTopic != -1; }
/// Is there a valid customization object?
bool HasUICustomization() const { return m_uiCustomization != NULL; }
protected:
wxRichTextUICustomization* m_uiCustomization;
long m_helpTopic;
};
/// Add this to the base class of dialogs
#define DECLARE_BASE_CLASS_HELP_PROVISION() \
virtual long GetHelpId() const = 0; \
virtual wxRichTextUICustomization* GetUICustomization() const = 0; \
virtual bool ShowHelp(wxWindow* win) = 0;
/// A macro to make it easy to add help topic provision and UI customization
/// to a class. Optionally, add virtual functions to a base class
/// using DECLARE_BASE_CLASS_HELP_PROVISION. This means that the formatting dialog
/// can obtain help topics from its individual pages without needing
/// to know in advance what page classes are being used, allowing for extension
/// of the formatting dialog.
#define DECLARE_HELP_PROVISION() \
virtual long GetHelpId() const { return sm_helpInfo.GetHelpId(); } \
virtual void SetHelpId(long id) { sm_helpInfo.SetHelpId(id); } \
virtual wxRichTextUICustomization* GetUICustomization() const { return sm_helpInfo.GetUICustomization(); } \
virtual void SetUICustomization(wxRichTextUICustomization* customization) { sm_helpInfo.SetUICustomization(customization); } \
virtual bool ShowHelp(wxWindow* win) { return sm_helpInfo.ShowHelp(win); } \
protected: \
static wxRichTextHelpInfo sm_helpInfo; \
public:
/// Add this to the implementation file for each dialog that needs help provision.
#define IMPLEMENT_HELP_PROVISION(theClass) \
wxRichTextHelpInfo theClass::sm_helpInfo;
#endif
// wxUSE_RICHTEXT
#endif
// _WX_RICHTEXTUICUSTOMIZATION_H_

View File

@@ -94,6 +94,7 @@ public:
wxString GetNodeContent(wxXmlNode *node);
wxString GetParamValue(wxXmlNode *node, const wxString& param);
wxString GetText(wxXmlNode *node, const wxString& param = wxEmptyString, bool translate = false);
static wxXmlNode* FindNode(wxXmlNode* node, const wxString& name);
protected:
#if wxUSE_STREAMS

View File

@@ -719,6 +719,8 @@ MyFrame::MyFrame(const wxString& title, wxWindowID id, const wxPoint& pos,
m_richTextCtrl->SetFont(font);
m_richTextCtrl->SetMargins(10, 10);
m_richTextCtrl->SetStyleSheet(wxGetApp().GetStyleSheet());
combo->SetStyleSheet(wxGetApp().GetStyleSheet());
@@ -757,6 +759,7 @@ void MyFrame::WriteInitialText()
r.Freeze();
#if 1
r.BeginParagraphSpacing(0, 20);
r.BeginAlignment(wxTEXT_ALIGNMENT_CENTRE);
@@ -950,7 +953,69 @@ void MyFrame::WriteInitialText()
r.WriteText(wxT("Note: this sample content was generated programmatically from within the MyFrame constructor in the demo. The images were loaded from inline XPMs. Enjoy wxRichTextCtrl!\n"));
r.EndParagraphSpacing();
#endif
#if 1
{
// Add a text box
r.Newline();
wxRichTextAttr attr;
attr.GetTextBoxAttr().GetMargins().GetLeft().SetValue(20, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetMargins().GetTop().SetValue(20, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetMargins().GetRight().SetValue(20, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetMargins().GetBottom().SetValue(20, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetBorder().SetColour(*wxBLACK);
attr.GetTextBoxAttr().GetBorder().SetWidth(1, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetBorder().SetStyle(wxTEXT_BOX_ATTR_BORDER_SOLID);
wxRichTextBox* textBox = r.WriteTextBox(attr);
r.SetFocusObject(textBox);
r.WriteText(wxT("This is a text box. Just testing! Once more unto the breach, dear friends, once more..."));
r.SetFocusObject(NULL); // Set the focus back to the main buffer
r.SetInsertionPointEnd();
}
#endif
#if 1
{
// Add a table
r.Newline();
wxRichTextAttr attr;
attr.GetTextBoxAttr().GetMargins().GetLeft().SetValue(5, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetMargins().GetTop().SetValue(5, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetMargins().GetRight().SetValue(5, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetMargins().GetBottom().SetValue(5, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetPadding() = attr.GetTextBoxAttr().GetMargins();
attr.GetTextBoxAttr().GetBorder().SetColour(*wxBLACK);
attr.GetTextBoxAttr().GetBorder().SetWidth(1, wxTEXT_ATTR_UNITS_PIXELS);
attr.GetTextBoxAttr().GetBorder().SetStyle(wxTEXT_BOX_ATTR_BORDER_SOLID);
wxRichTextAttr cellAttr = attr;
cellAttr.GetTextBoxAttr().GetWidth().SetValue(200, wxTEXT_ATTR_UNITS_PIXELS);
cellAttr.GetTextBoxAttr().GetHeight().SetValue(150, wxTEXT_ATTR_UNITS_PIXELS);
wxRichTextTable* table = r.WriteTable(3, 2, attr, cellAttr);
int i, j;
for (j = 0; j < table->GetRowCount(); j++)
{
for (i = 0; i < table->GetColumnCount(); i++)
{
wxString msg = wxString::Format(wxT("This is cell %d, %d"), (j+1), (i+1));
r.SetFocusObject(table->GetCell(j, i));
r.WriteText(msg);
}
}
r.SetFocusObject(NULL); // Set the focus back to the main buffer
r.SetInsertionPointEnd();
}
#endif
r.Thaw();
r.EndSuppressUndo();
@@ -1199,15 +1264,14 @@ void MyFrame::OnImage(wxCommandEvent& WXUNUSED(event))
range = m_richTextCtrl->GetSelectionRange();
wxASSERT(range.ToInternal().GetLength() == 1);
wxRichTextImage* image = wxDynamicCast(m_richTextCtrl->GetBuffer().GetLeafObjectAtPosition(range.GetStart()), wxRichTextImage);
wxRichTextImage* image = wxDynamicCast(m_richTextCtrl->GetFocusObject()->GetLeafObjectAtPosition(range.GetStart()), wxRichTextImage);
if (image)
{
wxRichTextImageDialog imageDlg(this);
imageDlg.SetImageObject(image, &m_richTextCtrl->GetBuffer());
wxRichTextObjectPropertiesDialog imageDlg(image, this);
if (imageDlg.ShowModal() == wxID_OK)
{
image = imageDlg.ApplyImageAttr();
imageDlg.ApplyStyle(m_richTextCtrl);
}
}
}
@@ -1263,7 +1327,7 @@ void MyFrame::OnUpdateImage(wxUpdateUIEvent& event)
range = m_richTextCtrl->GetSelectionRange();
if (range.ToInternal().GetLength() == 1)
{
obj = m_richTextCtrl->GetBuffer().GetLeafObjectAtPosition(range.GetStart());
obj = m_richTextCtrl->GetFocusObject()->GetLeafObjectAtPosition(range.GetStart());
if (obj && obj->IsKindOf(CLASSINFO(wxRichTextImage)))
{
event.Enable(true);

View File

@@ -0,0 +1,239 @@
/////////////////////////////////////////////////////////////////////////////
// Name: richtextbackgroundpage.cpp
// Purpose:
// Author: Julian Smart
// Modified by:
// Created: 13/11/2010 11:17:25
// RCS-ID:
// Copyright: (c) Julian Smart
// Licence: wxWindows Licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
////@begin includes
////@end includes
#include "wx/richtext/richtextbackgroundpage.h"
#include "wx/richtext/richtextformatdlg.h"
////@begin XPM images
////@end XPM images
/*!
* wxRichTextBackgroundPage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextBackgroundPage, wxRichTextDialogPage )
/*!
* wxRichTextBackgroundPage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextBackgroundPage, wxRichTextDialogPage )
EVT_BUTTON(ID_RICHTEXT_BACKGROUND_COLOUR_SWATCH, wxRichTextBackgroundPage::OnColourSwatch)
////@begin wxRichTextBackgroundPage event table entries
////@end wxRichTextBackgroundPage event table entries
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextBackgroundPage)
/*!
* wxRichTextBackgroundPage constructors
*/
wxRichTextBackgroundPage::wxRichTextBackgroundPage()
{
Init();
}
wxRichTextBackgroundPage::wxRichTextBackgroundPage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
Init();
Create(parent, id, pos, size, style);
}
/*!
* wxRichTextBackgroundPage creator
*/
bool wxRichTextBackgroundPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextBackgroundPage creation
SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
Centre();
////@end wxRichTextBackgroundPage creation
return true;
}
/*!
* wxRichTextBackgroundPage destructor
*/
wxRichTextBackgroundPage::~wxRichTextBackgroundPage()
{
////@begin wxRichTextBackgroundPage destruction
////@end wxRichTextBackgroundPage destruction
}
/*!
* Member initialisation
*/
void wxRichTextBackgroundPage::Init()
{
////@begin wxRichTextBackgroundPage member initialisation
m_backgroundColourCheckBox = NULL;
m_backgroundColourSwatch = NULL;
////@end wxRichTextBackgroundPage member initialisation
}
/*!
* Control creation for wxRichTextBackgroundPage
*/
void wxRichTextBackgroundPage::CreateControls()
{
////@begin wxRichTextBackgroundPage content construction
wxRichTextBackgroundPage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW, 5);
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW, 5);
wxStaticText* itemStaticText5 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Background"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText5->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer4->Add(itemStaticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine6 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer4->Add(itemStaticLine6, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer7 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer7, 0, wxGROW, 5);
itemBoxSizer7->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_backgroundColourCheckBox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_BACKGROUND_COLOUR_CHECKBOX, _("Background &colour:"), wxDefaultPosition, wxDefaultSize, 0 );
m_backgroundColourCheckBox->SetValue(false);
m_backgroundColourCheckBox->SetHelpText(_("Enables a background colour."));
if (wxRichTextBackgroundPage::ShowToolTips())
m_backgroundColourCheckBox->SetToolTip(_("Enables a background colour."));
itemBoxSizer7->Add(m_backgroundColourCheckBox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_backgroundColourSwatch = new wxRichTextColourSwatchCtrl( itemRichTextDialogPage1, ID_RICHTEXT_BACKGROUND_COLOUR_SWATCH, wxDefaultPosition, wxSize(80, 20), wxBORDER_THEME );
m_backgroundColourSwatch->SetHelpText(_("The background colour."));
if (wxRichTextBackgroundPage::ShowToolTips())
m_backgroundColourSwatch->SetToolTip(_("The background colour."));
itemBoxSizer7->Add(m_backgroundColourSwatch, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
////@end wxRichTextBackgroundPage content construction
}
/*!
* Should we show tooltips?
*/
wxRichTextAttr* wxRichTextBackgroundPage::GetAttributes()
{
return wxRichTextFormattingDialog::GetDialogAttributes(this);
}
bool wxRichTextBackgroundPage::TransferDataToWindow()
{
wxRichTextAttr* attr = GetAttributes();
if (!attr->HasBackgroundColour())
{
m_backgroundColourCheckBox->SetValue(false);
m_backgroundColourSwatch->SetColour(*wxWHITE);
}
else
{
m_backgroundColourCheckBox->SetValue(true);
m_backgroundColourSwatch->SetColour(attr->GetBackgroundColour());
}
return true;
}
bool wxRichTextBackgroundPage::TransferDataFromWindow()
{
wxRichTextAttr* attr = GetAttributes();
if (m_backgroundColourCheckBox->GetValue())
{
attr->SetBackgroundColour(m_backgroundColourSwatch->GetColour());
}
else
{
attr->SetFlags(attr->GetFlags() & ~wxTEXT_ATTR_BACKGROUND_COLOUR);
}
return true;
}
// Respond to colour swatch click
void wxRichTextBackgroundPage::OnColourSwatch(wxCommandEvent& event)
{
m_backgroundColourCheckBox->SetValue(true);
event.Skip();
}
bool wxRichTextBackgroundPage::ShowToolTips()
{
return true;
}
/*!
* Get bitmap resources
*/
wxBitmap wxRichTextBackgroundPage::GetBitmapResource( const wxString& name )
{
// Bitmap retrieval
////@begin wxRichTextBackgroundPage bitmap retrieval
wxUnusedVar(name);
return wxNullBitmap;
////@end wxRichTextBackgroundPage bitmap retrieval
}
/*!
* Get icon resources
*/
wxIcon wxRichTextBackgroundPage::GetIconResource( const wxString& name )
{
// Icon retrieval
////@begin wxRichTextBackgroundPage icon retrieval
wxUnusedVar(name);
return wxNullIcon;
////@end wxRichTextBackgroundPage icon retrieval
}

View File

@@ -0,0 +1,923 @@
/////////////////////////////////////////////////////////////////////////////
// Name: richtextborderspage.cpp
// Purpose:
// Author: Julian Smart
// Modified by:
// Created: 21/10/2010 11:34:24
// RCS-ID:
// Copyright: (c) Julian Smart
// Licence:
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
////@begin includes
#include "wx/imaglist.h"
////@end includes
#include "wx/richtext/richtextborderspage.h"
////@begin XPM images
////@end XPM images
/*!
* wxRichTextBordersPage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextBordersPage, wxRichTextDialogPage )
/*!
* wxRichTextBordersPage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextBordersPage, wxRichTextDialogPage )
EVT_CHECKBOX(wxID_ANY, wxRichTextBordersPage::OnCommand)
EVT_TEXT(wxID_ANY, wxRichTextBordersPage::OnCommand)
EVT_TEXT_ENTER(wxID_ANY, wxRichTextBordersPage::OnCommand)
EVT_COMBOBOX(wxID_ANY, wxRichTextBordersPage::OnCommand)
EVT_BUTTON(wxID_ANY, wxRichTextBordersPage::OnCommand)
////@begin wxRichTextBordersPage event table entries
EVT_CHECKBOX( ID_RICHTEXT_BORDER_LEFT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_UNITS, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_STYLE, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_LEFT_COLOUR, wxRichTextBordersPage::OnRichtextBorderLeftUpdate )
EVT_CHECKBOX( ID_RICHTEXT_BORDER_RIGHT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT, wxRichTextBordersPage::OnRichtextBorderRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_UNITS, wxRichTextBordersPage::OnRichtextBorderRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_STYLE, wxRichTextBordersPage::OnRichtextBorderRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_RIGHT_COLOUR, wxRichTextBordersPage::OnRichtextBorderRightUpdate )
EVT_CHECKBOX( ID_RICHTEXT_BORDER_TOP_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP, wxRichTextBordersPage::OnRichtextBorderTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_UNITS, wxRichTextBordersPage::OnRichtextBorderTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_STYLE, wxRichTextBordersPage::OnRichtextBorderTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_TOP_COLOUR, wxRichTextBordersPage::OnRichtextBorderTopUpdate )
EVT_CHECKBOX( ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM, wxRichTextBordersPage::OnRichtextBorderBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_UNITS, wxRichTextBordersPage::OnRichtextBorderBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_STYLE, wxRichTextBordersPage::OnRichtextBorderBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BORDER_BOTTOM_COLOUR, wxRichTextBordersPage::OnRichtextBorderBottomUpdate )
EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_UNITS, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_STYLE, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_LEFT_COLOUR, wxRichTextBordersPage::OnRichtextOutlineLeftUpdate )
EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT, wxRichTextBordersPage::OnRichtextOutlineRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_UNITS, wxRichTextBordersPage::OnRichtextOutlineRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_STYLE, wxRichTextBordersPage::OnRichtextOutlineRightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_RIGHT_COLOUR, wxRichTextBordersPage::OnRichtextOutlineRightUpdate )
EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_TOP_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP, wxRichTextBordersPage::OnRichtextOutlineTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_UNITS, wxRichTextBordersPage::OnRichtextOutlineTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_STYLE, wxRichTextBordersPage::OnRichtextOutlineTopUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_TOP_COLOUR, wxRichTextBordersPage::OnRichtextOutlineTopUpdate )
EVT_CHECKBOX( ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX, wxRichTextBordersPage::OnRichtextBorderCheckboxClick )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_UNITS, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_STYLE, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OUTLINE_BOTTOM_COLOUR, wxRichTextBordersPage::OnRichtextOutlineBottomUpdate )
////@end wxRichTextBordersPage event table entries
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextBordersPage)
/*!
* wxRichTextBordersPage constructors
*/
wxRichTextBordersPage::wxRichTextBordersPage()
{
Init();
}
wxRichTextBordersPage::wxRichTextBordersPage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
Init();
Create(parent, id, pos, size, style);
}
/*!
* wxRichTextBordersPage creator
*/
bool wxRichTextBordersPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextBordersPage creation
SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
Centre();
////@end wxRichTextBordersPage creation
return true;
}
/*!
* wxRichTextBordersPage destructor
*/
wxRichTextBordersPage::~wxRichTextBordersPage()
{
////@begin wxRichTextBordersPage destruction
////@end wxRichTextBordersPage destruction
}
/*!
* Member initialisation
*/
void wxRichTextBordersPage::Init()
{
m_ignoreUpdates = false;
////@begin wxRichTextBordersPage member initialisation
m_leftBorderCheckbox = NULL;
m_leftBorderWidth = NULL;
m_leftBorderWidthUnits = NULL;
m_leftBorderStyle = NULL;
m_leftBorderColour = NULL;
m_rightBorderCheckbox = NULL;
m_rightBorderWidth = NULL;
m_rightBorderWidthUnits = NULL;
m_rightBorderStyle = NULL;
m_rightBorderColour = NULL;
m_topBorderCheckbox = NULL;
m_topBorderWidth = NULL;
m_topBorderWidthUnits = NULL;
m_topBorderStyle = NULL;
m_topBorderColour = NULL;
m_bottomBorderCheckbox = NULL;
m_bottomBorderWidth = NULL;
m_bottomBorderWidthUnits = NULL;
m_bottomBorderStyle = NULL;
m_bottomBorderColour = NULL;
m_leftOutlineCheckbox = NULL;
m_leftOutlineWidth = NULL;
m_leftOutlineWidthUnits = NULL;
m_leftOutlineStyle = NULL;
m_leftOutlineColour = NULL;
m_rightOutlineCheckbox = NULL;
m_rightOutlineWidth = NULL;
m_rightOutlineWidthUnits = NULL;
m_rightOutlineStyle = NULL;
m_rightOutlineColour = NULL;
m_topOutlineCheckbox = NULL;
m_topOutlineWidth = NULL;
m_topOutlineWidthUnits = NULL;
m_topOutlineStyle = NULL;
m_topOutlineColour = NULL;
m_bottomOutlineCheckbox = NULL;
m_bottomOutlineWidth = NULL;
m_bottomOutlineWidthUnits = NULL;
m_bottomOutlineStyle = NULL;
m_bottomOutlineColour = NULL;
m_borderPreviewCtrl = NULL;
////@end wxRichTextBordersPage member initialisation
}
/*!
* Control creation for wxRichTextBordersPage
*/
void wxRichTextBordersPage::CreateControls()
{
////@begin wxRichTextBordersPage content construction
wxRichTextBordersPage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
wxNotebook* itemNotebook4 = new wxNotebook( itemRichTextDialogPage1, ID_RICHTEXTBORDERSPAGE_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxBK_DEFAULT );
wxPanel* itemPanel5 = new wxPanel( itemNotebook4, ID_RICHTEXTBORDERSPAGE_BORDERS, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
itemPanel5->SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
wxBoxSizer* itemBoxSizer6 = new wxBoxSizer(wxVERTICAL);
itemPanel5->SetSizer(itemBoxSizer6);
wxBoxSizer* itemBoxSizer7 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer6->Add(itemBoxSizer7, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer7->Add(itemBoxSizer8, 0, wxGROW, 5);
wxStaticText* itemStaticText9 = new wxStaticText( itemPanel5, wxID_STATIC, _("Border"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText9->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer8->Add(itemStaticText9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine10 = new wxStaticLine( itemPanel5, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer8->Add(itemStaticLine10, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer7->Add(itemBoxSizer11, 0, wxGROW, 5);
itemBoxSizer11->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer13 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer11->Add(itemFlexGridSizer13, 0, wxGROW, 5);
m_leftBorderCheckbox = new wxCheckBox( itemPanel5, ID_RICHTEXT_BORDER_LEFT_CHECKBOX, _("&Left:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_leftBorderCheckbox->SetValue(false);
itemFlexGridSizer13->Add(m_leftBorderCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer13->Add(itemBoxSizer15, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_leftBorderWidth = new wxTextCtrl( itemPanel5, ID_RICHTEXT_BORDER_LEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer15->Add(m_leftBorderWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_leftBorderWidthUnitsStrings;
m_leftBorderWidthUnitsStrings.Add(_("px"));
m_leftBorderWidthUnitsStrings.Add(_("cm"));
m_leftBorderWidthUnits = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_LEFT_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_leftBorderWidthUnitsStrings, wxCB_READONLY );
m_leftBorderWidthUnits->SetStringSelection(_("px"));
m_leftBorderWidthUnits->SetHelpText(_("Units for the left border width."));
if (wxRichTextBordersPage::ShowToolTips())
m_leftBorderWidthUnits->SetToolTip(_("Units for the left border width."));
itemBoxSizer15->Add(m_leftBorderWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer15->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_leftBorderStyleStrings;
m_leftBorderStyle = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_LEFT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_leftBorderStyleStrings, wxCB_READONLY );
itemBoxSizer15->Add(m_leftBorderStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer15->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_leftBorderColour = new wxRichTextColourSwatchCtrl( itemPanel5, ID_RICHTEXT_BORDER_LEFT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer15->Add(m_leftBorderColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_rightBorderCheckbox = new wxCheckBox( itemPanel5, ID_RICHTEXT_BORDER_RIGHT_CHECKBOX, _("&Right:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_rightBorderCheckbox->SetValue(false);
itemFlexGridSizer13->Add(m_rightBorderCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer23 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer13->Add(itemBoxSizer23, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_rightBorderWidth = new wxTextCtrl( itemPanel5, ID_RICHTEXT_BORDER_RIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer23->Add(m_rightBorderWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_rightBorderWidthUnitsStrings;
m_rightBorderWidthUnitsStrings.Add(_("px"));
m_rightBorderWidthUnitsStrings.Add(_("cm"));
m_rightBorderWidthUnits = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_RIGHT_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_rightBorderWidthUnitsStrings, wxCB_READONLY );
m_rightBorderWidthUnits->SetStringSelection(_("px"));
m_rightBorderWidthUnits->SetHelpText(_("Units for the right border width."));
if (wxRichTextBordersPage::ShowToolTips())
m_rightBorderWidthUnits->SetToolTip(_("Units for the right border width."));
itemBoxSizer23->Add(m_rightBorderWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer23->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_rightBorderStyleStrings;
m_rightBorderStyle = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_RIGHT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_rightBorderStyleStrings, wxCB_READONLY );
itemBoxSizer23->Add(m_rightBorderStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer23->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_rightBorderColour = new wxRichTextColourSwatchCtrl( itemPanel5, ID_RICHTEXT_BORDER_RIGHT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer23->Add(m_rightBorderColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_topBorderCheckbox = new wxCheckBox( itemPanel5, ID_RICHTEXT_BORDER_TOP_CHECKBOX, _("&Top:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_topBorderCheckbox->SetValue(false);
itemFlexGridSizer13->Add(m_topBorderCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer31 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer13->Add(itemBoxSizer31, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_topBorderWidth = new wxTextCtrl( itemPanel5, ID_RICHTEXT_BORDER_TOP, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer31->Add(m_topBorderWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_topBorderWidthUnitsStrings;
m_topBorderWidthUnitsStrings.Add(_("px"));
m_topBorderWidthUnitsStrings.Add(_("cm"));
m_topBorderWidthUnits = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_TOP_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_topBorderWidthUnitsStrings, wxCB_READONLY );
m_topBorderWidthUnits->SetStringSelection(_("px"));
m_topBorderWidthUnits->SetHelpText(_("Units for the top border width."));
if (wxRichTextBordersPage::ShowToolTips())
m_topBorderWidthUnits->SetToolTip(_("Units for the top border width."));
itemBoxSizer31->Add(m_topBorderWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer31->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_topBorderStyleStrings;
m_topBorderStyle = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_TOP_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_topBorderStyleStrings, wxCB_READONLY );
itemBoxSizer31->Add(m_topBorderStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer31->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_topBorderColour = new wxRichTextColourSwatchCtrl( itemPanel5, ID_RICHTEXT_BORDER_TOP_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer31->Add(m_topBorderColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_bottomBorderCheckbox = new wxCheckBox( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX, _("&Bottom:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_bottomBorderCheckbox->SetValue(false);
itemFlexGridSizer13->Add(m_bottomBorderCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer39 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer13->Add(itemBoxSizer39, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_bottomBorderWidth = new wxTextCtrl( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer39->Add(m_bottomBorderWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_bottomBorderWidthUnitsStrings;
m_bottomBorderWidthUnitsStrings.Add(_("px"));
m_bottomBorderWidthUnitsStrings.Add(_("cm"));
m_bottomBorderWidthUnits = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_bottomBorderWidthUnitsStrings, wxCB_READONLY );
m_bottomBorderWidthUnits->SetStringSelection(_("px"));
m_bottomBorderWidthUnits->SetHelpText(_("Units for the bottom border width."));
if (wxRichTextBordersPage::ShowToolTips())
m_bottomBorderWidthUnits->SetToolTip(_("Units for the bottom border width."));
itemBoxSizer39->Add(m_bottomBorderWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer39->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_bottomBorderStyleStrings;
m_bottomBorderStyle = new wxComboBox( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_bottomBorderStyleStrings, wxCB_READONLY );
itemBoxSizer39->Add(m_bottomBorderStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer39->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_bottomBorderColour = new wxRichTextColourSwatchCtrl( itemPanel5, ID_RICHTEXT_BORDER_BOTTOM_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer39->Add(m_bottomBorderColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemNotebook4->AddPage(itemPanel5, _("Border"));
wxPanel* itemPanel46 = new wxPanel( itemNotebook4, ID_RICHTEXTBORDERSPAGE_OUTLINE, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL );
itemPanel46->SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
wxBoxSizer* itemBoxSizer47 = new wxBoxSizer(wxVERTICAL);
itemPanel46->SetSizer(itemBoxSizer47);
wxBoxSizer* itemBoxSizer48 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer47->Add(itemBoxSizer48, 0, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer49 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer48->Add(itemBoxSizer49, 0, wxGROW, 5);
wxStaticText* itemStaticText50 = new wxStaticText( itemPanel46, wxID_STATIC, _("Outline"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText50->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer49->Add(itemStaticText50, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine51 = new wxStaticLine( itemPanel46, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer49->Add(itemStaticLine51, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer52 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer48->Add(itemBoxSizer52, 0, wxGROW, 5);
itemBoxSizer52->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer54 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer52->Add(itemFlexGridSizer54, 0, wxGROW, 5);
m_leftOutlineCheckbox = new wxCheckBox( itemPanel46, ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX, _("&Left:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_leftOutlineCheckbox->SetValue(false);
itemFlexGridSizer54->Add(m_leftOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer56 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer54->Add(itemBoxSizer56, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_leftOutlineWidth = new wxTextCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_LEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer56->Add(m_leftOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_leftOutlineWidthUnitsStrings;
m_leftOutlineWidthUnitsStrings.Add(_("px"));
m_leftOutlineWidthUnitsStrings.Add(_("cm"));
m_leftOutlineWidthUnits = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_LEFT_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_leftOutlineWidthUnitsStrings, wxCB_READONLY );
m_leftOutlineWidthUnits->SetStringSelection(_("px"));
m_leftOutlineWidthUnits->SetHelpText(_("Units for the left outline width."));
if (wxRichTextBordersPage::ShowToolTips())
m_leftOutlineWidthUnits->SetToolTip(_("Units for the left outline width."));
itemBoxSizer56->Add(m_leftOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer56->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_leftOutlineStyleStrings;
m_leftOutlineStyle = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_LEFT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_leftOutlineStyleStrings, wxCB_READONLY );
itemBoxSizer56->Add(m_leftOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer56->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_leftOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_LEFT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer56->Add(m_leftOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_rightOutlineCheckbox = new wxCheckBox( itemPanel46, ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX, _("&Right:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_rightOutlineCheckbox->SetValue(false);
itemFlexGridSizer54->Add(m_rightOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer64 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer54->Add(itemBoxSizer64, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_rightOutlineWidth = new wxTextCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_RIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer64->Add(m_rightOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_rightOutlineWidthUnitsStrings;
m_rightOutlineWidthUnitsStrings.Add(_("px"));
m_rightOutlineWidthUnitsStrings.Add(_("cm"));
m_rightOutlineWidthUnits = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_RIGHT_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_rightOutlineWidthUnitsStrings, wxCB_READONLY );
m_rightOutlineWidthUnits->SetStringSelection(_("px"));
m_rightOutlineWidthUnits->SetHelpText(_("Units for the right outline width."));
if (wxRichTextBordersPage::ShowToolTips())
m_rightOutlineWidthUnits->SetToolTip(_("Units for the right outline width."));
itemBoxSizer64->Add(m_rightOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer64->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_rightOutlineStyleStrings;
m_rightOutlineStyle = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_RIGHT_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_rightOutlineStyleStrings, wxCB_READONLY );
itemBoxSizer64->Add(m_rightOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer64->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_rightOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_RIGHT_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer64->Add(m_rightOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_topOutlineCheckbox = new wxCheckBox( itemPanel46, ID_RICHTEXT_OUTLINE_TOP_CHECKBOX, _("&Top:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_topOutlineCheckbox->SetValue(false);
itemFlexGridSizer54->Add(m_topOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer72 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer54->Add(itemBoxSizer72, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_topOutlineWidth = new wxTextCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_TOP, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer72->Add(m_topOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_topOutlineWidthUnitsStrings;
m_topOutlineWidthUnitsStrings.Add(_("px"));
m_topOutlineWidthUnitsStrings.Add(_("cm"));
m_topOutlineWidthUnits = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_TOP_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_topOutlineWidthUnitsStrings, wxCB_READONLY );
m_topOutlineWidthUnits->SetStringSelection(_("px"));
m_topOutlineWidthUnits->SetHelpText(_("Units for the top outline width."));
if (wxRichTextBordersPage::ShowToolTips())
m_topOutlineWidthUnits->SetToolTip(_("Units for the top outline width."));
itemBoxSizer72->Add(m_topOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer72->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_topOutlineStyleStrings;
m_topOutlineStyle = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_TOP_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_topOutlineStyleStrings, wxCB_READONLY );
itemBoxSizer72->Add(m_topOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer72->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_topOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_TOP_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer72->Add(m_topOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_bottomOutlineCheckbox = new wxCheckBox( itemPanel46, ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX, _("&Bottom:"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER );
m_bottomOutlineCheckbox->SetValue(false);
itemFlexGridSizer54->Add(m_bottomOutlineCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer80 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer54->Add(itemBoxSizer80, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_bottomOutlineWidth = new wxTextCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_BOTTOM, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
itemBoxSizer80->Add(m_bottomOutlineWidth, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_bottomOutlineWidthUnitsStrings;
m_bottomOutlineWidthUnitsStrings.Add(_("px"));
m_bottomOutlineWidthUnitsStrings.Add(_("cm"));
m_bottomOutlineWidthUnits = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_BOTTOM_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_bottomOutlineWidthUnitsStrings, wxCB_READONLY );
m_bottomOutlineWidthUnits->SetStringSelection(_("px"));
m_bottomOutlineWidthUnits->SetHelpText(_("Units for the bottom outline width."));
if (wxRichTextBordersPage::ShowToolTips())
m_bottomOutlineWidthUnits->SetToolTip(_("Units for the bottom outline width."));
itemBoxSizer80->Add(m_bottomOutlineWidthUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer80->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
wxArrayString m_bottomOutlineStyleStrings;
m_bottomOutlineStyle = new wxComboBox( itemPanel46, ID_RICHTEXT_OUTLINE_BOTTOM_STYLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_bottomOutlineStyleStrings, wxCB_READONLY );
itemBoxSizer80->Add(m_bottomOutlineStyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer80->Add(2, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2);
m_bottomOutlineColour = new wxRichTextColourSwatchCtrl( itemPanel46, ID_RICHTEXT_OUTLINE_BOTTOM_COLOUR, wxDefaultPosition, wxSize(40, 20), wxBORDER_THEME );
itemBoxSizer80->Add(m_bottomOutlineColour, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemNotebook4->AddPage(itemPanel46, _("Outline"));
itemBoxSizer3->Add(itemNotebook4, 0, wxGROW|wxALL, 5);
m_borderPreviewCtrl = new wxRichTextBorderPreviewCtrl( itemRichTextDialogPage1, ID_RICHTEXT_BORDER_PREVIEW, wxDefaultPosition, wxSize(60, 60), wxBORDER_THEME );
itemBoxSizer3->Add(m_borderPreviewCtrl, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
////@end wxRichTextBordersPage content construction
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_NONE); m_borderStyleNames.Add(_("None"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_SOLID); m_borderStyleNames.Add(_("Solid"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_DOTTED); m_borderStyleNames.Add(_("Dotted"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_DASHED); m_borderStyleNames.Add(_("Dashed"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_DOUBLE); m_borderStyleNames.Add(_("Double"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_GROOVE); m_borderStyleNames.Add(_("Groove"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_RIDGE); m_borderStyleNames.Add(_("Ridge"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_INSET); m_borderStyleNames.Add(_("Inset"));
m_borderStyles.Add(wxTEXT_BOX_ATTR_BORDER_OUTSET); m_borderStyleNames.Add(_("Outset"));
m_ignoreUpdates = true;
FillStyleComboBox(m_leftBorderStyle);
FillStyleComboBox(m_rightBorderStyle);
FillStyleComboBox(m_topBorderStyle);
FillStyleComboBox(m_bottomBorderStyle);
FillStyleComboBox(m_leftOutlineStyle);
FillStyleComboBox(m_rightOutlineStyle);
FillStyleComboBox(m_topOutlineStyle);
FillStyleComboBox(m_bottomOutlineStyle);
m_borderPreviewCtrl->SetAttributes(GetAttributes());
m_ignoreUpdates = false;
}
/*!
* Should we show tooltips?
*/
bool wxRichTextBordersPage::ShowToolTips()
{
return true;
}
// Updates the preview
void wxRichTextBordersPage::OnCommand(wxCommandEvent& event)
{
event.Skip();
if (m_ignoreUpdates)
return;
if (m_borderPreviewCtrl)
{
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
}
wxRichTextAttr* wxRichTextBordersPage::GetAttributes()
{
return wxRichTextFormattingDialog::GetDialogAttributes(this);
}
// Fill style combo
void wxRichTextBordersPage::FillStyleComboBox(wxComboBox* styleComboBox)
{
styleComboBox->Freeze();
styleComboBox->Append(m_borderStyleNames);
styleComboBox->Thaw();
}
bool wxRichTextBordersPage::TransferDataToWindow()
{
m_ignoreUpdates = true;
// Border
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft(), m_leftBorderWidth, m_leftBorderWidthUnits, m_leftBorderCheckbox, m_leftBorderStyle, m_leftBorderColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetRight(), m_rightBorderWidth, m_rightBorderWidthUnits, m_rightBorderCheckbox, m_rightBorderStyle, m_rightBorderColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetTop(), m_topBorderWidth, m_topBorderWidthUnits, m_topBorderCheckbox, m_topBorderStyle, m_topBorderColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetBottom(), m_bottomBorderWidth, m_bottomBorderWidthUnits, m_bottomBorderCheckbox, m_bottomBorderStyle, m_bottomBorderColour, m_borderStyles);
// Outline
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft(), m_leftOutlineWidth, m_leftOutlineWidthUnits, m_leftOutlineCheckbox, m_leftOutlineStyle, m_leftOutlineColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetRight(), m_rightOutlineWidth, m_rightOutlineWidthUnits, m_rightOutlineCheckbox, m_rightOutlineStyle, m_rightOutlineColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetTop(), m_topOutlineWidth, m_topOutlineWidthUnits, m_topOutlineCheckbox, m_topOutlineStyle, m_topOutlineColour, m_borderStyles);
SetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetBottom(), m_bottomOutlineWidth, m_bottomOutlineWidthUnits, m_bottomOutlineCheckbox, m_bottomOutlineStyle, m_bottomOutlineColour, m_borderStyles);
m_ignoreUpdates = false;
return true;
}
bool wxRichTextBordersPage::TransferDataFromWindow()
{
// Border
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetLeft(), m_leftBorderWidth, m_leftBorderWidthUnits, m_leftBorderCheckbox, m_leftBorderStyle, m_leftBorderColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetRight(), m_rightBorderWidth, m_rightBorderWidthUnits, m_rightBorderCheckbox, m_rightBorderStyle, m_rightBorderColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetTop(), m_topBorderWidth, m_topBorderWidthUnits, m_topBorderCheckbox, m_topBorderStyle, m_topBorderColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetBorder().GetBottom(), m_bottomBorderWidth, m_bottomBorderWidthUnits, m_bottomBorderCheckbox, m_bottomBorderStyle, m_bottomBorderColour, m_borderStyles);
// Outline
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetLeft(), m_leftOutlineWidth, m_leftOutlineWidthUnits, m_leftOutlineCheckbox, m_leftOutlineStyle, m_leftOutlineColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetRight(), m_rightOutlineWidth, m_rightOutlineWidthUnits, m_rightOutlineCheckbox, m_rightOutlineStyle, m_rightOutlineColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetTop(), m_topOutlineWidth, m_topOutlineWidthUnits, m_topOutlineCheckbox, m_topOutlineStyle, m_topOutlineColour, m_borderStyles);
GetBorderValue(GetAttributes()->GetTextBoxAttr().GetOutline().GetBottom(), m_bottomOutlineWidth, m_bottomOutlineWidthUnits, m_bottomOutlineCheckbox, m_bottomOutlineStyle, m_bottomOutlineColour, m_borderStyles);
return true;
}
// Set the border controls
void wxRichTextBordersPage::SetBorderValue(wxTextAttrBorder& border, /* wxTextAttrBorder& borderToReset, */ wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox,
wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles)
{
if (!border.IsValid())
{
checkBox->Set3StateValue(wxCHK_UNDETERMINED);
widthValueCtrl->SetValue(wxT("1"));
widthUnitsCtrl->SetSelection(0);
colourCtrl->SetColour(*wxBLACK);
styleCtrl->SetSelection(0);
}
else
{
wxRichTextFormattingDialog::SetDimensionValue(border.GetWidth(), widthValueCtrl, widthUnitsCtrl, checkBox);
int sel = borderStyles.Index(border.GetStyle());
if (sel == -1)
sel = 1;
styleCtrl->SetSelection(sel);
colourCtrl->SetColour(border.GetColour());
if (sel == 0)
checkBox->Set3StateValue(wxCHK_UNCHECKED);
else
checkBox->Set3StateValue(wxCHK_CHECKED);
}
}
// Get data from the border controls
void wxRichTextBordersPage::GetBorderValue(wxTextAttrBorder& border, /* wxTextAttrBorder& borderToReset, */ wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox,
wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles)
{
wxRichTextFormattingDialog::GetDimensionValue(border.GetWidth(), widthValueCtrl, widthUnitsCtrl, checkBox);
int sel = styleCtrl->GetSelection();
border.SetColour(colourCtrl->GetColour());
if (checkBox->Get3StateValue() == wxCHK_UNDETERMINED)
{
// When we apply the attributes, we won't apply this one, to leave the original unchanged.
border.Reset();
// borderToReset.Reset();
}
else if (checkBox->Get3StateValue() == wxCHK_UNCHECKED)
{
// We make a note to reset this attribute.
// borderToReset.GetWidth().MakeValid();
border.SetStyle(wxTEXT_BOX_ATTR_BORDER_NONE);
}
else
{
// borderToReset.Reset(); // Don't reset this, in case we were going to previously.
if (sel != -1)
border.SetStyle(borderStyles[sel]);
}
}
/*!
* Get bitmap resources
*/
wxBitmap wxRichTextBordersPage::GetBitmapResource( const wxString& name )
{
// Bitmap retrieval
////@begin wxRichTextBordersPage bitmap retrieval
wxUnusedVar(name);
return wxNullBitmap;
////@end wxRichTextBordersPage bitmap retrieval
}
/*!
* Get icon resources
*/
wxIcon wxRichTextBordersPage::GetIconResource( const wxString& name )
{
// Icon retrieval
////@begin wxRichTextBordersPage icon retrieval
wxUnusedVar(name);
return wxNullIcon;
////@end wxRichTextBordersPage icon retrieval
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_LEFT
*/
void wxRichTextBordersPage::OnRichtextBorderLeftUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_leftBorderCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_RIGHT
*/
void wxRichTextBordersPage::OnRichtextBorderRightUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_rightBorderCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_TOP
*/
void wxRichTextBordersPage::OnRichtextBorderTopUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_topBorderCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_BOTTOM
*/
void wxRichTextBordersPage::OnRichtextBorderBottomUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_bottomBorderCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_LEFT
*/
void wxRichTextBordersPage::OnRichtextOutlineLeftUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_leftOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_RIGHT
*/
void wxRichTextBordersPage::OnRichtextOutlineRightUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_rightOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_TOP
*/
void wxRichTextBordersPage::OnRichtextOutlineTopUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_topOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_BOTTOM
*/
void wxRichTextBordersPage::OnRichtextOutlineBottomUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_bottomOutlineCheckbox->Get3StateValue() == wxCHK_CHECKED);
}
/*!
* wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXT_BORDER_LEFT_CHECKBOX
*/
void wxRichTextBordersPage::OnRichtextBorderCheckboxClick( wxCommandEvent& event )
{
if (m_ignoreUpdates)
return;
m_ignoreUpdates = true;
wxCheckBox* checkBox = NULL;
wxComboBox* comboBox = NULL;
if (event.GetId() == ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX)
{
checkBox = m_leftOutlineCheckbox;
comboBox = m_leftOutlineStyle;
}
else if (event.GetId() == ID_RICHTEXT_OUTLINE_TOP_CHECKBOX)
{
checkBox = m_topOutlineCheckbox;
comboBox = m_topOutlineStyle;
}
else if (event.GetId() == ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX)
{
checkBox = m_rightOutlineCheckbox;
comboBox = m_rightOutlineStyle;
}
else if (event.GetId() == ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX)
{
checkBox = m_bottomOutlineCheckbox;
comboBox = m_bottomOutlineStyle;
}
else if (event.GetId() == ID_RICHTEXT_BORDER_LEFT_CHECKBOX)
{
checkBox = m_leftBorderCheckbox;
comboBox = m_leftBorderStyle;
}
else if (event.GetId() == ID_RICHTEXT_BORDER_TOP_CHECKBOX)
{
checkBox = m_topBorderCheckbox;
comboBox = m_topBorderStyle;
}
else if (event.GetId() == ID_RICHTEXT_BORDER_RIGHT_CHECKBOX)
{
checkBox = m_rightBorderCheckbox;
comboBox = m_rightBorderStyle;
}
else if (event.GetId() == ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX)
{
checkBox = m_bottomBorderCheckbox;
comboBox = m_bottomBorderStyle;
}
if (checkBox && comboBox)
{
if (checkBox->Get3StateValue() == wxCHK_UNCHECKED || checkBox->Get3StateValue() == wxCHK_UNDETERMINED)
comboBox->SetSelection(0);
else
comboBox->SetSelection(1);
TransferDataFromWindow();
m_borderPreviewCtrl->Refresh();
}
m_ignoreUpdates = false;
}
BEGIN_EVENT_TABLE(wxRichTextBorderPreviewCtrl, wxWindow)
EVT_PAINT(wxRichTextBorderPreviewCtrl::OnPaint)
END_EVENT_TABLE()
wxRichTextBorderPreviewCtrl::wxRichTextBorderPreviewCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& sz, long style)
{
if ((style & wxBORDER_MASK) == wxBORDER_DEFAULT)
style |= wxBORDER_THEME;
m_attributes = NULL;
wxWindow::Create(parent, id, pos, sz, style);
SetBackgroundColour(*wxWHITE);
}
void wxRichTextBorderPreviewCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
{
wxPaintDC dc(this);
if (m_attributes)
{
wxRect rect = GetClientRect();
int margin = 10;
rect.x += margin;
rect.y += margin;
rect.width -= 2*margin;
rect.height -= 2*margin;
wxRichTextObject::DrawBorder(dc, NULL, m_attributes->GetTextBoxAttr().GetOutline(), rect);
rect.x += margin;
rect.y += margin;
rect.width -= 2*margin;
rect.height -= 2*margin;
wxRichTextObject::DrawBorder(dc, NULL, m_attributes->GetTextBoxAttr().GetBorder(), rect);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -20,13 +20,13 @@
* wxRichTextBulletsPage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextBulletsPage, wxPanel )
IMPLEMENT_DYNAMIC_CLASS( wxRichTextBulletsPage, wxRichTextDialogPage )
/*!
* wxRichTextBulletsPage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextBulletsPage, wxPanel )
BEGIN_EVENT_TABLE( wxRichTextBulletsPage, wxRichTextDialogPage )
////@begin wxRichTextBulletsPage event table entries
EVT_LISTBOX( ID_RICHTEXTBULLETSPAGE_STYLELISTBOX, wxRichTextBulletsPage::OnStylelistboxSelected )
@@ -73,6 +73,8 @@ BEGIN_EVENT_TABLE( wxRichTextBulletsPage, wxPanel )
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextBulletsPage)
/*!
* wxRichTextBulletsPage constructors
*/
@@ -120,7 +122,7 @@ void wxRichTextBulletsPage::Init()
bool wxRichTextBulletsPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextBulletsPage creation
wxPanel::Create( parent, id, pos, size, style );
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
@@ -139,10 +141,10 @@ bool wxRichTextBulletsPage::Create( wxWindow* parent, wxWindowID id, const wxPoi
void wxRichTextBulletsPage::CreateControls()
{
////@begin wxRichTextBulletsPage content construction
wxRichTextBulletsPage* itemPanel1 = this;
wxRichTextBulletsPage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemPanel1->SetSizer(itemBoxSizer2);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
@@ -153,11 +155,11 @@ void wxRichTextBulletsPage::CreateControls()
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW, 5);
wxStaticText* itemStaticText6 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Bullet style:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText6 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Bullet style:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_styleListBoxStrings;
m_styleListBox = new wxListBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_STYLELISTBOX, wxDefaultPosition, wxSize(-1, 90), m_styleListBoxStrings, wxLB_SINGLE );
m_styleListBox = new wxListBox( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_STYLELISTBOX, wxDefaultPosition, wxSize(-1, 90), m_styleListBoxStrings, wxLB_SINGLE );
m_styleListBox->SetHelpText(_("The available bullet styles."));
if (wxRichTextBulletsPage::ShowToolTips())
m_styleListBox->SetToolTip(_("The available bullet styles."));
@@ -166,21 +168,21 @@ void wxRichTextBulletsPage::CreateControls()
wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer5->Add(itemBoxSizer8, 0, wxGROW, 5);
m_periodCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_PERIODCTRL, _("Peri&od"), wxDefaultPosition, wxDefaultSize, 0 );
m_periodCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_PERIODCTRL, _("Peri&od"), wxDefaultPosition, wxDefaultSize, 0 );
m_periodCtrl->SetValue(false);
m_periodCtrl->SetHelpText(_("Check to add a period after the bullet."));
if (wxRichTextBulletsPage::ShowToolTips())
m_periodCtrl->SetToolTip(_("Check to add a period after the bullet."));
itemBoxSizer8->Add(m_periodCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_parenthesesCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, _("(*)"), wxDefaultPosition, wxDefaultSize, 0 );
m_parenthesesCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL, _("(*)"), wxDefaultPosition, wxDefaultSize, 0 );
m_parenthesesCtrl->SetValue(false);
m_parenthesesCtrl->SetHelpText(_("Check to enclose the bullet in parentheses."));
if (wxRichTextBulletsPage::ShowToolTips())
m_parenthesesCtrl->SetToolTip(_("Check to enclose the bullet in parentheses."));
itemBoxSizer8->Add(m_parenthesesCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_rightParenthesisCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL, _("*)"), wxDefaultPosition, wxDefaultSize, 0 );
m_rightParenthesisCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL, _("*)"), wxDefaultPosition, wxDefaultSize, 0 );
m_rightParenthesisCtrl->SetValue(false);
m_rightParenthesisCtrl->SetHelpText(_("Check to add a right parenthesis."));
if (wxRichTextBulletsPage::ShowToolTips())
@@ -189,14 +191,14 @@ void wxRichTextBulletsPage::CreateControls()
itemBoxSizer5->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5);
wxStaticText* itemStaticText13 = new wxStaticText( itemPanel1, wxID_STATIC, _("Bullet &Alignment:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText13 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Bullet &Alignment:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer5->Add(itemStaticText13, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_bulletAlignmentCtrlStrings;
m_bulletAlignmentCtrlStrings.Add(_("Left"));
m_bulletAlignmentCtrlStrings.Add(_("Centre"));
m_bulletAlignmentCtrlStrings.Add(_("Right"));
m_bulletAlignmentCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_BULLETALIGNMENTCTRL, _("Left"), wxDefaultPosition, wxSize(60, -1), m_bulletAlignmentCtrlStrings, wxCB_READONLY );
m_bulletAlignmentCtrl = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_BULLETALIGNMENTCTRL, _("Left"), wxDefaultPosition, wxSize(60, -1), m_bulletAlignmentCtrlStrings, wxCB_READONLY );
m_bulletAlignmentCtrl->SetStringSelection(_("Left"));
m_bulletAlignmentCtrl->SetHelpText(_("The bullet character."));
if (wxRichTextBulletsPage::ShowToolTips())
@@ -205,7 +207,7 @@ void wxRichTextBulletsPage::CreateControls()
itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
wxStaticLine* itemStaticLine16 = new wxStaticLine( itemPanel1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
wxStaticLine* itemStaticLine16 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
itemBoxSizer4->Add(itemStaticLine16, 0, wxGROW|wxLEFT|wxRIGHT, 5);
itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
@@ -216,17 +218,17 @@ void wxRichTextBulletsPage::CreateControls()
wxBoxSizer* itemBoxSizer19 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer18->Add(itemBoxSizer19, 0, wxGROW, 5);
wxStaticText* itemStaticText20 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, _("&Symbol:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText20 = new wxStaticText( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, _("&Symbol:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer19->Add(itemStaticText20, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxArrayString m_symbolCtrlStrings;
m_symbolCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL, wxT(""), wxDefaultPosition, wxSize(60, -1), m_symbolCtrlStrings, wxCB_DROPDOWN );
m_symbolCtrl = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL, wxEmptyString, wxDefaultPosition, wxSize(60, -1), m_symbolCtrlStrings, wxCB_DROPDOWN );
m_symbolCtrl->SetHelpText(_("The bullet character."));
if (wxRichTextBulletsPage::ShowToolTips())
m_symbolCtrl->SetToolTip(_("The bullet character."));
itemBoxSizer19->Add(m_symbolCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxFIXED_MINSIZE, 5);
wxButton* itemButton22 = new wxButton( itemPanel1, ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL, _("Ch&oose..."), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton22 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL, _("Ch&oose..."), wxDefaultPosition, wxDefaultSize, 0 );
itemButton22->SetHelpText(_("Click to browse for a symbol."));
if (wxRichTextBulletsPage::ShowToolTips())
itemButton22->SetToolTip(_("Click to browse for a symbol."));
@@ -234,11 +236,11 @@ void wxRichTextBulletsPage::CreateControls()
itemBoxSizer18->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5);
wxStaticText* itemStaticText24 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, _("Symbol &font:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText24 = new wxStaticText( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC, _("Symbol &font:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer18->Add(itemStaticText24, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_symbolFontCtrlStrings;
m_symbolFontCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL, wxT(""), wxDefaultPosition, wxDefaultSize, m_symbolFontCtrlStrings, wxCB_DROPDOWN );
m_symbolFontCtrl = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_symbolFontCtrlStrings, wxCB_DROPDOWN );
m_symbolFontCtrl->SetHelpText(_("Available fonts."));
if (wxRichTextBulletsPage::ShowToolTips())
m_symbolFontCtrl->SetToolTip(_("Available fonts."));
@@ -246,11 +248,11 @@ void wxRichTextBulletsPage::CreateControls()
itemBoxSizer18->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL, 5);
wxStaticText* itemStaticText27 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_NAMESTATIC, _("S&tandard bullet name:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText27 = new wxStaticText( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_NAMESTATIC, _("S&tandard bullet name:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer18->Add(itemStaticText27, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_bulletNameCtrlStrings;
m_bulletNameCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTBULLETSPAGE_NAMECTRL, wxT(""), wxDefaultPosition, wxDefaultSize, m_bulletNameCtrlStrings, wxCB_DROPDOWN );
m_bulletNameCtrl = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_NAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_bulletNameCtrlStrings, wxCB_DROPDOWN );
m_bulletNameCtrl->SetHelpText(_("A standard bullet name."));
if (wxRichTextBulletsPage::ShowToolTips())
m_bulletNameCtrl->SetToolTip(_("A standard bullet name."));
@@ -258,10 +260,10 @@ void wxRichTextBulletsPage::CreateControls()
itemBoxSizer18->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL, 5);
wxStaticText* itemStaticText30 = new wxStaticText( itemPanel1, ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC, _("&Number:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText30 = new wxStaticText( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC, _("&Number:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer18->Add(itemStaticText30, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_numberCtrl = new wxSpinCtrl( itemPanel1, ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, wxT("0"), wxDefaultPosition, wxSize(50, -1), wxSP_ARROW_KEYS, 0, 100000, 0 );
m_numberCtrl = new wxSpinCtrl( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_NUMBERCTRL, _T("0"), wxDefaultPosition, wxSize(50, -1), wxSP_ARROW_KEYS, 0, 100000, 0 );
m_numberCtrl->SetHelpText(_("The list item number."));
if (wxRichTextBulletsPage::ShowToolTips())
m_numberCtrl->SetToolTip(_("The list item number."));
@@ -269,7 +271,7 @@ void wxRichTextBulletsPage::CreateControls()
itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5);
m_previewCtrl = new wxRichTextCtrl( itemPanel1, ID_RICHTEXTBULLETSPAGE_PREVIEW_CTRL, wxEmptyString, wxDefaultPosition, wxSize(350, 100), wxVSCROLL|wxTE_READONLY );
m_previewCtrl = new wxRichTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTBULLETSPAGE_PREVIEW_CTRL, wxEmptyString, wxDefaultPosition, wxSize(350, 100), wxVSCROLL|wxTE_READONLY );
m_previewCtrl->SetHelpText(_("Shows a preview of the bullet settings."));
if (wxRichTextBulletsPage::ShowToolTips())
m_previewCtrl->SetToolTip(_("Shows a preview of the bullet settings."));
@@ -318,11 +320,24 @@ bool wxRichTextBulletsPage::TransferDataFromWindow()
wxRichTextAttr* attr = GetAttributes();
int index = m_styleListBox->GetSelection();
if (index < 1)
{
m_hasBulletStyle = false;
m_hasBulletNumber = false;
m_hasBulletSymbol = false;
attr->SetBulletStyle(wxTEXT_ATTR_BULLET_STYLE_NONE);
attr->SetFlags(attr->GetFlags() & ~(wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_TEXT|wxTEXT_ATTR_BULLET_NAME));
}
else
{
m_hasBulletStyle = true;
}
if (m_hasBulletStyle)
{
long bulletStyle = wxRICHTEXT_BULLETINDEX_NONE;
int index = m_styleListBox->GetSelection();
if (index == wxRICHTEXT_BULLETINDEX_ARABIC)
bulletStyle |= wxTEXT_ATTR_BULLET_STYLE_ARABIC;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -15,13 +15,13 @@
* wxRichTextFontPage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextFontPage, wxPanel )
IMPLEMENT_DYNAMIC_CLASS( wxRichTextFontPage, wxRichTextDialogPage )
/*!
* wxRichTextFontPage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextFontPage, wxPanel )
BEGIN_EVENT_TABLE( wxRichTextFontPage, wxRichTextDialogPage )
EVT_LISTBOX( ID_RICHTEXTFONTPAGE_FACELISTBOX, wxRichTextFontPage::OnFaceListBoxSelected )
EVT_BUTTON( ID_RICHTEXTFONTPAGE_COLOURCTRL, wxRichTextFontPage::OnColourClicked )
EVT_BUTTON( ID_RICHTEXTFONTPAGE_BGCOLOURCTRL, wxRichTextFontPage::OnColourClicked )
@@ -51,6 +51,7 @@ BEGIN_EVENT_TABLE( wxRichTextFontPage, wxPanel )
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextFontPage)
/*!
* wxRichTextFontPage constructors
*/
@@ -101,7 +102,7 @@ void wxRichTextFontPage::Init()
bool wxRichTextFontPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextFontPage creation
wxPanel::Create( parent, id, pos, size, style );
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
@@ -120,10 +121,10 @@ bool wxRichTextFontPage::Create( wxWindow* parent, wxWindowID id, const wxPoint&
void wxRichTextFontPage::CreateControls()
{
////@begin wxRichTextFontPage content construction
wxRichTextFontPage* itemPanel1 = this;
wxRichTextFontPage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemPanel1->SetSizer(itemBoxSizer2);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
@@ -134,16 +135,16 @@ void wxRichTextFontPage::CreateControls()
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer5, 1, wxGROW, 5);
wxStaticText* itemStaticText6 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Font:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText6 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Font:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_faceTextCtrl = new wxTextCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_FACETEXTCTRL, wxT(""), wxDefaultPosition, wxDefaultSize, 0 );
m_faceTextCtrl = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_FACETEXTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_faceTextCtrl->SetHelpText(_("Type a font name."));
if (wxRichTextFontPage::ShowToolTips())
m_faceTextCtrl->SetToolTip(_("Type a font name."));
itemBoxSizer5->Add(m_faceTextCtrl, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
m_faceListBox = new wxRichTextFontListBox( itemPanel1, ID_RICHTEXTFONTPAGE_FACELISTBOX, wxDefaultPosition, wxSize(200, 100), 0 );
m_faceListBox = new wxRichTextFontListBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_FACELISTBOX, wxDefaultPosition, wxSize(200, 100), 0 );
m_faceListBox->SetHelpText(_("Lists the available fonts."));
if (wxRichTextFontPage::ShowToolTips())
m_faceListBox->SetToolTip(_("Lists the available fonts."));
@@ -152,17 +153,17 @@ void wxRichTextFontPage::CreateControls()
wxBoxSizer* itemBoxSizer9 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer9, 0, wxGROW, 5);
wxStaticText* itemStaticText10 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Size:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText10 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Size:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer9->Add(itemStaticText10, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_sizeTextCtrl = new wxTextCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_SIZETEXTCTRL, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_sizeTextCtrl = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_SIZETEXTCTRL, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_sizeTextCtrl->SetHelpText(_("Type a size in points."));
if (wxRichTextFontPage::ShowToolTips())
m_sizeTextCtrl->SetToolTip(_("Type a size in points."));
itemBoxSizer9->Add(m_sizeTextCtrl, 0, wxGROW|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_sizeListBoxStrings;
m_sizeListBox = new wxListBox( itemPanel1, ID_RICHTEXTFONTPAGE_SIZELISTBOX, wxDefaultPosition, wxSize(50, -1), m_sizeListBoxStrings, wxLB_SINGLE );
m_sizeListBox = new wxListBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_SIZELISTBOX, wxDefaultPosition, wxSize(50, -1), m_sizeListBoxStrings, wxLB_SINGLE );
m_sizeListBox->SetHelpText(_("Lists font sizes in points."));
if (wxRichTextFontPage::ShowToolTips())
m_sizeListBox->SetToolTip(_("Lists font sizes in points."));
@@ -174,11 +175,11 @@ void wxRichTextFontPage::CreateControls()
wxBoxSizer* itemBoxSizer14 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer13->Add(itemBoxSizer14, 0, wxGROW, 5);
wxStaticText* itemStaticText15 = new wxStaticText( itemPanel1, wxID_STATIC, _("Font st&yle:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText15 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Font st&yle:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer14->Add(itemStaticText15, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_styleCtrlStrings;
m_styleCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_STYLECTRL, wxT(""), wxDefaultPosition, wxSize(110, -1), m_styleCtrlStrings, wxCB_READONLY );
m_styleCtrl = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_STYLECTRL, wxEmptyString, wxDefaultPosition, wxSize(110, -1), m_styleCtrlStrings, wxCB_READONLY );
m_styleCtrl->SetHelpText(_("Select regular or italic style."));
if (wxRichTextFontPage::ShowToolTips())
m_styleCtrl->SetToolTip(_("Select regular or italic style."));
@@ -187,11 +188,11 @@ void wxRichTextFontPage::CreateControls()
wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer13->Add(itemBoxSizer17, 0, wxGROW, 5);
wxStaticText* itemStaticText18 = new wxStaticText( itemPanel1, wxID_STATIC, _("Font &weight:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText18 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Font &weight:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_weightCtrlStrings;
m_weightCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_WEIGHTCTRL, wxT(""), wxDefaultPosition, wxSize(110, -1), m_weightCtrlStrings, wxCB_READONLY );
m_weightCtrl = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_WEIGHTCTRL, wxEmptyString, wxDefaultPosition, wxSize(110, -1), m_weightCtrlStrings, wxCB_READONLY );
m_weightCtrl->SetHelpText(_("Select regular or bold."));
if (wxRichTextFontPage::ShowToolTips())
m_weightCtrl->SetToolTip(_("Select regular or bold."));
@@ -200,11 +201,11 @@ void wxRichTextFontPage::CreateControls()
wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer13->Add(itemBoxSizer20, 0, wxGROW, 5);
wxStaticText* itemStaticText21 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Underlining:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText21 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Underlining:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer20->Add(itemStaticText21, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_underliningCtrlStrings;
m_underliningCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL, wxT(""), wxDefaultPosition, wxSize(110, -1), m_underliningCtrlStrings, wxCB_READONLY );
m_underliningCtrl = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL, wxEmptyString, wxDefaultPosition, wxSize(110, -1), m_underliningCtrlStrings, wxCB_READONLY );
m_underliningCtrl->SetHelpText(_("Select underlining or no underlining."));
if (wxRichTextFontPage::ShowToolTips())
m_underliningCtrl->SetToolTip(_("Select underlining or no underlining."));
@@ -215,10 +216,10 @@ void wxRichTextFontPage::CreateControls()
wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer13->Add(itemBoxSizer24, 0, wxGROW, 5);
wxStaticText* itemStaticText25 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Colour:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText25 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Colour:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer24->Add(itemStaticText25, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_colourCtrl = new wxRichTextColourSwatchCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_COLOURCTRL, wxDefaultPosition, wxSize(40, 20), 0 );
m_colourCtrl = new wxRichTextColourSwatchCtrl( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_COLOURCTRL, wxDefaultPosition, wxSize(40, 20), 0 );
m_colourCtrl->SetHelpText(_("Click to change the text colour."));
if (wxRichTextFontPage::ShowToolTips())
m_colourCtrl->SetToolTip(_("Click to change the text colour."));
@@ -227,10 +228,10 @@ void wxRichTextFontPage::CreateControls()
wxBoxSizer* itemBoxSizer27 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer13->Add(itemBoxSizer27, 0, wxGROW, 5);
wxStaticText* itemStaticText28 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Bg colour:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText28 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Bg colour:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer27->Add(itemStaticText28, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_bgColourCtrl = new wxRichTextColourSwatchCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_BGCOLOURCTRL, wxDefaultPosition, wxSize(40, 20), 0 );
m_bgColourCtrl = new wxRichTextColourSwatchCtrl( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_BGCOLOURCTRL, wxDefaultPosition, wxSize(40, 20), 0 );
m_bgColourCtrl->SetHelpText(_("Click to change the text background colour."));
if (wxRichTextFontPage::ShowToolTips())
m_bgColourCtrl->SetToolTip(_("Click to change the text background colour."));
@@ -239,28 +240,28 @@ void wxRichTextFontPage::CreateControls()
wxBoxSizer* itemBoxSizer30 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer30, 0, wxGROW, 5);
m_strikethroughCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL, _("&Strikethrough"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_strikethroughCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL, _("&Strikethrough"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_strikethroughCtrl->SetValue(false);
m_strikethroughCtrl->SetHelpText(_("Check to show a line through the text."));
if (wxRichTextFontPage::ShowToolTips())
m_strikethroughCtrl->SetToolTip(_("Check to show a line through the text."));
itemBoxSizer30->Add(m_strikethroughCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_capitalsCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTFONTPAGE_CAPSCTRL, _("Ca&pitals"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_capitalsCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_CAPSCTRL, _("Ca&pitals"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_capitalsCtrl->SetValue(false);
m_capitalsCtrl->SetHelpText(_("Check to show the text in capitals."));
if (wxRichTextFontPage::ShowToolTips())
m_capitalsCtrl->SetToolTip(_("Check to show the text in capitals."));
itemBoxSizer30->Add(m_capitalsCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_superscriptCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTFONTPAGE_SUPERSCRIPT, _("Supe&rscript"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_superscriptCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_SUPERSCRIPT, _("Supe&rscript"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_superscriptCtrl->SetValue(false);
m_superscriptCtrl->SetHelpText(_("Check to show the text in superscript."));
if (wxRichTextFontPage::ShowToolTips())
m_superscriptCtrl->SetToolTip(_("Check to show the text in superscript."));
itemBoxSizer30->Add(m_superscriptCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_subscriptCtrl = new wxCheckBox( itemPanel1, ID_RICHTEXTFONTPAGE_SUBSCRIPT, _("Subscrip&t"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_subscriptCtrl = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_SUBSCRIPT, _("Subscrip&t"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
m_subscriptCtrl->SetValue(false);
m_subscriptCtrl->SetHelpText(_("Check to show the text in subscript."));
if (wxRichTextFontPage::ShowToolTips())
@@ -269,7 +270,7 @@ void wxRichTextFontPage::CreateControls()
itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5);
m_previewCtrl = new wxRichTextFontPreviewCtrl( itemPanel1, ID_RICHTEXTFONTPAGE_PREVIEWCTRL, wxDefaultPosition, wxSize(100, 60), 0 );
m_previewCtrl = new wxRichTextFontPreviewCtrl( itemRichTextDialogPage1, ID_RICHTEXTFONTPAGE_PREVIEWCTRL, wxDefaultPosition, wxSize(100, 60), 0 );
m_previewCtrl->SetHelpText(_("Shows a preview of the font settings."));
if (wxRichTextFontPage::ShowToolTips())
m_previewCtrl->SetToolTip(_("Shows a preview of the font settings."));
@@ -306,14 +307,11 @@ bool wxRichTextFontPage::TransferDataFromWindow()
wxRichTextAttr* attr = GetAttributes();
if (m_faceListBox->GetSelection() != wxNOT_FOUND)
{
wxString faceName = m_faceListBox->GetFaceName(m_faceListBox->GetSelection());
if (!faceName.IsEmpty())
if (!m_faceTextCtrl->GetValue().IsEmpty())
{
wxString faceName = m_faceTextCtrl->GetValue();
attr->SetFontFaceName(faceName);
}
}
else
attr->SetFlags(attr->GetFlags() & (~ wxTEXT_ATTR_FONT_FACE));

View File

@@ -52,11 +52,19 @@
#include "../../src/richtext/richtextbulletspage.cpp"
#include "../../src/richtext/richtextstylepage.cpp"
#include "../../src/richtext/richtextliststylepage.cpp"
#include "../../src/richtext/richtextsizepage.cpp"
#include "../../src/richtext/richtextmarginspage.cpp"
#include "../../src/richtext/richtextborderspage.cpp"
#include "../../src/richtext/richtextbackgroundpage.cpp"
#else
#include "richtextfontpage.cpp"
#include "richtextindentspage.cpp"
#include "richtexttabspage.cpp"
#include "richtextbulletspage.cpp"
#include "richtextmarginspage.cpp"
#include "richtextsizepage.cpp"
#include "richtextborderspage.cpp"
#include "richtextbackgroundpage.cpp"
// Digital Mars can't cope with this much code
#ifndef __DMC__
#include "richtextliststylepage.cpp"
@@ -76,8 +84,12 @@ IMPLEMENT_CLASS(wxRichTextFormattingDialog, wxPropertySheetDialog)
BEGIN_EVENT_TABLE(wxRichTextFormattingDialog, wxPropertySheetDialog)
EVT_BOOKCTRL_PAGE_CHANGED(wxID_ANY, wxRichTextFormattingDialog::OnTabChanged)
EVT_BUTTON(wxID_HELP, wxRichTextFormattingDialog::OnHelp)
EVT_UPDATE_UI(wxID_HELP, wxRichTextFormattingDialog::OnUpdateHelp)
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextFormattingDialog)
wxRichTextFormattingDialogFactory* wxRichTextFormattingDialog::ms_FormattingDialogFactory = NULL;
void wxRichTextFormattingDialog::Init()
@@ -85,6 +97,7 @@ void wxRichTextFormattingDialog::Init()
m_imageList = NULL;
m_styleDefinition = NULL;
m_styleSheet = NULL;
m_object = NULL;
}
wxRichTextFormattingDialog::~wxRichTextFormattingDialog()
@@ -117,7 +130,7 @@ bool wxRichTextFormattingDialog::Create(long flags, wxWindow* parent, const wxSt
/// Get attributes from the given range
bool wxRichTextFormattingDialog::GetStyle(wxRichTextCtrl* ctrl, const wxRichTextRange& range)
{
if (ctrl->GetBuffer().GetStyleForRange(range.ToInternal(), m_attributes))
if (ctrl->GetFocusObject()->GetStyleForRange(range.ToInternal(), m_attributes))
return UpdateDisplay();
else
return false;
@@ -129,6 +142,20 @@ bool wxRichTextFormattingDialog::ApplyStyle(wxRichTextCtrl* ctrl, const wxRichTe
return ctrl->SetStyleEx(range, m_attributes, flags);
}
// Apply attributes to the object being edited, if any
bool wxRichTextFormattingDialog::ApplyStyle(wxRichTextCtrl* WXUNUSED(ctrl), int flags)
{
if (GetObject())
{
wxRichTextParagraphLayoutBox* parentContainer = GetObject()->GetParentContainer();
if (parentContainer)
parentContainer->SetStyle(GetObject(), m_attributes, flags);
return true;
}
else
return false;
}
/// Set the attributes and optionally update the display
bool wxRichTextFormattingDialog::SetStyle(const wxRichTextAttr& style, bool update)
{
@@ -212,12 +239,19 @@ void wxRichTextFormattingDialog::OnHelp(wxCommandEvent& event)
int selPage = GetBookCtrl()->GetSelection();
if (selPage != wxNOT_FOUND)
{
int pageId = m_pageIds[selPage];
int pageId = -1;
if (selPage < (int) m_pageIds.GetCount())
pageId = m_pageIds[selPage];
if (!GetFormattingDialogFactory()->ShowHelp(pageId, this))
event.Skip();
}
}
void wxRichTextFormattingDialog::OnUpdateHelp(wxUpdateUIEvent& event)
{
event.Enable(true);
}
void wxRichTextFormattingDialog::SetFormattingDialogFactory(wxRichTextFormattingDialogFactory* factory)
{
if (ms_FormattingDialogFactory)
@@ -225,6 +259,20 @@ void wxRichTextFormattingDialog::SetFormattingDialogFactory(wxRichTextFormatting
ms_FormattingDialogFactory = factory;
}
// Find a page by class
wxWindow* wxRichTextFormattingDialog::FindPage(wxClassInfo* info) const
{
size_t i;
for (i = 0; i < GetBookCtrl()->GetPageCount(); i++)
{
wxWindow* w = GetBookCtrl()->GetPage(i);
if (w && w->GetClassInfo() == info)
return w;
}
return NULL;
}
/*!
* Factory for formatting dialog
*/
@@ -301,6 +349,30 @@ wxPanel* wxRichTextFormattingDialogFactory::CreatePage(int page, wxString& title
return page;
}
#endif
else if (page == wxRICHTEXT_FORMAT_SIZE)
{
wxRichTextSizePage* page = new wxRichTextSizePage(dialog->GetBookCtrl(), wxID_ANY);
title = _("Size");
return page;
}
else if (page == wxRICHTEXT_FORMAT_MARGINS)
{
wxRichTextMarginsPage* page = new wxRichTextMarginsPage(dialog->GetBookCtrl(), wxID_ANY);
title = _("Margins");
return page;
}
else if (page == wxRICHTEXT_FORMAT_BORDERS)
{
wxRichTextBordersPage* page = new wxRichTextBordersPage(dialog->GetBookCtrl(), wxID_ANY);
title = _("Borders");
return page;
}
else if (page == wxRICHTEXT_FORMAT_BACKGROUND)
{
wxRichTextBackgroundPage* page = new wxRichTextBackgroundPage(dialog->GetBookCtrl(), wxID_ANY);
title = _("Background");
return page;
}
else
return NULL;
}
@@ -314,9 +386,14 @@ int wxRichTextFormattingDialogFactory::GetPageId(int i) const
wxRICHTEXT_FORMAT_INDENTS_SPACING,
wxRICHTEXT_FORMAT_BULLETS,
wxRICHTEXT_FORMAT_TABS,
wxRICHTEXT_FORMAT_LIST_STYLE };
wxRICHTEXT_FORMAT_LIST_STYLE,
wxRICHTEXT_FORMAT_SIZE,
wxRICHTEXT_FORMAT_MARGINS,
wxRICHTEXT_FORMAT_BORDERS,
wxRICHTEXT_FORMAT_BACKGROUND
};
if (i < 0 || i > 5)
if (i < 0 || i >= GetPageIdCount())
return -1;
return pages[i];
@@ -326,9 +403,9 @@ int wxRichTextFormattingDialogFactory::GetPageId(int i) const
int wxRichTextFormattingDialogFactory::GetPageIdCount() const
{
#ifdef __DMC__
return 5;
return 9;
#else
return 6;
return 10;
#endif
}
@@ -370,6 +447,28 @@ bool wxRichTextFormattingDialogFactory::CreateButtons(wxRichTextFormattingDialog
return true;
}
// Invoke help for the dialog
bool wxRichTextFormattingDialogFactory::ShowHelp(int WXUNUSED(page), wxRichTextFormattingDialog* dialog)
{
wxRichTextDialogPage* window = NULL;
int sel = dialog->GetBookCtrl()->GetSelection();
if (sel != -1)
window = wxDynamicCast(dialog->GetBookCtrl()->GetPage(sel), wxRichTextDialogPage);
if (window && window->GetHelpId() != -1)
{
if (window->GetUICustomization())
return window->GetUICustomization()->ShowHelp(dialog, window->GetHelpId());
else if (dialog->GetUICustomization())
return dialog->GetUICustomization()->ShowHelp(dialog, window->GetHelpId());
else
return false;
}
else if (dialog->GetHelpId() != -1 && dialog->GetUICustomization())
return dialog->ShowHelp(dialog);
else
return false;
}
/*
* Module to initialise and clean up handlers
*/
@@ -460,7 +559,6 @@ wxRichTextFormattingDialog* wxRichTextFormattingDialog::GetDialog(wxWindow* win)
return dialog;
}
// Helper for pages to get the attributes
wxRichTextAttr* wxRichTextFormattingDialog::GetDialogAttributes(wxWindow* win)
{
@@ -471,6 +569,18 @@ wxRichTextAttr* wxRichTextFormattingDialog::GetDialogAttributes(wxWindow* win)
return NULL;
}
#if 0
// Helper for pages to get the attributes to reset
wxRichTextAttr* wxRichTextFormattingDialog::GetDialogResetAttributes(wxWindow* win)
{
wxRichTextFormattingDialog* dialog = GetDialog(win);
if (dialog)
return & dialog->GetResetAttributes();
else
return NULL;
}
#endif
// Helper for pages to get the style
wxRichTextStyleDefinition* wxRichTextFormattingDialog::GetDialogStyleDefinition(wxWindow* win)
{
@@ -481,6 +591,88 @@ wxRichTextStyleDefinition* wxRichTextFormattingDialog::GetDialogStyleDefinition(
return NULL;
}
void wxRichTextFormattingDialog::SetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl, wxCheckBox* checkBox)
{
int unitsIdx = 0;
if (!dim.IsValid())
{
checkBox->SetValue(false);
valueCtrl->SetValue(wxT("0"));
unitsCtrl->SetSelection(0);
#if 0
dim.SetValue(0);
dim.SetUnits(wxTEXT_ATTR_UNITS_PIXELS);
#endif
}
else
{
checkBox->SetValue(true);
if (dim.GetUnits() == wxTEXT_ATTR_UNITS_TENTHS_MM)
{
unitsIdx = 1;
float value = float(dim.GetValue()) / 10.0;
valueCtrl->SetValue(wxString::Format(wxT("%.2f"), value));
}
else
{
unitsIdx = 0;
valueCtrl->SetValue(wxString::Format(wxT("%d"), (int) dim.GetValue()));
}
unitsCtrl->SetSelection(unitsIdx);
}
}
void wxRichTextFormattingDialog::GetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl, wxCheckBox* checkBox)
{
if (!checkBox->GetValue())
{
dim.Reset();
}
else
{
if (unitsCtrl->GetSelection() == 1)
dim.SetUnits(wxTEXT_ATTR_UNITS_TENTHS_MM);
else
dim.SetUnits(wxTEXT_ATTR_UNITS_PIXELS);
int value = 0;
if (ConvertFromString(valueCtrl->GetValue(), value, dim.GetUnits()))
dim.SetValue(value);
}
}
bool wxRichTextFormattingDialog::ConvertFromString(const wxString& string, int& ret, int scale)
{
const wxChar* chars = string.GetData();
int remain = 2;
bool dot = false;
ret = 0;
for (unsigned int i = 0; i < string.Len() && remain; i++)
{
if (!(chars[i] >= wxT('0') && chars[i] <= wxT('9')) && !(scale == wxTEXT_ATTR_UNITS_TENTHS_MM && chars[i] == wxT('.')))
return false;
if (chars[i] == wxT('.'))
{
dot = true;
continue;
}
if (dot)
remain--;
ret = ret * 10 + chars[i] - wxT('0');
}
while (remain-- > 0 && scale == wxTEXT_ATTR_UNITS_TENTHS_MM)
ret *= 10;
return true;
}
/*
* A control for displaying a small preview of a colour or bitmap
*/

View File

@@ -2,10 +2,10 @@
// Name: src/richtext/richtextimagedlg.cpp
// Purpose:
// Author: Mingquan Yang
// Modified by:
// Modified by: Julian Smart
// Created: Wed 02 Jun 2010 11:27:23 CST
// RCS-ID:
// Copyright: (c) Mingquan Yang
// Copyright: (c) Mingquan Yang, Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
@@ -16,7 +16,6 @@
#pragma hdrstop
#endif
#if wxUSE_RICHTEXT
#ifndef WX_PRECOMP
@@ -37,41 +36,37 @@
/*!
* wxRichTextImageDialog type definition
* wxRichTextObjectPropertiesDialog type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextImageDialog, wxDialog )
IMPLEMENT_DYNAMIC_CLASS( wxRichTextObjectPropertiesDialog, wxRichTextFormattingDialog )
/*!
* wxRichTextImageDialog event table definition
* wxRichTextObjectPropertiesDialog event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextImageDialog, wxDialog )
BEGIN_EVENT_TABLE( wxRichTextObjectPropertiesDialog, wxRichTextFormattingDialog )
////@begin wxRichTextImageDialog event table entries
EVT_BUTTON( ID_RICHTEXTIMAGEDIALOG_PARA_UP, wxRichTextImageDialog::OnRichtextimagedialogParaUpClick )
EVT_BUTTON( ID_RICHTEXTIMAGEDIALOG_DOWN, wxRichTextImageDialog::OnRichtextimagedialogDownClick )
////@end wxRichTextImageDialog event table entries
////@begin wxRichTextObjectPropertiesDialog event table entries
////@end wxRichTextObjectPropertiesDialog event table entries
END_EVENT_TABLE()
/*!
* wxRichTextImageDialog constructors
* wxRichTextObjectPropertiesDialog constructors
*/
wxRichTextImageDialog::wxRichTextImageDialog()
wxRichTextObjectPropertiesDialog::wxRichTextObjectPropertiesDialog()
{
Init();
}
wxRichTextImageDialog::wxRichTextImageDialog( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
wxRichTextObjectPropertiesDialog::wxRichTextObjectPropertiesDialog( wxRichTextObject* obj, wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
{
Init();
Create(parent, id, caption, pos, size, style);
Create(obj, parent, id, caption, pos, size, style);
}
@@ -79,31 +74,27 @@ wxRichTextImageDialog::wxRichTextImageDialog( wxWindow* parent, wxWindowID id, c
* wxRichTextImageDlg creator
*/
bool wxRichTextImageDialog::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
bool wxRichTextObjectPropertiesDialog::Create( wxRichTextObject* obj, wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextImageDialog creation
SetObject(obj);
SetExtraStyle(wxDIALOG_EX_CONTEXTHELP);
wxDialog::Create( parent, id, caption, pos, size, style );
long flags = wxRICHTEXT_FORMAT_SIZE|wxRICHTEXT_FORMAT_MARGINS|wxRICHTEXT_FORMAT_BORDERS|wxRICHTEXT_FORMAT_BACKGROUND;
wxRichTextFormattingDialog::Create( flags, parent, caption, id, pos, size, style );
CreateControls();
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
Centre();
////@end wxRichTextImageDialog creation
return true;
}
/*!
* wxRichTextImageDialog destructor
* wxRichTextObjectPropertiesDialog destructor
*/
wxRichTextImageDialog::~wxRichTextImageDialog()
wxRichTextObjectPropertiesDialog::~wxRichTextObjectPropertiesDialog()
{
////@begin wxRichTextImageDialog destruction
////@end wxRichTextImageDialog destruction
////@begin wxRichTextObjectPropertiesDialog destruction
////@end wxRichTextObjectPropertiesDialog destruction
}
@@ -111,19 +102,10 @@ wxRichTextImageDialog::~wxRichTextImageDialog()
* Member initialisation
*/
void wxRichTextImageDialog::Init()
void wxRichTextObjectPropertiesDialog::Init()
{
////@begin wxRichTextImageDialog member initialisation
m_float = NULL;
m_width = NULL;
m_unitsW = NULL;
m_height = NULL;
m_unitsH = NULL;
m_offset = NULL;
m_unitsOffset = NULL;
m_saveButton = NULL;
m_cancelButton = NULL;
////@end wxRichTextImageDialog member initialisation
////@begin wxRichTextObjectPropertiesDialog member initialisation
////@end wxRichTextObjectPropertiesDialog member initialisation
}
@@ -131,144 +113,8 @@ void wxRichTextImageDialog::Init()
* Control creation for wxRichTextImageDlg
*/
void wxRichTextImageDialog::CreateControls()
void wxRichTextObjectPropertiesDialog::CreateControls()
{
#ifdef __WXMAC__
SetWindowVariant(wxWINDOW_VARIANT_SMALL);
#endif
////@begin wxRichTextImageDialog content construction
wxRichTextImageDialog* itemDialog1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemDialog1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer2->Add(itemBoxSizer3, 0, wxGROW|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer4 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer3->Add(itemFlexGridSizer4, 0, wxALIGN_TOP|wxRIGHT, 5);
wxStaticText* itemStaticText5 = new wxStaticText( itemDialog1, wxID_STATIC, _("&Floating mode:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer4->Add(itemStaticText5, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxArrayString m_floatStrings;
m_floatStrings.Add(_("None"));
m_floatStrings.Add(_("Left"));
m_floatStrings.Add(_("Right"));
m_float = new wxComboBox( itemDialog1, ID_RICHTEXTIMAGEDIALOG_FLOATING_MODE, _("None"), wxDefaultPosition, wxSize(80, -1), m_floatStrings, wxCB_READONLY );
m_float->SetStringSelection(_("None"));
m_float->SetHelpText(_("How the image will float relative to the text."));
if (wxRichTextImageDialog::ShowToolTips())
m_float->SetToolTip(_("How the image will float relative to the text."));
itemFlexGridSizer4->Add(m_float, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText7 = new wxStaticText( itemDialog1, wxID_STATIC, _("&Width:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer4->Add(itemStaticText7, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer4->Add(itemBoxSizer8, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_width = new wxTextCtrl( itemDialog1, ID_RICHTEXTIMAGEDIALOG_WIDTH, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_width->SetHelpText(_("The image width to be shown - does not change the source image width."));
if (wxRichTextImageDialog::ShowToolTips())
m_width->SetToolTip(_("The image width to be shown - does not change the source image width."));
itemBoxSizer8->Add(m_width, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxArrayString m_unitsWStrings;
m_unitsWStrings.Add(_("px"));
m_unitsWStrings.Add(_("cm"));
m_unitsW = new wxComboBox( itemDialog1, ID_RICHTEXTIMAGEDIALOG_UNITS_W, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsWStrings, wxCB_READONLY );
m_unitsW->SetStringSelection(_("px"));
m_unitsW->SetHelpText(_("Units for the image width."));
if (wxRichTextImageDialog::ShowToolTips())
m_unitsW->SetToolTip(_("Units for the image width."));
itemBoxSizer8->Add(m_unitsW, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText11 = new wxStaticText( itemDialog1, wxID_STATIC, _("&Height:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer4->Add(itemStaticText11, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer4->Add(itemBoxSizer12, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_height = new wxTextCtrl( itemDialog1, ID_RICHTEXTIMAGEDIALOG_HEIGHT, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_height->SetHelpText(_("The image height to be shown - does not change the source image height."));
if (wxRichTextImageDialog::ShowToolTips())
m_height->SetToolTip(_("The image height to be shown - does not change the source image height."));
itemBoxSizer12->Add(m_height, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxArrayString m_unitsHStrings;
m_unitsHStrings.Add(_("px"));
m_unitsHStrings.Add(_("cm"));
m_unitsH = new wxComboBox( itemDialog1, ID_RICHTEXTIMAGEDIALOG_UNITS_H, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsHStrings, wxCB_READONLY );
m_unitsH->SetStringSelection(_("px"));
m_unitsH->SetHelpText(_("Units for the image height."));
if (wxRichTextImageDialog::ShowToolTips())
m_unitsH->SetToolTip(_("Units for the image height."));
itemBoxSizer12->Add(m_unitsH, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText15 = new wxStaticText( itemDialog1, wxID_STATIC, _("Image Vertical &Offset:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer4->Add(itemStaticText15, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer16 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer4->Add(itemBoxSizer16, 1, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_offset = new wxTextCtrl( itemDialog1, ID_RICHTEXTIMAGEDIALOG_OFFSET, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_offset->SetMaxLength(10);
m_offset->SetHelpText(_("The vertical offset relative to the paragraph."));
if (wxRichTextImageDialog::ShowToolTips())
m_offset->SetToolTip(_("The vertical offset relative to the paragraph."));
itemBoxSizer16->Add(m_offset, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxArrayString m_unitsOffsetStrings;
m_unitsOffsetStrings.Add(_("px"));
m_unitsOffsetStrings.Add(_("cm"));
m_unitsOffset = new wxComboBox( itemDialog1, ID_RICHTEXTIMAGEDIALOG_OFFSET_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsOffsetStrings, wxCB_READONLY );
m_unitsOffset->SetStringSelection(_("px"));
m_unitsOffset->SetHelpText(_("Units for the image offset."));
if (wxRichTextImageDialog::ShowToolTips())
m_unitsOffset->SetToolTip(_("Units for the image offset."));
itemBoxSizer16->Add(m_unitsOffset, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText19 = new wxStaticText( itemDialog1, wxID_STATIC, _("&Move the image to:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer4->Add(itemStaticText19, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer4->Add(itemBoxSizer20, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
wxButton* itemButton21 = new wxButton( itemDialog1, ID_RICHTEXTIMAGEDIALOG_PARA_UP, _("&Previous Paragraph"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton21->SetHelpText(_("Moves the image to the previous paragraph."));
if (wxRichTextImageDialog::ShowToolTips())
itemButton21->SetToolTip(_("Moves the image to the previous paragraph."));
itemBoxSizer20->Add(itemButton21, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* itemButton22 = new wxButton( itemDialog1, ID_RICHTEXTIMAGEDIALOG_DOWN, _("&Next Paragraph"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton22->SetHelpText(_("Moves the image to the next paragraph."));
if (wxRichTextImageDialog::ShowToolTips())
itemButton22->SetToolTip(_("Moves the image to the next paragraph."));
itemBoxSizer20->Add(itemButton22, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP|wxBOTTOM, 5);
wxStaticLine* itemStaticLine23 = new wxStaticLine( itemDialog1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer2->Add(itemStaticLine23, 0, wxGROW|wxALL, 5);
wxStdDialogButtonSizer* itemStdDialogButtonSizer24 = new wxStdDialogButtonSizer;
itemBoxSizer2->Add(itemStdDialogButtonSizer24, 0, wxGROW|wxALL, 5);
m_saveButton = new wxButton( itemDialog1, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
m_saveButton->SetHelpText(_("Click to confirm your changes."));
if (wxRichTextImageDialog::ShowToolTips())
m_saveButton->SetToolTip(_("Click to confirm your changes."));
itemStdDialogButtonSizer24->AddButton(m_saveButton);
m_cancelButton = new wxButton( itemDialog1, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
m_cancelButton->SetHelpText(_("Click to discard your changes."));
if (wxRichTextImageDialog::ShowToolTips())
m_cancelButton->SetToolTip(_("Click to discard your changes."));
itemStdDialogButtonSizer24->AddButton(m_cancelButton);
itemStdDialogButtonSizer24->Realize();
////@end wxRichTextImageDialog content construction
}
@@ -276,7 +122,7 @@ void wxRichTextImageDialog::CreateControls()
* Should we show tooltips?
*/
bool wxRichTextImageDialog::ShowToolTips()
bool wxRichTextObjectPropertiesDialog::ShowToolTips()
{
return true;
}
@@ -285,173 +131,36 @@ bool wxRichTextImageDialog::ShowToolTips()
* Get bitmap resources
*/
wxBitmap wxRichTextImageDialog::GetBitmapResource( const wxString& name )
wxBitmap wxRichTextObjectPropertiesDialog::GetBitmapResource( const wxString& name )
{
// Bitmap retrieval
////@begin wxRichTextImageDialog bitmap retrieval
////@begin wxRichTextObjectPropertiesDialog bitmap retrieval
wxUnusedVar(name);
return wxNullBitmap;
////@end wxRichTextImageDialog bitmap retrieval
////@end wxRichTextObjectPropertiesDialog bitmap retrieval
}
/*!
* Get icon resources
*/
wxIcon wxRichTextImageDialog::GetIconResource( const wxString& name )
wxIcon wxRichTextObjectPropertiesDialog::GetIconResource( const wxString& name )
{
// Icon retrieval
////@begin wxRichTextImageDialog icon retrieval
////@begin wxRichTextObjectPropertiesDialog icon retrieval
wxUnusedVar(name);
return wxNullIcon;
////@end wxRichTextImageDialog icon retrieval
////@end wxRichTextObjectPropertiesDialog icon retrieval
}
/*!
* Set the image attribute
*/
void wxRichTextImageDialog::SetImageAttr(const wxRichTextAttr& textAttr)
{
m_textAttr = textAttr;
TransferDataToWindow();
}
/*!
* Apply the new style
*/
wxRichTextImage* wxRichTextImageDialog::ApplyImageAttr()
{
wxRichTextImage* image = wxDynamicCast(m_image, wxRichTextImage);
TransferDataFromWindow();
if (m_buffer->GetRichTextCtrl())
{
m_buffer->GetRichTextCtrl()->SetImageStyle(image, m_textAttr);
}
return image;
}
void wxRichTextImageDialog::SetImageObject(wxRichTextImage* image, wxRichTextBuffer* buffer)
{
wxRichTextObject* parent = image->GetParent();
m_buffer = buffer;
m_image = image;
m_parent = parent;
SetImageAttr(image->GetAttributes());
if (image->GetImageCache().IsOk())
{
if (!m_textAttr.GetTextBoxAttr().GetWidth().IsPresent() || m_textAttr.GetTextBoxAttr().GetWidth().GetValue() <= 0)
{
m_textAttr.GetTextBoxAttr().GetWidth().SetValue(image->GetImageCache().GetWidth());
m_textAttr.GetTextBoxAttr().GetWidth().SetUnits(wxTEXT_ATTR_UNITS_PIXELS);
}
if (!m_textAttr.GetTextBoxAttr().GetHeight().IsPresent() || m_textAttr.GetTextBoxAttr().GetHeight().GetValue() <= 0)
{
m_textAttr.GetTextBoxAttr().GetHeight().SetValue(image->GetImageCache().GetHeight());
m_textAttr.GetTextBoxAttr().GetHeight().SetUnits(wxTEXT_ATTR_UNITS_PIXELS);
}
}
}
void wxRichTextImageDialog::SetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl)
{
int unitsIdx = 0;
if (!dim.IsPresent())
{
dim.SetValue(0);
dim.SetUnits(wxTEXT_ATTR_UNITS_PIXELS);
}
if (dim.GetUnits() == wxTEXT_ATTR_UNITS_TENTHS_MM)
{
unitsIdx = 1;
float value = float(dim.GetValue()) / 10.0;
valueCtrl->SetValue(wxString::Format(wxT("%.2f"), value));
}
else
{
unitsIdx = 0;
valueCtrl->SetValue(wxString::Format(wxT("%d"), (int) dim.GetValue()));
}
unitsCtrl->SetSelection(unitsIdx);
}
void wxRichTextImageDialog::GetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl)
{
if (unitsCtrl->GetSelection() == 1)
dim.SetUnits(wxTEXT_ATTR_UNITS_TENTHS_MM);
else
dim.SetUnits(wxTEXT_ATTR_UNITS_PIXELS);
int value = 0;
if (ConvertFromString(valueCtrl->GetValue(), value, dim.GetUnits()))
dim.SetValue(value);
}
bool wxRichTextImageDialog::TransferDataToWindow()
{
m_float->SetSelection(m_textAttr.GetTextBoxAttr().GetFloatMode());
SetDimensionValue(m_textAttr.GetTextBoxAttr().GetWidth(), m_width, m_unitsW);
SetDimensionValue(m_textAttr.GetTextBoxAttr().GetHeight(), m_height, m_unitsH);
SetDimensionValue(m_textAttr.GetTextBoxAttr().GetTop(), m_offset, m_unitsOffset);
return true;
}
bool wxRichTextImageDialog::TransferDataFromWindow()
{
m_textAttr.GetTextBoxAttr().SetFloatMode(m_float->GetSelection());
GetDimensionValue(m_textAttr.GetTextBoxAttr().GetWidth(), m_width, m_unitsW);
GetDimensionValue(m_textAttr.GetTextBoxAttr().GetHeight(), m_height, m_unitsH);
GetDimensionValue(m_textAttr.GetTextBoxAttr().GetTop(), m_offset, m_unitsOffset);
return true;
}
bool wxRichTextImageDialog::ConvertFromString(const wxString& string, int& ret, int scale)
{
const wxChar* chars = string.GetData();
int remain = 2;
bool dot = false;
ret = 0;
for (unsigned int i = 0; i < string.Len() && remain; i++)
{
if (!(chars[i] >= '0' && chars[i] <= '9') && !(scale == wxTEXT_ATTR_UNITS_TENTHS_MM && chars[i] == '.'))
return false;
if (chars[i] == '.')
{
dot = true;
continue;
}
if (dot)
remain--;
ret = ret * 10 + chars[i] - '0';
}
while (remain-- > 0 && scale == wxTEXT_ATTR_UNITS_TENTHS_MM)
ret *= 10;
return true;
}
#if 0
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_PARA_UP
*/
void wxRichTextImageDialog::OnRichtextimagedialogParaUpClick( wxCommandEvent& WXUNUSED(event))
void wxRichTextObjectPropertiesDialog::OnRichtextParaUpClick( wxCommandEvent& WXUNUSED(event))
{
// Before editing this code, remove the block markers.
wxRichTextRange range = m_image->GetRange();
wxRichTextRange range = m_object->GetRange();
wxRichTextObjectList::compatibility_iterator iter = m_buffer->GetChildren().GetFirst();
if (!iter)
return;
@@ -469,12 +178,12 @@ void wxRichTextImageDialog::OnRichtextimagedialogParaUpClick( wxCommandEvent& WX
wxRichTextObject *obj = iter->GetData();
wxRichTextRange rg = obj->GetRange();
m_image = m_image->Clone();
m_object = m_object->Clone();
m_buffer->DeleteRangeWithUndo(range, m_buffer->GetRichTextCtrl());
m_buffer->InsertObjectWithUndo(rg.GetEnd(), m_image, m_buffer->GetRichTextCtrl(), 0);
m_buffer->InsertObjectWithUndo(rg.GetEnd(), m_object, m_buffer->GetRichTextCtrl(), 0);
m_parent = obj;
m_image->SetRange(wxRichTextRange(rg.GetEnd(), rg.GetEnd()));
m_object->SetRange(wxRichTextRange(rg.GetEnd(), rg.GetEnd()));
}
@@ -482,10 +191,10 @@ void wxRichTextImageDialog::OnRichtextimagedialogParaUpClick( wxCommandEvent& WX
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_PARA_DOWN
*/
void wxRichTextImageDialog::OnRichtextimagedialogDownClick( wxCommandEvent& WXUNUSED(event))
void wxRichTextObjectPropertiesDialog::OnRichtextDownClick( wxCommandEvent& WXUNUSED(event))
{
// Before editing this code, remove the block markers.
wxRichTextRange range = m_image->GetRange();
wxRichTextRange range = m_object->GetRange();
wxRichTextObjectList::compatibility_iterator iter = m_buffer->GetChildren().GetFirst();
if (!iter)
return;
@@ -503,12 +212,15 @@ void wxRichTextImageDialog::OnRichtextimagedialogDownClick( wxCommandEvent& WXUN
wxRichTextObject *obj = iter->GetData();
wxRichTextRange rg = obj->GetRange();
m_image = m_image->Clone();
m_object = m_object->Clone();
m_buffer->DeleteRangeWithUndo(range, m_buffer->GetRichTextCtrl());
m_buffer->InsertObjectWithUndo(rg.GetEnd(), m_image, m_buffer->GetRichTextCtrl(), 0);
m_buffer->InsertObjectWithUndo(rg.GetEnd(), m_object, m_buffer->GetRichTextCtrl(), 0);
m_parent = obj;
m_image->SetRange(wxRichTextRange(rg.GetEnd(), rg.GetEnd()));
m_object->SetRange(wxRichTextRange(rg.GetEnd(), rg.GetEnd()));
}
#endif
#endif
// wxUSE_RICHTEXT

View File

@@ -17,13 +17,13 @@
* wxRichTextIndentsSpacingPage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextIndentsSpacingPage, wxPanel )
IMPLEMENT_DYNAMIC_CLASS( wxRichTextIndentsSpacingPage, wxRichTextDialogPage )
/*!
* wxRichTextIndentsSpacingPage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextIndentsSpacingPage, wxPanel )
BEGIN_EVENT_TABLE( wxRichTextIndentsSpacingPage, wxRichTextDialogPage )
////@begin wxRichTextIndentsSpacingPage event table entries
EVT_RADIOBUTTON( ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT, wxRichTextIndentsSpacingPage::OnAlignmentLeftSelected )
@@ -54,6 +54,8 @@ BEGIN_EVENT_TABLE( wxRichTextIndentsSpacingPage, wxPanel )
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextIndentsSpacingPage)
/*!
* wxRichTextIndentsSpacingPage constructors
*/
@@ -102,7 +104,7 @@ void wxRichTextIndentsSpacingPage::Init()
bool wxRichTextIndentsSpacingPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextIndentsSpacingPage creation
wxPanel::Create( parent, id, pos, size, style );
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
@@ -121,10 +123,10 @@ bool wxRichTextIndentsSpacingPage::Create( wxWindow* parent, wxWindowID id, cons
void wxRichTextIndentsSpacingPage::CreateControls()
{
////@begin wxRichTextIndentsSpacingPage content construction
wxRichTextIndentsSpacingPage* itemPanel1 = this;
wxRichTextIndentsSpacingPage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemPanel1->SetSizer(itemBoxSizer2);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
@@ -135,7 +137,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW, 5);
wxStaticText* itemStaticText6 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Alignment"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText6 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Alignment"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxBoxSizer* itemBoxSizer7 = new wxBoxSizer(wxHORIZONTAL);
@@ -146,35 +148,35 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxBoxSizer* itemBoxSizer9 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer7->Add(itemBoxSizer9, 0, wxALIGN_CENTER_VERTICAL|wxTOP, 5);
m_alignmentLeft = new wxRadioButton( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT, _("&Left"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
m_alignmentLeft = new wxRadioButton( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT, _("&Left"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
m_alignmentLeft->SetValue(false);
m_alignmentLeft->SetHelpText(_("Left-align text."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_alignmentLeft->SetToolTip(_("Left-align text."));
itemBoxSizer9->Add(m_alignmentLeft, 0, wxALIGN_LEFT|wxALL, 5);
m_alignmentRight = new wxRadioButton( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_RIGHT, _("&Right"), wxDefaultPosition, wxDefaultSize, 0 );
m_alignmentRight = new wxRadioButton( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_RIGHT, _("&Right"), wxDefaultPosition, wxDefaultSize, 0 );
m_alignmentRight->SetValue(false);
m_alignmentRight->SetHelpText(_("Right-align text."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_alignmentRight->SetToolTip(_("Right-align text."));
itemBoxSizer9->Add(m_alignmentRight, 0, wxALIGN_LEFT|wxALL, 5);
m_alignmentJustified = new wxRadioButton( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_JUSTIFIED, _("&Justified"), wxDefaultPosition, wxDefaultSize, 0 );
m_alignmentJustified = new wxRadioButton( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_JUSTIFIED, _("&Justified"), wxDefaultPosition, wxDefaultSize, 0 );
m_alignmentJustified->SetValue(false);
m_alignmentJustified->SetHelpText(_("Justify text left and right."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_alignmentJustified->SetToolTip(_("Justify text left and right."));
itemBoxSizer9->Add(m_alignmentJustified, 0, wxALIGN_LEFT|wxALL, 5);
m_alignmentCentred = new wxRadioButton( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_CENTRED, _("Cen&tred"), wxDefaultPosition, wxDefaultSize, 0 );
m_alignmentCentred = new wxRadioButton( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_CENTRED, _("Cen&tred"), wxDefaultPosition, wxDefaultSize, 0 );
m_alignmentCentred->SetValue(false);
m_alignmentCentred->SetHelpText(_("Centre text."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_alignmentCentred->SetToolTip(_("Centre text."));
itemBoxSizer9->Add(m_alignmentCentred, 0, wxALIGN_LEFT|wxALL, 5);
m_alignmentIndeterminate = new wxRadioButton( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_INDETERMINATE, _("&Indeterminate"), wxDefaultPosition, wxDefaultSize, 0 );
m_alignmentIndeterminate = new wxRadioButton( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_INDETERMINATE, _("&Indeterminate"), wxDefaultPosition, wxDefaultSize, 0 );
m_alignmentIndeterminate->SetValue(false);
m_alignmentIndeterminate->SetHelpText(_("Use the current alignment setting."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
@@ -183,7 +185,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
wxStaticLine* itemStaticLine16 = new wxStaticLine( itemPanel1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
wxStaticLine* itemStaticLine16 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
itemBoxSizer4->Add(itemStaticLine16, 0, wxGROW|wxLEFT|wxBOTTOM, 5);
itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
@@ -191,7 +193,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxBoxSizer* itemBoxSizer18 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer18, 0, wxGROW, 5);
wxStaticText* itemStaticText19 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Indentation (tenths of a mm)"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText19 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Indentation (tenths of a mm)"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer18->Add(itemStaticText19, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
@@ -202,43 +204,43 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxFlexGridSizer* itemFlexGridSizer22 = new wxFlexGridSizer(4, 2, 0, 0);
itemBoxSizer20->Add(itemFlexGridSizer22, 0, wxALIGN_CENTER_VERTICAL, 5);
wxStaticText* itemStaticText23 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Left:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText23 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Left:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer22->Add(itemStaticText23, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer22->Add(itemBoxSizer24, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_indentLeft = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeft = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeft->SetHelpText(_("The left indent."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_indentLeft->SetToolTip(_("The left indent."));
itemBoxSizer24->Add(m_indentLeft, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText26 = new wxStaticText( itemPanel1, wxID_STATIC, _("Left (&first line):"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText26 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Left (&first line):"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer22->Add(itemStaticText26, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer27 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer22->Add(itemBoxSizer27, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_indentLeftFirst = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeftFirst = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeftFirst->SetHelpText(_("The first line indent."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_indentLeftFirst->SetToolTip(_("The first line indent."));
itemBoxSizer27->Add(m_indentLeftFirst, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText29 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Right:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText29 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Right:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer22->Add(itemStaticText29, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer30 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer22->Add(itemBoxSizer30, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_indentRight = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentRight = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentRight->SetHelpText(_("The right indent."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_indentRight->SetToolTip(_("The right indent."));
itemBoxSizer30->Add(m_indentRight, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText32 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Outline level:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText32 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Outline level:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer22->Add(itemStaticText32, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxArrayString m_outlineLevelCtrlStrings;
@@ -252,7 +254,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
m_outlineLevelCtrlStrings.Add(_("7"));
m_outlineLevelCtrlStrings.Add(_("8"));
m_outlineLevelCtrlStrings.Add(_("9"));
m_outlineLevelCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL, _("Normal"), wxDefaultPosition, wxSize(90, -1), m_outlineLevelCtrlStrings, wxCB_READONLY );
m_outlineLevelCtrl = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL, _("Normal"), wxDefaultPosition, wxSize(90, -1), m_outlineLevelCtrlStrings, wxCB_READONLY );
m_outlineLevelCtrl->SetStringSelection(_("Normal"));
m_outlineLevelCtrl->SetHelpText(_("The outline level."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
@@ -261,7 +263,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
wxStaticLine* itemStaticLine35 = new wxStaticLine( itemPanel1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
wxStaticLine* itemStaticLine35 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
itemBoxSizer4->Add(itemStaticLine35, 0, wxGROW|wxTOP|wxBOTTOM, 5);
itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
@@ -269,7 +271,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxBoxSizer* itemBoxSizer37 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer37, 0, wxGROW, 5);
wxStaticText* itemStaticText38 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Spacing (tenths of a mm)"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText38 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Spacing (tenths of a mm)"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer37->Add(itemStaticText38, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxBoxSizer* itemBoxSizer39 = new wxBoxSizer(wxHORIZONTAL);
@@ -281,30 +283,30 @@ void wxRichTextIndentsSpacingPage::CreateControls()
itemFlexGridSizer41->AddGrowableCol(1);
itemBoxSizer39->Add(itemFlexGridSizer41, 0, wxALIGN_CENTER_VERTICAL, 5);
wxStaticText* itemStaticText42 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Before a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText42 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Before a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer41->Add(itemStaticText42, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer43 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer41->Add(itemBoxSizer43, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_spacingBefore = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_spacingBefore = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_spacingBefore->SetHelpText(_("The spacing before the paragraph."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_spacingBefore->SetToolTip(_("The spacing before the paragraph."));
itemBoxSizer43->Add(m_spacingBefore, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText45 = new wxStaticText( itemPanel1, wxID_STATIC, _("&After a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText45 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&After a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer41->Add(itemStaticText45, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer46 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer41->Add(itemBoxSizer46, 1, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_spacingAfter = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_spacingAfter = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_spacingAfter->SetToolTip(_("The spacing after the paragraph."));
itemBoxSizer46->Add(m_spacingAfter, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText48 = new wxStaticText( itemPanel1, wxID_STATIC, _("L&ine spacing:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText48 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("L&ine spacing:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer41->Add(itemStaticText48, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer49 = new wxBoxSizer(wxHORIZONTAL);
@@ -322,7 +324,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
m_spacingLineStrings.Add(_("1.8"));
m_spacingLineStrings.Add(_("1.9"));
m_spacingLineStrings.Add(_("2"));
m_spacingLine = new wxComboBox( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE, _("Single"), wxDefaultPosition, wxSize(90, -1), m_spacingLineStrings, wxCB_READONLY );
m_spacingLine = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE, _("Single"), wxDefaultPosition, wxSize(90, -1), m_spacingLineStrings, wxCB_READONLY );
m_spacingLine->SetStringSelection(_("Single"));
m_spacingLine->SetHelpText(_("The line spacing."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
@@ -331,7 +333,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL, 5);
m_previewCtrl = new wxRichTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_PREVIEW_CTRL, wxEmptyString, wxDefaultPosition, wxSize(350, 100), wxVSCROLL|wxTE_READONLY );
m_previewCtrl = new wxRichTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTINDENTSSPACINGPAGE_PREVIEW_CTRL, wxEmptyString, wxDefaultPosition, wxSize(350, 100), wxVSCROLL|wxTE_READONLY );
m_previewCtrl->SetHelpText(_("Shows a preview of the paragraph settings."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_previewCtrl->SetToolTip(_("Shows a preview of the paragraph settings."));

View File

@@ -18,13 +18,13 @@
* wxRichTextListStylePage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextListStylePage, wxPanel )
IMPLEMENT_DYNAMIC_CLASS( wxRichTextListStylePage, wxRichTextDialogPage )
/*!
* wxRichTextListStylePage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextListStylePage, wxPanel )
BEGIN_EVENT_TABLE( wxRichTextListStylePage, wxRichTextDialogPage )
////@begin wxRichTextListStylePage event table entries
EVT_SPINCTRL( ID_RICHTEXTLISTSTYLEPAGE_LEVEL, wxRichTextListStylePage::OnLevelUpdated )
@@ -93,6 +93,8 @@ BEGIN_EVENT_TABLE( wxRichTextListStylePage, wxPanel )
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextListStylePage)
/*!
* wxRichTextListStylePage constructors
*/
@@ -115,7 +117,7 @@ wxRichTextListStylePage::wxRichTextListStylePage( wxWindow* parent, wxWindowID i
bool wxRichTextListStylePage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextListStylePage creation
wxPanel::Create( parent, id, pos, size, style );
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
@@ -168,10 +170,10 @@ void wxRichTextListStylePage::Init()
void wxRichTextListStylePage::CreateControls()
{
////@begin wxRichTextListStylePage content construction
wxRichTextListStylePage* itemPanel1 = this;
wxRichTextListStylePage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemPanel1->SetSizer(itemBoxSizer2);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
@@ -179,10 +181,10 @@ void wxRichTextListStylePage::CreateControls()
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer4, 0, wxALIGN_CENTER_HORIZONTAL, 5);
wxStaticText* itemStaticText5 = new wxStaticText( itemPanel1, wxID_STATIC, _("&List level:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText5 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&List level:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer4->Add(itemStaticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_levelCtrl = new wxSpinCtrl( itemPanel1, ID_RICHTEXTLISTSTYLEPAGE_LEVEL, wxT("1"), wxDefaultPosition, wxSize(60, -1), wxSP_ARROW_KEYS, 1, 10, 1 );
m_levelCtrl = new wxSpinCtrl( itemRichTextDialogPage1, ID_RICHTEXTLISTSTYLEPAGE_LEVEL, _T("1"), wxDefaultPosition, wxSize(60, -1), wxSP_ARROW_KEYS, 1, 10, 1 );
m_levelCtrl->SetHelpText(_("Selects the list level to edit."));
if (wxRichTextListStylePage::ShowToolTips())
m_levelCtrl->SetToolTip(_("Selects the list level to edit."));
@@ -190,13 +192,13 @@ void wxRichTextListStylePage::CreateControls()
itemBoxSizer4->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* itemButton8 = new wxButton( itemPanel1, ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT, _("&Font for Level..."), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton8 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT, _("&Font for Level..."), wxDefaultPosition, wxDefaultSize, 0 );
itemButton8->SetHelpText(_("Click to choose the font for this level."));
if (wxRichTextListStylePage::ShowToolTips())
itemButton8->SetToolTip(_("Click to choose the font for this level."));
itemBoxSizer4->Add(itemButton8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxNotebook* itemNotebook9 = new wxNotebook( itemPanel1, ID_RICHTEXTLISTSTYLEPAGE_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxNB_DEFAULT|wxNB_TOP );
wxNotebook* itemNotebook9 = new wxNotebook( itemRichTextDialogPage1, ID_RICHTEXTLISTSTYLEPAGE_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxBK_DEFAULT|wxBK_TOP );
wxPanel* itemPanel10 = new wxPanel( itemNotebook9, ID_RICHTEXTLISTSTYLEPAGE_BULLETS, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxTAB_TRAVERSAL );
wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL);
@@ -270,7 +272,7 @@ void wxRichTextListStylePage::CreateControls()
wxBoxSizer* itemBoxSizer28 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer26->Add(itemBoxSizer28, 0, wxGROW, 5);
wxArrayString m_symbolCtrlStrings;
m_symbolCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL, wxT(""), wxDefaultPosition, wxSize(60, -1), m_symbolCtrlStrings, wxCB_DROPDOWN );
m_symbolCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL, wxEmptyString, wxDefaultPosition, wxSize(60, -1), m_symbolCtrlStrings, wxCB_DROPDOWN );
m_symbolCtrl->SetHelpText(_("The bullet character."));
if (wxRichTextListStylePage::ShowToolTips())
m_symbolCtrl->SetToolTip(_("The bullet character."));
@@ -288,7 +290,7 @@ void wxRichTextListStylePage::CreateControls()
itemBoxSizer26->Add(itemStaticText32, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_symbolFontCtrlStrings;
m_symbolFontCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL, wxT(""), wxDefaultPosition, wxDefaultSize, m_symbolFontCtrlStrings, wxCB_DROPDOWN );
m_symbolFontCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_symbolFontCtrlStrings, wxCB_DROPDOWN );
if (wxRichTextListStylePage::ShowToolTips())
m_symbolFontCtrl->SetToolTip(_("Available fonts."));
itemBoxSizer26->Add(m_symbolFontCtrl, 0, wxGROW|wxALL, 5);
@@ -299,7 +301,7 @@ void wxRichTextListStylePage::CreateControls()
itemBoxSizer26->Add(itemStaticText35, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_bulletNameCtrlStrings;
m_bulletNameCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL, wxT(""), wxDefaultPosition, wxDefaultSize, m_bulletNameCtrlStrings, wxCB_DROPDOWN );
m_bulletNameCtrl = new wxComboBox( itemPanel10, ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, m_bulletNameCtrlStrings, wxCB_DROPDOWN );
m_bulletNameCtrl->SetHelpText(_("A standard bullet name."));
if (wxRichTextListStylePage::ShowToolTips())
m_bulletNameCtrl->SetToolTip(_("A standard bullet name."));
@@ -382,7 +384,7 @@ void wxRichTextListStylePage::CreateControls()
wxBoxSizer* itemBoxSizer59 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer57->Add(itemBoxSizer59, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
m_indentLeft = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeft = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeft->SetHelpText(_("The left indent."));
if (wxRichTextListStylePage::ShowToolTips())
m_indentLeft->SetToolTip(_("The left indent."));
@@ -393,7 +395,7 @@ void wxRichTextListStylePage::CreateControls()
wxBoxSizer* itemBoxSizer62 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer57->Add(itemBoxSizer62, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
m_indentLeftFirst = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeftFirst = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeftFirst->SetHelpText(_("The first line indent."));
if (wxRichTextListStylePage::ShowToolTips())
m_indentLeftFirst->SetToolTip(_("The first line indent."));
@@ -404,7 +406,7 @@ void wxRichTextListStylePage::CreateControls()
wxBoxSizer* itemBoxSizer65 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer57->Add(itemBoxSizer65, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
m_indentRight = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_indentRight = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentRight->SetHelpText(_("The right indent."));
if (wxRichTextListStylePage::ShowToolTips())
m_indentRight->SetToolTip(_("The right indent."));
@@ -433,7 +435,7 @@ void wxRichTextListStylePage::CreateControls()
wxBoxSizer* itemBoxSizer76 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer74->Add(itemBoxSizer76, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
m_spacingBefore = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_spacingBefore = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_spacingBefore->SetHelpText(_("The spacing before the paragraph."));
if (wxRichTextListStylePage::ShowToolTips())
m_spacingBefore->SetToolTip(_("The spacing before the paragraph."));
@@ -444,7 +446,7 @@ void wxRichTextListStylePage::CreateControls()
wxBoxSizer* itemBoxSizer79 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer74->Add(itemBoxSizer79, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
m_spacingAfter = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_spacingAfter = new wxTextCtrl( itemPanel37, ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_spacingAfter->SetHelpText(_("The spacing after the paragraph."));
if (wxRichTextListStylePage::ShowToolTips())
m_spacingAfter->SetToolTip(_("The spacing after the paragraph."));
@@ -470,7 +472,7 @@ void wxRichTextListStylePage::CreateControls()
itemBoxSizer3->Add(itemNotebook9, 0, wxGROW|wxALL, 5);
m_previewCtrl = new wxRichTextCtrl( itemPanel1, ID_RICHTEXTLISTSTYLEPAGE_RICHTEXTCTRL, wxEmptyString, wxDefaultPosition, wxSize(350, 180), wxSUNKEN_BORDER|wxVSCROLL|wxTE_READONLY );
m_previewCtrl = new wxRichTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTLISTSTYLEPAGE_RICHTEXTCTRL, wxEmptyString, wxDefaultPosition, wxSize(350, 180), wxSUNKEN_BORDER|wxVSCROLL|wxTE_READONLY );
m_previewCtrl->SetHelpText(_("Shows a preview of the bullet settings."));
if (wxRichTextListStylePage::ShowToolTips())
m_previewCtrl->SetToolTip(_("Shows a preview of the bullet settings."));

View File

@@ -0,0 +1,563 @@
/////////////////////////////////////////////////////////////////////////////
// Name: richtextmarginspage.cpp
// Purpose:
// Author: Julian Smart
// Modified by:
// Created: 20/10/2010 10:27:34
// RCS-ID:
// Copyright: (c) Julian Smart
// Licence:
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
////@begin includes
////@end includes
#include "wx/richtext/richtextmarginspage.h"
////@begin XPM images
////@end XPM images
/*!
* wxRichTextMarginsPage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextMarginsPage, wxRichTextDialogPage )
/*!
* wxRichTextMarginsPage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextMarginsPage, wxRichTextDialogPage )
////@begin wxRichTextMarginsPage event table entries
EVT_UPDATE_UI( ID_RICHTEXT_LEFT_MARGIN, wxRichTextMarginsPage::OnRichtextLeftMarginUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_LEFT_MARGIN_UNITS, wxRichTextMarginsPage::OnRichtextLeftMarginUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_RIGHT_MARGIN, wxRichTextMarginsPage::OnRichtextRightMarginUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_RIGHT_MARGIN_UNITS, wxRichTextMarginsPage::OnRichtextRightMarginUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_TOP_MARGIN, wxRichTextMarginsPage::OnRichtextTopMarginUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_TOP_MARGIN_UNITS, wxRichTextMarginsPage::OnRichtextTopMarginUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BOTTOM_MARGIN, wxRichTextMarginsPage::OnRichtextBottomMarginUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BOTTOM_MARGIN_UNITS, wxRichTextMarginsPage::OnRichtextBottomMarginUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_LEFT_PADDING, wxRichTextMarginsPage::OnRichtextLeftPaddingUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_LEFT_PADDING_UNITS, wxRichTextMarginsPage::OnRichtextLeftPaddingUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_RIGHT_PADDING, wxRichTextMarginsPage::OnRichtextRightPaddingUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_RIGHT_PADDING_UNITS, wxRichTextMarginsPage::OnRichtextRightPaddingUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_TOP_PADDING, wxRichTextMarginsPage::OnRichtextTopPaddingUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_TOP_PADDING_UNITS, wxRichTextMarginsPage::OnRichtextTopPaddingUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BOTTOM_PADDING, wxRichTextMarginsPage::OnRichtextBottomPaddingUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_BOTTOM_PADDING_UNITS, wxRichTextMarginsPage::OnRichtextBottomPaddingUpdate )
////@end wxRichTextMarginsPage event table entries
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextMarginsPage)
/*!
* wxRichTextMarginsPage constructors
*/
wxRichTextMarginsPage::wxRichTextMarginsPage()
{
Init();
}
wxRichTextMarginsPage::wxRichTextMarginsPage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
Init();
Create(parent, id, pos, size, style);
}
/*!
* wxRichTextMarginsPage creator
*/
bool wxRichTextMarginsPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextMarginsPage creation
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
Centre();
////@end wxRichTextMarginsPage creation
return true;
}
/*!
* wxRichTextMarginsPage destructor
*/
wxRichTextMarginsPage::~wxRichTextMarginsPage()
{
////@begin wxRichTextMarginsPage destruction
////@end wxRichTextMarginsPage destruction
}
/*!
* Member initialisation
*/
void wxRichTextMarginsPage::Init()
{
m_ignoreUpdates = false;
////@begin wxRichTextMarginsPage member initialisation
m_leftMarginCheckbox = NULL;
m_marginLeft = NULL;
m_unitsMarginLeft = NULL;
m_rightMarginCheckbox = NULL;
m_marginRight = NULL;
m_unitsMarginRight = NULL;
m_topMarginCheckbox = NULL;
m_marginTop = NULL;
m_unitsMarginTop = NULL;
m_bottomMarginCheckbox = NULL;
m_marginBottom = NULL;
m_unitsMarginBottom = NULL;
m_leftPaddingCheckbox = NULL;
m_paddingLeft = NULL;
m_unitsPaddingLeft = NULL;
m_rightPaddingCheckbox = NULL;
m_paddingRight = NULL;
m_unitsPaddingRight = NULL;
m_topPaddingCheckbox = NULL;
m_paddingTop = NULL;
m_unitsPaddingTop = NULL;
m_bottomPaddingCheckbox = NULL;
m_paddingBottom = NULL;
m_unitsPaddingBottom = NULL;
////@end wxRichTextMarginsPage member initialisation
}
/*!
* Control creation for wxRichTextMarginsPage
*/
void wxRichTextMarginsPage::CreateControls()
{
////@begin wxRichTextMarginsPage content construction
wxRichTextMarginsPage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW, 5);
wxStaticText* itemStaticText5 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Margins"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText5->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer4->Add(itemStaticText5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine6 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer4->Add(itemStaticLine6, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer7 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer7, 0, wxGROW, 5);
itemBoxSizer7->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer9 = new wxFlexGridSizer(0, 4, 0, 0);
itemBoxSizer7->Add(itemFlexGridSizer9, 0, wxALIGN_CENTER_VERTICAL, 5);
m_leftMarginCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_LEFT_MARGIN_CHECKBOX, _("&Left:"), wxDefaultPosition, wxDefaultSize, 0 );
m_leftMarginCheckbox->SetValue(false);
itemFlexGridSizer9->Add(m_leftMarginCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer9->Add(itemBoxSizer11, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_marginLeft = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_LEFT_MARGIN, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_marginLeft->SetHelpText(_("The left margin size."));
if (wxRichTextMarginsPage::ShowToolTips())
m_marginLeft->SetToolTip(_("The left margin size."));
itemBoxSizer11->Add(m_marginLeft, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsMarginLeftStrings;
m_unitsMarginLeftStrings.Add(_("px"));
m_unitsMarginLeftStrings.Add(_("cm"));
m_unitsMarginLeft = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_LEFT_MARGIN_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsMarginLeftStrings, wxCB_READONLY );
m_unitsMarginLeft->SetStringSelection(_("px"));
m_unitsMarginLeft->SetHelpText(_("Units for the left margin."));
if (wxRichTextMarginsPage::ShowToolTips())
m_unitsMarginLeft->SetToolTip(_("Units for the left margin."));
itemBoxSizer11->Add(m_unitsMarginLeft, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer11->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_rightMarginCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_RIGHT_MARGIN_CHECKBOX, _("&Right:"), wxDefaultPosition, wxDefaultSize, 0 );
m_rightMarginCheckbox->SetValue(false);
itemFlexGridSizer9->Add(m_rightMarginCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer16 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer9->Add(itemBoxSizer16, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_marginRight = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_RIGHT_MARGIN, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_marginRight->SetHelpText(_("The right margin size."));
if (wxRichTextMarginsPage::ShowToolTips())
m_marginRight->SetToolTip(_("The right margin size."));
itemBoxSizer16->Add(m_marginRight, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsMarginRightStrings;
m_unitsMarginRightStrings.Add(_("px"));
m_unitsMarginRightStrings.Add(_("cm"));
m_unitsMarginRight = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_RIGHT_MARGIN_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsMarginRightStrings, wxCB_READONLY );
m_unitsMarginRight->SetStringSelection(_("px"));
m_unitsMarginRight->SetHelpText(_("Units for the right margin."));
if (wxRichTextMarginsPage::ShowToolTips())
m_unitsMarginRight->SetToolTip(_("Units for the right margin."));
itemBoxSizer16->Add(m_unitsMarginRight, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_topMarginCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_TOP_MARGIN_CHECKBOX, _("&Top:"), wxDefaultPosition, wxDefaultSize, 0 );
m_topMarginCheckbox->SetValue(false);
itemFlexGridSizer9->Add(m_topMarginCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer9->Add(itemBoxSizer20, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_marginTop = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_TOP_MARGIN, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_marginTop->SetHelpText(_("The top margin size."));
if (wxRichTextMarginsPage::ShowToolTips())
m_marginTop->SetToolTip(_("The top margin size."));
itemBoxSizer20->Add(m_marginTop, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsMarginTopStrings;
m_unitsMarginTopStrings.Add(_("px"));
m_unitsMarginTopStrings.Add(_("cm"));
m_unitsMarginTop = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_TOP_MARGIN_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsMarginTopStrings, wxCB_READONLY );
m_unitsMarginTop->SetStringSelection(_("px"));
m_unitsMarginTop->SetHelpText(_("Units for the top margin."));
if (wxRichTextMarginsPage::ShowToolTips())
m_unitsMarginTop->SetToolTip(_("Units for the top margin."));
itemBoxSizer20->Add(m_unitsMarginTop, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer20->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_bottomMarginCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_BOTTOM_MARGIN_CHECKBOX, _("&Bottom:"), wxDefaultPosition, wxDefaultSize, 0 );
m_bottomMarginCheckbox->SetValue(false);
itemFlexGridSizer9->Add(m_bottomMarginCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer25 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer9->Add(itemBoxSizer25, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_marginBottom = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_BOTTOM_MARGIN, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_marginBottom->SetHelpText(_("The bottom margin size."));
if (wxRichTextMarginsPage::ShowToolTips())
m_marginBottom->SetToolTip(_("The bottom margin size."));
itemBoxSizer25->Add(m_marginBottom, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsMarginBottomStrings;
m_unitsMarginBottomStrings.Add(_("px"));
m_unitsMarginBottomStrings.Add(_("cm"));
m_unitsMarginBottom = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_BOTTOM_MARGIN_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsMarginBottomStrings, wxCB_READONLY );
m_unitsMarginBottom->SetStringSelection(_("px"));
m_unitsMarginBottom->SetHelpText(_("Units for the bottom margin."));
if (wxRichTextMarginsPage::ShowToolTips())
m_unitsMarginBottom->SetToolTip(_("Units for the bottom margin."));
itemBoxSizer25->Add(m_unitsMarginBottom, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer28 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer28, 0, wxGROW, 5);
wxStaticText* itemStaticText29 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Padding"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText29->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer28->Add(itemStaticText29, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine30 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer28->Add(itemStaticLine30, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer31 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer31, 0, wxGROW, 5);
itemBoxSizer31->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer33 = new wxFlexGridSizer(0, 4, 0, 0);
itemBoxSizer31->Add(itemFlexGridSizer33, 0, wxALIGN_CENTER_VERTICAL, 5);
m_leftPaddingCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_LEFT_PADDING_CHECKBOX, _("&Left:"), wxDefaultPosition, wxDefaultSize, 0 );
m_leftPaddingCheckbox->SetValue(false);
itemFlexGridSizer33->Add(m_leftPaddingCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer35 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer33->Add(itemBoxSizer35, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_paddingLeft = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_LEFT_PADDING, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_paddingLeft->SetHelpText(_("The left padding size."));
if (wxRichTextMarginsPage::ShowToolTips())
m_paddingLeft->SetToolTip(_("The left padding size."));
itemBoxSizer35->Add(m_paddingLeft, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsPaddingLeftStrings;
m_unitsPaddingLeftStrings.Add(_("px"));
m_unitsPaddingLeftStrings.Add(_("cm"));
m_unitsPaddingLeft = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_LEFT_PADDING_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsPaddingLeftStrings, wxCB_READONLY );
m_unitsPaddingLeft->SetStringSelection(_("px"));
m_unitsPaddingLeft->SetHelpText(_("Units for the left padding."));
if (wxRichTextMarginsPage::ShowToolTips())
m_unitsPaddingLeft->SetToolTip(_("Units for the left padding."));
itemBoxSizer35->Add(m_unitsPaddingLeft, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer35->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_rightPaddingCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_RIGHT_PADDING_CHECKBOX, _("&Right:"), wxDefaultPosition, wxDefaultSize, 0 );
m_rightPaddingCheckbox->SetValue(false);
itemFlexGridSizer33->Add(m_rightPaddingCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer40 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer33->Add(itemBoxSizer40, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_paddingRight = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_RIGHT_PADDING, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_paddingRight->SetHelpText(_("The right padding size."));
if (wxRichTextMarginsPage::ShowToolTips())
m_paddingRight->SetToolTip(_("The right padding size."));
itemBoxSizer40->Add(m_paddingRight, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsPaddingRightStrings;
m_unitsPaddingRightStrings.Add(_("px"));
m_unitsPaddingRightStrings.Add(_("cm"));
m_unitsPaddingRight = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_RIGHT_PADDING_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsPaddingRightStrings, wxCB_READONLY );
m_unitsPaddingRight->SetStringSelection(_("px"));
m_unitsPaddingRight->SetHelpText(_("Units for the right padding."));
if (wxRichTextMarginsPage::ShowToolTips())
m_unitsPaddingRight->SetToolTip(_("Units for the right padding."));
itemBoxSizer40->Add(m_unitsPaddingRight, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_topPaddingCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_TOP_PADDING_CHECKBOX, _("&Top:"), wxDefaultPosition, wxDefaultSize, 0 );
m_topPaddingCheckbox->SetValue(false);
itemFlexGridSizer33->Add(m_topPaddingCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer44 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer33->Add(itemBoxSizer44, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_paddingTop = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_TOP_PADDING, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_paddingTop->SetHelpText(_("The top padding size."));
if (wxRichTextMarginsPage::ShowToolTips())
m_paddingTop->SetToolTip(_("The top padding size."));
itemBoxSizer44->Add(m_paddingTop, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsPaddingTopStrings;
m_unitsPaddingTopStrings.Add(_("px"));
m_unitsPaddingTopStrings.Add(_("cm"));
m_unitsPaddingTop = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_TOP_PADDING_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsPaddingTopStrings, wxCB_READONLY );
m_unitsPaddingTop->SetStringSelection(_("px"));
m_unitsPaddingTop->SetHelpText(_("Units for the top padding."));
if (wxRichTextMarginsPage::ShowToolTips())
m_unitsPaddingTop->SetToolTip(_("Units for the top padding."));
itemBoxSizer44->Add(m_unitsPaddingTop, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer44->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_bottomPaddingCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_BOTTOM_PADDING_CHECKBOX, _("&Bottom:"), wxDefaultPosition, wxDefaultSize, 0 );
m_bottomPaddingCheckbox->SetValue(false);
itemFlexGridSizer33->Add(m_bottomPaddingCheckbox, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer49 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer33->Add(itemBoxSizer49, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_paddingBottom = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_BOTTOM_PADDING, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_paddingBottom->SetHelpText(_("The bottom padding size."));
if (wxRichTextMarginsPage::ShowToolTips())
m_paddingBottom->SetToolTip(_("The bottom padding size."));
itemBoxSizer49->Add(m_paddingBottom, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsPaddingBottomStrings;
m_unitsPaddingBottomStrings.Add(_("px"));
m_unitsPaddingBottomStrings.Add(_("cm"));
m_unitsPaddingBottom = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_BOTTOM_PADDING_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsPaddingBottomStrings, wxCB_READONLY );
m_unitsPaddingBottom->SetStringSelection(_("px"));
m_unitsPaddingBottom->SetHelpText(_("Units for the bottom padding."));
if (wxRichTextMarginsPage::ShowToolTips())
m_unitsPaddingBottom->SetToolTip(_("Units for the bottom padding."));
itemBoxSizer49->Add(m_unitsPaddingBottom, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
////@end wxRichTextMarginsPage content construction
}
wxRichTextAttr* wxRichTextMarginsPage::GetAttributes()
{
return wxRichTextFormattingDialog::GetDialogAttributes(this);
}
/*!
* Should we show tooltips?
*/
bool wxRichTextMarginsPage::ShowToolTips()
{
return true;
}
bool wxRichTextMarginsPage::TransferDataToWindow()
{
// Margins
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMargins().GetLeft(), m_marginLeft, m_unitsMarginLeft, m_leftMarginCheckbox);
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMargins().GetTop(), m_marginTop, m_unitsMarginTop, m_topMarginCheckbox);
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMargins().GetRight(), m_marginRight, m_unitsMarginRight, m_rightMarginCheckbox);
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMargins().GetBottom(), m_marginBottom, m_unitsMarginBottom, m_bottomMarginCheckbox);
// Padding
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetPadding().GetLeft(), m_paddingLeft, m_unitsPaddingLeft, m_leftPaddingCheckbox);
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetPadding().GetTop(), m_paddingTop, m_unitsPaddingTop, m_topPaddingCheckbox);
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetPadding().GetRight(), m_paddingRight, m_unitsPaddingRight, m_rightPaddingCheckbox);
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetPadding().GetBottom(), m_paddingBottom, m_unitsPaddingBottom, m_bottomPaddingCheckbox);
return true;
}
bool wxRichTextMarginsPage::TransferDataFromWindow()
{
// Margins
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMargins().GetLeft(), m_marginLeft, m_unitsMarginLeft, m_leftMarginCheckbox);
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMargins().GetTop(), m_marginTop, m_unitsMarginTop, m_topMarginCheckbox);
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMargins().GetRight(), m_marginRight, m_unitsMarginRight, m_rightMarginCheckbox);
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetMargins().GetBottom(), m_marginBottom, m_unitsMarginBottom, m_bottomMarginCheckbox);
// Padding
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetPadding().GetLeft(), m_paddingLeft, m_unitsPaddingLeft, m_leftPaddingCheckbox);
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetPadding().GetTop(), m_paddingTop, m_unitsPaddingTop, m_topPaddingCheckbox);
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetPadding().GetRight(), m_paddingRight, m_unitsPaddingRight, m_rightPaddingCheckbox);
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetPadding().GetBottom(), m_paddingBottom, m_unitsPaddingBottom, m_bottomPaddingCheckbox);
return true;
}
/*!
* Get bitmap resources
*/
wxBitmap wxRichTextMarginsPage::GetBitmapResource( const wxString& name )
{
// Bitmap retrieval
////@begin wxRichTextMarginsPage bitmap retrieval
wxUnusedVar(name);
return wxNullBitmap;
////@end wxRichTextMarginsPage bitmap retrieval
}
/*!
* Get icon resources
*/
wxIcon wxRichTextMarginsPage::GetIconResource( const wxString& name )
{
// Icon retrieval
////@begin wxRichTextMarginsPage icon retrieval
wxUnusedVar(name);
return wxNullIcon;
////@end wxRichTextMarginsPage icon retrieval
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT_MARGIN
*/
void wxRichTextMarginsPage::OnRichtextLeftMarginUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_leftMarginCheckbox->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_RIGHT_MARGIN
*/
void wxRichTextMarginsPage::OnRichtextRightMarginUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_rightMarginCheckbox->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_TOP_MARGIN
*/
void wxRichTextMarginsPage::OnRichtextTopMarginUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_topMarginCheckbox->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BOTTOM_MARGIN
*/
void wxRichTextMarginsPage::OnRichtextBottomMarginUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_bottomMarginCheckbox->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT_PADDING
*/
void wxRichTextMarginsPage::OnRichtextLeftPaddingUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_leftPaddingCheckbox->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_RIGHT_PADDING
*/
void wxRichTextMarginsPage::OnRichtextRightPaddingUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_rightPaddingCheckbox->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_TOP_PADDING
*/
void wxRichTextMarginsPage::OnRichtextTopPaddingUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_topPaddingCheckbox->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BOTTOM_PADDING
*/
void wxRichTextMarginsPage::OnRichtextBottomPaddingUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_bottomPaddingCheckbox->GetValue());
}

View File

@@ -54,6 +54,7 @@ void wxRichTextPrintout::OnPreparePrinting()
m_pageBreaksStart.Clear();
m_pageBreaksEnd.Clear();
m_pageYOffsets.Clear();
int lastStartPos = 0;
@@ -80,22 +81,20 @@ void wxRichTextPrintout::OnPreparePrinting()
// child is a paragraph
wxRichTextParagraph* child = wxDynamicCast(node->GetData(), wxRichTextParagraph);
wxASSERT (child != NULL);
if (child)
{
wxRichTextLineList::compatibility_iterator node2 = child->GetLines().GetFirst();
while (node2)
{
wxRichTextLine* line = node2->GetData();
// Set the line to the page-adjusted position
line->SetPosition(wxPoint(line->GetPosition().x, line->GetPosition().y - yOffset));
int lineY = child->GetPosition().y + line->GetPosition().y;
int lineY = child->GetPosition().y + line->GetPosition().y - yOffset;
bool hasHardPageBreak = ((node2 == child->GetLines().GetFirst()) && child->GetAttributes().HasPageBreak());
// Break the page if either we're going off the bottom, or this paragraph specifies
// an explicit page break
if (((lineY + line->GetSize().y) > rect.GetBottom()) ||
((node2 == child->GetLines().GetFirst()) && child->GetAttributes().HasPageBreak()))
if (((lineY + line->GetSize().y) > rect.GetBottom()) || hasHardPageBreak)
{
// New page starting at this line
int newY = rect.y;
@@ -105,32 +104,46 @@ void wxRichTextPrintout::OnPreparePrinting()
int increaseOffsetBy = lineY - newY;
yOffset += increaseOffsetBy;
line->SetPosition(wxPoint(line->GetPosition().x, newY - child->GetPosition().y));
if (!lastLine)
lastLine = line;
m_pageBreaksStart.Add(lastStartPos);
m_pageBreaksEnd.Add(lastLine->GetAbsoluteRange().GetEnd());
m_pageYOffsets.Add(yOffset);
lastStartPos = line->GetAbsoluteRange().GetStart();
lastLine = line;
m_numPages ++;
// Now create page breaks for the rest of the line, if it's larger than the page height
int contentLeft = line->GetSize().y - rect.GetHeight();
while (contentLeft >= 0)
{
yOffset += rect.GetHeight();
contentLeft -= rect.GetHeight();
m_pageBreaksStart.Add(lastStartPos);
m_pageBreaksEnd.Add(lastLine->GetAbsoluteRange().GetEnd());
m_pageYOffsets.Add(yOffset);
}
}
lastLine = line;
node2 = node2->GetNext();
}
}
node = node->GetNext();
}
// Closing page break
if (m_pageBreaksStart.GetCount() == 0 || (m_pageBreaksEnd[m_pageBreaksEnd.GetCount()-1] < (GetRichTextBuffer()->GetRange().GetEnd()-1)))
if (m_pageBreaksStart.GetCount() == 0 || (m_pageBreaksEnd[m_pageBreaksEnd.GetCount()-1] < (GetRichTextBuffer()->GetOwnRange().GetEnd()-1)))
{
m_pageBreaksStart.Add(lastStartPos);
m_pageBreaksEnd.Add(GetRichTextBuffer()->GetRange().GetEnd());
m_pageBreaksEnd.Add(GetRichTextBuffer()->GetOwnRange().GetEnd());
m_pageYOffsets.Add(yOffset);
}
}
}
@@ -274,7 +287,25 @@ void wxRichTextPrintout::RenderPage(wxDC *dc, int page)
wxRichTextRange rangeToDraw(m_pageBreaksStart[page-1], m_pageBreaksEnd[page-1]);
GetRichTextBuffer()->Draw(*dc, rangeToDraw, wxRichTextRange(-1,-1), textRect, 0 /* descent */, wxRICHTEXT_DRAW_IGNORE_CACHE /* flags */);
wxPoint oldOrigin = dc->GetLogicalOrigin();
double scaleX, scaleY;
dc->GetUserScale(& scaleX, & scaleY);
int yOffset = 0;
if (page > 1)
yOffset = m_pageYOffsets[page-2];
if (yOffset != oldOrigin.y)
dc->SetLogicalOrigin(oldOrigin.x, oldOrigin.y + yOffset);
dc->SetClippingRegion(wxRect(textRect.x, textRect.y + yOffset, textRect.width, textRect.height));
GetRichTextBuffer()->Draw(*dc, rangeToDraw, wxRichTextSelection(), textRect, 0 /* descent */, wxRICHTEXT_DRAW_IGNORE_CACHE|wxRICHTEXT_DRAW_PRINT /* flags */);
dc->DestroyClippingRegion();
if (yOffset != oldOrigin.y)
dc->SetLogicalOrigin(oldOrigin.x, oldOrigin.y);
}
void wxRichTextPrintout::SetMargins(int top, int bottom, int left, int right)
@@ -312,7 +343,7 @@ void wxRichTextPrintout::CalculateScaling(wxDC* dc, wxRect& textRect, wxRect& he
// The dimensions used for indentation etc. have to be unscaled
// during printing to be correct when scaling is applied.
if (!IsPreview())
// if (!IsPreview())
m_richTextBuffer->SetScale(scale);
// Calculate margins

View File

@@ -0,0 +1,639 @@
/////////////////////////////////////////////////////////////////////////////
// Name: richtextsizepage.cpp
// Purpose:
// Author: Julian Smart
// Modified by:
// Created: 20/10/2010 10:23:24
// RCS-ID:
// Copyright: (c) Julian Smart
// Licence:
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
////@begin includes
////@end includes
#include "wx/richtext/richtextsizepage.h"
////@begin XPM images
////@end XPM images
/*!
* wxRichTextSizePage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextSizePage, wxRichTextDialogPage )
/*!
* wxRichTextSizePage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextSizePage, wxRichTextDialogPage )
////@begin wxRichTextSizePage event table entries
EVT_UPDATE_UI( ID_RICHTEXT_WIDTH, wxRichTextSizePage::OnRichtextWidthUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_UNITS_W, wxRichTextSizePage::OnRichtextWidthUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_HEIGHT, wxRichTextSizePage::OnRichtextHeightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_UNITS_H, wxRichTextSizePage::OnRichtextHeightUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX, wxRichTextSizePage::OnRichtextVerticalAlignmentComboboxUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OFFSET, wxRichTextSizePage::OnRichtextOffsetUpdate )
EVT_UPDATE_UI( ID_RICHTEXT_OFFSET_UNITS, wxRichTextSizePage::OnRichtextOffsetUpdate )
EVT_BUTTON( ID_RICHTEXT_PARA_UP, wxRichTextSizePage::OnRichtextParaUpClick )
EVT_BUTTON( ID_RICHTEXT_PARA_DOWN, wxRichTextSizePage::OnRichtextParaDownClick )
////@end wxRichTextSizePage event table entries
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextSizePage)
/*!
* wxRichTextSizePage constructors
*/
wxRichTextSizePage::wxRichTextSizePage()
{
Init();
}
wxRichTextSizePage::wxRichTextSizePage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
Init();
Create(parent, id, pos, size, style);
}
/*!
* wxRichTextSizePage creator
*/
bool wxRichTextSizePage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextSizePage creation
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
{
GetSizer()->SetSizeHints(this);
}
Centre();
////@end wxRichTextSizePage creation
return true;
}
/*!
* wxRichTextSizePage destructor
*/
wxRichTextSizePage::~wxRichTextSizePage()
{
////@begin wxRichTextSizePage destruction
////@end wxRichTextSizePage destruction
}
/*!
* Member initialisation
*/
void wxRichTextSizePage::Init()
{
////@begin wxRichTextSizePage member initialisation
m_parentSizer = NULL;
m_floatingControls = NULL;
m_float = NULL;
m_widthCheckbox = NULL;
m_width = NULL;
m_unitsW = NULL;
m_heightCheckbox = NULL;
m_height = NULL;
m_unitsH = NULL;
m_alignmentControls = NULL;
m_verticalAlignmentCheckbox = NULL;
m_verticalAlignmentComboBox = NULL;
m_positionControls = NULL;
m_moveObjectParentSizer = NULL;
m_offsetYCheckbox = NULL;
m_offset = NULL;
m_unitsOffset = NULL;
m_moveObjectSizer = NULL;
////@end wxRichTextSizePage member initialisation
}
/*!
* Control creation for wxRichTextSizePage
*/
void wxRichTextSizePage::CreateControls()
{
////@begin wxRichTextSizePage content construction
wxRichTextSizePage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
m_parentSizer = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(m_parentSizer, 0, wxGROW|wxALL, 5);
m_floatingControls = new wxBoxSizer(wxVERTICAL);
m_parentSizer->Add(m_floatingControls, 0, wxGROW, 5);
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
m_floatingControls->Add(itemBoxSizer5, 0, wxGROW, 5);
wxStaticText* itemStaticText6 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Floating"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText6->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine7 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer5->Add(itemStaticLine7, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
m_floatingControls->Add(itemBoxSizer8, 0, wxGROW, 5);
itemBoxSizer8->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer10 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer8->Add(itemFlexGridSizer10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5);
wxStaticText* itemStaticText11 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Floating mode:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer10->Add(itemStaticText11, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxArrayString m_floatStrings;
m_floatStrings.Add(_("None"));
m_floatStrings.Add(_("Left"));
m_floatStrings.Add(_("Right"));
m_float = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_FLOATING_MODE, _("None"), wxDefaultPosition, wxSize(80, -1), m_floatStrings, wxCB_READONLY );
m_float->SetStringSelection(_("None"));
m_float->SetHelpText(_("How the object will float relative to the text."));
if (wxRichTextSizePage::ShowToolTips())
m_float->SetToolTip(_("How the object will float relative to the text."));
itemFlexGridSizer10->Add(m_float, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxHORIZONTAL);
m_parentSizer->Add(itemBoxSizer13, 0, wxGROW, 5);
wxStaticText* itemStaticText14 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Size"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText14->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer13->Add(itemStaticText14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine15 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer13->Add(itemStaticLine15, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer16 = new wxBoxSizer(wxHORIZONTAL);
m_parentSizer->Add(itemBoxSizer16, 0, wxGROW, 5);
itemBoxSizer16->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer18 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer16->Add(itemFlexGridSizer18, 0, wxALIGN_CENTER_VERTICAL, 5);
m_widthCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_WIDTH_CHECKBOX, _("&Width:"), wxDefaultPosition, wxDefaultSize, 0 );
m_widthCheckbox->SetValue(false);
m_widthCheckbox->SetHelpText(_("Enable the width value."));
if (wxRichTextSizePage::ShowToolTips())
m_widthCheckbox->SetToolTip(_("Enable the width value."));
itemFlexGridSizer18->Add(m_widthCheckbox, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer18->Add(itemBoxSizer20, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_width = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_WIDTH, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_width->SetHelpText(_("The object width."));
if (wxRichTextSizePage::ShowToolTips())
m_width->SetToolTip(_("The object width."));
itemBoxSizer20->Add(m_width, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsWStrings;
m_unitsWStrings.Add(_("px"));
m_unitsWStrings.Add(_("cm"));
m_unitsW = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_UNITS_W, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsWStrings, wxCB_READONLY );
m_unitsW->SetStringSelection(_("px"));
m_unitsW->SetHelpText(_("Units for the object width."));
if (wxRichTextSizePage::ShowToolTips())
m_unitsW->SetToolTip(_("Units for the object width."));
itemBoxSizer20->Add(m_unitsW, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_heightCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_HEIGHT_CHECKBOX, _("&Height:"), wxDefaultPosition, wxDefaultSize, 0 );
m_heightCheckbox->SetValue(false);
m_heightCheckbox->SetHelpText(_("Enable the height value."));
if (wxRichTextSizePage::ShowToolTips())
m_heightCheckbox->SetToolTip(_("Enable the height value."));
itemFlexGridSizer18->Add(m_heightCheckbox, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer18->Add(itemBoxSizer24, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
m_height = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_HEIGHT, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_height->SetHelpText(_("The object height."));
if (wxRichTextSizePage::ShowToolTips())
m_height->SetToolTip(_("The object height."));
itemBoxSizer24->Add(m_height, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsHStrings;
m_unitsHStrings.Add(_("px"));
m_unitsHStrings.Add(_("cm"));
m_unitsH = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_UNITS_H, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsHStrings, wxCB_READONLY );
m_unitsH->SetStringSelection(_("px"));
m_unitsH->SetHelpText(_("Units for the object height."));
if (wxRichTextSizePage::ShowToolTips())
m_unitsH->SetToolTip(_("Units for the object height."));
itemBoxSizer24->Add(m_unitsH, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_alignmentControls = new wxBoxSizer(wxVERTICAL);
m_parentSizer->Add(m_alignmentControls, 0, wxGROW, 5);
wxBoxSizer* itemBoxSizer28 = new wxBoxSizer(wxHORIZONTAL);
m_alignmentControls->Add(itemBoxSizer28, 0, wxGROW, 5);
wxStaticText* itemStaticText29 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Alignment"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText29->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer28->Add(itemStaticText29, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine30 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer28->Add(itemStaticLine30, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer31 = new wxBoxSizer(wxHORIZONTAL);
m_alignmentControls->Add(itemBoxSizer31, 0, wxGROW, 5);
itemBoxSizer31->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_verticalAlignmentCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_VERTICAL_ALIGNMENT_CHECKBOX, _("&Vertical alignment:"), wxDefaultPosition, wxDefaultSize, 0 );
m_verticalAlignmentCheckbox->SetValue(false);
m_verticalAlignmentCheckbox->SetHelpText(_("Enable vertical alignment."));
if (wxRichTextSizePage::ShowToolTips())
m_verticalAlignmentCheckbox->SetToolTip(_("Enable vertical alignment."));
itemBoxSizer31->Add(m_verticalAlignmentCheckbox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxArrayString m_verticalAlignmentComboBoxStrings;
m_verticalAlignmentComboBoxStrings.Add(_("Top"));
m_verticalAlignmentComboBoxStrings.Add(_("Centred"));
m_verticalAlignmentComboBoxStrings.Add(_("Bottom"));
m_verticalAlignmentComboBox = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX, _("Top"), wxDefaultPosition, wxDefaultSize, m_verticalAlignmentComboBoxStrings, wxCB_READONLY );
m_verticalAlignmentComboBox->SetStringSelection(_("Top"));
m_verticalAlignmentComboBox->SetHelpText(_("Vertical alignment."));
if (wxRichTextSizePage::ShowToolTips())
m_verticalAlignmentComboBox->SetToolTip(_("Vertical alignment."));
itemBoxSizer31->Add(m_verticalAlignmentComboBox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_positionControls = new wxBoxSizer(wxVERTICAL);
m_parentSizer->Add(m_positionControls, 0, wxGROW, 5);
wxBoxSizer* itemBoxSizer36 = new wxBoxSizer(wxHORIZONTAL);
m_positionControls->Add(itemBoxSizer36, 0, wxGROW, 5);
wxStaticText* itemStaticText37 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Position"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticText37->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
itemBoxSizer36->Add(itemStaticText37, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticLine* itemStaticLine38 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemBoxSizer36->Add(itemStaticLine38, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxBoxSizer* itemBoxSizer39 = new wxBoxSizer(wxHORIZONTAL);
m_positionControls->Add(itemBoxSizer39, 0, wxGROW, 5);
itemBoxSizer39->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_moveObjectParentSizer = new wxBoxSizer(wxVERTICAL);
itemBoxSizer39->Add(m_moveObjectParentSizer, 0, wxALIGN_TOP, 5);
wxBoxSizer* itemBoxSizer42 = new wxBoxSizer(wxHORIZONTAL);
m_moveObjectParentSizer->Add(itemBoxSizer42, 0, wxGROW, 5);
m_offsetYCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_OFFSET_CHECKBOX, _("Vertical &Offset:"), wxDefaultPosition, wxDefaultSize, 0 );
m_offsetYCheckbox->SetValue(false);
m_offsetYCheckbox->SetHelpText(_("Enable vertical offset."));
if (wxRichTextSizePage::ShowToolTips())
m_offsetYCheckbox->SetToolTip(_("Enable vertical offset."));
itemBoxSizer42->Add(m_offsetYCheckbox, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
m_offset = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_OFFSET, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
m_offset->SetMaxLength(10);
m_offset->SetHelpText(_("The vertical offset relative to the paragraph."));
if (wxRichTextSizePage::ShowToolTips())
m_offset->SetToolTip(_("The vertical offset relative to the paragraph."));
itemBoxSizer42->Add(m_offset, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
wxArrayString m_unitsOffsetStrings;
m_unitsOffsetStrings.Add(_("px"));
m_unitsOffsetStrings.Add(_("cm"));
m_unitsOffset = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_OFFSET_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsOffsetStrings, wxCB_READONLY );
m_unitsOffset->SetStringSelection(_("px"));
m_unitsOffset->SetHelpText(_("Units for the object offset."));
if (wxRichTextSizePage::ShowToolTips())
m_unitsOffset->SetToolTip(_("Units for the object offset."));
itemBoxSizer42->Add(m_unitsOffset, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_moveObjectSizer = new wxBoxSizer(wxHORIZONTAL);
m_moveObjectParentSizer->Add(m_moveObjectSizer, 0, wxGROW, 5);
wxStaticText* itemStaticText47 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Move the object to:"), wxDefaultPosition, wxDefaultSize, 0 );
m_moveObjectSizer->Add(itemStaticText47, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* itemButton48 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXT_PARA_UP, _("&Previous Paragraph"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton48->SetHelpText(_("Moves the object to the previous paragraph."));
if (wxRichTextSizePage::ShowToolTips())
itemButton48->SetToolTip(_("Moves the object to the previous paragraph."));
m_moveObjectSizer->Add(itemButton48, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* itemButton49 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXT_PARA_DOWN, _("&Next Paragraph"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton49->SetHelpText(_("Moves the object to the next paragraph."));
if (wxRichTextSizePage::ShowToolTips())
itemButton49->SetToolTip(_("Moves the object to the next paragraph."));
m_moveObjectSizer->Add(itemButton49, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP|wxBOTTOM, 5);
////@end wxRichTextSizePage content construction
}
wxRichTextAttr* wxRichTextSizePage::GetAttributes()
{
return wxRichTextFormattingDialog::GetDialogAttributes(this);
}
/*!
* Should we show tooltips?
*/
bool wxRichTextSizePage::ShowToolTips()
{
return true;
}
bool wxRichTextSizePage::TransferDataToWindow()
{
m_float->SetSelection(GetAttributes()->GetTextBoxAttr().GetFloatMode());
m_verticalAlignmentCheckbox->SetValue(GetAttributes()->GetTextBoxAttr().HasVerticalAlignment());
if (GetAttributes()->GetTextBoxAttr().HasVerticalAlignment())
{
if ((int) GetAttributes()->GetTextBoxAttr().GetVerticalAlignment() > 0 &&
(int) GetAttributes()->GetTextBoxAttr().GetVerticalAlignment() < 4)
{
m_verticalAlignmentComboBox->SetSelection(((int) GetAttributes()->GetTextBoxAttr().GetVerticalAlignment() - 1));
}
else
m_verticalAlignmentComboBox->SetSelection(0);
}
wxRichTextFormattingDialog* dialog = wxRichTextFormattingDialog::GetDialog(this);
if (dialog)
{
// Only show the Move Object controls if there's an object.
if (!dialog->GetObject())
{
m_moveObjectParentSizer->Show(m_moveObjectSizer, false);
GetSizer()->Layout();
}
}
if (dialog && dialog->GetObject())
{
wxTextAttrSize size = dialog->GetObject()->GetNaturalSize();
if (size.GetWidth().IsValid() && size.GetHeight().IsValid())
{
if (!GetAttributes()->GetTextBoxAttr().GetWidth().IsValid() || GetAttributes()->GetTextBoxAttr().GetWidth().GetValue() <= 0)
{
GetAttributes()->GetTextBoxAttr().GetWidth() = size.GetWidth();
}
if (!GetAttributes()->GetTextBoxAttr().GetHeight().IsValid() || GetAttributes()->GetTextBoxAttr().GetHeight().GetValue() <= 0)
{
GetAttributes()->GetTextBoxAttr().GetHeight() = size.GetHeight();
}
}
}
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetWidth(), m_width, m_unitsW, m_widthCheckbox);
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetHeight(), m_height, m_unitsH, m_heightCheckbox);
wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetTop(), m_offset, m_unitsOffset, m_offsetYCheckbox);
return true;
}
bool wxRichTextSizePage::TransferDataFromWindow()
{
GetAttributes()->GetTextBoxAttr().SetFloatMode((wxTextBoxAttrFloatStyle) m_float->GetSelection());
if (m_float->GetSelection() == 0)
GetAttributes()->GetTextBoxAttr().RemoveFlag(wxTEXT_BOX_ATTR_FLOAT);
if (m_verticalAlignmentCheckbox->GetValue())
GetAttributes()->GetTextBoxAttr().SetVerticalAlignment((wxTextBoxAttrVerticalAlignment) (m_verticalAlignmentComboBox->GetSelection() + 1));
else
{
GetAttributes()->GetTextBoxAttr().SetVerticalAlignment(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT_NONE);
GetAttributes()->GetTextBoxAttr().RemoveFlag(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT);
}
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetWidth(), m_width, m_unitsW, m_widthCheckbox);
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetHeight(), m_height, m_unitsH, m_heightCheckbox);
wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetTop(), m_offset, m_unitsOffset, m_offsetYCheckbox);
return true;
}
// Show/hide position controls
void wxRichTextSizePage::ShowPositionControls(bool show)
{
if (m_parentSizer)
{
m_parentSizer->Show(m_positionControls, show);
Layout();
}
}
// Show/hide floating controls
void wxRichTextSizePage::ShowFloatingControls(bool show)
{
if (m_parentSizer)
{
m_parentSizer->Show(m_floatingControls, show);
Layout();
}
}
/*!
* Get bitmap resources
*/
wxBitmap wxRichTextSizePage::GetBitmapResource( const wxString& name )
{
// Bitmap retrieval
////@begin wxRichTextSizePage bitmap retrieval
wxUnusedVar(name);
return wxNullBitmap;
////@end wxRichTextSizePage bitmap retrieval
}
/*!
* Get icon resources
*/
wxIcon wxRichTextSizePage::GetIconResource( const wxString& name )
{
// Icon retrieval
////@begin wxRichTextSizePage icon retrieval
wxUnusedVar(name);
return wxNullIcon;
////@end wxRichTextSizePage icon retrieval
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_WIDTH
*/
void wxRichTextSizePage::OnRichtextWidthUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_widthCheckbox->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_HEIGHT
*/
void wxRichTextSizePage::OnRichtextHeightUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_heightCheckbox->GetValue());
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OFFSET
*/
void wxRichTextSizePage::OnRichtextOffsetUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_offsetYCheckbox->GetValue());
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_PARA_UP
*/
void wxRichTextSizePage::OnRichtextParaUpClick( wxCommandEvent& WXUNUSED(event) )
{
wxRichTextFormattingDialog* dialog = wxRichTextFormattingDialog::GetDialog(this);
if (!dialog || !dialog->GetObject())
return;
// Make sure object attributes are up-to-date
dialog->TransferDataFromWindow();
wxRichTextBuffer* buffer = dialog->GetObject()->GetBuffer();
wxRichTextParagraphLayoutBox* container = dialog->GetObject()->GetParentContainer();
wxRichTextObject* parent = dialog->GetObject()->GetParent();
if (!container || !parent || !buffer)
return;
wxRichTextRange range = dialog->GetObject()->GetRange();
wxRichTextObjectList::compatibility_iterator iter = container->GetChildren().GetFirst();
if (!iter)
return;
while (iter)
{
if (iter->GetData() == parent)
break;
iter = iter->GetNext();
}
if (!iter)
return;
iter = iter->GetPrevious();
if (!iter)
return;
wxRichTextObject *obj = iter->GetData();
wxRichTextRange rg = obj->GetRange();
// tempObj will be deleted along with the undo object, and a clone of it will be
// returned by InsertObjectWithUndo
wxRichTextObject* tempObj = dialog->GetObject()->Clone();
container->DeleteRangeWithUndo(range, buffer->GetRichTextCtrl(), buffer);
wxRichTextObject* obj2 = container->InsertObjectWithUndo(rg.GetStart(), tempObj, buffer->GetRichTextCtrl(), buffer, 0);
dialog->SetObject(obj2);
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_DOWN
*/
void wxRichTextSizePage::OnRichtextParaDownClick( wxCommandEvent& WXUNUSED(event) )
{
wxRichTextFormattingDialog* dialog = wxRichTextFormattingDialog::GetDialog(this);
if (!dialog || !dialog->GetObject())
return;
// Make sure object attributes are up-to-date
dialog->TransferDataFromWindow();
wxRichTextBuffer* buffer = dialog->GetObject()->GetBuffer();
wxRichTextParagraphLayoutBox* container = dialog->GetObject()->GetParentContainer();
wxRichTextObject* parent = dialog->GetObject()->GetParent();
if (!container || !parent || !buffer)
return;
wxRichTextRange range = dialog->GetObject()->GetRange();
wxRichTextObjectList::compatibility_iterator iter = buffer->GetChildren().GetFirst();
if (!iter)
return;
while (iter)
{
if (iter->GetData() == parent)
break;
iter = iter->GetNext();
}
iter = iter->GetNext();
if (!iter)
return;
wxRichTextObject *obj = iter->GetData();
wxRichTextRange rg = obj->GetRange();
// tempObj will be deleted along with the undo object, and a clone of it will be
// returned by InsertObjectWithUndo
wxRichTextObject* tempObj = dialog->GetObject()->Clone();
container->DeleteRangeWithUndo(range, buffer->GetRichTextCtrl(), buffer);
// Minus one because we deleted an object
wxRichTextObject* obj2 = container->InsertObjectWithUndo(rg.GetStart()-1, tempObj, buffer->GetRichTextCtrl(), buffer, 0);
dialog->SetObject(obj2);
}
/*!
* wxEVT_UPDATE_UI event handler for ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX
*/
void wxRichTextSizePage::OnRichtextVerticalAlignmentComboboxUpdate( wxUpdateUIEvent& event )
{
event.Enable(m_verticalAlignmentCheckbox->GetValue());
}

View File

@@ -67,6 +67,8 @@ BEGIN_EVENT_TABLE( wxRichTextStyleOrganiserDialog, wxDialog )
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextStyleOrganiserDialog)
/*!
* wxRichTextStyleOrganiserDialog constructors
*/
@@ -110,6 +112,7 @@ void wxRichTextStyleOrganiserDialog::Init()
m_closeButton = NULL;
m_bottomButtonSizer = NULL;
m_restartNumberingCtrl = NULL;
m_stdButtonSizer = NULL;
m_okButton = NULL;
m_cancelButton = NULL;
////@end wxRichTextStyleOrganiserDialog member initialisation
@@ -277,23 +280,29 @@ void wxRichTextStyleOrganiserDialog::CreateControls()
m_restartNumberingCtrl->SetToolTip(_("Check to restart numbering."));
m_bottomButtonSizer->Add(m_restartNumberingCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_bottomButtonSizer->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_stdButtonSizer = new wxStdDialogButtonSizer;
m_bottomButtonSizer->Add(m_stdButtonSizer, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_okButton = new wxButton( itemDialog1, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
m_okButton->SetDefault();
m_okButton->SetHelpText(_("Click to confirm your selection."));
if (wxRichTextStyleOrganiserDialog::ShowToolTips())
m_okButton->SetToolTip(_("Click to confirm your selection."));
m_bottomButtonSizer->Add(m_okButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_stdButtonSizer->AddButton(m_okButton);
m_cancelButton = new wxButton( itemDialog1, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
m_cancelButton->SetHelpText(_("Click to cancel this window."));
if (wxRichTextStyleOrganiserDialog::ShowToolTips())
m_cancelButton->SetToolTip(_("Click to cancel this window."));
m_bottomButtonSizer->Add(m_cancelButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
m_stdButtonSizer->AddButton(m_cancelButton);
wxButton* itemButton28 = new wxButton( itemDialog1, wxID_HELP, _("&Help"), wxDefaultPosition, wxDefaultSize, 0 );
m_stdButtonSizer->AddButton(itemButton28);
m_stdButtonSizer->Realize();
////@end wxRichTextStyleOrganiserDialog content construction
if (GetHelpId() == -1)
{
wxWindow* button = FindWindowById(wxID_HELP);
if (button)
m_stdButtonSizer->Show(button, false);
}
if ((m_flags & wxRICHTEXT_ORGANISER_CREATE_STYLES) == 0)
{
m_buttonSizer->Show(m_newCharacter, false);
@@ -323,8 +332,8 @@ void wxRichTextStyleOrganiserDialog::CreateControls()
if ((m_flags & wxRICHTEXT_ORGANISER_OK_CANCEL) == 0)
{
m_bottomButtonSizer->Show(m_okButton, false);
m_bottomButtonSizer->Show(m_cancelButton, false);
m_stdButtonSizer->Show(m_okButton, false);
m_stdButtonSizer->Show(m_cancelButton, false);
}
else
{

View File

@@ -17,13 +17,13 @@
* wxRichTextStylePage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextStylePage, wxPanel )
IMPLEMENT_DYNAMIC_CLASS( wxRichTextStylePage, wxRichTextDialogPage )
/*!
* wxRichTextStylePage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextStylePage, wxPanel )
BEGIN_EVENT_TABLE( wxRichTextStylePage, wxRichTextDialogPage )
////@begin wxRichTextStylePage event table entries
EVT_UPDATE_UI( ID_RICHTEXTSTYLEPAGE_NEXT_STYLE, wxRichTextStylePage::OnNextStyleUpdate )
@@ -32,6 +32,8 @@ BEGIN_EVENT_TABLE( wxRichTextStylePage, wxPanel )
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextStylePage)
/*!
* wxRichTextStylePage constructors
*/
@@ -67,7 +69,7 @@ void wxRichTextStylePage::Init()
bool wxRichTextStylePage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextStylePage creation
wxPanel::Create( parent, id, pos, size, style );
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
@@ -86,44 +88,44 @@ bool wxRichTextStylePage::Create( wxWindow* parent, wxWindowID id, const wxPoint
void wxRichTextStylePage::CreateControls()
{
////@begin wxRichTextStylePage content construction
wxRichTextStylePage* itemPanel1 = this;
wxRichTextStylePage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemPanel1->SetSizer(itemBoxSizer2);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer4, 0, wxALIGN_CENTER_HORIZONTAL, 5);
itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW, 5);
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW, 5);
itemBoxSizer4->Add(itemBoxSizer5, 1, wxGROW, 5);
wxStaticText* itemStaticText6 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Style:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText6 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Style:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_styleName = new wxTextCtrl( itemPanel1, ID_RICHTEXTSTYLEPAGE_STYLE_NAME, wxT(""), wxDefaultPosition, wxSize(300, -1), wxTE_READONLY );
m_styleName = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTSTYLEPAGE_STYLE_NAME, wxEmptyString, wxDefaultPosition, wxSize(300, -1), wxTE_READONLY );
m_styleName->SetHelpText(_("The style name."));
if (wxRichTextStylePage::ShowToolTips())
m_styleName->SetToolTip(_("The style name."));
itemBoxSizer5->Add(m_styleName, 0, wxGROW|wxALL, 5);
wxStaticText* itemStaticText8 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Based on:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText8 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Based on:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer5->Add(itemStaticText8, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_basedOnStrings;
m_basedOn = new wxComboBox( itemPanel1, ID_RICHTEXTSTYLEPAGE_BASED_ON, wxT(""), wxDefaultPosition, wxDefaultSize, m_basedOnStrings, wxCB_DROPDOWN );
m_basedOn = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTSTYLEPAGE_BASED_ON, wxEmptyString, wxDefaultPosition, wxSize(300, -1), m_basedOnStrings, wxCB_DROPDOWN );
m_basedOn->SetHelpText(_("The style on which this style is based."));
if (wxRichTextStylePage::ShowToolTips())
m_basedOn->SetToolTip(_("The style on which this style is based."));
itemBoxSizer5->Add(m_basedOn, 0, wxGROW|wxALL, 5);
wxStaticText* itemStaticText10 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Next style:"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText10 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Next style:"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer5->Add(itemStaticText10, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
wxArrayString m_nextStyleStrings;
m_nextStyle = new wxComboBox( itemPanel1, ID_RICHTEXTSTYLEPAGE_NEXT_STYLE, wxT(""), wxDefaultPosition, wxDefaultSize, m_nextStyleStrings, wxCB_DROPDOWN );
m_nextStyle = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXTSTYLEPAGE_NEXT_STYLE, wxEmptyString, wxDefaultPosition, wxSize(300, -1), m_nextStyleStrings, wxCB_DROPDOWN );
m_nextStyle->SetHelpText(_("The default style for the next paragraph."));
if (wxRichTextStylePage::ShowToolTips())
m_nextStyle->SetToolTip(_("The default style for the next paragraph."));
@@ -160,10 +162,14 @@ bool wxRichTextStylePage::TransferDataToWindow()
wxRichTextStyleDefinition* def = wxRichTextFormattingDialog::GetDialogStyleDefinition(this);
if (def)
{
m_basedOn->Freeze();
m_nextStyle->Freeze();
wxRichTextParagraphStyleDefinition* paraDef = wxDynamicCast(def, wxRichTextParagraphStyleDefinition);
wxRichTextListStyleDefinition* listDef = wxDynamicCast(def, wxRichTextListStyleDefinition);
// wxRichTextCharacterStyleDefinition* charDef = wxDynamicCast(def, wxRichTextCharacterStyleDefinition);
wxRichTextCharacterStyleDefinition* charDef = wxDynamicCast(def, wxRichTextCharacterStyleDefinition);
wxRichTextStyleSheet* sheet = wxRichTextFormattingDialog::GetDialog(this)->GetStyleSheet();
wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(def, wxRichTextBoxStyleDefinition);
m_styleName->SetValue(def->GetName());
@@ -226,7 +232,17 @@ bool wxRichTextStylePage::TransferDataToWindow()
m_basedOn->Append(p->GetName());
}
}
else
else if (boxDef)
{
size_t i;
for (i = 0; i < sheet->GetBoxStyleCount(); i++)
{
wxRichTextBoxStyleDefinition* p = wxDynamicCast(sheet->GetBoxStyle(i), wxRichTextBoxStyleDefinition);
if (p)
m_basedOn->Append(p->GetName());
}
}
else if (charDef)
{
size_t i;
for (i = 0; i < sheet->GetCharacterStyleCount(); i++)
@@ -240,6 +256,9 @@ bool wxRichTextStylePage::TransferDataToWindow()
}
m_basedOn->SetValue(def->GetBaseStyle());
m_nextStyle->Thaw();
m_basedOn->Thaw();
}
return true;

View File

@@ -35,6 +35,7 @@ IMPLEMENT_CLASS(wxRichTextStyleDefinition, wxObject)
IMPLEMENT_CLASS(wxRichTextCharacterStyleDefinition, wxRichTextStyleDefinition)
IMPLEMENT_CLASS(wxRichTextParagraphStyleDefinition, wxRichTextStyleDefinition)
IMPLEMENT_CLASS(wxRichTextListStyleDefinition, wxRichTextParagraphStyleDefinition)
IMPLEMENT_CLASS(wxRichTextBoxStyleDefinition, wxRichTextStyleDefinition)
/*!
* A definition
@@ -103,6 +104,20 @@ bool wxRichTextParagraphStyleDefinition::operator ==(const wxRichTextParagraphSt
return (Eq(def) && m_nextStyle == def.m_nextStyle);
}
/*!
* Box style definition
*/
void wxRichTextBoxStyleDefinition::Copy(const wxRichTextBoxStyleDefinition& def)
{
wxRichTextStyleDefinition::Copy(def);
}
bool wxRichTextBoxStyleDefinition::operator ==(const wxRichTextBoxStyleDefinition& def) const
{
return (Eq(def));
}
/*!
* List style definition
*/
@@ -315,6 +330,8 @@ bool wxRichTextStyleSheet::RemoveStyle(wxRichTextStyleDefinition* def, bool dele
return true;
if (RemoveListStyle(def, deleteStyle))
return true;
if (RemoveBoxStyle(def, deleteStyle))
return true;
return false;
}
@@ -340,6 +357,7 @@ void wxRichTextStyleSheet::DeleteStyles()
WX_CLEAR_LIST(wxList, m_characterStyleDefinitions);
WX_CLEAR_LIST(wxList, m_paragraphStyleDefinitions);
WX_CLEAR_LIST(wxList, m_listStyleDefinitions);
WX_CLEAR_LIST(wxList, m_boxStyleDefinitions);
}
/// Insert into list of style sheets
@@ -405,6 +423,13 @@ bool wxRichTextStyleSheet::AddListStyle(wxRichTextListStyleDefinition* def)
return AddStyle(m_listStyleDefinitions, def);
}
/// Add a definition to the box style list
bool wxRichTextStyleSheet::AddBoxStyle(wxRichTextBoxStyleDefinition* def)
{
def->GetStyle().SetParagraphStyleName(def->GetName());
return AddStyle(m_boxStyleDefinitions, def);
}
/// Add a definition to the appropriate style list
bool wxRichTextStyleSheet::AddStyle(wxRichTextStyleDefinition* def)
{
@@ -420,6 +445,10 @@ bool wxRichTextStyleSheet::AddStyle(wxRichTextStyleDefinition* def)
if (charDef)
return AddCharacterStyle(charDef);
wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(def, wxRichTextBoxStyleDefinition);
if (boxDef)
return AddBoxStyle(boxDef);
return false;
}
@@ -438,6 +467,10 @@ wxRichTextStyleDefinition* wxRichTextStyleSheet::FindStyle(const wxString& name,
if (charDef)
return charDef;
wxRichTextBoxStyleDefinition* boxDef = FindBoxStyle(name, recurse);
if (boxDef)
return boxDef;
return NULL;
}
@@ -466,6 +499,12 @@ void wxRichTextStyleSheet::Copy(const wxRichTextStyleSheet& sheet)
AddListStyle(new wxRichTextListStyleDefinition(*def));
}
for (node = sheet.m_boxStyleDefinitions.GetFirst(); node; node = node->GetNext())
{
wxRichTextBoxStyleDefinition* def = (wxRichTextBoxStyleDefinition*) node->GetData();
AddBoxStyle(new wxRichTextBoxStyleDefinition(*def));
}
SetName(sheet.GetName());
SetDescription(sheet.GetDescription());
}
@@ -560,6 +599,11 @@ void wxRichTextStyleListBox::UpdateStyles()
for (i = 0; i < GetStyleSheet()->GetListStyleCount(); i++)
m_styleNames.Add(GetStyleSheet()->GetListStyle(i)->GetName());
}
if (GetStyleType() == wxRICHTEXT_STYLE_ALL || GetStyleType() == wxRICHTEXT_STYLE_BOX)
{
for (i = 0; i < GetStyleSheet()->GetBoxStyleCount(); i++)
m_styleNames.Add(GetStyleSheet()->GetBoxStyle(i)->GetName());
}
m_styleNames.Sort();
SetItemCount(m_styleNames.GetCount());
@@ -817,6 +861,13 @@ wxString wxRichTextStyleListBox::GetStyleToShowInIdleTime(wxRichTextCtrl* ctrl,
else if ((styleType == wxRICHTEXT_STYLE_ALL || styleType == wxRICHTEXT_STYLE_LIST) &&
!attr.GetListStyleName().IsEmpty())
styleName = attr.GetListStyleName();
// TODO: when we have a concept of focused object (text box), we'll
// use the paragraph style name of the focused object as the frame style name.
#if 0
else if ((styleType == wxRICHTEXT_STYLE_ALL || styleType == wxRICHTEXT_STYLE_BOX) &&
!attr.GetBoxStyleName().IsEmpty())
styleName = attr.GetBoxStyleName();
#endif
}
else if ((styleType == wxRICHTEXT_STYLE_ALL || styleType == wxRICHTEXT_STYLE_CHARACTER) &&
!attr.GetCharacterStyleName().IsEmpty())
@@ -923,6 +974,7 @@ bool wxRichTextStyleListCtrl::Create(wxWindow* parent, wxWindowID id, const wxPo
choices.Add(_("Paragraph styles"));
choices.Add(_("Character styles"));
choices.Add(_("List styles"));
choices.Add(_("Box styles"));
m_styleChoice = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, choices);
@@ -997,6 +1049,10 @@ int wxRichTextStyleListCtrl::StyleTypeToIndex(wxRichTextStyleListBox::wxRichText
{
return 3;
}
else if (styleType == wxRichTextStyleListBox::wxRICHTEXT_STYLE_BOX)
{
return 4;
}
return 0;
}
@@ -1009,6 +1065,8 @@ wxRichTextStyleListBox::wxRichTextStyleType wxRichTextStyleListCtrl::StyleIndexT
return wxRichTextStyleListBox::wxRICHTEXT_STYLE_CHARACTER;
else if (i == 3)
return wxRichTextStyleListBox::wxRICHTEXT_STYLE_LIST;
else if (i == 4)
return wxRichTextStyleListBox::wxRICHTEXT_STYLE_BOX;
return wxRichTextStyleListBox::wxRICHTEXT_STYLE_ALL;
}

View File

@@ -309,6 +309,8 @@ BEGIN_EVENT_TABLE( wxSymbolPickerDialog, wxDialog )
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxSymbolPickerDialog)
/*!
* wxSymbolPickerDialog constructors
*/
@@ -366,6 +368,7 @@ void wxSymbolPickerDialog::Init()
#if defined(__UNICODE__)
m_fromUnicodeCtrl = NULL;
#endif
m_stdButtonSizer = NULL;
////@end wxSymbolPickerDialog member initialisation
m_dontUpdate = false;
}
@@ -460,25 +463,29 @@ void wxSymbolPickerDialog::CreateControls()
#endif
wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer3->Add(itemBoxSizer20, 0, wxGROW, 5);
m_stdButtonSizer = new wxStdDialogButtonSizer;
itemBoxSizer20->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer3->Add(m_stdButtonSizer, 0, wxGROW|wxTOP|wxBOTTOM, 5);
wxButton* itemButton21 = new wxButton( itemDialog1, wxID_OK, _("Insert"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton21->SetDefault();
m_stdButtonSizer->AddButton(itemButton21);
wxStdDialogButtonSizer* itemStdDialogButtonSizer22 = new wxStdDialogButtonSizer;
wxButton* itemButton22 = new wxButton( itemDialog1, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
m_stdButtonSizer->AddButton(itemButton22);
itemBoxSizer20->Add(itemStdDialogButtonSizer22, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
wxButton* itemButton23 = new wxButton( itemDialog1, wxID_OK, _("Insert"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton23->SetDefault();
itemStdDialogButtonSizer22->AddButton(itemButton23);
wxButton* itemButton23 = new wxButton( itemDialog1, wxID_HELP, _("&Help"), wxDefaultPosition, wxDefaultSize, 0 );
m_stdButtonSizer->AddButton(itemButton23);
wxButton* itemButton24 = new wxButton( itemDialog1, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
itemStdDialogButtonSizer22->AddButton(itemButton24);
itemStdDialogButtonSizer22->Realize();
m_stdButtonSizer->Realize();
////@end wxSymbolPickerDialog content construction
if (GetHelpId() == -1)
{
wxWindow* button = FindWindowById(wxID_HELP);
if (button)
m_stdButtonSizer->Show(button, false);
}
}
/// Data transfer

View File

@@ -17,13 +17,13 @@
* wxRichTextTabsPage type definition
*/
IMPLEMENT_DYNAMIC_CLASS( wxRichTextTabsPage, wxPanel )
IMPLEMENT_DYNAMIC_CLASS( wxRichTextTabsPage, wxRichTextDialogPage )
/*!
* wxRichTextTabsPage event table definition
*/
BEGIN_EVENT_TABLE( wxRichTextTabsPage, wxPanel )
BEGIN_EVENT_TABLE( wxRichTextTabsPage, wxRichTextDialogPage )
////@begin wxRichTextTabsPage event table entries
EVT_LISTBOX( ID_RICHTEXTTABSPAGE_TABLIST, wxRichTextTabsPage::OnTablistSelected )
@@ -41,6 +41,8 @@ BEGIN_EVENT_TABLE( wxRichTextTabsPage, wxPanel )
END_EVENT_TABLE()
IMPLEMENT_HELP_PROVISION(wxRichTextTabsPage)
/*!
* wxRichTextTabsPage constructors
*/
@@ -77,7 +79,7 @@ void wxRichTextTabsPage::Init()
bool wxRichTextTabsPage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
{
////@begin wxRichTextTabsPage creation
wxPanel::Create( parent, id, pos, size, style );
wxRichTextDialogPage::Create( parent, id, pos, size, style );
CreateControls();
if (GetSizer())
@@ -96,10 +98,10 @@ bool wxRichTextTabsPage::Create( wxWindow* parent, wxWindowID id, const wxPoint&
void wxRichTextTabsPage::CreateControls()
{
////@begin wxRichTextTabsPage content construction
wxRichTextTabsPage* itemPanel1 = this;
wxRichTextTabsPage* itemRichTextDialogPage1 = this;
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
itemPanel1->SetSizer(itemBoxSizer2);
itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5);
@@ -110,10 +112,10 @@ void wxRichTextTabsPage::CreateControls()
wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer5, 0, wxGROW, 5);
wxStaticText* itemStaticText6 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Position (tenths of a mm):"), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText6 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Position (tenths of a mm):"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5);
m_tabEditCtrl = new wxTextCtrl( itemPanel1, ID_RICHTEXTTABSPAGE_TABEDIT, wxT(""), wxDefaultPosition, wxDefaultSize, 0 );
m_tabEditCtrl = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXTTABSPAGE_TABEDIT, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_tabEditCtrl->SetHelpText(_("The tab position."));
if (wxRichTextTabsPage::ShowToolTips())
m_tabEditCtrl->SetToolTip(_("The tab position."));
@@ -121,7 +123,7 @@ void wxRichTextTabsPage::CreateControls()
wxArrayString m_tabListCtrlStrings;
m_tabListCtrlStrings.Add(_("The tab positions."));
m_tabListCtrl = new wxListBox( itemPanel1, ID_RICHTEXTTABSPAGE_TABLIST, wxDefaultPosition, wxSize(80, 200), m_tabListCtrlStrings, wxLB_SINGLE );
m_tabListCtrl = new wxListBox( itemRichTextDialogPage1, ID_RICHTEXTTABSPAGE_TABLIST, wxDefaultPosition, wxSize(80, 200), m_tabListCtrlStrings, wxLB_SINGLE );
itemBoxSizer5->Add(m_tabListCtrl, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
@@ -129,22 +131,22 @@ void wxRichTextTabsPage::CreateControls()
wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer10, 0, wxGROW, 5);
wxStaticText* itemStaticText11 = new wxStaticText( itemPanel1, wxID_STATIC, wxT(""), wxDefaultPosition, wxDefaultSize, 0 );
wxStaticText* itemStaticText11 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer10->Add(itemStaticText11, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM, 5);
wxButton* itemButton12 = new wxButton( itemPanel1, ID_RICHTEXTTABSPAGE_NEW_TAB, _("&New"), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton12 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXTTABSPAGE_NEW_TAB, _("&New"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton12->SetHelpText(_("Click to create a new tab position."));
if (wxRichTextTabsPage::ShowToolTips())
itemButton12->SetToolTip(_("Click to create a new tab position."));
itemBoxSizer10->Add(itemButton12, 0, wxGROW|wxALL, 5);
wxButton* itemButton13 = new wxButton( itemPanel1, ID_RICHTEXTTABSPAGE_DELETE_TAB, _("&Delete"), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton13 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXTTABSPAGE_DELETE_TAB, _("&Delete"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton13->SetHelpText(_("Click to delete the selected tab position."));
if (wxRichTextTabsPage::ShowToolTips())
itemButton13->SetToolTip(_("Click to delete the selected tab position."));
itemBoxSizer10->Add(itemButton13, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5);
wxButton* itemButton14 = new wxButton( itemPanel1, ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS, _("Delete A&ll"), wxDefaultPosition, wxDefaultSize, 0 );
wxButton* itemButton14 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS, _("Delete A&ll"), wxDefaultPosition, wxDefaultSize, 0 );
itemButton14->SetHelpText(_("Click to delete all tab positions."));
if (wxRichTextTabsPage::ShowToolTips())
itemButton14->SetToolTip(_("Click to delete all tab positions."));

View File

@@ -166,6 +166,12 @@ wxRichTextObject* wxRichTextXMLHandler::CreateObjectForXMLName(wxRichTextObject*
return new wxRichTextParagraph;
else if (name == wxT("paragraphlayout"))
return new wxRichTextParagraphLayoutBox;
else if (name == wxT("textbox"))
return new wxRichTextBox;
else if (name == wxT("cell"))
return new wxRichTextBox;
else if (name == wxT("table"))
return new wxRichTextBox;
else
return NULL;
}
@@ -173,39 +179,18 @@ wxRichTextObject* wxRichTextXMLHandler::CreateObjectForXMLName(wxRichTextObject*
/// Recursively import an object
bool wxRichTextXMLHandler::ImportXML(wxRichTextBuffer* buffer, wxRichTextObject* obj, wxXmlNode* node)
{
obj->ImportFromXML(buffer, node, this);
bool recurse = false;
obj->ImportFromXML(buffer, node, this, & recurse);
// TODO: how to control whether to import children.
wxRichTextCompositeObject* compositeParent = wxDynamicCast(obj, wxRichTextCompositeObject);
if (compositeParent)
if (recurse && compositeParent)
{
wxXmlNode* child = node->GetChildren();
while (child)
{
if (child->GetName() == wxT("stylesheet"))
{
if (GetFlags() & wxRICHTEXT_HANDLER_INCLUDE_STYLESHEET)
{
wxRichTextStyleSheet* sheet = new wxRichTextStyleSheet;
wxString sheetName = child->GetAttribute(wxT("name"), wxEmptyString);
wxString sheetDescription = child->GetAttribute(wxT("description"), wxEmptyString);
sheet->SetName(sheetName);
sheet->SetDescription(sheetDescription);
wxXmlNode* child2 = child->GetChildren();
while (child2)
{
ImportStyleDefinition(sheet, child2);
child2 = child2->GetNext();
}
// Notify that styles have changed. If this is vetoed by the app,
// the new sheet will be deleted. If it is not vetoed, the
// old sheet will be deleted and replaced with the new one.
buffer->SetStyleSheetAndNotify(sheet);
}
}
else
if (child->GetName() != wxT("stylesheet"))
{
wxRichTextObject* childObj = CreateObjectForXMLName(obj, child->GetName());
if (childObj)
@@ -301,6 +286,26 @@ bool wxRichTextXMLHandler::ImportStyleDefinition(wxRichTextStyleSheet* sheet, wx
sheet->AddParagraphStyle(def);
}
else if (styleType == wxT("boxstyle"))
{
wxRichTextBoxStyleDefinition* def = new wxRichTextBoxStyleDefinition(styleName);
def->SetBaseStyle(baseStyleName);
wxXmlNode* child = node->GetChildren();
while (child)
{
if (child->GetName() == wxT("style"))
{
wxRichTextAttr attr;
ImportStyle(attr, child, true);
def->SetStyle(attr);
}
child = child->GetNext();
}
sheet->AddBoxStyle(def);
}
else if (styleType == wxT("liststyle"))
{
wxRichTextListStyleDefinition* def = new wxRichTextListStyleDefinition(styleName);
@@ -399,6 +404,17 @@ wxString wxRichTextXMLHandler::GetText(wxXmlNode *node, const wxString& param, b
return str1;
}
wxXmlNode* wxRichTextXMLHandler::FindNode(wxXmlNode* node, const wxString& name)
{
wxXmlNode* child = node->GetChildren();
while (child)
{
if (child->GetName() == name)
return child;
}
return NULL;
}
// For use with earlier versions of wxWidgets
#ifndef WXUNUSED_IN_UNICODE
#if wxUSE_UNICODE
@@ -611,7 +627,7 @@ static inline void AddAttribute(wxString& str, const wxString& name, const wxCol
static inline void AddAttribute(wxString& str, const wxString& name, const wxTextAttrDimension& dim)
{
if (dim.IsPresent())
if (dim.IsValid())
{
wxString value = MakeString(dim.GetValue()) + wxT(",") + MakeString((int) dim.GetFlags());
str << wxT(" ") << name << wxT("=\"");
@@ -622,13 +638,13 @@ static inline void AddAttribute(wxString& str, const wxString& name, const wxTex
static inline void AddAttribute(wxString& str, const wxString& rootName, const wxTextAttrDimensions& dims)
{
if (dims.GetLeft().IsPresent())
if (dims.GetLeft().IsValid())
AddAttribute(str, rootName + wxString(wxT("-left")), dims.GetLeft());
if (dims.GetRight().IsPresent())
if (dims.GetRight().IsValid())
AddAttribute(str, rootName + wxString(wxT("-right")), dims.GetRight());
if (dims.GetTop().IsPresent())
if (dims.GetTop().IsValid())
AddAttribute(str, rootName + wxString(wxT("-top")), dims.GetTop());
if (dims.GetBottom().IsPresent())
if (dims.GetBottom().IsValid())
AddAttribute(str, rootName + wxString(wxT("-bottom")), dims.GetBottom());
}
@@ -682,7 +698,7 @@ static inline void AddAttribute(wxXmlNode* node, const wxString& name, const wxC
static inline void AddAttribute(wxXmlNode* node, const wxString& name, const wxTextAttrDimension& dim)
{
if (dim.IsPresent())
if (dim.IsValid())
{
wxString value = MakeString(dim.GetValue()) + wxT(",") + MakeString(dim.GetFlags());
AddAttribute(node, name, value);
@@ -691,13 +707,13 @@ static inline void AddAttribute(wxXmlNode* node, const wxString& name, const wxT
static inline void AddAttribute(wxXmlNode* node, const wxString& rootName, const wxTextAttrDimensions& dims)
{
if (dims.GetLeft().IsPresent())
if (dims.GetLeft().IsValid())
AddAttribute(node, rootName + wxString(wxT("-left")), dims.GetLeft());
if (dims.GetRight().IsPresent())
if (dims.GetRight().IsValid())
AddAttribute(node, rootName + wxString(wxT("-right")), dims.GetRight());
if (dims.GetTop().IsPresent())
if (dims.GetTop().IsValid())
AddAttribute(node, rootName + wxString(wxT("-top")), dims.GetTop());
if (dims.GetBottom().IsPresent())
if (dims.GetBottom().IsValid())
AddAttribute(node, rootName + wxString(wxT("-bottom")), dims.GetBottom());
}
@@ -809,6 +825,12 @@ bool wxRichTextXMLHandler::DoSaveFile(wxRichTextBuffer *buffer, wxOutputStream&
wxRichTextListStyleDefinition* def = buffer->GetStyleSheet()->GetListStyle(i);
ExportStyleDefinition(styleSheetNode, def);
}
for (i = 0; i < (int) buffer->GetStyleSheet()->GetBoxStyleCount(); i++)
{
wxRichTextBoxStyleDefinition* def = buffer->GetStyleSheet()->GetBoxStyle(i);
ExportStyleDefinition(styleSheetNode, def);
}
}
bool success = ExportXML(rootNode, *buffer);
#if wxRICHTEXT_USE_OUTPUT_TIMINGS
@@ -878,6 +900,12 @@ bool wxRichTextXMLHandler::DoSaveFile(wxRichTextBuffer *buffer, wxOutputStream&
ExportStyleDefinition(stream, def, level + 1);
}
for (i = 0; i < (int) buffer->GetStyleSheet()->GetBoxStyleCount(); i++)
{
wxRichTextBoxStyleDefinition* def = buffer->GetStyleSheet()->GetBoxStyle(i);
ExportStyleDefinition(stream, def, level + 1);
}
OutputIndentation(stream, level);
OutputString(stream, wxT("</stylesheet>"));
}
@@ -912,6 +940,7 @@ bool wxRichTextXMLHandler::ExportStyleDefinition(wxOutputStream& stream, wxRichT
wxRichTextCharacterStyleDefinition* charDef = wxDynamicCast(def, wxRichTextCharacterStyleDefinition);
wxRichTextParagraphStyleDefinition* paraDef = wxDynamicCast(def, wxRichTextParagraphStyleDefinition);
wxRichTextListStyleDefinition* listDef = wxDynamicCast(def, wxRichTextListStyleDefinition);
wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(def, wxRichTextBoxStyleDefinition);
wxString baseStyle = def->GetBaseStyle();
wxString baseStyleProp;
@@ -995,7 +1024,7 @@ bool wxRichTextXMLHandler::ExportStyleDefinition(wxOutputStream& stream, wxRichT
level ++;
wxString style = AddAttributes(def->GetStyle(), false);
wxString style = AddAttributes(def->GetStyle(), true);
OutputIndentation(stream, level);
OutputString(stream, wxT("<style ") + style + wxT(">"));
@@ -1008,6 +1037,28 @@ bool wxRichTextXMLHandler::ExportStyleDefinition(wxOutputStream& stream, wxRichT
OutputIndentation(stream, level);
OutputString(stream, wxT("</paragraphstyle>"));
}
else if (boxDef)
{
OutputIndentation(stream, level);
OutputString(stream, wxT("<boxstyle") + baseStyleProp + descrProp + wxT(">"));
level ++;
wxString style = AddAttributes(def->GetStyle(), true);
OutputIndentation(stream, level);
OutputString(stream, wxT("<style ") + style + wxT(">"));
OutputIndentation(stream, level);
OutputString(stream, wxT("</style>"));
level --;
OutputIndentation(stream, level);
OutputString(stream, wxT("</boxstyle>"));
}
return true;
}
@@ -1233,6 +1284,7 @@ bool wxRichTextXMLHandler::ExportStyleDefinition(wxXmlNode* parent, wxRichTextSt
{
wxRichTextCharacterStyleDefinition* charDef = wxDynamicCast(def, wxRichTextCharacterStyleDefinition);
wxRichTextParagraphStyleDefinition* paraDef = wxDynamicCast(def, wxRichTextParagraphStyleDefinition);
wxRichTextBoxStyleDefinition* boxDef = wxDynamicCast(def, wxRichTextBoxStyleDefinition);
wxRichTextListStyleDefinition* listDef = wxDynamicCast(def, wxRichTextListStyleDefinition);
wxString baseStyle = def->GetBaseStyle();
@@ -1275,6 +1327,12 @@ bool wxRichTextXMLHandler::ExportStyleDefinition(wxXmlNode* parent, wxRichTextSt
}
}
}
else if (boxDef)
{
defNode->SetName(wxT("boxstyle"));
AddAttributes(styleNode, def->GetStyle(), true);
}
else if (paraDef)
{
defNode->SetName(wxT("paragraphstyle"));
@@ -1777,7 +1835,7 @@ bool wxRichTextXMLHandler::ImportStyle(wxRichTextAttr& attr, wxXmlNode* node, bo
attr.GetTextBoxAttr().SetClearMode(wxTEXT_BOX_ATTR_CLEAR_NONE);
}
else if (name == wxT("collapse-borders"))
attr.GetTextBoxAttr().SetCollapseBorders(value == wxT("1"));
attr.GetTextBoxAttr().SetCollapseBorders((wxTextBoxAttrCollapseMode) wxAtoi(value));
else if (name.Contains(wxT("border-")))
{
@@ -1882,11 +1940,13 @@ bool wxRichTextXMLHandler::ImportStyle(wxRichTextAttr& attr, wxXmlNode* node, bo
// wxUSE_STREAMS
// Import this object from XML
bool wxRichTextObject::ImportFromXML(wxRichTextBuffer* WXUNUSED(buffer), wxXmlNode* node, wxRichTextXMLHandler* handler)
bool wxRichTextObject::ImportFromXML(wxRichTextBuffer* WXUNUSED(buffer), wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse)
{
handler->ImportProperties(this, node);
handler->ImportStyle(GetAttributes(), node, UsesParagraphAttributes());
*recurse = false;
return true;
}
@@ -1948,9 +2008,9 @@ bool wxRichTextObject::ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* handle
// Import this object from XML
bool wxRichTextPlainText::ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler)
bool wxRichTextPlainText::ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse)
{
wxRichTextObject::ImportFromXML(buffer, node, handler);
wxRichTextObject::ImportFromXML(buffer, node, handler, recurse);
if (node->GetName() == wxT("text"))
{
@@ -2212,9 +2272,9 @@ bool wxRichTextPlainText::ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* han
// Import this object from XML
bool wxRichTextImage::ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler)
bool wxRichTextImage::ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse)
{
wxRichTextObject::ImportFromXML(buffer, node, handler);
wxRichTextObject::ImportFromXML(buffer, node, handler, recurse);
wxBitmapType imageType = wxBITMAP_TYPE_PNG;
wxString value = node->GetAttribute(wxT("imagetype"), wxEmptyString);
@@ -2361,14 +2421,39 @@ bool wxRichTextImage::ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* handler
// Import this object from XML
bool wxRichTextParagraphLayoutBox::ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler)
bool wxRichTextParagraphLayoutBox::ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse)
{
wxRichTextObject::ImportFromXML(buffer, node, handler);
wxRichTextObject::ImportFromXML(buffer, node, handler, recurse);
*recurse = true;
wxString partial = node->GetAttribute(wxT("partialparagraph"), wxEmptyString);
if (partial == wxT("true"))
SetPartialParagraph(true);
wxXmlNode* child = wxRichTextXMLHandler::FindNode(node, wxT("stylesheet"));
if (child && (handler->GetFlags() & wxRICHTEXT_HANDLER_INCLUDE_STYLESHEET))
{
wxRichTextStyleSheet* sheet = new wxRichTextStyleSheet;
wxString sheetName = child->GetAttribute(wxT("name"), wxEmptyString);
wxString sheetDescription = child->GetAttribute(wxT("description"), wxEmptyString);
sheet->SetName(sheetName);
sheet->SetDescription(sheetDescription);
wxXmlNode* child2 = child->GetChildren();
while (child2)
{
handler->ImportStyleDefinition(sheet, child2);
child2 = child2->GetNext();
}
// Notify that styles have changed. If this is vetoed by the app,
// the new sheet will be deleted. If it is not vetoed, the
// old sheet will be deleted and replaced with the new one.
buffer->SetStyleSheetAndNotify(sheet);
}
return true;
}
@@ -2377,7 +2462,8 @@ bool wxRichTextParagraphLayoutBox::ImportFromXML(wxRichTextBuffer* buffer, wxXml
bool wxRichTextParagraphLayoutBox::ExportXML(wxOutputStream& stream, int indent, wxRichTextXMLHandler* handler)
{
::OutputIndentation(stream, indent);
::OutputString(stream, wxT("<paragraphlayout"), handler->GetConvMem(), handler->GetConvFile());
wxString nodeName = GetXMLNodeName();
::OutputString(stream, wxT("<") + nodeName, handler->GetConvMem(), handler->GetConvFile());
wxString style = handler->AddAttributes(GetAttributes(), true);
@@ -2399,7 +2485,7 @@ bool wxRichTextParagraphLayoutBox::ExportXML(wxOutputStream& stream, int indent,
}
::OutputIndentation(stream, indent);
::OutputString(stream, wxT("</paragraphlayout>"), handler->GetConvMem(), handler->GetConvFile());
::OutputString(stream, wxT("</") + nodeName + wxT(">"), handler->GetConvMem(), handler->GetConvFile());
return true;
}
#endif
@@ -2408,7 +2494,7 @@ bool wxRichTextParagraphLayoutBox::ExportXML(wxOutputStream& stream, int indent,
// Export this object to the given parent node, usually creating at least one child node.
bool wxRichTextParagraphLayoutBox::ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* handler)
{
wxXmlNode* elementNode = new wxXmlNode(wxXML_ELEMENT_NODE, wxT("paragraphlayout"));
wxXmlNode* elementNode = new wxXmlNode(wxXML_ELEMENT_NODE, GetXMLNodeName());
parent->AddChild(elementNode);
handler->AddAttributes(elementNode, GetAttributes(), true);
handler->WriteProperties(elementNode, GetProperties());
@@ -2427,6 +2513,112 @@ bool wxRichTextParagraphLayoutBox::ExportXML(wxXmlNode* parent, wxRichTextXMLHan
}
#endif
// Import this object from XML
bool wxRichTextTable::ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse)
{
wxRichTextBox::ImportFromXML(buffer, node, handler, recurse);
*recurse = false;
m_rowCount = wxAtoi(node->GetAttribute(wxT("rows"), wxEmptyString));
m_colCount = wxAtoi(node->GetAttribute(wxT("cols"), wxEmptyString));
wxXmlNode* child = node->GetChildren();
while (child)
{
wxRichTextObject* childObj = handler->CreateObjectForXMLName(this, child->GetName());
if (childObj)
{
AppendChild(childObj);
handler->ImportXML(buffer, childObj, child);
}
child = child->GetNext();
}
m_cells.Add(wxRichTextObjectPtrArray(), m_rowCount);
int i, j;
for (i = 0; i < m_rowCount; i++)
{
wxRichTextObjectPtrArray& colArray = m_cells[i];
for (j = 0; j < m_colCount; j++)
{
int idx = i * m_colCount + j;
if (idx < (int) GetChildren().GetCount())
{
wxRichTextCell* cell = wxDynamicCast(GetChildren().Item(idx)->GetData(), wxRichTextCell);
if (cell)
colArray.Add(cell);
}
}
}
return true;
}
#if wxRICHTEXT_HAVE_DIRECT_OUTPUT
// Export this object directly to the given stream.
bool wxRichTextTable::ExportXML(wxOutputStream& stream, int indent, wxRichTextXMLHandler* handler)
{
::OutputIndentation(stream, indent);
wxString nodeName = GetXMLNodeName();
::OutputString(stream, wxT("<") + nodeName, handler->GetConvMem(), handler->GetConvFile());
wxString style = handler->AddAttributes(GetAttributes(), true);
style << wxT(" rows=\"") << m_rowCount << wxT("\"");
style << wxT(" cols=\"") << m_colCount << wxT("\"");
::OutputString(stream, style + wxT(">"), handler->GetConvMem(), handler->GetConvFile());
if (GetProperties().GetCount() > 0)
{
handler->WriteProperties(stream, GetProperties(), indent);
}
int i, j;
for (i = 0; i < m_rowCount; i++)
{
for (j = 0; j < m_colCount; j ++)
{
wxRichTextCell* cell = GetCell(i, j);
cell->ExportXML(stream, indent+1, handler);
}
}
::OutputIndentation(stream, indent);
::OutputString(stream, wxT("</") + nodeName + wxT(">"), handler->GetConvMem(), handler->GetConvFile());
return true;
}
#endif
#if wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT
// Export this object to the given parent node, usually creating at least one child node.
bool wxRichTextTable::ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* handler)
{
wxXmlNode* elementNode = new wxXmlNode(wxXML_ELEMENT_NODE, GetXMLNodeName());
parent->AddChild(elementNode);
handler->AddAttributes(elementNode, GetAttributes(), true);
handler->WriteProperties(elementNode, GetProperties());
elementNode->AddAttribute(wxT("rows"), wxString::Format(wxT("%d"), m_rowCount));
elementNode->AddAttribute(wxT("cols"), wxString::Format(wxT("%d"), m_colCount));
int i, j;
for (i = 0; i < m_rowCount; i++)
{
for (j = 0; j < m_colCount; j ++)
{
wxRichTextCell* cell = GetCell(i, j);
cell->ExportXML(elementNode, handler);
}
}
return true;
}
#endif
#endif
// wxUSE_RICHTEXT && wxUSE_XML