diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2012-10-20 02:31:06 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2012-10-19 21:14:00 -0700 |
commit | 5b3e480be3c61ea790ee2a39727ffad1c3487178 (patch) | |
tree | 235fba45e16d13408dad2fe939dd813387d045c0 | |
parent | a75b04473fdca8fa494f18966d06d28fb096646a (diff) | |
download | subsurface-5b3e480be3c61ea790ee2a39727ffad1c3487178.tar.gz |
Added a function to check if specific OS features are available
linux.c, macos.c, windows.c now contain
subsurface_os_feature_available() that can accept an enum type
os_feature_t defined in dive.h.
The function can be useful to check if a specific global feature
is available on a certain OS version.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | dive.h | 6 | ||||
-rw-r--r-- | linux.c | 5 | ||||
-rw-r--r-- | macos.c | 5 | ||||
-rw-r--r-- | windows.c | 15 |
4 files changed, 31 insertions, 0 deletions
@@ -437,10 +437,16 @@ const char *monthname(int mon); #define FIVE_STARS UTF8_BLACKSTAR UTF8_BLACKSTAR UTF8_BLACKSTAR UTF8_BLACKSTAR UTF8_BLACKSTAR extern const char *star_strings[]; +/* enum holding list of OS features */ +typedef enum { + UTF8_FONT_WITH_STARS +} os_feature_t; + extern const char *default_filename; extern const char *existing_filename; extern const char *subsurface_default_filename(void); extern const char *subsurface_gettext_domainpath(char *); +extern gboolean subsurface_os_feature_available(os_feature_t); extern void subsurface_command_line_init(gint *, gchar ***); extern void subsurface_command_line_exit(gint *, gchar ***); #define AIR_PERMILLE 209 @@ -112,3 +112,8 @@ void subsurface_command_line_exit(gint *argc, gchar ***argv) { /* this is a no-op */ } + +gboolean subsurface_os_feature_available(os_feature_t f) +{ + return TRUE; +} @@ -172,3 +172,8 @@ void subsurface_command_line_exit(gint *argc, gchar ***argv) { /* this is a no-op */ } + +gboolean subsurface_os_feature_available(os_feature_t f) +{ + return TRUE; +} @@ -223,3 +223,18 @@ void subsurface_command_line_exit(gint *argc, gchar ***argv) g_free((*argv)[i]); g_free(*argv); } + +/* check if we are running a newer OS version */ +gboolean subsurface_os_feature_available(os_feature_t f) +{ + switch (f) { + case UTF8_FONT_WITH_STARS: + if ((GetVersion() & 0xff) < 6) + return FALSE; /* version less than Vista */ + else + return TRUE; + break; + default: + return TRUE; + } +} |