/*
 * USER resources
 *
 * Copyright 2001 Alexandre Julliard
 *
 * 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 "resources.h"

#pragma makedep po

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

SYSMENU MENU
{
    MENUITEM "#msgctxt#window#&Restore", 61728
    MENUITEM "&Move", 61456
    MENUITEM "&Size", 61440
    MENUITEM "Mi&nimize", 61472
    MENUITEM "Ma&ximize", 61488
    MENUITEM SEPARATOR
    MENUITEM "&Close\tAlt+F4", 61536
    MENUITEM SEPARATOR
    MENUITEM "&About Wine", 61761
}

SYSMENUMDI MENU
{
    MENUITEM "#msgctxt#window#&Restore", 61728
    MENUITEM "&Move", 61456
    MENUITEM "&Size", 61440
    MENUITEM "Mi&nimize", 61472
    MENUITEM "Ma&ximize", 61488
    MENUITEM SEPARATOR
    MENUITEM "&Close\tCtrl+F4", 61536
    MENUITEM SEPARATOR
    MENUITEM "Nex&t\tCtrl+F6", 61504
}

EDITMENU MENU
{
    POPUP ""
    BEGIN
        MENUITEM "&Undo", EM_UNDO
        MENUITEM SEPARATOR
        MENUITEM "Cu&t", WM_CUT
        MENUITEM "&Copy", WM_COPY
        MENUITEM "&Paste", WM_PASTE
        MENUITEM "&Delete", WM_CLEAR
        MENUITEM SEPARATOR
        MENUITEM "Select &All", EM_SETSEL
    END
}

STRINGTABLE
{
    IDS_ERROR "Error"
    IDS_MDI_MOREWINDOWS "&More Windows..."
}

MSGBOX DIALOG 100, 80, 216, 168
STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
BEGIN
    ICON "", MSGBOX_IDICON, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE
    LTEXT "", MSGBOX_IDTEXT, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP | SS_NOPREFIX
    PUSHBUTTON "OK", IDOK, 16, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
    PUSHBUTTON "Cancel", IDCANCEL, 74, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
    PUSHBUTTON "&Abort", IDABORT, 132, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
    PUSHBUTTON "&Retry", IDRETRY, 190, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
    PUSHBUTTON "&Ignore", IDIGNORE, 248, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
    PUSHBUTTON "&Yes", IDYES, 306, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
    PUSHBUTTON "&No", IDNO, 364, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
    PUSHBUTTON "&Try Again", IDTRYAGAIN, 422, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
    PUSHBUTTON "&Continue", IDCONTINUE, 480, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
    PUSHBUTTON "Help", IDHELP, 538, 56, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END

MDI_MOREWINDOWS DIALOG 20, 20, 232, 122
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Select Window"
FONT 8, "MS Shell Dlg"
BEGIN
    LISTBOX         MDI_IDC_LISTBOX, 5, 7, 222, 90, WS_VSCROLL | WS_HSCROLL /* defined in mdi.h */
    DEFPUSHBUTTON   "OK", IDOK, 75, 100, 35, 14
    PUSHBUTTON      "Cancel", IDCANCEL, 120, 100, 35, 14
END

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL

/****************************************************************/
/* Bitmaps */

/* @makedep: resources/obm_trtype.bmp */
OBM_TRTYPE BITMAP resources/obm_trtype.bmp

/* @makedep: resources/obm_lfarrowi.bmp */
OBM_LFARROWI BITMAP resources/obm_lfarrowi.bmp

/* @makedep: resources/obm_rgarrowi.bmp */
OBM_RGARROWI BITMAP resources/obm_rgarrowi.bmp

/* @makedep: resources/obm_dnarrowi.bmp */
OBM_DNARROWI BITMAP resources/obm_dnarrowi.bmp

/* @makedep: resources/obm_uparrowi.bmp */
OBM_UPARROWI BITMAP resources/obm_uparrowi.bmp

/* @makedep: resources/obm_combo.bmp */
OBM_COMBO BITMAP resources/obm_combo.bmp

/* @makedep: resources/obm_mnarrow.bmp */
OBM_MNARROW BITMAP resources/obm_mnarrow.bmp

/* @makedep: resources/obm_lfarrowd.bmp */
OBM_LFARROWD BITMAP resources/obm_lfarrowd.bmp

/* @makedep: resources/obm_rgarrowd.bmp */
OBM_RGARROWD BITMAP resources/obm_rgarrowd.bmp

/* @makedep: resources/obm_dnarrowd.bmp */
OBM_DNARROWD BITMAP resources/obm_dnarrowd.bmp

/* @makedep: resources/obm_uparrowd.bmp */
OBM_UPARROWD BITMAP resources/obm_uparrowd.bmp

/* @makedep: resources/obm_restored.bmp */
OBM_RESTORED BITMAP resources/obm_restored.bmp

/* @makedep: resources/obm_zoomd.bmp */
OBM_ZOOMD BITMAP resources/obm_zoomd.bmp

/* @makedep: resources/obm_reduced.bmp */
OBM_REDUCED BITMAP resources/obm_reduced.bmp

/* @makedep: resources/obm_restore.bmp */
OBM_RESTORE BITMAP resources/obm_restore.bmp

/* @makedep: resources/obm_zoom.bmp */
OBM_ZOOM BITMAP resources/obm_zoom.bmp

/* @makedep: resources/obm_reduce.bmp */
OBM_REDUCE BITMAP resources/obm_reduce.bmp

/* @makedep: resources/obm_lfarrow.bmp */
OBM_LFARROW BITMAP resources/obm_lfarrow.bmp

