/*
 * WineCfg resource definitions
 *
 * Copyright 2002 Jaco Greeff
 * Copyright 2003 Dimitrie O. Paun
 * Copyright 2003 Mark Westcott
 * Copyright 2004 Mike Hearn
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */

#define IDC_STATIC                     -1
#define IDS_WINE_VERSION                1
#define IDS_TAB_GENERAL                 2
#define IDS_TAB_DLLS                    3
#define IDS_TAB_DRIVES                  4
#define IDD_MAINDLG                     101
#define IDB_WINE                        104
#define IDD_ABOUTCFG                    107
#define IDD_APPCFG                      108
#define IDD_AUDIOCFG                    109
#define IDD_GRAPHCFG                    110
#define IDD_DLLCFG                      111
#define IDD_DRIVECFG                    112
#define IDD_DRIVE_EDIT                  114
#define IDB_WINE_LOGO                   200
#define IDC_TABABOUT                    1001
#define IDC_APPLYBTN                    1002
#define IDC_WINEVER                     1011
#define IDC_WINVER                      1012
#define IDC_DOSVER                      1014
#define IDC_SYSCOLORS                   1017
#define IDC_PRIVATEMAP                  1018
#define IDC_PERFECTGRAPH                1019
#define IDC_MANAGED                     1022
#define IDC_DESKTOP_WIDTH               1023
#define IDC_DESKTOP_HEIGHT              1024
#define IDC_DESKTOP_SIZE                1025
#define IDC_DESKTOP_BY                  1026
#define IDC_XDGA                        1027
#define IDC_XSHM                        1028

/* dll editing  */
#define IDC_RAD_BUILTIN                 1029
#define IDC_RAD_NATIVE                  1030
#define IDC_RAD_BUILTIN_NATIVE          1031
#define IDC_RAD_NATIVE_BUILTIN          1032
#define IDC_RAD_DISABLE                 1033
#define IDC_DLLS_LIST                   1034
#define IDC_DLLS_ADDDLL                 8001
#define IDC_DLLS_REMOVEDLL              8003
#define IDC_DLLCOMBO                    8004

/* drive editing */
#define IDC_LIST_DRIVES                 1042
#define IDC_BUTTON_ADD                  1043
#define IDC_BUTTON_REMOVE               1044
#define IDC_BUTTON_EDIT                 1045
#define IDC_BUTTON7                     1046
#define IDC_BUTTON_AUTODETECT           1046
#define IDC_DRIVE_ADD                   1047
#define IDC_DRIVE_REMOVE                1048
#define IDC_DRIVE_EDIT                  1049
#define IDC_DRIVE_EDIT_NAME             1050
#define IDC_DRIVE_EDIT_LABEL            1051
#define IDC_DRIVE_EDIT_TYPE             1052
#define IDC_DRIVE_EDIT_FS               1053
#define IDC_DRIVE_EDIT_PATH             1054
#define IDC_DRIVE_EDIT_DEVICE           1055
#define ID_DRIVE_OK                     1056
#define ID_DRIVE_CANCEL                 1057
#define ID_BUTTON_CANCEL                1058
#define ID_BUTTON_OK                    1059
#define IDC_EDIT_LABEL                  1060
#define IDC_EDIT_PATH                   1061
#define IDC_EDIT_SERIAL                 1062
#define IDC_COMBO_LETTER                1063
#define IDC_COMBO_TYPE                  1065
#define IDC_EDIT_DEVICE                 1066
#define IDC_BUTTON_BROWSE_PATH          1067
#define IDC_RADIO_AUTODETECT            1068
#define IDC_RADIO_ASSIGN                1069
#define IDC_BUTTON_BROWSE_DEVICE        1070
#define IDC_STATIC_SERIAL               1072
#define IDC_STATIC_LABEL                1073
#define IDC_ENABLE_DESKTOP              1074
#define IDS_DRIVE_NO_C                  1075
#define IDC_BUTTON_SHOW_HIDE_ADVANCED   1076
#define IDC_STATIC_TYPE                 1077
#define IDC_LABELSERIAL_STATIC          1078

#define IDC_DRIVE_LABEL                 1078

/* graphics */
#define IDC_ENABLE_MANAGED              1100
#define IDC_SCREEN_DEPTH                1101
#define IDC_DX_MOUSE_GRAB               1102
#define IDC_USE_TAKE_FOCUS              1103
#define IDC_DOUBLE_BUFFER               1104

/* applications tab */
#define IDC_APP_LISTVIEW                1200
#define IDC_APP_ADDAPP                  1201
#define IDC_APP_REMOVEAPP               1202

/* audio tab */
#define IDC_AUDIO_AUTODETECT            1300
#define IDC_AUDIO_DRIVER                1301
