+ else if (attr.GetBulletStyle() & wxTEXT_ATTR_BULLET_STYLE_STANDARD)
+ {
+ wxTextAttrEx bulletAttr(GetCombinedAttributes());
+ if (bulletAttr.GetTextColour().Ok())
+ {
+ dc.SetPen(wxPen(bulletAttr.GetTextColour()));
+ dc.SetBrush(wxBrush(bulletAttr.GetTextColour()));
+ }
+ else
+ {
+ dc.SetPen(*wxBLACK_PEN);
+ dc.SetBrush(*wxBLACK_BRUSH);
+ }
+
+ wxFont font;
+ if (bulletAttr.GetFont().Ok())
+ font = bulletAttr.GetFont();
+ else
+ font = (*wxNORMAL_FONT);
+
+ dc.SetFont(font);
+
+ // Get line height from first line, if any
+ wxRichTextLine* line = m_cachedLines.GetFirst() ? (wxRichTextLine* ) m_cachedLines.GetFirst()->GetData() : (wxRichTextLine*) NULL;
+
+ wxPoint linePos;
+ int lineHeight wxDUMMY_INITIALIZE(0);
+ if (line)
+ {
+ lineHeight = line->GetSize().y;
+ linePos = line->GetPosition() + GetPosition();
+ }
+ else
+ {
+ lineHeight = dc.GetCharHeight();
+ linePos = GetPosition();
+ linePos.y += spaceBeforePara;
+ }
+
+ int charHeight = dc.GetCharHeight();
+
+ int bulletWidth = wxMax(2, (charHeight/3 + 1));
+ int bulletHeight = bulletWidth;
+
+ int x = GetPosition().x + leftIndent;
+ int y = linePos.y + (lineHeight - charHeight/2) - bulletHeight/2;
+
+ if (bulletAttr.GetBulletName() == wxT("standard/square"))
+ {
+ dc.DrawRectangle(x, y, bulletWidth, bulletHeight);
+ }
+ else // "standard/round", and catch-all
+ {
+ dc.DrawEllipse(x, y, bulletWidth, bulletHeight);
+ }
+ }