Added option to set style from style listbox when single

clicking or not. Changed DoSelection name to ApplyStyle.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2006-10-08 14:02:28 +00:00
parent 7b907278ef
commit 86015e55eb
2 changed files with 18 additions and 7 deletions

View File

@@ -62,6 +62,7 @@ public:
bool Eq(const wxRichTextStyleDefinition& def) const; bool Eq(const wxRichTextStyleDefinition& def) const;
void operator =(const wxRichTextStyleDefinition& def) { Copy(def); } void operator =(const wxRichTextStyleDefinition& def) { Copy(def); }
bool operator ==(const wxRichTextStyleDefinition& def) const { return Eq(def); } bool operator ==(const wxRichTextStyleDefinition& def) const { return Eq(def); }
virtual wxRichTextStyleDefinition* Clone() const = 0;
/// The name of the style. /// The name of the style.
void SetName(const wxString& name) { m_name = name; } void SetName(const wxString& name) { m_name = name; }
@@ -98,6 +99,8 @@ public:
wxRichTextStyleDefinition(name) {} wxRichTextStyleDefinition(name) {}
virtual ~wxRichTextCharacterStyleDefinition() {} virtual ~wxRichTextCharacterStyleDefinition() {}
virtual wxRichTextStyleDefinition* Clone() const { return new wxRichTextCharacterStyleDefinition(*this); }
protected: protected:
}; };
@@ -125,6 +128,8 @@ public:
void operator =(const wxRichTextParagraphStyleDefinition& def) { Copy(def); } void operator =(const wxRichTextParagraphStyleDefinition& def) { Copy(def); }
bool operator ==(const wxRichTextParagraphStyleDefinition& def) const; bool operator ==(const wxRichTextParagraphStyleDefinition& def) const;
virtual wxRichTextStyleDefinition* Clone() const { return new wxRichTextParagraphStyleDefinition(*this); }
protected: protected:
/// The next style to use when adding a paragraph after this style. /// The next style to use when adding a paragraph after this style.
@@ -235,6 +240,7 @@ public:
{ {
m_styleSheet = NULL; m_styleSheet = NULL;
m_richTextCtrl = NULL; m_richTextCtrl = NULL;
m_applyOnSelection = true;
} }
bool Create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, bool Create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
@@ -263,8 +269,8 @@ public:
/// Updates the list /// Updates the list
void UpdateStyles(); void UpdateStyles();
/// Do selection /// Apply the style
void DoSelection(int i); void ApplyStyle(int i);
/// React to selection /// React to selection
void OnSelect(wxCommandEvent& event); void OnSelect(wxCommandEvent& event);
@@ -287,6 +293,10 @@ public:
/// Need to override this if being used in a combobox popup /// Need to override this if being used in a combobox popup
virtual bool CanAutoSetSelection() { return true; } virtual bool CanAutoSetSelection() { return true; }
/// Set whether the style should be applied as soon as the item is selected (the default)
void SetApplyOnSelection(bool applyOnSel) { m_applyOnSelection = applyOnSel; }
bool GetApplyOnSelection() const { return m_applyOnSelection; }
protected: protected:
/// Returns the HTML for this item /// Returns the HTML for this item
virtual wxString OnGetItem(size_t n) const; virtual wxString OnGetItem(size_t n) const;
@@ -295,6 +305,7 @@ private:
wxRichTextStyleSheet* m_styleSheet; wxRichTextStyleSheet* m_styleSheet;
wxRichTextCtrl* m_richTextCtrl; wxRichTextCtrl* m_richTextCtrl;
bool m_applyOnSelection; // if true, applies style on selection
}; };
#if wxUSE_COMBOCTRL #if wxUSE_COMBOCTRL

View File

@@ -380,8 +380,8 @@ void wxRichTextStyleListBox::OnLeftDown(wxMouseEvent& event)
wxVListBox::OnLeftDown(event); wxVListBox::OnLeftDown(event);
int item = HitTest(event.GetPosition()); int item = HitTest(event.GetPosition());
if (item != wxNOT_FOUND) if (item != wxNOT_FOUND && GetApplyOnSelection())
DoSelection(item); ApplyStyle(item);
} }
/// Auto-select from style under caret in idle time /// Auto-select from style under caret in idle time
@@ -429,7 +429,7 @@ void wxRichTextStyleListBox::OnIdle(wxIdleEvent& event)
} }
/// Do selection /// Do selection
void wxRichTextStyleListBox::DoSelection(int item) void wxRichTextStyleListBox::ApplyStyle(int item)
{ {
if ( item != wxNOT_FOUND ) if ( item != wxNOT_FOUND )
{ {
@@ -508,11 +508,11 @@ void wxRichTextStyleComboPopup::OnMouseClick(wxMouseEvent& WXUNUSED(event))
m_value = m_itemHere; m_value = m_itemHere;
// Ordering is important, so we don't dismiss this popup accidentally // Ordering is important, so we don't dismiss this popup accidentally
// by setting the focus elsewhere e.g. in DoSelection // by setting the focus elsewhere e.g. in ApplyStyle
Dismiss(); Dismiss();
if (m_itemHere >= 0) if (m_itemHere >= 0)
wxRichTextStyleListBox::DoSelection(m_itemHere); wxRichTextStyleListBox::ApplyStyle(m_itemHere);
} }
/*! /*!