/*
 * 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
 */
    CONTROL         "Configuring global settings",IDC_EDITING_GLOBAL,
                    "Button",BS_AUTORADIOBUTTON,8,8,244,10 
    CONTROL         "Configuring application specific setttings",IDC_EDITING_APP,
                    "Button",BS_AUTORADIOBUTTON,8,18,244,10

 
    LTEXT           "Here you can override the default settings on a per-application basis:",
                    IDC_STATIC,8,35,244,20
		    
    LISTBOX         IDC_LIST_APPS,8,48,244,108,WS_TABSTOP | WS_VSCROLL		    
		    
    PUSHBUTTON	    "Add new application...",IDC_ADD_APPDEFAULT,170,155,82,14
    PUSHBUTTON	    "Remove",IDC_REMOVE_APPDEFAULT,130,155,37,14
		    
END

IDD_X11DRVCFG 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,60,30
    COMBOBOX	    IDC_SCREEN_DEPTH,70,8,180,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
    CONTROL	    "UseTakeFocus (FIXME)",IDC_USE_TAKE_FOCUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,55,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,84,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        "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_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 | 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   "&Close",ID_BUTTON_OK,145,150,50,13
    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,130,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_LABELSERIAL,6,68,189,79

END

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