//Microsoft Visual C++ generated resource script.
//
#include "content/shell/app/resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 9, 1
#pragma code_page(1252)

/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

IDC_CONTENTSHELL MENU 
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "&New Window",          IDM_NEW_WINDOW
        MENUITEM "&Close Window",        IDM_CLOSE_WINDOW
        MENUITEM "E&xit",                IDM_EXIT
    END
    POPUP "&Debug"
    BEGIN
        MENUITEM "&Show Developer Tools...", IDM_SHOW_DEVELOPER_TOOLS
    END
END


#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE  
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE  
BEGIN
    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
    "#include ""windows.h""\r\n"
    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
    "\0"
END

3 TEXTINCLUDE  
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_ALERT DIALOGEX 0, 0, 241, 76
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Alert"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,184,55,50,14
    LTEXT           "",IDC_DIALOGTEXT,16,17,210,30
END

IDD_CONFIRM DIALOGEX 0, 0, 241, 76
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Confirm"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    PUSHBUTTON      "Cancel",IDCANCEL,184,55,50,14
    DEFPUSHBUTTON   "OK",IDOK,131,55,50,14
    LTEXT           "",IDC_DIALOGTEXT,16,17,210,30
END

IDD_PROMPT DIALOGEX 0, 0, 241, 76
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Prompt"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,131,55,50,14
    LTEXT           "",IDC_DIALOGTEXT,16,17,210,18
    PUSHBUTTON      "Cancel",IDCANCEL,184,55,50,14
    EDITTEXT        IDC_PROMPTEDIT,15,33,210,14,ES_AUTOHSCROLL
END


/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
    IDD_ALERT, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 234
        TOPMARGIN, 7
        BOTTOMMARGIN, 69
    END

    IDD_CONFIRM, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 234
        TOPMARGIN, 7
        BOTTOMMARGIN, 69
    END

    IDD_PROMPT, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 234
        TOPMARGIN, 7
        BOTTOMMARGIN, 69
    END
END
#endif    // APSTUDIO_INVOKED

#endif
/////////////////////////////////////////////////////////////////////////////

#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//

/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED
