/*
 * WineCfg resource definitions
 *
 * Copyright 2002 Jaco Greeff
 * Copyright 2003 Dimitrie O. Paun
 * Copyright 2003 Mark Westcott
 *
 * 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_GENERALCFG                  107
#define IDD_APPCFG                      108
#define IDD_X11DRVCFG                   109
#define IDD_DLLCFG                      110
#define IDD_DRIVECFG                    111
#define IDD_SYSTEMCFG                   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_WINELOOK                    1013
#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
#define IDC_RAD_BUILTIN                 1029
#define IDC_RAD_NATIVE                  1030
#define IDC_LIST_DLLS                   1031
#define IDC_LIST_BUILTIN_DLLS           1031
#define IDC_LIST_NATIVE_DLLS            1032
#define IDC_RADIO_DEFAULT_BUILTIN       1033
#define IDC_RADIO_DEFAULT_NATIVE        1034
#define IDC_RADIO_VIRTUAL               1035
#define IDC_EDIT_VIRTUAL                1036
#define IDC_BUTTON_VIRTUAL              1037
#define IDC_RADIO_REAL                  1038
#define IDC_EDIT_REAL                   1039
#define IDC_BUTTON_REAL                 1040
#define IDC_BUTTON_FOLDERS              1041

/* 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_NAMES                 1064
#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_BOX_LABELSERIAL             1071
#define IDC_STATIC_SERIAL               1072
#define IDC_STATIC_LABEL                1073
#define IDC_ENABLE_DESKTOP              1074
#define IDS_DRIVE_NO_C                  1075

/* x11drv */
#define IDC_ENABLE_MANAGED              1076
#define IDC_SCREEN_DEPTH                1077
#define IDC_DX_MOUSE_GRAB               1078
#define IDC_USE_TAKE_FOCUS              1079
#define IDC_DOUBLE_BUFFER               1080

/* applications tab */
#define IDC_LIST_APPS                   1021
#define IDC_EDITING_GLOBAL              1081
#define IDC_EDITING_APP                 1082
#define IDC_ADD_APPDEFAULT              1083
#define IDC_REMOVE_APPDEFAULT           1084
