summaryrefslogtreecommitdiffstats
path: root/windows.c
diff options
context:
space:
mode:
Diffstat (limited to 'windows.c')
-rw-r--r--windows.c233
1 files changed, 0 insertions, 233 deletions
diff --git a/windows.c b/windows.c
index fb2883916..731ef2448 100644
--- a/windows.c
+++ b/windows.c
@@ -2,209 +2,11 @@
/* implements Windows specific functions */
#include "dive.h"
#include "display.h"
-#if USE_GTK_UI
-#include "display-gtk.h"
-#endif
#include <windows.h>
#include <shlobj.h>
const char system_divelist_default_font[] = "Sans 8";
-static HKEY hkey;
-
-void subsurface_open_conf(void)
-{
- LONG success;
-
- success = RegCreateKeyEx(HKEY_CURRENT_USER, (LPCTSTR)TEXT("Software\\subsurface"),
- 0L, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
- NULL, &hkey, NULL);
- if (success != ERROR_SUCCESS)
- printf("CreateKey Software\\subsurface failed %ld\n", success);
-}
-
-void subsurface_unset_conf(const char *name)
-{
- RegDeleteValue(hkey, (LPCTSTR)name);
-}
-
-void subsurface_set_conf(const char *name, const char *value)
-{
- /* since we are using the pointer 'value' as both an actual
- * pointer to the string setting and as a way to pass the
- * numbers 0 and 1 to this function for booleans, one of the
- * calls to RegSetValueEx needs to pass &value (when we want
- * to pass the boolean value), the other one passes value (the
- * address of the string. */
- int wlen;
- wchar_t *wname, *wstring;
-
- wname = (wchar_t *)g_utf8_to_utf16(name, -1, NULL, NULL, NULL);
- if (!wname)
- return;
-
- wlen = g_utf8_strlen((char *)value, -1);
- wstring = (wchar_t *)g_utf8_to_utf16((char *)value, -1, NULL, NULL, NULL);
- if (!wstring || !wlen) {
- free(wname);
- return;
- }
- RegSetValueExW(hkey, (LPCWSTR)wname, 0, REG_SZ, (const BYTE *)wstring,
- wlen * sizeof(wchar_t));
- free(wstring);
- free(wname);
-}
-
-void subsurface_set_conf_int(const char *name, int value)
-{
- RegSetValueEx(hkey, (LPCTSTR)name, 0, REG_DWORD, (const BYTE *)&value, 4);
-}
-
-void subsurface_set_conf_bool(const char *name, bool value)
-{
- subsurface_set_conf_int(name, value);
-}
-
-const char *subsurface_get_conf(const char *name)
-{
- const int csize = 64;
- int blen = 0;
- LONG ret = ERROR_MORE_DATA;
- wchar_t *wstring = NULL, *wname;
- char *utf8_string;
-
- wname = (wchar_t *)g_utf8_to_utf16(name, -1, NULL, NULL, NULL);
- if (!wname)
- return NULL;
- blen = 0;
- /* lest try to load the string in chunks of 'csize' bytes until it fits */
- while (ret == ERROR_MORE_DATA) {
- blen += csize;
- wstring = (wchar_t *)realloc(wstring, blen * sizeof(wchar_t));
- ret = RegQueryValueExW(hkey, (LPCWSTR)wname, NULL, NULL,
- (LPBYTE)wstring, (LPDWORD)&blen);
- }
- /* that's what happens the first time we start - just return NULL */
- if (ret != ERROR_SUCCESS) {
- free(wname);
- free(wstring);
- return NULL;
- }
- /* convert the returned string into utf-8 */
- utf8_string = g_utf16_to_utf8(wstring, -1, NULL, NULL, NULL);
- free(wstring);
- free(wname);
- if (!utf8_string)
- return NULL;
- if (!g_utf8_validate(utf8_string, -1, NULL)) {
- free(utf8_string);
- return NULL;
- }
- return utf8_string;
-}
-
-int subsurface_get_conf_int(const char *name)
-{
- DWORD value = -1, len = 4;
- LONG ret = RegQueryValueEx(hkey, (LPCTSTR)TEXT(name), NULL, NULL,
- (LPBYTE)&value, (LPDWORD)&len);
- if (ret != ERROR_SUCCESS)
- return -1;
- return value;
-}
-
-int subsurface_get_conf_bool(const char *name)
-{
- int ret = subsurface_get_conf_int(name);
- if (ret == -1)
- return ret;
- return ret != 0;
-}
-
-void subsurface_flush_conf(void)
-{
- /* this is a no-op */
-}
-
-void subsurface_close_conf(void)
-{
- RegCloseKey(hkey);
-}
-
-#if USE_GTK_UI
-int subsurface_fill_device_list(GtkListStore *store)
-{
- const int bufdef = 512;
- const char *dlabels[] = {"UEMISSDA", NULL};
- const char *devdef = "COM1";
- GtkTreeIter iter;
- int index = -1, nentries = 0, ret, i;
- char bufname[bufdef], bufval[bufdef], *p;
- DWORD nvalues, bufval_len, bufname_len;
- HKEY key;
-
- /* add serial ports */
- ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\SERIALCOMM",
- 0, KEY_READ, &key);
- if (ret == ERROR_SUCCESS) {
- ret = RegQueryInfoKeyA(key, NULL, NULL, NULL, NULL, NULL, NULL, &nvalues,
- NULL, NULL, NULL, NULL);
- if (ret == ERROR_SUCCESS)
- for (i = 0; i < nvalues; i++) {
- memset(bufval, 0, bufdef);
- memset(bufname, 0, bufdef);
- bufname_len = bufdef;
- bufval_len = bufdef;
- ret = RegEnumValueA(key, i, bufname, &bufname_len, NULL, NULL, bufval,
- &bufval_len);
- if (ret == ERROR_SUCCESS) {
- gtk_list_store_append(store, &iter);
- gtk_list_store_set(store, &iter, 0, bufval, -1);
- if (is_default_dive_computer_device(bufval))
- index = nentries;
- nentries++;
- }
- }
- }
- /* add drive letters that match labels */
- memset(bufname, 0, bufdef);
- bufname_len = bufdef;
- if (GetLogicalDriveStringsA(bufname_len, bufname)) {
- p = bufname;
- while (*p) {
- memset(bufval, 0, bufdef);
- if (GetVolumeInformationA(p, bufval, bufdef, NULL, NULL, NULL, NULL, 0)) {
- for (i = 0; dlabels[i] != NULL; i++)
- if (!strcmp(bufval, dlabels[i])) {
- char name[80];
- snprintf(name, sizeof(name), "%s (%s)", p, dlabels[i]);
- gtk_list_store_append(store, &iter);
- gtk_list_store_set(store, &iter, 0, name, -1);
- if (is_default_dive_computer_device(p))
- index = nentries;
- nentries++;
- }
- }
- p = &p[strlen(p) + 1];
- }
- }
- /* if we can't find anything, use the default */
- if (!nentries) {
- gtk_list_store_append(store, &iter);
- gtk_list_store_set(store, &iter,
- 0, devdef, -1);
- if (is_default_dive_computer_device(devdef))
- index = 0;
- }
- return index;
-}
-#endif /* USE_GTK_UI */
-
-const char *subsurface_icon_name()
-{
- return "subsurface.ico";
-}
-
const char *system_default_filename(void)
{
char datapath[MAX_PATH];
@@ -223,27 +25,6 @@ const char *system_default_filename(void)
return buffer;
}
-const char *subsurface_gettext_domainpath(char *argv0)
-{
- /* first hackishly make sure that the LANGUAGE information is correctly set up
- * in the environment */
- char buffer[80];
- gchar *locale = g_win32_getlocale();
- snprintf(buffer, sizeof(buffer), "LANGUAGE=%s.UTF-8", locale);
- putenv(buffer);
- g_free(locale);
- /* always use translation directory relative to install location, regardless of argv0 */
- return "./share/locale";
-}
-
-#if USE_GTK_UI
-void subsurface_ui_setup(GtkSettings *settings, GtkWidget *menubar,
- GtkWidget *vbox, GtkUIManager *ui_manager)
-{
- gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0);
-}
-#endif /* USE_GTK_UI */
-
/* barely documented API */
extern int __wgetmainargs(int *, wchar_t ***, wchar_t ***, int, int *);
@@ -305,20 +86,6 @@ void subsurface_command_line_exit(gint *argc, gchar ***argv)
g_free(*argv);
}
-bool subsurface_launch_for_uri(const char* uri)
-{
- gboolean ret = FALSE;
- wchar_t *wuri = (wchar_t *)g_utf8_to_utf16(uri, -1, NULL, NULL, NULL);
- if (wuri) {
- if ((INT_PTR)ShellExecuteW(NULL, L"open", wuri, NULL, NULL, SW_SHOWNORMAL) > 32)
- ret = TRUE;
- free(wuri);
- }
- if (!ret)
- g_message("ShellExecute failed for: %s", uri);
- return ret;
-}
-
/* check if we are running a newer OS version */
bool subsurface_os_feature_available(os_feature_t f)
{