Tag m_root_tag;
protected:
+ typedef enum { ER_NONE, ER_TAG, ER_NEWLINE } EndReason;
+
// Parser functions
void enterElement(ElementType type);
void endElement();
void enterParagraph();
- void endParagraph();
+ void endParagraph(EndReason reason);
void pushChar(wchar_t c);
ParsedText::Tag *newTag(const std::string &name, const AttrsList &attrs);
ParsedText::Tag *openTag(const std::string &name, const AttrsList &attrs);
StyleList m_style;
Element *m_element;
Paragraph *m_paragraph;
+ bool m_empty_paragraph;
+ EndReason m_end_paragraph_reason;
};
class TextDrawer
void place(const core::rect<s32> &dest_rect);
inline s32 getHeight() { return m_height; };
- void draw(const core::rect<s32> &dest_rect,
+ void draw(const core::rect<s32> &clip_rect,
const core::position2d<s32> &dest_offset);
ParsedText::Element *getElementAt(core::position2d<s32> pos);
ParsedText::Tag *m_hovertag;