aboutsummaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorEugene Sandulenko2017-01-30 22:58:02 +0100
committerEugene Sandulenko2017-01-30 22:58:32 +0100
commit119e1bd30d7c5f95fa5113c4700384bc5c217882 (patch)
tree0fb54541517693f38cf4327565622e923165e98a /graphics
parent93e35cb9d720b2890286ec07d50bc5e4b090a8c9 (diff)
downloadscummvm-rg350-119e1bd30d7c5f95fa5113c4700384bc5c217882.tar.gz
scummvm-rg350-119e1bd30d7c5f95fa5113c4700384bc5c217882.tar.bz2
scummvm-rg350-119e1bd30d7c5f95fa5113c4700384bc5c217882.zip
GRAPHICS: More work on rich text formatting
Diffstat (limited to 'graphics')
-rw-r--r--graphics/macgui/mactext.cpp11
-rw-r--r--graphics/macgui/mactext.h19
2 files changed, 17 insertions, 13 deletions
diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index 8d83c19ceb..4e86fcff49 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -56,6 +56,8 @@ MacText::MacText(Common::String s, MacWindowManager *wm, const Font *font, int f
_defaultFormatting.font = font;
_defaultFormatting.wm = wm;
+
+ _currentFormatting = _defaultFormatting;
}
void MacText::splitString(Common::String &str) {
@@ -64,6 +66,8 @@ void MacText::splitString(Common::String &str) {
Common::String tmp;
bool prevCR = false;
+ int curLine = _text.empty() ? 0 : _text.size() - 1;
+
while (*s) {
if (*s == '\001') {
s++;
@@ -84,6 +88,13 @@ void MacText::splitString(Common::String &str) {
debug(8, "******** splitString: fontId: %d, textSlant: %d, unk3: %d, fontSize: %d, p0: %x p1: %x p2: %x",
fontId, textSlant, unk3f, fontSize, palinfo1, palinfo2, palinfo3);
+ _currentFormatting.setValues(_wm, fontId, textSlant, unk3f, fontSize, palinfo1, palinfo2, palinfo3);
+
+ if (_formatting.empty())
+ _formatting.resize(1);
+
+ _formatting[curLine].push_back(_currentFormatting);
+
continue;
}
}
diff --git a/graphics/macgui/mactext.h b/graphics/macgui/mactext.h
index 241ad65314..17c3b394bd 100644
--- a/graphics/macgui/mactext.h
+++ b/graphics/macgui/mactext.h
@@ -45,26 +45,18 @@ struct MacFontRun {
MacFontRun() {
wm = nullptr;
- fontId = textSlant = unk3f = fontSize;
- palinfo1 = palinfo2 = palinfo3;
+ fontId = textSlant = unk3f = fontSize = 0;
+ palinfo1 = palinfo2 = palinfo3 = 0;
font = nullptr;
}
MacFontRun(MacWindowManager *wm_, uint16 fontId_, byte textSlant_, byte unk3f_, uint16 fontSize_,
uint16 palinfo1_, uint16 palinfo2_, uint16 palinfo3_) {
- wm = wm_;
- fontId = fontId_;
- textSlant = textSlant_;
- unk3f = unk3f_;
- fontSize = fontSize_;
- palinfo1 = palinfo1_;
- palinfo2 = palinfo2_;
- palinfo3 = palinfo3_;
- font = nullptr;
+ setValues(wm_, fontId_, textSlant_, unk3f_, fontSize_, palinfo1_, palinfo2_, palinfo3_);
}
void setValues(MacWindowManager *wm_, uint16 fontId_, byte textSlant_, byte unk3f_, uint16 fontSize_,
- uint16 palinfo1_, uint16 palinfo2_, uint16 palinfo3_, const Font *font_) {
+ uint16 palinfo1_, uint16 palinfo2_, uint16 palinfo3_) {
wm = wm_;
fontId = fontId_;
textSlant = textSlant_;
@@ -73,7 +65,7 @@ struct MacFontRun {
palinfo1 = palinfo1_;
palinfo2 = palinfo2_;
palinfo3 = palinfo3_;
- font = font_;
+ font = nullptr;
}
const Font *getFont();
@@ -120,6 +112,7 @@ private:
Common::Array< Common::Array<MacFontRun> > _formatting;
MacFontRun _defaultFormatting;
+ MacFontRun _currentFormatting;
};
} // End of namespace Graphics