/*
 * Resources for Common Dialogs
 *
 * Copyright 1999 Bertho Stultiens
 * Copyright 1999 Klaas van Gend
 *
 * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "cdlg.h"
#include "filedlgbrowser.h"

#pragma makedep po

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

STRINGTABLE
{
    IDS_FILENOTFOUND        "File not found"
    IDS_VERIFYFILE          "Please verify that the correct file name was given"
    IDS_CREATEFILE          "File does not exist.\nDo you want to create file?"
    IDS_OVERWRITEFILE       "File already exists.\nDo you want to replace it?"
    IDS_INVALID_FILENAME_TITLE "Invalid character(s) in path"
    IDS_INVALID_FILENAME    "A filename cannot contain any of the following characters:\n                          / : < > |"
    IDS_PATHNOTEXISTING     "Path does not exist"
    IDS_FILENOTEXISTING     "File does not exist"
    IDS_INVALID_FOLDERNAME  "The selection contains a non-folder object"
}

STRINGTABLE
{
    IDS_UPFOLDER         "Up One Level"
    IDS_NEWFOLDER        "Create New Folder"
    IDS_LISTVIEW         "List"
    IDS_REPORTVIEW       "Details"
    IDS_TODESKTOP        "Browse to Desktop"
}

STRINGTABLE
{
    PD32_PRINT_TITLE       "Print"

    PD32_VALUE_UREADABLE                  "Unreadable Entry"
    PD32_INVALID_PAGE_RANGE "This value does not lie within the page range.\n\
Please enter a value between %1!d! and %2!d!."
    PD32_FROM_NOT_ABOVE_TO                "The 'from' entry cannot exceed the \
'to' entry."
    PD32_MARGINS_OVERLAP                  "Margins overlap or fall outside \
Paper boundaries.\nPlease reenter margins."
    PD32_NR_OF_COPIES_EMPTY               "The 'Number of copies' field \
cannot be empty."
    PD32_TOO_LARGE_COPIES                 "This large number of copies is not \
supported by your printer.\nPlease enter a value between 1 and %d."
    PD32_PRINT_ERROR                      "A printer error occurred."
    PD32_NO_DEFAULT_PRINTER               "No default printer defined."
    PD32_CANT_FIND_PRINTER                "Cannot find the printer."
    PD32_OUT_OF_MEMORY                    "Out of memory."
    PD32_GENERIC_ERROR                    "An error occurred."
    PD32_DRIVER_UNKNOWN                   "Unknown printer driver."
    PD32_NO_DEVICES                       "Before you can perform printer-related tasks \
such as page setup or printing a document, you need to install a printer. \
Please install one and retry."

    PD32_DEFAULT_PRINTER                  "Default Printer; "
    PD32_NR_OF_DOCUMENTS_IN_QUEUE         "There are %d documents in the queue"
    PD32_MARGINS_IN_INCHES                "Margins [inches]"
    PD32_MARGINS_IN_MILLIMETERS           "Margins [mm]"
    PD32_MILLIMETERS                      "#msgctxt#unit: millimeters#mm"

    PD32_PRINTER_STATUS_READY             "Ready"
    PD32_PRINTER_STATUS_PAUSED            "Paused; "
    PD32_PRINTER_STATUS_ERROR             "Error; "
    PD32_PRINTER_STATUS_PENDING_DELETION  "Pending deletion; "
    PD32_PRINTER_STATUS_PAPER_JAM         "Paper jam; "
    PD32_PRINTER_STATUS_PAPER_OUT         "Out of paper; "
    PD32_PRINTER_STATUS_MANUAL_FEED       "Feed paper manual; "
    PD32_PRINTER_STATUS_PAPER_PROBLEM     "Paper problem; "
    PD32_PRINTER_STATUS_OFFLINE           "Printer offline; "
    PD32_PRINTER_STATUS_IO_ACTIVE         "I/O Active; "
    PD32_PRINTER_STATUS_BUSY              "Busy; "
    PD32_PRINTER_STATUS_PRINTING          "Printing; "
    PD32_PRINTER_STATUS_OUTPUT_BIN_FULL   "Output tray is full; "
    PD32_PRINTER_STATUS_NOT_AVAILABLE     "Not available; "
    PD32_PRINTER_STATUS_WAITING           "Waiting; "
    PD32_PRINTER_STATUS_PROCESSING        "Processing; "
    PD32_PRINTER_STATUS_INITIALIZING      "Initializing; "
    PD32_PRINTER_STATUS_WARMING_UP        "Warming up; "
    PD32_PRINTER_STATUS_TONER_LOW         "Toner low; "
    PD32_PRINTER_STATUS_NO_TONER          "No toner; "
    PD32_PRINTER_STATUS_PAGE_PUNT         "Page punt; "
    PD32_PRINTER_STATUS_USER_INTERVENTION "Interrupted by user; "
    PD32_PRINTER_STATUS_OUT_OF_MEMORY     "Out of memory; "
    PD32_PRINTER_STATUS_DOOR_OPEN         "The printer door is open; "
    PD32_PRINTER_STATUS_SERVER_UNKNOWN    "Print server unknown; "
    PD32_PRINTER_STATUS_POWER_SAVE        "Power save mode; "
}

STRINGTABLE /* Font styles */
{
    IDS_FONT_REGULAR       "Regular"
    IDS_FONT_BOLD          "Bold"
    IDS_FONT_ITALIC        "Italic"
    IDS_FONT_BOLD_ITALIC   "Bold Italic"
}

