~ubuntu-branches/ubuntu/vivid/basilisk2/vivid

« back to all changes in this revision

Viewing changes to src/Windows/user_strings_windows.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-03-06 19:33:01 UTC
  • mfrom: (2.1.4 gutsy)
  • Revision ID: james.westby@ubuntu.com-20080306193301-cc2ofn705nfsq3y0
Tags: 0.9.20070407-4
* Update copyright-check cdbs snippet to parse licensecheck using perl:
  + No longer randomly drops newlines
  + More compact hint file (and ordered more like wiki-proposed new copyright
    syntax).
  + No longer ignore files without copyright.
* Update copyright_hints.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  user_strings_windows.cpp - Windows-specific localizable strings
 
3
 *
 
4
 *  Basilisk II (C) 1997-2005 Christian Bauer
 
5
 *
 
6
 *  This program is free software; you can redistribute it and/or modify
 
7
 *  it under the terms of the GNU General Public License as published by
 
8
 *  the Free Software Foundation; either version 2 of the License, or
 
9
 *  (at your option) any later version.
 
10
 *
 
11
 *  This program is distributed in the hope that it will be useful,
 
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
 *  GNU General Public License for more details.
 
15
 *
 
16
 *  You should have received a copy of the GNU General Public License
 
17
 *  along with this program; if not, write to the Free Software
 
18
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
19
 */
 
20
 
 
21
#include "sysdeps.h"
 
22
#include "user_strings.h"
 
23
 
 
24
#define WIN32_LEAN_AND_MEAN
 
25
#include <windows.h>
 
26
 
 
27
 
 
28
// Platform-specific string definitions
 
29
user_string_def platform_strings[] = {
 
30
        // Common strings that have a platform-specific variant
 
31
        {STR_VOLUME_IS_MOUNTED_WARN, "The volume '%s' is mounted under Unix. Basilisk II will try to unmount it."},
 
32
        {STR_EXTFS_VOLUME_NAME, "My Computer"},
 
33
 
 
34
        // Purely platform-specific strings
 
35
        {STR_NO_XVISUAL_ERR, "Cannot obtain appropriate X visual."},
 
36
        {STR_VOSF_INIT_ERR, "Cannot initialize Video on SEGV signals."},
 
37
        {STR_SIG_INSTALL_ERR, "Cannot install %s handler (%s)."},
 
38
        {STR_TICK_THREAD_ERR, "Cannot create 60Hz thread (%s)."},
 
39
        {STR_SLIRP_NO_DNS_FOUND_WARN, "Cannot get DNS address. Ethernet will not be available."},
 
40
        {STR_NO_AUDIO_WARN, "No audio device found, audio output will be disabled."},
 
41
        {STR_KEYCODE_FILE_WARN, "Cannot open keycode translation file %s (%s)."},
 
42
        {STR_KEYCODE_VENDOR_WARN, "Cannot find vendor '%s' in keycode translation file %s."},
 
43
        {STR_WINDOW_TITLE_GRABBED, "Basilisk II (mouse grabbed, press Ctrl-F5 to release)"},
 
44
        {STR_NO_WIN32_NT_4, "Basilisk II does not run on Windows NT versions less than 4.0"},
 
45
 
 
46
        {STR_PREFS_MENU_FILE_GTK, "/_File"},
 
47
        {STR_PREFS_ITEM_START_GTK, "/File/_Start Basilisk II"},
 
48
        {STR_PREFS_ITEM_ZAP_PRAM_GTK, "/File/_Zap PRAM File"},
 
49
        {STR_PREFS_ITEM_SEPL_GTK, "/File/sepl"},
 
50
        {STR_PREFS_ITEM_QUIT_GTK, "/File/_Quit Basilisk II"},
 
51
        {STR_HELP_MENU_GTK, "/_Help"},
 
52
        {STR_HELP_ITEM_ABOUT_GTK, "/Help/_About Basilisk II"},
 
53
 
 
54
        {STR_ABOUT_BUTTON, "About"},
 
55
        {STR_FILE_CTRL, "File"},
 
56
        {STR_BROWSE_TITLE, "Browse file"},
 
57
        {STR_BROWSE_CTRL, "Browse..."},
 
58
        {STR_SERIAL_PANE_TITLE, "Serial"},
 
59
        {STR_NETWORK_PANE_TITLE, "Network"},
 
60
        {STR_INPUT_PANE_TITLE, "Keyboard/Mouse"},
 
61
        {STR_KEYCODES_CTRL, "Use Raw Keycodes"},
 
62
        {STR_KEYCODE_FILE_CTRL, "Keycode Translation File"},
 
63
        {STR_MOUSEWHEELMODE_CTRL, "Mouse Wheel Function"},
 
64
        {STR_MOUSEWHEELMODE_PAGE_LAB, "Page Up/Down"},
 
65
        {STR_MOUSEWHEELMODE_CURSOR_LAB, "Cursor Up/Down"},
 
66
        {STR_MOUSEWHEELLINES_CTRL, "Lines To Scroll"},
 
67
        {STR_POLLMEDIA_CTRL, "Try to automatically detect new removable media (enable polling)"},
 
68
        {STR_EXTFS_ENABLE_CTRL, "Enable \"My Computer\" icon on your Mac desktop (external file system)"},
 
69
        {STR_EXTFS_DRIVES_CTRL, "Mount drives"},
 
70
        {STR_ETHER_FTP_PORT_LIST_CTRL, "FTP ports"},
 
71
        {STR_ETHER_TCP_PORT_LIST_CTRL, "Server ports"},
 
72
 
 
73
        {STR_IGNORESEGV_CTRL, "Ignore Illegal Memory Accesses"},
 
74
 
 
75
        {-1, NULL}      // End marker
 
76
};
 
