/*
 * WineCfg resources
 * English Language Support
 *
 * Copyright 2002 Jaco Greeff
 * Copyright 2003 Dimitrie O. Paun
 * Copyright 2003 Marcelo Duarte
 *
 * 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
 *
 */

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

IDD_GENERALCFG DIALOGEX 0, 0, 260, 250
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
    COMBOBOX        IDC_WINVER,83,153,158,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    COMBOBOX        IDC_DOSVER,83,172,158,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    COMBOBOX        IDC_WINELOOK,83,190,158,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Wine Version:",IDC_STATIC,119,17,45,8
    LTEXT           "CVS",IDC_WINEVER,169,17,56,8
    LTEXT           "Windows Version:",IDC_STATIC,17,155,58,8
    LTEXT           "Windows Look:",IDC_STATIC,17,193,58,8
    LTEXT           "DOS Version:",IDC_STATIC,17,173,57,8
    CONTROL         IDB_WINE,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | 
                    SS_REALSIZEIMAGE | WS_BORDER,15,17,157,111, WS_EX_TRANSPARENT
    LTEXT           "http://www.winehq.com/",IDC_STATIC,119,31,106,8
    GROUPBOX        "Default Behaviour",IDC_STATIC,8,115,244,97
    LTEXT           "Wine provides the ability for Windows applications to mimic various Windows versions and styles",
                    IDC_STATIC,15,128,227,20
    GROUPBOX        "Information",IDC_STATIC,8,4,244,106
    CTEXT           "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.",
                    IDC_STATIC,119,44,124,59
END

IDD_APPCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    CONTROL         "List2",IDC_LIST_APPS,"SysListView32",LVS_LIST | 
                    LVS_NOLABELWRAP | WS_BORDER | WS_TABSTOP,16,39,226,108
    GROUPBOX        "Application Specific Setting",IDC_STATIC,8,4,244,151
    LTEXT           "These settings allow you to overwrite Wine default settings (as specified in other configuration tabs) on a per-application basis.",
                    IDC_STATIC,15,17,228,20
END

IDD_X11DRVCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    EDITTEXT        IDC_SYSCOLORS,100,41,40,12,ES_AUTOHSCROLL | ES_NUMBER
    CONTROL         "Use a private color map",IDC_PRIVATEMAP,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,15,62,91,10
    CONTROL         "Favor correctness over speed",IDC_PERFECTGRAPH,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,15,76,117,10
    CONTROL         "Use XFree DGA extension",IDC_XDGA,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,141,62,97,10
    CONTROL         "Use XFree Shm extension",IDC_XSHM,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,141,76,96,10
    CONTROL         "Enable Wine desktop",IDC_MANAGED,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,17,143,84,10
    EDITTEXT        IDC_DESKTOP_WIDTH,64,159,40,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    EDITTEXT        IDC_DESKTOP_HEIGHT,117,159,40,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    GROUPBOX        "Render Settings",IDC_STATIC,8,4,244,90
    LTEXT           "The driver color and render settings are used to optimise the way in which colors and applications are displayed.",
                    IDC_STATIC,15,17,228,22
    LTEXT           "Allocated system colors:",IDC_STATIC,15,43,76,8
    GROUPBOX        "Wine Desktop",IDC_STATIC,8,99,244,83
    LTEXT           "Wine can be setup to emulate a windows desktop, or can be run in ""Managed"" mode (default) where the default X11 windows manager/environment is resposible for placing the windows.",
                    IDC_STATIC,15,112,228,28
    LTEXT           "Desktop size:",IDC_DESKTOP_SIZE,17,161,44,8,WS_DISABLED
    LTEXT           "X",IDC_DESKTOP_BY,108,161,8,8,WS_DISABLED
END

IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    GROUPBOX        "Static",IDC_STATIC,8,4,244,157
    CONTROL         "Builtin (Wine)",IDC_RAD_BUILTIN,"Button", BS_AUTORADIOBUTTON | WS_GROUP,59,144,57,10
    CONTROL         "Native (Windows)",IDC_RAD_NATIVE,"Button", BS_AUTORADIOBUTTON,121,144,72,10
    LTEXT           "Libraries can be specified individually to be either builtin or native. A DLL entry specified as ""*"" pertains to all DLLs not specified explicitly.",
                    IDC_STATIC,15,17,228,27
    CONTROL         "List3",IDC_LIST_DLLS,"SysListView32",LVS_LIST | 
                    LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | 
                    WS_TABSTOP,15,47,227,90
    LTEXT           "Load order:",IDC_STATIC,16,144,37,8
END

IDD_SYSTEMCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
    GROUPBOX        "Drives",IDC_STATIC,8,4,244,120
    LISTBOX         IDC_LIST_DRIVES,15,23,179,90,WS_VSCROLL
    PUSHBUTTON      "&Add",IDC_DRIVE_ADD,197,22,50,22
    PUSHBUTTON      "&Remove",IDC_DRIVE_REMOVE,197,51,50,22
    PUSHBUTTON      "&Edit",IDC_DRIVE_EDIT,197,80,50,22
END