STRINGTABLE /* Color names */
{
    IDS_COLOR_BLACK     "Black"
    IDS_COLOR_MAROON    "Maroon"
    IDS_COLOR_GREEN     "Green"
    IDS_COLOR_OLIVE     "Olive"
    IDS_COLOR_NAVY      "Navy"
    IDS_COLOR_PURPLE    "Purple"
    IDS_COLOR_TEAL      "Teal"
    IDS_COLOR_GRAY      "Gray"
    IDS_COLOR_SILVER    "Silver"
    IDS_COLOR_RED       "Red"
    IDS_COLOR_LIME      "Lime"
    IDS_COLOR_YELLOW    "Yellow"
    IDS_COLOR_BLUE      "Blue"
    IDS_COLOR_FUCHSIA   "Fuchsia"
    IDS_COLOR_AQUA      "Aqua"
    IDS_COLOR_WHITE     "White"
}

STRINGTABLE
{
    IDS_FONT_SIZE   "Select a font size between %1!d! and %2!d! points."
    IDS_SAVE_BUTTON "&Save"
    IDS_SAVE_IN     "Save &in:"
    IDS_SAVE        "Save"
    IDS_SAVE_AS     "Save As"
    IDS_OPEN_FILE   "Open File"
    IDS_SELECT_FOLDER "Select Folder"
    IDS_FONT_SIZE_INPUT "Font size has to be a number."
}

/*
 * WARNING: DO NOT CHANGE THE SIZE OF THE STANDARD DIALOG TEMPLATES.
 */

OPEN_FILE DIALOG 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Open"
FONT 8, "MS Shell Dlg"
{
 LTEXT "File &Name:", stc3, 6, 6, 76, 9
 EDITTEXT edt1, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
 LISTBOX lst1, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
 LTEXT "&Directories:", -1, 110, 6, 92, 9
 LTEXT "", stc1, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
 LISTBOX lst2, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
 LTEXT "List Files of &Type:", stc2, 6, 104, 90, 9
 COMBOBOX cmb1, 6, 114, 90, 60, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 LTEXT "Dri&ves:", stc4, 110, 104, 92, 9
 COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 DEFPUSHBUTTON "Open", IDOK, 208, 6, 60, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Cancel", IDCANCEL, 208, 24, 60, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Help", pshHelp, 208, 46, 60, 14, WS_GROUP | WS_TABSTOP
 CHECKBOX "&Read Only", chx1, 208, 68, 65, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}


SAVE_FILE DIALOG 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Save As..."
FONT 8, "MS Shell Dlg"
{
 LTEXT "File &Name:", stc3, 6, 6, 76, 9
 EDITTEXT edt1, 6, 16, 90, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
 LISTBOX lst1, 6, 32, 90, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
 LTEXT "&Directories:", -1, 110, 6, 92, 9
 LTEXT "", stc1, 110, 18, 92, 9, SS_NOPREFIX | WS_GROUP
 LISTBOX lst2, 110, 32, 92, 68, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
 LTEXT "List Files of &Type:", stc2, 6, 104, 90, 9
 COMBOBOX cmb1, 6, 114, 90, 60, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 LTEXT "Dri&ves:", stc4, 110, 104, 92, 9
 COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 DEFPUSHBUTTON "Save As", IDOK, 208, 6, 60, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Cancel", IDCANCEL, 208, 24, 60, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Help", pshHelp, 208, 46, 60, 14, WS_GROUP | WS_TABSTOP
 CHECKBOX "&Read Only", chx1, 208, 68, 65, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}


