// Assume this box only contains paragraphs
wxRichTextParagraph* child = wxDynamicCast(node->GetData(), wxRichTextParagraph);
- wxCHECK_MSG( child, false, _T("Unknown object in layout") );
+ wxCHECK_MSG( child, false, wxT("Unknown object in layout") );
// TODO: what if the child hasn't been laid out (e.g. involved in Undo) but still has 'old' lines
if ( !forceQuickLayout &&
wxPoint currentPosition(0, spaceBeforePara); // We will calculate lines relative to paragraph
int lineHeight = 0;
int maxWidth = 0;
+ int maxAscent = 0;
int maxDescent = 0;
-
int lineCount = 0;
wxRichTextObjectList::compatibility_iterator node;
#endif
currentWidth = actualSize.x;
- lineHeight = wxMax(lineHeight, actualSize.y);
maxDescent = wxMax(childDescent, maxDescent);
+ maxAscent = wxMax(actualSize.y-childDescent, maxAscent);
+ lineHeight = maxDescent + maxAscent;
// Add a new line
wxRichTextLine* line = AllocateLine(lineCount);
currentPosition.y += lineSpacing;
currentWidth = 0;
maxDescent = 0;
+ maxAscent = 0;
maxWidth = wxMax(maxWidth, currentWidth);
lineCount ++;
{
// We still fit, so don't add a line, and keep going
currentWidth += childSize.x;
- lineHeight = wxMax(lineHeight, childSize.y);
maxDescent = wxMax(childDescent, maxDescent);
+ maxAscent = wxMax(childSize.y-childDescent, maxAscent);
+ lineHeight = maxDescent + maxAscent;
maxWidth = wxMax(maxWidth, currentWidth);
lastEndPos = child->GetRange().GetEnd();
if (attr.HasAlignment() && GetAttributes().GetAlignment() == wxTEXT_ALIGNMENT_CENTRE)
{
int rightIndent = ConvertTenthsMMToPixels(dc, attr.GetRightIndent());
- pos.x = (rect.GetWidth() - (pos.x - rect.x) - rightIndent - size.x)/2 + pos.x;
- // Lines are relative to the paragraph position
- pos.x -= GetPosition().x;
+ pos.x = (rect.GetWidth() - pos.x - rightIndent - size.x)/2 + pos.x;
line->SetPosition(pos);
}
else if (attr.HasAlignment() && GetAttributes().GetAlignment() == wxTEXT_ALIGNMENT_RIGHT)
{
int rightIndent = ConvertTenthsMMToPixels(dc, attr.GetRightIndent());
- pos.x = rect.x + rect.GetWidth() - size.x - rightIndent;
- // Lines are relative to the paragraph position
- pos.x -= GetPosition().x;
+ pos.x = rect.GetWidth() - size.x - rightIndent;
line->SetPosition(pos);
}
int s1 = selectionRange.GetStart()-1;
int fragmentLen = s1 - r1 + 1;
if (fragmentLen < 0)
+ {
wxLogDebug(wxT("Mid(%d, %d"), (int)(r1 - offset), (int)fragmentLen);
+ }
wxString stringFragment = str.Mid(r1 - offset, fragmentLen);
DrawTabbedString(dc, textAttr, rect, stringFragment, x, y, false);
int fragmentLen = s2 - s1 + 1;
if (fragmentLen < 0)
+ {
wxLogDebug(wxT("Mid(%d, %d"), (int)(s1 - offset), (int)fragmentLen);
+ }
wxString stringFragment = str.Mid(s1 - offset, fragmentLen);
DrawTabbedString(dc, textAttr, rect, stringFragment, x, y, true);
int fragmentLen = r2 - s2 + 1;
if (fragmentLen < 0)
+ {
wxLogDebug(wxT("Mid(%d, %d"), (int)(s2 - offset), (int)fragmentLen);
+ }
wxString stringFragment = str.Mid(s2 - offset, fragmentLen);
DrawTabbedString(dc, textAttr, rect, stringFragment, x, y, false);
dc.SetBackgroundMode(wxBRUSHSTYLE_TRANSPARENT);
}
- wxCoord x_orig = x;
+ wxCoord x_orig = x;
while (hasTabs)
{
// the string has a tab
/// Enumerate the standard bullet names currently supported
bool wxRichTextStdRenderer::EnumerateStandardBulletNames(wxArrayString& bulletNames)
{
- bulletNames.Add(wxT("standard/circle"));
- bulletNames.Add(wxT("standard/square"));
- bulletNames.Add(wxT("standard/diamond"));
- bulletNames.Add(wxT("standard/triangle"));
+ bulletNames.Add(wxTRANSLATE("standard/circle"));
+ bulletNames.Add(wxTRANSLATE("standard/square"));
+ bulletNames.Add(wxTRANSLATE("standard/diamond"));
+ bulletNames.Add(wxTRANSLATE("standard/triangle"));
return true;
}