Пример #1
0
void XHTMLReader::addTextStyleEntry(const ZLTextStyleEntry &entry) {
	if (!entry.isFeatureSupported(ZLTextStyleEntry::FONT_FAMILY)) {
		myModelReader.addStyleEntry(entry);
		return;
	}

	bool doFixFamiliesList = false;

	const std::vector<std::string> &families = entry.fontFamilies();
	for (std::vector<std::string>::const_iterator it = families.begin(); it != families.end(); ++it) {
		ZLLogger::Instance().println("FONT", "Requested font family: " + *it);
		shared_ptr<FontEntry> fontEntry = myFontMap->get(*it);
		if (!fontEntry.isNull()) {
			const std::string realFamily = myModelReader.putFontEntry(*it, fontEntry);
			if (realFamily != *it) {
				ZLLogger::Instance().println("FONT", "Entry for " + *it + " stored as " + realFamily);
				doFixFamiliesList = true;
				break;
			}
		}
	}

	if (!doFixFamiliesList) {
		myModelReader.addStyleEntry(entry);
	} else {
		std::vector<std::string> realFamilies;
		for (std::vector<std::string>::const_iterator it = families.begin(); it != families.end(); ++it) {
			shared_ptr<FontEntry> fontEntry = myFontMap->get(*it);
			if (!fontEntry.isNull()) {
				realFamilies.push_back(myModelReader.putFontEntry(*it, fontEntry));
			} else {
				realFamilies.push_back(*it);
			}
		}
		myModelReader.addStyleEntry(entry, realFamilies);
	}
}
Пример #2
0
void ZLTextModel::addStyleEntry(const ZLTextStyleEntry &entry, unsigned char depth) {
	addStyleEntry(entry, entry.fontFamilies(), depth);
}