PRINT DIALOG 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Print"
FONT 8, "MS Shell Dlg"
{
 LTEXT "Printer:", stc1, 6, 6, 40, 9
 LTEXT "", stc2, 60, 6, 150, 9
 GROUPBOX "Print range", grp1, 6, 30, 160, 65, BS_GROUPBOX
 RADIOBUTTON "&All", rad1, 16, 45, 60, 12
 RADIOBUTTON "S&election", rad2, 16, 60, 60, 12
 RADIOBUTTON "&Pages", rad3, 16, 75, 60, 12
 DEFPUSHBUTTON "Print", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Cancel", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Setup", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
 LTEXT "&From:", stc3, 60, 80, 30, 9
 LTEXT "&To:", stc4, 120, 80, 30, 9
 LTEXT "Print &Quality:", stc5, 6, 100, 76, 9
 COMBOBOX cmb1, 80, 100, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 CHECKBOX "Print to Fi&le", chx1, 20, 120, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
 CHECKBOX "Condensed", chx2, 160, 120, 50, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
}


PRINT_SETUP DIALOG 36, 24, 264, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Print Setup"
FONT 8, "MS Shell Dlg"
{
 GROUPBOX "Printer", grp1, 6, 6, 180, 72, BS_GROUPBOX
 RADIOBUTTON "&Default Printer", rad1, 16, 16, 150, 12
 LTEXT "[none]", stc1, 35, 30, 120, 9
 RADIOBUTTON "Specific &Printer", rad2, 16, 44, 150, 12
 COMBOBOX cmb1, 35, 58, 145, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 DEFPUSHBUTTON "OK", IDOK, 206, 6, 56, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Cancel", IDCANCEL, 206, 24, 56, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Setup", psh1, 206, 46, 56, 14, WS_GROUP | WS_TABSTOP
 GROUPBOX "Orientation", grp2, 6, 82, 100, 50, BS_GROUPBOX
 RADIOBUTTON "Po&rtrait", rad3, 50, 95, 50, 12
 RADIOBUTTON "&Landscape", rad4, 50, 110, 50, 12
 ICON "LANDSCAP", stc10, 10, 95, 32, 32
 ICON "PORTRAIT", stc11, 10, 95, 32, 32
 GROUPBOX "Paper", grp3, 116, 82, 178, 50, BS_GROUPBOX
 LTEXT "Si&ze", stc2, 126, 95, 35, 9
 LTEXT "&Source", stc3, 126, 110, 35, 9
 COMBOBOX cmb2, 155, 95, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
 COMBOBOX cmb3, 155, 110, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
}


CHOOSE_FONT DIALOG  13, 54, 274, 147
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Font"
FONT 8, "MS Shell Dlg"
{
    LTEXT           "&Font:",stc1 ,6,3,90,9
    COMBOBOX        cmb1, 6,13,94,54,  CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
                    CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE
    LTEXT           "Font St&yle:",stc2 ,108,3,60,9
    COMBOBOX        cmb2,108,13,64,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
                    WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE
    LTEXT           "&Size:",stc3,179,3,32,9
    COMBOBOX        cmb3,179,13,32,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL |
                    WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE | CBS_SORT
    DEFPUSHBUTTON   "OK",IDOK,218,6,50,14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
    PUSHBUTTON      "Cancel",IDCANCEL,218,23,50,14,WS_GROUP | WS_TABSTOP
    PUSHBUTTON      "&Apply", psh3,218,40,50,14,WS_GROUP | WS_TABSTOP
    PUSHBUTTON      "&Help" , pshHelp,218,57,50,14,WS_GROUP | WS_TABSTOP
    GROUPBOX        "Effects",grp1,6,72,84,36,WS_GROUP
    CHECKBOX	    "Stri&keout", chx1, 10,82,78,10, BS_AUTOCHECKBOX | WS_TABSTOP
    CHECKBOX 	    "&Underline", chx2, 10,94,78,10, BS_AUTOCHECKBOX
    LTEXT           "&Color:", stc4 ,6,114,80,9
    COMBOBOX        cmb4,6,124,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
		    CBS_AUTOHSCROLL |  WS_BORDER | WS_VSCROLL | WS_TABSTOP
    GROUPBOX        "Sample",grp2,98,72,120,36,WS_GROUP
    CTEXT           "",stc5,103,81,109,24,SS_NOPREFIX | NOT WS_VISIBLE
    LTEXT           "Scr&ipt:",stc7 ,98,114,40,9
    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
}


