Add semi-private wxHtmlCell::Dump()

This is useful to see the results of wxHTML layout algorithm.

Closes https://github.com/wxWidgets/wxWidgets/pull/1429
This commit is contained in:
Vadim Zeitlin
2019-07-18 17:02:18 +02:00
parent 8f386265dc
commit e2332f2703
3 changed files with 63 additions and 0 deletions

View File

@@ -347,7 +347,15 @@ public:
virtual wxString ConvertToText(wxHtmlSelection *WXUNUSED(sel)) const virtual wxString ConvertToText(wxHtmlSelection *WXUNUSED(sel)) const
{ return wxEmptyString; } { return wxEmptyString; }
// This method is useful for debugging, to customize it for particular cell
// type, override GetDescription() and not this function itself.
virtual wxString Dump(int indent = 0) const;
protected: protected:
// Return the description used by Dump().
virtual wxString GetDescription() const;
// pointer to the next cell // pointer to the next cell
wxHtmlCell *m_Next; wxHtmlCell *m_Next;
// pointer to parent cell // pointer to parent cell
@@ -399,6 +407,8 @@ public:
void SetPreviousWord(wxHtmlWordCell *cell); void SetPreviousWord(wxHtmlWordCell *cell);
protected: protected:
virtual wxString GetDescription() const wxOVERRIDE;
virtual wxString GetAllAsText() const virtual wxString GetAllAsText() const
{ return m_Word; } { return m_Word; }
virtual wxString GetPartAsText(int begin, int end) const virtual wxString GetPartAsText(int begin, int end) const
@@ -524,6 +534,8 @@ public:
// Call Layout at least once before using GetMaxTotalWidth() // Call Layout at least once before using GetMaxTotalWidth()
virtual int GetMaxTotalWidth() const wxOVERRIDE { return m_MaxTotalWidth; } virtual int GetMaxTotalWidth() const wxOVERRIDE { return m_MaxTotalWidth; }
virtual wxString Dump(int indent = 0) const wxOVERRIDE;
protected: protected:
void UpdateRenderingStatePre(wxHtmlRenderingInfo& info, void UpdateRenderingStatePre(wxHtmlRenderingInfo& info,
wxHtmlCell *cell) const; wxHtmlCell *cell) const;
@@ -577,6 +589,8 @@ public:
virtual void DrawInvisible(wxDC& dc, int x, int y, virtual void DrawInvisible(wxDC& dc, int x, int y,
wxHtmlRenderingInfo& info) wxOVERRIDE; wxHtmlRenderingInfo& info) wxOVERRIDE;
virtual wxString GetDescription() const wxOVERRIDE;
protected: protected:
wxColour m_Colour; wxColour m_Colour;
unsigned m_Flags; unsigned m_Flags;
@@ -602,6 +616,8 @@ public:
virtual void DrawInvisible(wxDC& dc, int x, int y, virtual void DrawInvisible(wxDC& dc, int x, int y,
wxHtmlRenderingInfo& info) wxOVERRIDE; wxHtmlRenderingInfo& info) wxOVERRIDE;
virtual wxString GetDescription() const wxOVERRIDE;
protected: protected:
wxFont m_Font; wxFont m_Font;

View File

@@ -284,6 +284,21 @@ bool wxHtmlCell::IsBefore(wxHtmlCell *cell) const
return false; return false;
} }
wxString wxHtmlCell::GetDescription() const
{
return GetClassInfo()->GetClassName();
}
wxString wxHtmlCell::Dump(int indent) const
{
wxString s(' ', indent);
s += wxString::Format("%s at (%d, %d) %dx%d",
GetDescription(), m_PosX, m_PosY, m_Width, m_Height);
if ( !m_id.empty() )
s += wxString::Format(" [id=%s]", m_id);
return s;
}
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxHtmlWordCell // wxHtmlWordCell
@@ -620,6 +635,15 @@ wxString wxHtmlWordWithTabsCell::GetPartAsText(int begin, int end) const
return sel; return sel;
} }
wxString wxHtmlWordCell::GetDescription() const
{
wxString s;
s = wxString::Format("wxHtmlWordCell(%s)", m_Word);
if ( !m_allowLinebreak )
s += " no line break";
return s;
}
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -1437,6 +1461,15 @@ void wxHtmlContainerCell::RemoveExtraSpacing(bool top, bool bottom)
} }
} }
wxString wxHtmlContainerCell::Dump(int indent) const
{
wxString s = wxHtmlCell::Dump(indent);
for ( wxHtmlCell* c = m_Cells; c; c = c->GetNext() )
s << "\n" << c->Dump(indent + 4);
return s;
}
@@ -1491,6 +1524,10 @@ void wxHtmlColourCell::DrawInvisible(wxDC& dc,
} }
} }
wxString wxHtmlColourCell::GetDescription() const
{
return wxString::Format("wxHtmlColourCell(%s)", m_Colour.GetAsString());
}
@@ -1515,6 +1552,10 @@ void wxHtmlFontCell::DrawInvisible(wxDC& dc, int WXUNUSED(x), int WXUNUSED(y),
} }
wxString wxHtmlFontCell::GetDescription() const
{
return wxString::Format("wxHtmlFontCell(%s)", m_Font.GetNativeFontInfoUserDesc());
}

View File

@@ -310,6 +310,12 @@ public:
virtual void Layout(int w) wxOVERRIDE; virtual void Layout(int w) wxOVERRIDE;
virtual wxString GetDescription() const wxOVERRIDE
{
return wxString::Format("wxHtmlImageCell with bitmap of size %d*%d",
m_bmpW, m_bmpH);
}
private: private:
wxBitmap *m_bitmap; wxBitmap *m_bitmap;
int m_align; int m_align;