77
 
 
78
 
 
79
/*
 
80
 *  Search for main volume name
 
81
 */
 
82
 
 
83
static const char *get_volume_name(void)
 
84
{
 
85
        HKEY hHelpKey;
 
86
        DWORD key_type, cbData;
 
87
 
 
88
        static char volume[256];
 
89
        memset(volume, 0, sizeof(volume));
 
90
 
 
91
        // Try Windows 2000 key first
 
92
        if (ERROR_SUCCESS == RegOpenKey(
 
93
                        HKEY_CURRENT_USER,
 
94
                        "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}",
 
95
                        &hHelpKey))
 
96
        {
 
97
                cbData = sizeof(volume);
 
98
                RegQueryValueEx( hHelpKey, 0, NULL, &key_type, (unsigned char *)volume, &cbData );
 
99
                RegCloseKey(hHelpKey);
 
100
        }
 
101
 
 
102
        if (volume[0] == 0 &&
 
103
                ERROR_SUCCESS == RegOpenKey(
 
104
                        HKEY_CURRENT_USER,
 
105
                        "Software\\Classes\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}",
 
106
                        &hHelpKey))
 
107
        {
 
108
                cbData = sizeof(volume);
 
109
                RegQueryValueEx( hHelpKey, 0, NULL, &key_type, (unsigned char *)volume, &cbData );
 
110
                RegCloseKey(hHelpKey);
 
111
        }
 
112
 
 
113
        if (volume[0] == 0 &&
 
114
                ERROR_SUCCESS == RegOpenKey(
 
115
                        HKEY_CLASSES_ROOT,
 
116
                        "CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}",
 
117
                        &hHelpKey))
 
118
        {
 
119
                cbData = sizeof(volume);
 
120
                RegQueryValueEx( hHelpKey, 0, NULL, &key_type, (unsigned char *)volume, &cbData );
 
121
                RegCloseKey(hHelpKey);
 
122
        }
 
123
 
 
124
        // Fix the error that some "tweak" apps do.
 
125
        if (stricmp(volume, "%USERNAME% on %COMPUTER%") == 0)
 
126
                volume[0] = '\0';
 
127
 
 
128
        // No volume name found, default to "My Computer"
 
129
        if (volume[0] == 0)
 
130
                strcpy(volume, "My Computer");
 
131
 
 
132
        return volume;
 
133
}
 
134
 
 
135
 
 
136
/*
 
137
 *  Fetch pointer to string, given the string number
 
138
 */
 
139
 
 
140
const char *GetString(int num)
 
141
{
 
142
        // First, search for platform-specific variable string
 
143
        switch (num) {
 
144
        case STR_EXTFS_VOLUME_NAME:
 
145
                return get_volume_name();
 
146
        }
 
147
 
 
148
        // Next, search for platform-specific constant string
 
149
        int i = 0;
 
150
        while (platform_strings[i].num >= 0) {
 
151
                if (platform_strings[i].num == num)
 
152
                        return platform_strings[i].str;
 
153
                i++;
 
154
        }
 
155
 
 
156
        // Not found, search for common string
 
157
        i = 0;
 
158
        while (common_strings[i].num >= 0) {
 
159
                if (common_strings[i].num == num)
 
160
                        return common_strings[i].str;
 
161
                i++;
 
162
        }
 
163
        return NULL;
 
164
}