CHOOSE_COLOR DIALOG 36, 24, 300, 185
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Color"
FONT 8, "MS Shell Dlg"
{
 LTEXT "&Basic Colors:",   stc1, 4,    4,  140, 10
 LTEXT "&Custom Colors:",  stc2, 4,   106, 140, 10
 LTEXT "Color |  Sol&id",  stc3, 150, 151,  48, 10
 LTEXT   "&Red:", IDC_COLOR_RL /*1094*/,247,126,27,10
 EDITTEXT IDC_COLOR_EDIT_R, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
 LTEXT   "&Green:", IDC_COLOR_GL /*1095*/,247,140,27,10
 EDITTEXT IDC_COLOR_EDIT_G, 275,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
 LTEXT   "&Blue:", IDC_COLOR_BL /*1096*/,247,154,27,10
 EDITTEXT IDC_COLOR_EDIT_B, 275,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
 LTEXT  "&Hue:" , IDC_COLOR_HL /*1091*/,200,126,24,10
 EDITTEXT IDC_COLOR_EDIT_H, 224,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
 LTEXT  "#msgctxt#Saturation#&Sat:", IDC_COLOR_SL /*1092*/,200,140,24,10
 EDITTEXT IDC_COLOR_EDIT_S, 224,138,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
 LTEXT  "#msgctxt#Luminance#&Lum:", IDC_COLOR_LL /*1093*/,200,154,24,10
 EDITTEXT IDC_COLOR_EDIT_L, 224,152,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
 CONTROL "" , IDC_COLOR_PREDEF, "STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,14,140,86
 CONTROL "" , IDC_COLOR_USRDEF, "STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,116,140,28
 CONTROL "" , IDC_COLOR_GRAPH, "STATIC",WS_BORDER|SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,4,118,116
 CONTROL "" , IDC_COLOR_LUMBAR, "STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 278,4,8,116
 CONTROL "" , IDC_COLOR_RESULT, "STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,124,40,26
 DEFPUSHBUTTON "OK",  IDOK,  4, 167, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Cancel", IDCANCEL, 58, 167, 50, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Help", pshHelp,100,166, 44, 14
 PUSHBUTTON "&Add to Custom Colors",    IDC_COLOR_ADD /*1024*/, 152, 167, 144, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Define Custom Colors >>", IDC_COLOR_DEFINE /*1025*/,   4, 149, 142, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Color |  Sol&id", IDC_COLOR_RES, 300,200,4,14   /* just a dummy */
}


FINDDLGORD DIALOG 36, 24, 276, 62
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Find"
FONT 8, "MS Shell Dlg"
{
 LTEXT "Fi&nd What:", -1, 4, 8, 52, 8
 EDITTEXT edt1, 57, 7, 148, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
 CHECKBOX "Match &Whole Word Only", chx1, 4, 26, 140, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
 CHECKBOX "Match &Case", chx2, 4, 42, 140, 12, BS_AUTOCHECKBOX | WS_TABSTOP
 GROUPBOX "Direction", grp1, 147, 21, 58, 38
 CONTROL "&Up", rad1, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 151, 30, 48, 12
 CONTROL "&Down", rad2, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 151, 44, 48, 12

 DEFPUSHBUTTON "&Find Next", IDOK, 212,  6, 60, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
 PUSHBUTTON "Cancel", IDCANCEL	 , 212, 24, 60, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Help", pshHelp	 , 212, 42, 60, 14, WS_GROUP | WS_TABSTOP
}