/* @makedep: resources/obm_rgarrow.bmp */
OBM_RGARROW BITMAP resources/obm_rgarrow.bmp

/* @makedep: resources/obm_dnarrow.bmp */
OBM_DNARROW BITMAP resources/obm_dnarrow.bmp

/* @makedep: resources/obm_uparrow.bmp */
OBM_UPARROW BITMAP resources/obm_uparrow.bmp

/* @makedep: resources/obm_close.bmp */
OBM_CLOSE BITMAP resources/obm_close.bmp

/* @makedep: resources/obm_old_restore.bmp */
OBM_OLD_RESTORE BITMAP resources/obm_old_restore.bmp

/* @makedep: resources/obm_old_zoom.bmp */
OBM_OLD_ZOOM BITMAP resources/obm_old_zoom.bmp

/* @makedep: resources/obm_old_reduce.bmp */
OBM_OLD_REDUCE BITMAP resources/obm_old_reduce.bmp

/* @makedep: resources/obm_btncorners.bmp */
OBM_BTNCORNERS BITMAP resources/obm_btncorners.bmp

/* @makedep: resources/obm_checkboxes.bmp */
OBM_CHECKBOXES BITMAP resources/obm_checkboxes.bmp

/* @makedep: resources/obm_check.bmp */
OBM_CHECK BITMAP resources/obm_check.bmp

/* @makedep: resources/obm_btsize.bmp */
OBM_BTSIZE BITMAP resources/obm_btsize.bmp

/* @makedep: resources/obm_old_lfarrow.bmp */
OBM_OLD_LFARROW BITMAP resources/obm_old_lfarrow.bmp

/* @makedep: resources/obm_old_rgarrow.bmp */
OBM_OLD_RGARROW BITMAP resources/obm_old_rgarrow.bmp

/* @makedep: resources/obm_old_dnarrow.bmp */
OBM_OLD_DNARROW BITMAP resources/obm_old_dnarrow.bmp

/* @makedep: resources/obm_old_uparrow.bmp */
OBM_OLD_UPARROW BITMAP resources/obm_old_uparrow.bmp

/* @makedep: resources/obm_size.bmp */
OBM_SIZE BITMAP resources/obm_size.bmp

/* @makedep: resources/obm_old_close.bmp */
OBM_OLD_CLOSE BITMAP resources/obm_old_close.bmp


/****************************************************************/
/* Cursors */

/* @makedep: resources/ocr_normal.cur */
OCR_NORMAL CURSOR resources/ocr_normal.cur

/* @makedep: resources/ocr_ibeam.cur */
OCR_IBEAM CURSOR resources/ocr_ibeam.cur

/* @makedep: resources/ocr_wait.cur */
OCR_WAIT CURSOR resources/ocr_wait.cur

/* @makedep: resources/ocr_cross.cur */
OCR_CROSS CURSOR resources/ocr_cross.cur

/* @makedep: resources/ocr_up.cur */
OCR_UP CURSOR resources/ocr_up.cur

/* @makedep: resources/ocr_size.cur */
OCR_SIZE CURSOR resources/ocr_size.cur

/* @makedep: resources/ocr_icon.cur */
OCR_ICON CURSOR resources/ocr_icon.cur

/* @makedep: resources/ocr_sizenwse.cur */
OCR_SIZENWSE CURSOR resources/ocr_sizenwse.cur

/* @makedep: resources/ocr_sizenesw.cur */
OCR_SIZENESW CURSOR resources/ocr_sizenesw.cur

/* @makedep: resources/ocr_sizewe.cur */
OCR_SIZEWE CURSOR resources/ocr_sizewe.cur

/* @makedep: resources/ocr_sizens.cur */
OCR_SIZENS CURSOR resources/ocr_sizens.cur

/* @makedep: resources/ocr_sizeall.cur */
OCR_SIZEALL CURSOR resources/ocr_sizeall.cur

/* @makedep: resources/ocr_no.cur */
OCR_NO CURSOR resources/ocr_no.cur

/* @makedep: resources/ocr_hand.cur */
OCR_HAND CURSOR resources/ocr_hand.cur

/* @makedep: resources/ocr_appstarting.cur */
OCR_APPSTARTING CURSOR resources/ocr_appstarting.cur

/* @makedep: resources/ocr_help.cur */
OCR_HELP CURSOR resources/ocr_help.cur

/* @makedep: resources/ocr_dragobject.cur */
OCR_DRAGOBJECT CURSOR resources/ocr_dragobject.cur


/****************************************************************/
/* Icons */

/* @makedep: resources/oic_sample.ico */
OIC_SAMPLE ICON resources/oic_sample.ico

/* @makedep: resources/oic_hand.ico */
OIC_HAND ICON resources/oic_hand.ico

/* @makedep: resources/oic_ques.ico */
OIC_QUES ICON resources/oic_ques.ico

/* @makedep: resources/oic_bang.ico */
OIC_BANG ICON resources/oic_bang.ico

/* @makedep: resources/oic_note.ico */
OIC_NOTE ICON resources/oic_note.ico

/* @makedep: resources/oic_winlogo.ico */
OIC_WINLOGO ICON resources/oic_winlogo.ico


/****************************************************************/
/* Version */

#define WINE_FILEDESCRIPTION_STR "Wine core dll"
#define WINE_FILENAME_STR "user32.dll"

/* these values come from Windows XP SP2 */
#define WINE_FILEVERSION 5,1,2600,2180
#define WINE_FILEVERSION_STR "5.01.2600.2180"
#define WINE_PRODUCTVERSION 5,1,2600,2180
#define WINE_PRODUCTVERSION_STR "5.01.2600.2180"

#include "wine/wine_common_ver.rc"
