mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Delete code and files that are no longer used
Most of this is Gtk related, some of it is helpers that we don't need anymore. I love the diffstat. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c3f07b9f81
commit
34db6dc2be
17 changed files with 4 additions and 7245 deletions
233
windows.c
233
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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue