#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
#include "windows.h"
#include "winres.h"
#undef APSTUDIO_READONLY_SYMBOLS

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif

1 VERSIONINFO
  FILEVERSION 0,9,0,0
  PRODUCTVERSION 0,9,0,0
  FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
  FILEFLAGS 0x1L
#else
  FILEFLAGS 0x0L
#endif
  FILEOS 0x40004L
  FILETYPE 0x2L
  FILESUBTYPE 0x0L
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
  	BLOCK "040904e4"
  	BEGIN
  	  VALUE "CompanyName", 		"Google Inc"
  	  VALUE "FileDescription",	"GWT Development Mode Plugin"
#if 0
  	  VALUE "FileExtents",		""
#endif
  	  VALUE "FileOpenName",		"Plugin to allow debugging of GWT applications in hosted mode."
  	  VALUE "FileVersion",		"0.9.0"
  	  VALUE "InternalName",		"GWT DMP"
  	  VALUE "LegalCopyright",	"Copyright © 2009 Google Inc.  All rights reserved."
  	  VALUE "MIMEType",			"application/x-gwt-hosted-mode"
  	  VALUE "OriginalFilename",	"npOOPHM.dll"
  	  VALUE "ProductName",		"GWT DMP Plugin"
  	  VALUE "ProductVersion",	"0.9.0"
  	END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x409, 1252
  END
END

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

2 TEXTINCLUDE
BEGIN
  "#include ""mfc/afxres.h""\r\n"
  "\0"
END

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

#endif

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

IDD_ALLOW_DIALOG DIALOGEX 0, 0, 188, 73
STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CAPTION
EXSTYLE WS_EX_TOPMOST
CAPTION "GWT Plugin Security Alert"
FONT 10, "Microsoft Sans Serif", 400, 0, 0x0
BEGIN
    CONTROL         "Remember this decision for this server",IDC_REMEMBER_CHECKBOX,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,30,31,129,10
    LTEXT           "This web server is trying to initiate a GWT Development\r\nMode Connection -- should it be allowed?",IDC_STATIC,10,7,167,19
    PUSHBUTTON      "Allow",IDC_ALLOW_BUTTON,37,50,50,14
    DEFPUSHBUTTON   "Deny",IDCANCEL,100,50,50,14
END


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

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO 
BEGIN
    IDD_ALLOW_DIALOG, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 181
        TOPMARGIN, 7
        BOTTOMMARGIN, 66
    END
END
#endif    // APSTUDIO_INVOKED

#else

#endif
