Use subsurface_os_feature_available() to check for unicode stars support

Mainly affecting older Windows (such as XP), which do not have a more
fully featured unicode fonts installed, such as Arial Unicode MS.

With this patch we do a runtime check of the OS version in a couple of
places and if the OS is old, we use the asterix character and spaces instead
of the unicode star characters.

Linux and OSX should be unaffected by this change unless
subsurface_os_feature_available() returns FALSE for UTF8_FONT_WITH_STARS
at some point.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Lubomir I. Ivanov 2012-10-20 02:31:07 +03:00 committed by Dirk Hohndel
parent 5b3e480be3
commit 55f08bfeab
2 changed files with 13 additions and 0 deletions

View file

@ -2280,6 +2280,10 @@ GtkWidget *dive_list_create(void)
gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_MULTIPLE);
gtk_widget_set_size_request(dive_list.tree_view, 200, 200);
/* check if utf8 stars are available as a default OS feature */
if (!subsurface_os_feature_available(UTF8_FONT_WITH_STARS))
dl_column[3].header = "*";
dive_list.nr = divelist_column(&dive_list, dl_column + DIVE_NR);
dive_list.date = divelist_column(&dive_list, dl_column + DIVE_DATE);
dive_list.stars = divelist_column(&dive_list, dl_column + DIVE_RATING);

View file

@ -1018,6 +1018,15 @@ void init_ui(int *argcp, char ***argvp)
gtk_settings_set_long_property(settings, "gtk-menu-images", 1, "subsurface setting");
gtk_settings_set_long_property(settings, "gtk-button-images", 1, "subsurface setting");
/* check if utf8 stars are available as a default OS feature */
if (!subsurface_os_feature_available(UTF8_FONT_WITH_STARS)) {
star_strings[0] = " ";
star_strings[1] = "* ";
star_strings[2] = "** ";
star_strings[3] = "*** ";
star_strings[4] = "**** ";
star_strings[5] = "*****";
}
g_type_init();
subsurface_open_conf();