use combined attributes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41706
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
#endif
/// Output character formatting
#endif
/// Output character formatting
- virtual void BeginCharacterFormatting(const wxTextAttrEx& currentStyle, const wxTextAttrEx& thisStyle, wxOutputStream& stream );
- virtual void EndCharacterFormatting(const wxTextAttrEx& WXUNUSED(currentStyle), const wxTextAttrEx& thisStyle, wxOutputStream& stream );
+ virtual void BeginCharacterFormatting(const wxTextAttrEx& currentStyle, const wxTextAttrEx& thisStyle, const wxTextAttrEx& paraStyle, wxOutputStream& stream );
+ virtual void EndCharacterFormatting(const wxTextAttrEx& WXUNUSED(currentStyle), const wxTextAttrEx& thisStyle, const wxTextAttrEx& paraStyle, wxOutputStream& stream );
/// Output paragraph formatting
virtual void OutputParagraphFormatting(const wxTextAttrEx& WXUNUSED(currentStyle), const wxTextAttrEx& thisStyle, wxOutputStream& stream/*, bool start*/);
/// Output paragraph formatting
virtual void OutputParagraphFormatting(const wxTextAttrEx& WXUNUSED(currentStyle), const wxTextAttrEx& thisStyle, wxOutputStream& stream/*, bool start*/);
- OutputParagraphFormatting(currentParaStyle, para->GetAttributes(), stream);
+ wxTextAttrEx paraStyle(para->GetCombinedAttributes());
+
+ OutputParagraphFormatting(currentParaStyle, paraStyle, stream);
wxRichTextObjectList::compatibility_iterator node2 = para->GetChildren().GetFirst();
while (node2)
wxRichTextObjectList::compatibility_iterator node2 = para->GetChildren().GetFirst();
while (node2)
wxRichTextPlainText* textObj = wxDynamicCast(obj, wxRichTextPlainText);
if (textObj && !textObj->IsEmpty())
{
wxRichTextPlainText* textObj = wxDynamicCast(obj, wxRichTextPlainText);
if (textObj && !textObj->IsEmpty())
{
- BeginCharacterFormatting(currentCharStyle, obj->GetAttributes(), stream);
+ wxTextAttrEx charStyle(para->GetCombinedAttributes(obj->GetAttributes()));
+ BeginCharacterFormatting(currentCharStyle, charStyle, paraStyle, stream);
str << textObj->GetText();
str << textObj->GetText();
- EndCharacterFormatting(currentCharStyle, obj->GetAttributes(), stream);
+ EndCharacterFormatting(currentCharStyle, charStyle, paraStyle, stream);
}
wxRichTextImage* image = wxDynamicCast(obj, wxRichTextImage);
}
wxRichTextImage* image = wxDynamicCast(obj, wxRichTextImage);
-void wxRichTextHTMLHandler::BeginCharacterFormatting(const wxTextAttrEx& currentStyle, const wxTextAttrEx& thisStyle, wxOutputStream& stream)
+void wxRichTextHTMLHandler::BeginCharacterFormatting(const wxTextAttrEx& currentStyle, const wxTextAttrEx& thisStyle, const wxTextAttrEx& paraStyle, wxOutputStream& stream)
{
wxTextOutputStream str(stream);
//Is the item bulleted one?
{
wxTextOutputStream str(stream);
//Is the item bulleted one?
- if( thisStyle.GetBulletStyle() != wxTEXT_ATTR_BULLET_STYLE_NONE )
+ if( paraStyle.GetBulletStyle() != wxTEXT_ATTR_BULLET_STYLE_NONE )
{
//Is there any opened list?
if( m_list )
{
//Is there any opened list?
if( m_list )
//Is the item among the previous ones
//Is the item one of the previous list tag's child items
//Is the item among the previous ones
//Is the item one of the previous list tag's child items
- if( (thisStyle.GetLeftIndent() == (m_indent + 100)) || (thisStyle.GetLeftIndent() < 100) )
+ if( (paraStyle.GetLeftIndent() == (m_indent + 100)) || (paraStyle.GetLeftIndent() < 100) )
str << wxT("<li>");//Yes it is
else
{
str << wxT("<li>");//Yes it is
else
{
str << (m_is_ul ? wxT("</ul>") : wxT("</ol>"));
//And renavigate to new list's horizontal position
str << (m_is_ul ? wxT("</ul>") : wxT("</ol>"));
//And renavigate to new list's horizontal position
- NavigateToListPosition(thisStyle, str);
+ NavigateToListPosition(paraStyle, str);
//Ok it's done
//Get the appropriate tag, an ol for numerical values, an ul for dot, square etc.
wxString tag;
//Ok it's done
//Get the appropriate tag, an ol for numerical values, an ul for dot, square etc.
wxString tag;
- TypeOfList(thisStyle, tag);
+ TypeOfList(paraStyle, tag);
str << tag << wxT("<li>");
}
}
str << tag << wxT("<li>");
}
}
//No there isn't a list
//navigate to new list's horizontal position(indent)
//No there isn't a list
//navigate to new list's horizontal position(indent)
- NavigateToListPosition(thisStyle, str);
+ NavigateToListPosition(paraStyle, str);
//Get the appropriate tag, an ol for numerical values, an ul for dot, square etc.
wxString tag;
//Get the appropriate tag, an ol for numerical values, an ul for dot, square etc.
wxString tag;
- TypeOfList(thisStyle, tag);
+ TypeOfList(paraStyle, tag);
str << tag << wxT("<li>");
//Now we have a list, mark it.
str << tag << wxT("<li>");
//Now we have a list, mark it.
}
// does the item have an indentation ?
}
// does the item have an indentation ?
- if( thisStyle.GetLeftIndent() )
+ if( paraStyle.GetLeftIndent() )
- if( thisStyle.GetBulletStyle() == wxTEXT_ATTR_BULLET_STYLE_NONE )
+ if( paraStyle.GetBulletStyle() == wxTEXT_ATTR_BULLET_STYLE_NONE )
- if( (thisStyle.GetLeftIndent() + thisStyle.GetLeftSubIndent()) == m_indent )
+ if( (paraStyle.GetLeftIndent() + paraStyle.GetLeftSubIndent()) == m_indent )
- if( thisStyle.GetLeftSubIndent() < 0 )
+ if( paraStyle.GetLeftSubIndent() < 0 )
- str << SymbolicIndent(~thisStyle.GetLeftSubIndent());
+ str << SymbolicIndent(~paraStyle.GetLeftSubIndent());
- if( thisStyle.GetLeftIndent() + thisStyle.GetLeftSubIndent() > m_indent )
+ if( paraStyle.GetLeftIndent() + paraStyle.GetLeftSubIndent() > m_indent )
- Indent(thisStyle, str);
- m_indent = thisStyle.GetLeftIndent() + thisStyle.GetLeftSubIndent();
+ Indent(paraStyle, str);
+ m_indent = paraStyle.GetLeftIndent() + paraStyle.GetLeftSubIndent();
m_indents.Add( m_indent );
}
else
m_indents.Add( m_indent );
}
else
int i = m_indents.size() - 1;
for(; i > -1; i--)
{
int i = m_indents.size() - 1;
for(; i > -1; i--)
{
- if( m_indent < (thisStyle.GetLeftIndent() + thisStyle.GetLeftSubIndent()) )
+ if( m_indent < (paraStyle.GetLeftIndent() + paraStyle.GetLeftSubIndent()) )
- Indent(thisStyle, str);
- m_indent = thisStyle.GetLeftIndent() + thisStyle.GetLeftSubIndent();
+ Indent(paraStyle, str);
+ m_indent = paraStyle.GetLeftIndent() + paraStyle.GetLeftSubIndent();
m_indents.Add( m_indent );
break;
}
m_indents.Add( m_indent );
break;
}
- else if( m_indent == (thisStyle.GetLeftIndent() + thisStyle.GetLeftSubIndent()) )
+ else if( m_indent == (paraStyle.GetLeftIndent() + paraStyle.GetLeftSubIndent()) )
- if( thisStyle.GetLeftSubIndent() < 0 )
+ if( paraStyle.GetLeftSubIndent() < 0 )
- str << SymbolicIndent(~thisStyle.GetLeftSubIndent());
+ str << SymbolicIndent(~paraStyle.GetLeftSubIndent());
- Indent(thisStyle, str);
- m_indent = thisStyle.GetLeftIndent() + thisStyle.GetLeftSubIndent();
+ Indent(paraStyle, str);
+ m_indent = paraStyle.GetLeftIndent() + paraStyle.GetLeftSubIndent();
m_indents.Add( m_indent );
}
}
m_indents.Add( m_indent );
}
}
-void wxRichTextHTMLHandler::EndCharacterFormatting(const wxTextAttrEx& WXUNUSED(currentStyle), const wxTextAttrEx& thisStyle, wxOutputStream& stream)
+void wxRichTextHTMLHandler::EndCharacterFormatting(const wxTextAttrEx& WXUNUSED(currentStyle), const wxTextAttrEx& thisStyle, const wxTextAttrEx& WXUNUSED(paraStyle), wxOutputStream& stream)
{
wxTextOutputStream str(stream);
{
wxTextOutputStream str(stream);