REPLACEDLGORD DIALOG 36, 24, 276, 94
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Replace"
FONT 8, "MS Shell Dlg"
{
 LTEXT "Fi&nd What:", -1, 4, 8, 52, 8
 EDITTEXT edt1, 57, 7, 148, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
 LTEXT "Re&place With:", -1, 4, 26, 52, 8
 EDITTEXT edt2, 57, 24, 148, 12, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP
 CHECKBOX "Match &Whole Word Only", chx1, 5, 46, 120, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
 CHECKBOX "Match &Case", chx2, 5, 62, 120, 12, BS_AUTOCHECKBOX | WS_TABSTOP

 DEFPUSHBUTTON "&Find Next", IDOK, 212,  6, 60, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
 PUSHBUTTON "&Replace", psh1	 , 212, 24, 60, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Replace &All", psh2 , 212, 42, 60, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Cancel", IDCANCEL	 , 212, 60, 60, 14, WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Help", pshHelp	 , 212, 78, 60, 14, WS_GROUP | WS_TABSTOP
}


PRINT32 DIALOG  32, 32, 288, 186
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU |
      DS_CONTEXTHELP | DS_3DLOOK
CAPTION "Print"
FONT 8, "MS Shell Dlg"
{
    DEFPUSHBUTTON   "OK",     IDOK,     176,164, 50,14, WS_GROUP | BS_DEFPUSHBUTTON
    PUSHBUTTON      "Cancel", IDCANCEL, 230,164, 50,14, WS_GROUP
    PUSHBUTTON      "&Help",  pshHelp,  50, 161, 50,14, WS_GROUP

    GROUPBOX        "Printer",        grp4,   8,  4, 272,84, WS_GROUP
    CONTROL         "Print to fi&le", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,185,36,90,16
    PUSHBUTTON      "&Properties",    psh2, 212, 17,  60,14, WS_GROUP
    LTEXT           "&Name:",         stc6,  16, 20,  36,8
    COMBOBOX                          cmb4,  52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
    LTEXT           "Status:",        stc8,  16, 36,  47,10, SS_NOPREFIX
    LTEXT           "",               stc12, 65, 36, 120,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
    LTEXT           "Type:",          stc7,  16, 48,  47,10, SS_NOPREFIX
    LTEXT           "",               stc11, 65, 48, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
    LTEXT           "Where:",         stc10, 16, 60,  47,10, SS_NOPREFIX
    LTEXT           "",               stc14, 65, 60, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
    LTEXT           "Comment:",       stc9,  16, 72,  47,10, SS_NOPREFIX
    LTEXT           "",               stc13, 65, 72, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP

    GROUPBOX        "Copies",         grp2, 160, 92, 120,64, WS_GROUP
    LTEXT           "Number of &copies:",stc5,168,105,68,8
    ICON            "",               ico3, 170,131,  76,24, WS_GROUP | SS_CENTERIMAGE
    CONTROL         "C&ollate",       chx2,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,168,118,100,12
    EDITTEXT                          edt3, 240,103,  32,12, WS_GROUP | ES_NUMBER

    GROUPBOX        "Print range",    grp1,   8,92,  144,64, WS_GROUP
    CONTROL         "&All",           rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
    CONTROL         "Pa&ges",         rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12
    CONTROL         "&Selection",     rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12
    EDITTEXT                          edt1,  73,122,  26,12, WS_GROUP | ES_NUMBER
    EDITTEXT                          edt2, 120,122,  26,12, WS_GROUP | ES_NUMBER
    RTEXT           "&from:",         stc2,  52,124,  20,8
    RTEXT           "&to:",           stc3,  99,124,  20,8
}

PRINT32_SETUP DIALOG  32, 32, 288, 178
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP | DS_3DLOOK
CAPTION "Print Setup"
FONT 8, "MS Shell Dlg"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,176,156,50,14,WS_GROUP
    PUSHBUTTON      "Cancel",IDCANCEL,230,156,50,14
/*    PUSHBUTTON      "Network...", psh5, 284,156,48,14 */

    GROUPBOX        "Printer",        grp4,   8,  4, 272,84, WS_GROUP
    PUSHBUTTON      "&Properties",    psh2, 212, 17,  60,14, WS_GROUP
    LTEXT           "&Name:",         stc6,  16, 20,  36,8
    COMBOBOX                          cmb1,  52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
    LTEXT           "Status:",        stc8,  16, 36,  47,10, SS_NOPREFIX
    LTEXT           "",               stc12, 65, 36, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
    LTEXT           "Type:",          stc7,  16, 48,  47,10, SS_NOPREFIX
    LTEXT           "",               stc11, 65, 48, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
    LTEXT           "Where:",         stc10, 16, 60,  47,10, SS_NOPREFIX
    LTEXT           "",               stc14, 65, 60, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP
    LTEXT           "Comment:",       stc9,  16, 72,  47,10, SS_NOPREFIX
    LTEXT           "",               stc13, 65, 72, 212,10, SS_NOPREFIX | SS_LEFTNOWORDWRAP

    GROUPBOX        "Paper",          grp2,   8, 92, 164,56, WS_GROUP
    LTEXT           "Si&ze:",         stc2,  16,108,  36, 8
    COMBOBOX                          cmb2,  52,106, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
    LTEXT           "&Source:",       stc3,  16,128,  36, 8
    COMBOBOX                          cmb3,  52,126, 112,112,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP

    GROUPBOX        "Orientation",    grp1, 180, 92, 100,56, WS_GROUP
    ICON            "",               ico1, 195,112,  18,20, WS_GROUP
    CONTROL         "P&ortrait",      rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP |WS_TABSTOP,224,106,52,12
    CONTROL         "L&andscape",     rad2,"Button",BS_AUTORADIOBUTTON,224,126,52,12
