/*
 * WineCfg resources
 * English Language Support
 *
 * Copyright 2002 Jaco Greeff
 * Copyright 2003 Dimitrie O. Paun
 *
 * 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_ABOUTCFG DIALOGEX 0, 0, 260, 250
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "Wine Version:",IDC_STATIC,119,17,55,8
    LTEXT           "CVS",IDC_WINEVER,179,17,56,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.org/",IDC_STATIC,119,31,106,8
    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
    GROUPBOX        "Application Settings",IDC_STATIC, 8,4,244,240
    LTEXT           "Wine provides the ability for Windows applications to mimic various Windows versions and styles",
                    IDC_STATIC,15,20,227,20
    CONTROL         "Applications",IDC_APP_TREEVIEW,"SysTreeView32",WS_BORDER | WS_TABSTOP | TVS_LINESATROOT | TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_HASBUTTONS, 15,40,142,145
    PUSHBUTTON	    "Add application...",IDC_APP_ADDAPP, 163,40,82,60
    PUSHBUTTON	    "Remove application",IDC_APP_REMOVEAPP, 163,125,82,60
    LTEXT           "Windows Version:",IDC_STATIC,17,192,58,8
    LTEXT           "DOS Version:",IDC_STATIC,17,211,57,8
    COMBOBOX        IDC_WINVER,83,190,158,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    COMBOBOX        IDC_DOSVER,83,208,158,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

IDD_GRAPHCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT	    "Screen color depth: ",IDC_STATIC,8,10,70,30
    COMBOBOX	    IDC_SCREEN_DEPTH,80,8,170,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP

    CONTROL	    "Can DirectX programs prevent the mouse leaving their window?",IDC_DX_MOUSE_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,35,230,8
    CONTROL	    "Enable desktop double buffering",IDC_DOUBLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,45,230,8
    
    GROUPBOX        " Window settings ",IDC_STATIC,8,25,244,120

    /* FIXME: the wording of this explanation could be a lot better */
    LTEXT           "You can choose to emulate a windows desktop, where all the windows are confined to one 'virtual screen', or you can have the windows placed on your standard desktop.",
                    IDC_STATIC,15,73,228,28
    LTEXT           "Desktop size:",IDC_DESKTOP_SIZE,15,115,44,8,WS_DISABLED
    LTEXT           "X",IDC_DESKTOP_BY,108,115,8,8,WS_DISABLED
    CONTROL         "Emulate a virtual desktop",IDC_ENABLE_DESKTOP,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,15,100,230,10
		    
    EDITTEXT        IDC_DESKTOP_WIDTH,64,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    EDITTEXT        IDC_DESKTOP_HEIGHT,117,115,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
END

IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    GROUPBOX        "DLL Overrides",IDC_STATIC,8,4,244,240
    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,32
    CONTROL         "DLL Overrides", IDC_TREE_DLLS, "SysTreeView32", WS_BORDER | WS_TABSTOP | TVS_LINESATROOT | TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_HASBUTTONS, 15,50,142,187
    LTEXT           "Load order:",IDC_STATIC,163,50,37,8
    CONTROL         "Builtin (Wine)",IDC_RAD_BUILTIN,"Button", BS_AUTORADIOBUTTON | WS_GROUP,163,65,75,10
    CONTROL         "Native (Windows)",IDC_RAD_NATIVE,"Button", BS_AUTORADIOBUTTON,163,80,75,10
    CONTROL         "Builtin, Native",IDC_RAD_BUILTIN_NATIVE,"Button", BS_AUTORADIOBUTTON,163,95,75,10
    CONTROL         "Native, Builtin",IDC_RAD_NATIVE_BUILTIN,"Button", BS_AUTORADIOBUTTON,163,110,75,10
    CONTROL         "Disable",IDC_RAD_DISABLE,"Button", BS_AUTORADIOBUTTON,163,125,75,10
    PUSHBUTTON	    "Add application...",IDC_DLLS_ADDAPP,163,144,82,14
    PUSHBUTTON	    "Remove application",IDC_DLLS_REMOVEAPP, 163,164,82,14
    PUSHBUTTON	    "Add DLL override for:",IDC_DLLS_ADDDLL, 163,184,82,14
    COMBOBOX        IDC_DLLLIST,163,204,82,14,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | CBS_SORT | CBS_LOWERCASE
    PUSHBUTTON	    "Remove DLL override",IDC_DLLS_REMOVEDLL,163,224,82,14
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_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,150,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,150,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 | 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
    LTEXT	    "WARNING: You don't seem to have a C drive defined. Click 'Add Drive' to add one.", IDS_DRIVE_NO_C, 7,223,250,110
END

IDD_DRIVE_EDIT DIALOG DISCARDABLE  0, 0, 203, 169
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Drive Configuration"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "&Ok",ID_BUTTON_OK,145,150,50,16
    LTEXT           "Letter:",IDC_STATIC,5,23,26,9
    EDITTEXT        IDC_EDIT_LABEL,63,108,78,13,ES_AUTOHSCROLL
    LTEXT           "Label:",IDC_STATIC_LABEL,33,111,29,12
    LTEXT           "Serial:",IDC_STATIC_SERIAL,33,127,29,12
    EDITTEXT        IDC_EDIT_SERIAL,63,124,78,13,ES_AUTOHSCROLL
    LTEXT           "Type:",IDC_STATIC_TYPE,5,39,21,10
    EDITTEXT        IDC_EDIT_PATH,31,5,117,13,ES_AUTOHSCROLL
    LTEXT           "Path:",IDC_STATIC,5,8,20,9
    COMBOBOX        IDC_COMBO_LETTER,31,20,77,60,CBS_DROPDOWNLIST  | 
                    WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "Browse...",IDC_BUTTON_BROWSE_PATH,154,5,40,13
    COMBOBOX        IDC_COMBO_TYPE,31,36,77,60,CBS_DROPDOWNLIST | 
                    WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "Show Advanced",IDC_BUTTON_SHOW_HIDE_ADVANCED,134,34,60,16
    CONTROL         "Autodetect from Device:",IDC_RADIO_AUTODETECT,"Button",
                    BS_AUTORADIOBUTTON,21,69,93,10
    EDITTEXT        IDC_EDIT_DEVICE,33,79,108,13,ES_AUTOHSCROLL
    PUSHBUTTON      "Browse...",IDC_BUTTON_BROWSE_DEVICE,148,79,40,13
    CONTROL         "Manually Assign:",IDC_RADIO_ASSIGN,"Button",
                    BS_AUTORADIOBUTTON,21,98,69,10
    GROUPBOX        "Label and serial number",IDC_BOX_LABELSERIAL,6,58,189,85
END

IDD_AUDIOCFG DIALOG DISCARDABLE  0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT	"Audio driver: ",IDC_STATIC,10,20,60,8
    COMBOBOX	IDC_AUDIO_DRIVER,70,18,85,85,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON	"Autodetect",IDC_AUDIO_AUTODETECT,170,20,49,14
END

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