IDD_DRIVE_EDIT DIALOG DISCARDABLE  0, 0, 207, 110
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Drive Configuration"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",ID_DRIVE_OK,150,7,50,14
    PUSHBUTTON      "Cancel",ID_DRIVE_CANCEL,150,24,50,14
    EDITTEXT        IDC_DRIVE_EDIT_NAME,42,8,78,13,ES_AUTOHSCROLL
    LTEXT           "Drive:",-1,11,10,29,12
    EDITTEXT        IDC_DRIVE_EDIT_LABEL,42,23,78,13,ES_AUTOHSCROLL
    LTEXT           "Label:",-1,11,25,29,12
    EDITTEXT        IDC_DRIVE_EDIT_TYPE,42,38,78,13,ES_AUTOHSCROLL
    LTEXT           "Type:",-1,11,40,29,12
    EDITTEXT        IDC_DRIVE_EDIT_PATH,42,53,78,13,ES_AUTOHSCROLL
    LTEXT           "Path:",-1,11,55,29,12
    EDITTEXT        IDC_DRIVE_EDIT_FS,42,68,78,13,ES_AUTOHSCROLL
    LTEXT           "FS:",-1,11,70,29,12
    EDITTEXT        IDC_DRIVE_EDIT_DEVICE,42,83,78,13,ES_AUTOHSCROLL
    LTEXT           "Device:",-1,11,85,29,12
END

IDD_DRIVECFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    GROUPBOX        "Windows Drive",IDC_STATIC,7,7,246,99
    CONTROL         "Create a virtual Windows drive",IDC_RADIO_VIRTUAL,
                    "Button",BS_AUTORADIOBUTTON,14,18,112,10
    EDITTEXT        IDC_EDIT_VIRTUAL,25,30,169,14,ES_AUTOHSCROLL
    PUSHBUTTON      "Browse...",IDC_BUTTON_VIRTUAL,202,30,44,14
    CONTROL         "Use a real Windows drive",IDC_RADIO_REAL,"Button",
                    BS_AUTORADIOBUTTON,14,48,97,10
    EDITTEXT        IDC_EDIT_REAL,25,60,169,14,ES_AUTOHSCROLL
    PUSHBUTTON      "Browse...",IDC_BUTTON_REAL,202,60,44,14
    PUSHBUTTON      "Important Folders...",IDC_BUTTON_FOLDERS,173,85,73,14
    GROUPBOX        "Other Drives",IDC_STATIC,7,107,246,112
    LISTBOX         IDC_LIST_DRIVES,14,118,232,76,LBS_SORT | LBS_NOINTEGRALHEIGHT | 
                    LBS_MULTICOLUMN | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "Add...",IDC_BUTTON_ADD,14,199,37,14
    PUSHBUTTON      "Remove",IDC_BUTTON_REMOVE,55,199,37,14
    PUSHBUTTON      "Edit...",IDC_BUTTON_EDIT,97,199,37,14
    PUSHBUTTON      "Autodetect...",IDC_BUTTON_AUTODETECT,197,199,49,14
END

IDD_DRIVE_EDIT2 DIALOG DISCARDABLE  0, 0, 272, 153
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Drive Configuration"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",ID_BUTTON_OK,217,5,50,14
    PUSHBUTTON      "Cancel",ID_BUTTON_CANCEL,217,22,50,14
    LTEXT           "Letter:",IDC_STATIC,5,23,26,9
    EDITTEXT        IDC_EDIT_LABEL,63,114,78,13,ES_AUTOHSCROLL
    LTEXT           "Label:",IDC_STATIC_LABEL,33,117,29,12
    LTEXT           "Type:",IDC_STATIC,5,54,21,10
    EDITTEXT        IDC_EDIT_PATH,31,5,117,13,ES_AUTOHSCROLL
    LTEXT           "Path:",IDC_STATIC,5,9,20,9
    LTEXT           "Names:",IDC_STATIC,5,39,25,9
    EDITTEXT        IDC_EDIT_SERIAL,63,129,78,13,ES_AUTOHSCROLL
    LTEXT           "Serial:",IDC_STATIC_SERIAL,33,133,29,12
    COMBOBOX        IDC_COMBO_LETTER,31,20,78,60,CBS_DROPDOWNLIST  | 
                    WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "Browse...",IDC_BUTTON_BROWSE_PATH,154,5,40,13
    COMBOBOX        IDC_COMBO_NAMES,31,36,78,60,CBS_DROPDOWNLIST  | 
                    WS_VSCROLL | WS_TABSTOP
    COMBOBOX        IDC_COMBO_TYPE,31,52,78,60,CBS_DROPDOWNLIST | 
                    WS_VSCROLL | WS_TABSTOP
    CONTROL         "Autodetect from Device:",IDC_RADIO_AUTODETECT,"Button",
                    BS_AUTORADIOBUTTON,21,79,93,10
    EDITTEXT        IDC_EDIT_DEVICE,33,89,108,13,ES_AUTOHSCROLL
    PUSHBUTTON      "Browse...",IDC_BUTTON_BROWSE_DEVICE,148,89,40,13
    CONTROL         "Manually Assign:",IDC_RADIO_ASSIGN,"Button",
                    BS_AUTORADIOBUTTON,21,104,69,10
    GROUPBOX        "Label and Serial Number",IDC_BOX_CDROM,15,68,180,79
END

STRINGTABLE DISCARDABLE 
BEGIN
    IDS_WINE_VERSION        "CVS"
    IDS_TAB_GENERAL         "General"
    IDS_TAB_DLLS            "Libraries"
    IDS_TAB_DRIVES          "Drives"
END