END

PAGESETUPDLGORD DIALOG 32, 32, 240, 240
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Setup Page"
FONT 8, "MS Shell Dlg"
BEGIN
  CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
  CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
  CONTROL "", rct3, "Static", SS_GRAYRECT,  84, 88, 80, 4
  GROUPBOX "Paper", grp2, 8, 96, 224, 56, BS_GROUPBOX
  LTEXT "&Size:", stc2, 16, 112, 36, 8
  COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
  LTEXT "&Tray:", stc3, 16, 132, 36, 8
  COMBOBOX cmb3, 64, 130, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
  GROUPBOX "Orientation", grp1, 8, 156, 64, 56, BS_GROUPBOX
  AUTORADIOBUTTON "&Portrait", rad1, 16, 170, 52, 12, BS_AUTORADIOBUTTON
  AUTORADIOBUTTON "&Landscape", rad2, 16, 190, 52, 12, BS_AUTORADIOBUTTON
  GROUPBOX "", grp4, 80, 156, 152, 56, BS_GROUPBOX
  LTEXT "L&eft:", stc15, 88, 172, 30, 8
  EDITTEXT edt4, 119, 170, 36, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
  LTEXT "&Right:", stc16, 159, 172, 30, 8
  EDITTEXT edt6, 190, 170, 36, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
  LTEXT "T&op:", stc17, 88, 192, 30, 8
  EDITTEXT edt5, 119, 190, 36, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
  LTEXT "&Bottom:", stc18, 159, 192, 30, 8
  EDITTEXT edt7, 190, 190, 36, 12, WS_TABSTOP|WS_GROUP|WS_BORDER
  DEFPUSHBUTTON "OK", IDOK, 70, 220, 50, 14, BS_PUSHBUTTON
  PUSHBUTTON "Cancel", IDCANCEL, 126, 220, 50, 14
  PUSHBUTTON "P&rinter...", psh3, 182, 220, 50, 14
END

NEWFILEOPENORD DIALOG 0, 0, 280, 164
STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN
CAPTION "Open"
FONT 8, "MS Shell Dlg"
{
    LTEXT	"Look &in:",IDC_LOOKINSTATIC,4,6,43,8, SS_NOTIFY
    COMBOBOX	IDC_LOOKIN,49,3,132,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP

    LTEXT	"" , IDC_TOOLBARSTATIC, 181, 2, 102, 17, NOT WS_GROUP | NOT WS_VISIBLE
    LISTBOX	IDC_SHELLSTATIC,4,20,272,85, LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | WS_HSCROLL | NOT WS_VISIBLE

    LTEXT	"File &name:",IDC_FILENAMESTATIC,5,112,56,16, SS_NOTIFY
    EDITTEXT	IDC_FILENAME,63,110,150,12,ES_AUTOHSCROLL
    CONTROL     "", cmb13, "ComboBoxEx32", CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP, 63,110,150,150

    LTEXT	"Files of &type:",IDC_FILETYPESTATIC,5,130,56,16, SS_NOTIFY
    COMBOBOX	IDC_FILETYPE,63,128,150,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP

    CONTROL	"Open as &read-only",IDC_OPENREADONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,63,148,150,10

    DEFPUSHBUTTON	"&Open",		 IDOK,222,110,54,14
    PUSHBUTTON		"Cancel",		 IDCANCEL,222,128,54,14
    PUSHBUTTON		"&Help",		 pshHelp,222,145,54,14
}

