GString *pick_tab_label(PASSAGE_TAB_INFO *pt) { GString *str = g_string_new(NULL); const char *abbrev_text = main_get_abbreviation(pt->text_mod); const char *abbrev_comm = main_get_abbreviation(pt->commentary_mod); const char *abbrev_dict = main_get_abbreviation(pt->dictlex_mod); const char *abbrev_book = main_get_abbreviation(pt->book_mod); if (pt->showparallel) { g_string_printf(str, "%s", _("Parallel View")); return str; } if (pt->showtexts || (pt->showcomms && pt->comm_showing)) { g_string_printf(str, "%s: %s", (pt->showtexts ? (abbrev_text ? abbrev_text : pt->text_mod) : (pt->commentary_mod ? (abbrev_comm ? abbrev_comm : pt->commentary_mod) : "[no commentary]")), pt->text_commentary_key); } else { g_string_printf(str, "%s", (pt->showcomms ? (pt->book_mod ? (abbrev_book ? abbrev_book : pt->book_mod) : "[no book]") : (pt->dictlex_mod ? (abbrev_dict ? abbrev_dict : pt->dictlex_mod) : "[no dict]"))); } return str; }
void gui_display_about_module_dialog(gchar *modname) { const gchar *desc; gchar *about; const gchar *version, *language, *abbreviation, *size, *promo, *dist, *langtoken, *companion, *category, *feature; int feature_count = 0; GString *info = g_string_new(""); desc = main_get_mod_config_entry(modname, "Description"); about = main_get_mod_config_entry(modname, "About"); version = main_get_mod_config_entry(modname, "Version"); size = main_get_mod_config_entry(modname, "InstallSize"); promo = main_get_mod_config_entry(modname, "ShortPromo"); dist = main_get_mod_config_entry(modname, "DistributionLicense"); companion = main_get_mod_config_entry(modname, "Companion"); category = main_get_mod_config_entry(modname, "Category"); feature = main_get_mod_config_entry(modname, "Feature"); langtoken = main_get_mod_config_entry(modname, "Lang"); language = main_get_module_language(modname); abbreviation = main_get_abbreviation(modname); info = g_string_append(info, "<center><table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">"); info = g_string_append(info, "<tr><td valign=\"top\">"); info = g_string_append(info, _("<b>Module name:</b> ")); info = g_string_append(info, modname); info = g_string_append(info, "<br/>"); if (abbreviation && *abbreviation) { info = g_string_append(info, _("<b>Module abbreviation:</b> ")); info = g_string_append(info, abbreviation); info = g_string_append(info, "<br/>"); } info = g_string_append(info, _("<b>Version:</b> ")); info = g_string_append(info, ((version && *version) ? version : _("No version stamp found"))); info = g_string_append(info, "<br/>"); info = g_string_append(info, _("<b>Type:</b> ")); if (feature && !strcmp(feature, "DailyDevotion")) info = g_string_append(info, _("Daily Devotion")); else if (category && !strcmp(category, "Maps")) info = g_string_append(info, _("Maps")); else if (category && !strcmp(category, "Images")) info = g_string_append(info, _("Images")); else if (category && !strcmp(category, "Glossaries")) info = g_string_append(info, _("Glossary")); else if (category && !strcmp(category, "Cults / Unorthodox / Questionable Material")) info = g_string_append(info, _("Cult")); else { switch (main_get_mod_type(modname)) { case TEXT_TYPE: info = g_string_append(info, _("Bible")); break; case COMMENTARY_TYPE: info = g_string_append(info, _("Commentary")); break; case DICTIONARY_TYPE: info = g_string_append(info, _("Dictionary")); break; case BOOK_TYPE: info = g_string_append(info, _("General Book")); break; case PERCOM_TYPE: info = g_string_append(info, _("Personal Commentary")); break; case PRAYERLIST_TYPE: info = g_string_append(info, _("Journal")); break; default: info = g_string_append(info, _("Unknown type")); break; } } info = g_string_append(info, "<br/>"); info = g_string_append(info, _("<b>Language:</b> ")); info = g_string_append(info, ((language && *language) ? language : _("Not specified"))); info = g_string_append(info, " ("); info = g_string_append(info, ((langtoken && *langtoken) ? langtoken : "?")); info = g_string_append(info, ")"); info = g_string_append(info, "<br/>"); if (size && *size) { info = g_string_append(info, _("<b>Installed size:</b> ")); info = g_string_append(info, size); info = g_string_append(info, "<br/>"); } if (companion && *companion) { info = g_string_append(info, _("<b>Companion module(s):</b></br>")); info = g_string_append(info, companion); info = g_string_append(info, "<br/>"); } info = g_string_append(info, "</td>" "<td> </td>" "<td valign=\"top\">"); info = g_string_append(info, _("<b>Features:</b>")); info = g_string_append(info, "<br/>"); if (main_check_for_global_option((gchar *)modname, "ThMLHeadings") || main_check_for_global_option((gchar *)modname, "OSISHeadings")) { info = g_string_append(info, _("* Headings")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "GBFFootnotes") || main_check_for_global_option((gchar *)modname, "ThMLFootnotes") || main_check_for_global_option((gchar *)modname, "OSISFootnotes")) { info = g_string_append(info, _("* Footnotes")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "ThMLScripref") || main_check_for_global_option((gchar *)modname, "OSISScripref")) { info = g_string_append(info, _("* Cross references")); info = g_string_append(info, "<br/>"); feature_count++; } if ((main_check_for_global_option((gchar *)modname, "GBFStrongs")) || (main_check_for_global_option((gchar *)modname, "ThMLStrongs")) || (main_check_for_global_option((gchar *)modname, "OSISStrongs"))) { info = g_string_append(info, _("* Strong's numbers")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "GBFMorph") || main_check_for_global_option((gchar *)modname, "ThMLMorph") || main_check_for_global_option((gchar *)modname, "OSISMorph")) { info = g_string_append(info, _("* Morphological tags")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "ThMLLemma") || main_check_for_global_option((gchar *)modname, "OSISLemma")) { info = g_string_append(info, _("* Lemmas")); info = g_string_append(info, "<br/>"); feature_count++; } if ((main_check_for_global_option((gchar *)modname, "GBFRedLetterWords")) || (main_check_for_global_option((gchar *)modname, "OSISRedLetterWords"))) { info = g_string_append(info, _("* Words of Christ in red")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "UTF8GreekAccents")) { info = g_string_append(info, _("* Greek accents")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "UTF8HebrewPoints")) { info = g_string_append(info, _("* Hebrew Vowel Points")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "UTF8Cantillation")) { info = g_string_append(info, _("* Hebrew Cantillation")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "ThMLVariants") || main_check_for_global_option((gchar *)modname, "OSISVariants")) { info = g_string_append(info, _("* Variant readings")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "OSISXlit")) { info = g_string_append(info, _("* Transliteration forms")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "OSISEnum")) { info = g_string_append(info, _("* Enumerations")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "OSISGlosses") || main_check_for_global_option((gchar *)modname, "OSISRuby")) { info = g_string_append(info, _("* Glosses")); info = g_string_append(info, "<br/>"); feature_count++; } if (main_check_for_global_option((gchar *)modname, "OSISMorphSegmentation")) { info = g_string_append(info, _("* Morpheme Segmentation")); info = g_string_append(info, "<br/>"); feature_count++; } if (feature_count == 0) { info = g_string_append(info, _("* <i>No features found</i>")); info = g_string_append(info, "<br/>"); } info = g_string_append(info, "</td></tr></table></center>"); if (dist && *dist) { info = g_string_append(info, "<br/><center>"); info = g_string_append(info, _("<b>Distribution license:</b>")); info = g_string_append(info, "<br/>"); info = g_string_append(info, dist); info = g_string_append(info, "</a></center>"); } if (promo) { /* if promo looks like just an undecorated url, hotlink it. */ gboolean just_url = (((strncmp(promo, "http", 4) == 0) || (strncmp(promo, "www.", 4) == 0)) && (strchr(promo, ' ') == 0)); info = g_string_append(info, "<br/><center>"); info = g_string_append(info, _("<b>Promotional:</b> ")); info = g_string_append(info, "<br/>"); if (just_url) { g_string_append(info, "<a href=\""); if (*promo == 'w') info = g_string_append(info, "http://"); info = g_string_append(info, promo); g_string_append(info, "\">"); } info = g_string_append(info, promo); if (just_url) g_string_append(info, "</a>"); info = g_string_append(info, "</center>"); } info = g_string_append(info, "<br/><hr width=\"80%%\"/><br/>"); info = g_string_append(info, about); gui_core_display_about_dialog(desc, info->str, modname); }