From 1a162592231c642247b94e78b96604055101b3ec Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Tue, 22 Apr 2014 16:25:48 +0000 Subject: [PATCH] Draw an unknown field using a fallback field type, so it's not invisible. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/richtext/richtextbuffer.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/richtext/richtextbuffer.cpp b/src/richtext/richtextbuffer.cpp index 65b92f0c0c..ae168617e6 100644 --- a/src/richtext/richtextbuffer.cpp +++ b/src/richtext/richtextbuffer.cpp @@ -9219,9 +9219,11 @@ bool wxRichTextField::Draw(wxDC& dc, wxRichTextDrawingContext& context, const wx if (fieldType && fieldType->Draw(this, dc, context, range, selection, rect, descent, style)) return true; - // Fallback; but don't draw guidelines. - style &= ~wxRICHTEXT_DRAW_GUIDELINES; - return wxRichTextParagraphLayoutBox::Draw(dc, context, range, selection, rect, descent, style); + // Fallback so unknown fields don't become invisible. + wxString fieldTypeStr(GetFieldType()); + wxRichTextFieldTypeStandard defaultFieldType; + defaultFieldType.SetLabel(wxString::Format(wxT("unknown field %s"), fieldTypeStr.c_str())); + return defaultFieldType.Draw(this, dc, context, range, selection, rect, descent, style); } bool wxRichTextField::Layout(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) @@ -9230,8 +9232,11 @@ bool wxRichTextField::Layout(wxDC& dc, wxRichTextDrawingContext& context, const if (fieldType && fieldType->Layout(this, dc, context, rect, parentRect, style)) return true; - // Fallback - return wxRichTextParagraphLayoutBox::Layout(dc, context, rect, parentRect, style); + // Fallback so unknown fields don't become invisible. + wxString fieldTypeStr(GetFieldType()); + wxRichTextFieldTypeStandard defaultFieldType; + defaultFieldType.SetLabel(wxString::Format(wxT("unknown field %s"), fieldTypeStr.c_str())); + return defaultFieldType.Layout(this, dc, context, rect, parentRect, style); } bool wxRichTextField::GetRangeSize(const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position, const wxSize& parentSize, wxArrayInt* partialExtents) const @@ -9240,7 +9245,11 @@ bool wxRichTextField::GetRangeSize(const wxRichTextRange& range, wxSize& size, i if (fieldType) return fieldType->GetRangeSize((wxRichTextField*) this, range, size, descent, dc, context, flags, position, parentSize, partialExtents); - return wxRichTextParagraphLayoutBox::GetRangeSize(range, size, descent, dc, context, flags, position, parentSize, partialExtents); + // Fallback so unknown fields don't become invisible. + wxString fieldTypeStr(GetFieldType()); + wxRichTextFieldTypeStandard defaultFieldType; + defaultFieldType.SetLabel(wxString::Format(wxT("unknown field %s"), fieldTypeStr.c_str())); + return defaultFieldType.GetRangeSize((wxRichTextField*) this, range, size, descent, dc, context, flags, position, parentSize, partialExtents); } /// Calculate range