NEWFILEOPENV3ORD DIALOG 0, 0, 440, 300
STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN |
      WS_THICKFRAME
CAPTION "Open"
FONT 8, "MS Shell Dlg"
{
    LTEXT           "File name:", IDC_FILENAMESTATIC, 160, 240, 60, 9, SS_RIGHT | WS_CLIPSIBLINGS
    EDITTEXT        IDC_FILENAME, 226, 240, 100, 12,  WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPSIBLINGS | ES_AUTOHSCROLL

    LTEXT           "Files of type:", IDC_FILETYPESTATIC, 160, 256, 60, 9, SS_RIGHT | WS_CLIPSIBLINGS
    COMBOBOX        IDC_FILETYPE, 226, 256, 100, 60,  WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL |
                    WS_CLIPSIBLINGS | CBS_HASSTRINGS | CBS_DROPDOWNLIST

    DEFPUSHBUTTON   "&Open",  IDOK,     350, 240, 32, 14, WS_GROUP | WS_CLIPSIBLINGS

    /* drop-down menu for open button */
    CONTROL         "#msgctxt#do not translate#6", psh1, "Button", WS_CHILD | WS_CLIPSIBLINGS | WS_GROUP | WS_TABSTOP |
                    BS_CHECKBOX | BS_PUSHLIKE, 342, 240, 8, 14

    PUSHBUTTON      "Cancel", IDCANCEL, 395, 240, 40, 14, WS_CLIPSIBLINGS
    PUSHBUTTON      "&Help",  pshHelp,  350, 272, 40, 14, WS_CLIPSIBLINGS
}

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL

#define WINE_FILEDESCRIPTION_STR "Common Dialog Boxes"
#define WINE_FILENAME_STR "comdlg32.dll"
#define WINE_FILEVERSION 6,0,2900,5512
#define WINE_FILEVERSION_STR "6.00.2900.5512"
#define WINE_PRODUCTVERSION 6,0,2900,5512
#define WINE_PRODUCTVERSION_STR "6.00.2900.5512"

#include "wine/wine_common_ver.rc"

/* Translators do not need to translate this text, unless the language uses a
 * different character set or if the distribution of characters looks wrong.
 * It is rendered illegibly small and is used to make a mock-up of a document.
 */
STRINGTABLE
{
    IDS_FAKEDOCTEXT
        "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \
        Nulla a tortor. Etiam aliquet libero venenatis nunc.\n\
\n\
        Sed augue ante, fermentum sit amet, imperdiet et, gravida eu, enim. \
        Donec nibh quam, sodales in, commodo vel, facilisis id, neque.\n\
\n\
        Nunc eleifend bibendum nibh. Phasellus in lorem. Ut vel odio quis \
        libero adipiscing consequat. Donec consectetuer laoreet mauris.\n\
\n\
        Maecenas tempor, ligula sed congue nonummy, arcu dolor ornare erat, \
        egestas iaculis magna purus sed turpis.\n\
\n\
        Morbi ultricies est non ipsum. Cum sociis natoque penatibus et magnis \
        dis parturient montes, nascetur ridiculus mus.\n\
\n\
        Duis sit amet nibh quis purus sollicitudin blandit. Curabitur justo. \
        Phasellus varius, erat eu luctus pharetra, odio elit fringilla leo, \
        non vulputate turpis elit id neque. Vestibulum sit amet tellus sed \
        tortor fermentum consectetuer."
}


/* @makedep: pd32_collate.ico */
PD32_COLLATE ICON pd32_collate.ico

/* @makedep: pd32_nocollate.ico */
PD32_NOCOLLATE ICON pd32_nocollate.ico

/* @makedep: pd32_portrait.ico */
PD32_PORTRAIT ICON pd32_portrait.ico

/* @makedep: pd32_landscape.ico */
PD32_LANDSCAPE ICON pd32_landscape.ico

/* @makedep: folder.ico */
FOLDER ICON folder.ico

/* @makedep: folder2.ico */
FOLDER2 ICON folder2.ico

/* @makedep: floppy.ico */
FLOPPY ICON floppy.ico

/* @makedep: cdrom.ico */
CDROM ICON cdrom.ico

/* @makedep: hdisk.ico */
HDISK ICON hdisk.ico

/* @makedep: network.ico */
NETWORK ICON network.ico

/* @makedep: fontpics.bmp */
38 BITMAP fontpics.bmp
