/*
 * 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"
}

/*
 * 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, 36, 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, 36, 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
    EDITTEXT        IDC_FILENAME, 226, 240, 100, 12,  WS_CHILD | WS_VISIBLE | WS_TABSTOP

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

    DEFPUSHBUTTON   "&Open",  IDOK,     350, 240, 40, 14, WS_GROUP
    PUSHBUTTON      "Cancel", IDCANCEL, 395, 240, 40, 14
    PUSHBUTTON      "&Help",  pshHelp,  350, 272, 40, 14
}

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
