void SymbolLayer::setIconImage(PropertyValue<std::string> value) { if (value == getIconImage()) return; impl->layout.iconImage.set(value); impl->observer->onLayerLayoutPropertyChanged(*this, "icon-image"); }
void TextPreview::drawTextArea(QPainter *painter) { useTimer = false; if(ff8Text.isEmpty()) return; bool jp = font->tableCount() == 4; FF8Window ff8Window = getWindow(); /* Window Background */ if(ff8Window.type!=NOWIN) { painter->translate(realPos(ff8Window)); } painter->setBrush(QPixmap(":/images/menu-fond.png")); /* Frame */ QPen pen(QColor(41,41,41)); pen.setWidth(1); pen.setJoinStyle(Qt::MiterJoin); painter->setPen(pen); painter->drawRect(0, 0, maxW, maxH); painter->setPen(QColor(132,132,132)); painter->drawLine(2, 1, maxW-2, 1); painter->drawLine(1, 2, 1, maxH-2); painter->setPen(QColor(58,58,58)); painter->drawLine(2, maxH-1, maxW-1, maxH-1); painter->drawLine(maxW-1, 2, maxW-1, maxH-2); painter->setPen(QColor(99,99,99)); painter->drawPoint(1, 1); painter->setPen(QColor(82,82,82)); painter->drawPoint(maxW-1, 1); painter->drawPoint(1, maxH-1); int ask_first=-1, ask_last=-1; if(ff8Window.type==0x6f) { ask_first = ff8Window.ask_first; ask_last = ff8Window.ask_last; if(ask_last >= ask_first) painter->drawPixmap(10, 11+16*ask_first, QPixmap(":/images/cursor.png")); } /* Text */ fontColor = TdwFile::White; int charId, line=0, x = (ask_first==0 && ask_last>=0 ? 40 : 8), y = 8; int start = pagesPos.value(currentPage, 0), size = ff8Text.size(); for(int i=start ; i<size ; ++i) { charId = (quint8)ff8Text.at(i); if(charId>=32) { if(jp) { letter(&x, &y, charId-32, painter);// 210-32 } else { if(charId<227) { letter(&x, &y, charId-32, painter); } else if(charId>=232) { letter(&x, &y, optimisedDuo[charId-232][0], painter); letter(&x, &y, optimisedDuo[charId-232][1], painter); } } } else if(charId<=1)//NewPage break; else if(charId==2)//\n { ++line; x = (ask_first<=line && ask_last>=line ? 40 : 8); y += 16; } else if(charId<32) { ++i; switch(charId) { case 0x03: // Character names charId = (quint8)ff8Text.at(i); if(charId>=0x30 && charId<=0x3a) word(&x, &y, names.at(charId-0x30), painter, 5); else if(charId==0x40) word(&x, &y, names.at(11), painter, 5); else if(charId==0x50) word(&x, &y, names.at(12), painter, 5); else if(charId==0x60) word(&x, &y, names.at(13), painter, 5); break; case 0x04:// Var charId = (quint8)ff8Text.at(i); if((charId>=0x20 && charId<=0x27) || (charId>=0x30 && charId<=0x37)) word(&x, &y, FF8Text::toFF8("0", false), painter); else if(charId>=0x40 && charId<=0x47) word(&x, &y, FF8Text::toFF8("00000000", false), painter); break; case 0x05: // Icons charId = (quint8)ff8Text.at(i)-0x20; if(charId>=0 && charId<96) { painter->drawImage(x, y, getIconImage(charId)); x += iconWidth[charId] + iconPadding[charId]; } break; case 0x06: // Colors charId = (quint8)ff8Text.at(i); if(charId>=0x20 && charId<=0x27)// Colors fontColor = (TdwFile::Color)(charId-0x20); else if(charId>=0x28 && charId<=0x2f)// BlinkColors { useTimer = true; fontColor = (TdwFile::Color)(charId-0x20); } break; case 0x0e: // Locations charId = (quint8)ff8Text.at(i); if(charId>=0x20 && charId<=0x27) word(&x, &y, locations.at(charId-0x20), painter, 5); break; case 0x19: // Jap 1 if(jp) { letter(&x, &y, (quint8)ff8Text.at(i)-0x20, painter, 1); } break; case 0x1a: // Jap 2 if(jp) { letter(&x, &y, (quint8)ff8Text.at(i)-0x20, painter, 2); } break; case 0x1b: // Jap 3 if(jp) { letter(&x, &y, (quint8)ff8Text.at(i)-0x20, painter, 3); } break; case 0x1c: // Jap 4 if(jp) { letter(&x, &y, (quint8)ff8Text.at(i)-0x20, painter, 4); } break; } } } }