bool wxRichTextCtrl::Create( wxWindow* parent, wxWindowID id, const wxString& value, const wxPoint& pos, const wxSize& size, long style,
const wxValidator& validator, const wxString& name)
{
- if (!wxTextCtrlBase::Create(parent, id, pos, size,
- style|wxFULL_REPAINT_ON_RESIZE,
- validator, name))
+ if (!wxControl::Create(parent, id, pos, size,
+ style|wxFULL_REPAINT_ON_RESIZE,
+ validator, name))
return false;
if (!GetFont().Ok())
// The base attributes must all have default values
wxTextAttrEx attributes;
attributes.SetFont(GetFont());
- attributes.SetTextColour(*wxBLACK);
+ attributes.SetTextColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));
attributes.SetAlignment(wxTEXT_ALIGNMENT_LEFT);
attributes.SetLineSpacing(10);
attributes.SetParagraphSpacingAfter(10);
wxTextAttrEx defaultAttributes;
SetDefaultStyle(defaultAttributes);
- SetBackgroundColour(*wxWHITE);
+ SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
SetBackgroundStyle(wxBG_STYLE_CUSTOM);
// Tell the sizers to use the given or best size
if (m_freezeCount == 0)
{
- SetupScrollbars();
+ if (GetBuffer().GetDirty())
+ LayoutContent();
+ else
+ SetupScrollbars();
Refresh(false);
}
}
m_caretAtLineStart = false;
m_selectionRange.SetRange(-2, -2);
- SetScrollbars(0, 0, 0, 0, 0, 0);
-
if (m_freezeCount == 0)
{
- SetupScrollbars();
+ LayoutContent();
Refresh(false);
}
- SendTextUpdatedEvent();
+
+ wxTextCtrl::SendTextUpdatedEvent(this);
}
/// Painting
PositionCaret();
SetupScrollbars(true);
Refresh(false);
- SendTextUpdatedEvent();
+ wxTextCtrl::SendTextUpdatedEvent(this);
if (success)
return true;
{
// still send an event for consistency
if (flags & SetValue_SendEvent)
- SendTextUpdatedEvent();
+ wxTextCtrl::SendTextUpdatedEvent(this);
}
DiscardEdits();
}
GetBuffer().InsertTextWithUndo(m_caretPosition+1, valueUnix, this, wxRICHTEXT_INSERT_WITH_PREVIOUS_PARAGRAPH_STYLE);
if ( flags & SetValue_SendEvent )
- SendTextUpdatedEvent();
+ wxTextCtrl::SendTextUpdatedEvent(this);
}
void wxRichTextCtrl::AppendText(const wxString& text)
event.Enable(GetLastPosition() > 0);
}
-void wxRichTextCtrl::OnContextMenu(wxContextMenuEvent& WXUNUSED(event))
+void wxRichTextCtrl::OnContextMenu(wxContextMenuEvent& event)
{
+ if (event.GetEventObject() != this)
+ {
+ event.Skip();
+ return;
+ }
+
if (!m_contextMenu)
{
m_contextMenu = new wxMenu;
wxRect caretRect;
if (GetCaretPositionForIndex(GetCaretPosition(), caretRect))
{
- wxPoint originalPt = caretRect.GetPosition();
- wxPoint pt = GetPhysicalPoint(originalPt);
- if (GetCaret()->GetPosition() != pt)
+ wxPoint newPt = caretRect.GetPosition();
+ wxSize newSz = caretRect.GetSize();
+ wxPoint pt = GetPhysicalPoint(newPt);
+ if (GetCaret()->GetPosition() != pt || GetCaret()->GetSize() != newSz)
{
GetCaret()->Move(pt);
- GetCaret()->SetSize(caretRect.GetSize());
+ GetCaret()->SetSize(newSz);
}
}
}