[PATCH 2/2] Don't use the unicode characters for stars if the OS is too old

Lubomir I. Ivanov neolit123 at gmail.com
Fri Oct 19 12:09:56 PDT 2012


From: "Lubomir I. Ivanov" <neolit123 at gmail.com>

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_check_old_os() is set to return FALSE on a certain condition.

Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
---
 divelist.c |  5 +++++
 gtk-gui.c  |  9 +++++++++
 info.c     | 12 ++++++------
 3 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/divelist.c b/divelist.c
index 274773d..0550572 100644
--- a/divelist.c
+++ b/divelist.c
@@ -2280,6 +2280,11 @@ 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 the OS is old and replace the star symbol in the rating column's
+	 * header with an asterix */
+	if (!subsurface_check_old_os())
+		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);
diff --git a/gtk-gui.c b/gtk-gui.c
index 5fd16d1..80a8d51 100644
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -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 the OS is old and replace the star symbols with asterix and spaces */
+	if (!subsurface_check_old_os()) {
+		star_strings[0] = "     ";
+		star_strings[1] = "*    ";
+		star_strings[2] = "**   ";
+		star_strings[3] = "***  ";
+		star_strings[4] = "**** ";
+		star_strings[5] = "*****";
+	}
 	g_type_init();
 
 	subsurface_open_conf();
diff --git a/info.c b/info.c
index f6905dc..8380135 100644
--- a/info.c
+++ b/info.c
@@ -924,12 +924,12 @@ GtkWidget *extended_dive_info_widget(void)
 	people_list = gtk_list_store_new(1, G_TYPE_STRING);
 	location_list = gtk_list_store_new(1, G_TYPE_STRING);
 	star_list = gtk_list_store_new(1, G_TYPE_STRING);
-	add_string_list_entry(ZERO_STARS, star_list);
-	add_string_list_entry(ONE_STARS, star_list);
-	add_string_list_entry(TWO_STARS, star_list);
-	add_string_list_entry(THREE_STARS, star_list);
-	add_string_list_entry(FOUR_STARS, star_list);
-	add_string_list_entry(FIVE_STARS, star_list);
+	add_string_list_entry(star_strings[0], star_list);
+	add_string_list_entry(star_strings[1], star_list);
+	add_string_list_entry(star_strings[2], star_list);
+	add_string_list_entry(star_strings[3], star_list);
+	add_string_list_entry(star_strings[4], star_list);
+	add_string_list_entry(star_strings[5], star_list);
 	suit_list = gtk_list_store_new(1, G_TYPE_STRING);
 
 	gtk_container_set_border_width(GTK_CONTAINER(vbox), 6);
-- 
1.7.11.msysgit.0



More information about the subsurface mailing list