1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 02:09:35 +02:00

pass font file names to java style

This commit is contained in:
Nikolay Pultsin 2014-03-31 16:04:42 +01:00
parent fcd2640be7
commit ccd1c34858
11 changed files with 102 additions and 11 deletions

View file

@ -313,7 +313,6 @@ JNIEXPORT jint JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin
env->DeleteLocalRef(javaFootnoteModel);
}
// TODO: synchronize FontManager
const std::vector<std::vector<std::string> > familyLists = model->fontManager().familyLists();
for (std::vector<std::vector<std::string> >::const_iterator it = familyLists.begin(); it != familyLists.end(); ++it) {
const std::vector<std::string> &lst = *it;
@ -327,6 +326,28 @@ JNIEXPORT jint JNICALL Java_org_geometerplus_fbreader_formats_NativeFormatPlugin
env->DeleteLocalRef(jList);
}
const std::map<std::string,shared_ptr<FontEntry> > entries = model->fontManager().entries();
for (std::map<std::string,shared_ptr<FontEntry> >::const_iterator it = entries.begin(); it != entries.end(); ++it) {
if (it->second.isNull()) {
continue;
}
jstring family = AndroidUtil::createJavaString(env, it->first);
jstring normal = AndroidUtil::createJavaString(env, it->second->Normal);
jstring bold = AndroidUtil::createJavaString(env, it->second->Bold);
jstring italic = AndroidUtil::createJavaString(env, it->second->Italic);
jstring boldItalic = AndroidUtil::createJavaString(env, it->second->BoldItalic);
AndroidUtil::Method_NativeBookModel_registerFontEntry->call(
javaModel, family, normal, bold, italic, boldItalic
);
if (boldItalic != 0) env->DeleteLocalRef(boldItalic);
if (italic != 0) env->DeleteLocalRef(italic);
if (bold != 0) env->DeleteLocalRef(bold);
if (normal != 0) env->DeleteLocalRef(normal);
env->DeleteLocalRef(family);
}
return 0;
}