// Microsoft Visual C++ generated resource script.
//
#include "MiniBrowserLibResource.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

/////////////////////////////////////////////////////////////////////////////
// English (United States) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_MINIBROWSER         ICON                    "MiniBrowser.ico"

IDI_SMALL               ICON                    "small.ico"


/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

IDC_MINIBROWSER MENU
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "&Print\tCtrl-P",              IDM_PRINT
        MENUITEM "E&xit",                       IDM_EXIT
        MENUITEM "New WebKit Window",           IDM_NEW_WEBKIT_WINDOW
        MENUITEM "New WebKitLegacy Window",     IDM_NEW_WEBKITLEGACY_WINDOW
        MENUITEM "Close\tCtrl-W",               IDM_CLOSE_WINDOW
    END
    POPUP "&View"
    BEGIN
        MENUITEM "Reload\tCtrl-R",              IDM_RELOAD
        MENUITEM "Actual Size\tCtrl+0",         IDM_ACTUAL_SIZE
        MENUITEM "Zoom In\tCtrl++",             IDM_ZOOM_IN
        MENUITEM "Zoom Out\tCtrl+-",            IDM_ZOOM_OUT
        MENUITEM "Invert Colors",               IDM_INVERT_COLORS
    END
    POPUP "&History"
    BEGIN
        MENUITEM "Back",                        IDM_HISTORY_BACKWARD
        MENUITEM "Forward",                     IDM_HISTORY_FORWARD
        MENUITEM SEPARATOR
        MENUITEM "Unused History 0",            IDM_HISTORY_LINK0
        MENUITEM "Unused History 1",            IDM_HISTORY_LINK1
        MENUITEM "Unused History 2",            IDM_HISTORY_LINK2
        MENUITEM "Unused History 3",            IDM_HISTORY_LINK3
        MENUITEM "Unused History 4",            IDM_HISTORY_LINK4
        MENUITEM "Unused History 5",            IDM_HISTORY_LINK5
        MENUITEM "Unused History 6",            IDM_HISTORY_LINK6
        MENUITEM "Unused History 7",            IDM_HISTORY_LINK7
        MENUITEM "Unused History 8",            IDM_HISTORY_LINK8
        MENUITEM "Unused History 9",            IDM_HISTORY_LINK9
    END
    POPUP "D&evelop"
    BEGIN
        MENUITEM "Show Web Inspector",          IDM_WEB_INSPECTOR
        POPUP "User Agent"
        BEGIN
            MENUITEM "Default (Automatically Chosen)", IDM_UA_DEFAULT
            MENUITEM SEPARATOR
            MENUITEM "Safari",                      IDM_UA_SAFARI
            MENUITEM SEPARATOR
            MENUITEM "Safari iOS - iPhone",         IDM_UA_SAFARI_IOS_IPHONE
            MENUITEM "Safari iOS - iPad",           IDM_UA_SAFARI_IOS_IPAD
            MENUITEM SEPARATOR
            MENUITEM "Microsoft Edge",              IDM_UA_EDGE
            MENUITEM "Internet Explorer 11.0",      IDM_UA_IE_11
            MENUITEM SEPARATOR
            MENUITEM "Google Chrome - Mac",         IDM_UA_CHROME_MAC
            MENUITEM "Google Chrome - Windows",     IDM_UA_CHROME_WIN
            MENUITEM SEPARATOR
            MENUITEM "Firefox - Mac",               IDM_UA_FIREFOX_MAC
            MENUITEM "Firefox - Windows",           IDM_UA_FIREFOX_WIN
            MENUITEM SEPARATOR
            MENUITEM "Other",                       IDM_UA_OTHER
        END
        MENUITEM "Proxy Settings...",           IDM_PROXY_SETTINGS
        MENUITEM SEPARATOR
        MENUITEM "Disable Images",              IDM_DISABLE_IMAGES
        MENUITEM "Disable Styles",              IDM_DISABLE_STYLES
        MENUITEM "Disable JavaScript",          IDM_DISABLE_JAVASCRIPT
        MENUITEM "Disable Local File Restrictions", IDM_DISABLE_LOCAL_FILE_RESTRICTIONS
    END
    POPUP "&Help"
    BEGIN
        MENUITEM "&About ...",                  IDM_ABOUT
    END
    POPUP "&Debug"
    BEGIN
        MENUITEM "Use AVFoundation",            IDM_AVFOUNDATION, CHECKED
        MENUITEM "Use Accelerated Compositing", IDM_ACC_COMPOSITING, CHECKED
        MENUITEM "Enable WebKit Full Screen",   IDM_WK_FULLSCREEN, CHECKED
        MENUITEM SEPARATOR
        MENUITEM "Show Compositing Borders",    IDM_COMPOSITING_BORDERS
        MENUITEM "Show Tiled Drawing indicator", IDM_DEBUG_INFO_LAYER
        MENUITEM SEPARATOR
        MENUITEM "Show Caches Window",          IDM_CACHES
        MENUITEM "Show Layer Tree",             IDM_SHOW_LAYER_TREE
    END
END


/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//

IDC_MINIBROWSER ACCELERATORS
BEGIN
    "/",            IDM_ABOUT,              ASCII,  ALT, NOINVERT
    "0",            IDM_ACTUAL_SIZE,        VIRTKEY, CONTROL, NOINVERT
    "?",            IDM_ABOUT,              ASCII,  ALT, NOINVERT
    "R",            IDM_RELOAD,             VIRTKEY, CONTROL, NOINVERT
    VK_ADD,         IDM_ZOOM_IN,            VIRTKEY, CONTROL, NOINVERT
    VK_OEM_MINUS,   IDM_ZOOM_OUT,           VIRTKEY, CONTROL, NOINVERT
    VK_OEM_PLUS,    IDM_ZOOM_IN,            VIRTKEY, CONTROL, NOINVERT
    VK_SUBTRACT,    IDM_ZOOM_OUT,           VIRTKEY, CONTROL, NOINVERT
END

IDR_ACCELERATORS_PRE ACCELERATORS
BEGIN
    "W",            IDM_CLOSE_WINDOW,       VIRTKEY, CONTROL, NOINVERT
END


/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_ABOUTBOX DIALOGEX 22, 17, 230, 41
STYLE DS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "About"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
    ICON            IDI_MINIBROWSER,IDC_MYICON,14,9,20,20
    LTEXT           "MiniBrowser Version 1.1",IDC_STATIC,49,10,119,8
    LTEXT           "Copyright (C) 2015-2019",IDC_STATIC,49,20,119,8
    DEFPUSHBUTTON   "OK",IDOK,186,10,30,11,WS_GROUP
END

IDD_CACHES DIALOGEX 0, 0, 401, 456
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,287,435,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,344,435,50,14
    GROUPBOX        "FastMalloc",IDC_STATIC,208,14,186,67
    GROUPBOX        "WebCore Cache",IDC_STATIC,17,83,376,105
    GROUPBOX        "JavaScript Heap",IDC_STATIC,18,193,376,168
    GROUPBOX        "Site Icon Database",IDC_STATIC,18,366,142,65
    GROUPBOX        "Font and Glyph Caches",IDC_STATIC,168,366,226,66
    GROUPBOX        "CFURLCache",IDC_STATIC,7,14,197,67
    PUSHBUTTON      "Empty URLCache",IDC_EMPTY_URL_CACHE,131,63,69,14,WS_DISABLED
    PUSHBUTTON      "Return Free Memory",IDC_RETURN_FREE_MEMORY,308,63,76,14,WS_DISABLED
    PUSHBUTTON      "Empty WebCore Cache",IDC_EMPTY_WEBCORE_CACHE,21,170,83,14,WS_DISABLED
    CONTROL         "Disable WebCore Cache",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,119,172,93,10
    PUSHBUTTON      "Garbage Collect JavaScript Objects",IDC_GC_JSC,253,343,135,14,WS_DISABLED
    RTEXT           "Reserved VM",IDC_STATIC,212,26,67,9
    RTEXT           "0",IDC_RESERVED_VM,290,26,94,8
    RTEXT           "Committed VM",IDC_STATIC,211,39,67,8
    RTEXT           "0",IDC_COMMITTED_VM,290,39,94,8
    RTEXT           "Free List Bytes",IDC_STATIC,211,52,67,8
    RTEXT           "0",IDC_FREE_LIST_BYTES,290,52,94,8
    RTEXT           "Images",IDC_STATIC,37,106,24,8
    RTEXT           "CSS",IDC_STATIC,47,116,14,8
    RTEXT           "XSL",IDC_STATIC,49,126,12,8
    RTEXT           "JavaScript",IDC_STATIC,27,135,34,8
    RTEXT           "Total",IDC_STATIC,43,146,17,8
    LTEXT           "Objects",IDC_STATIC,111,96,26,8
    LTEXT           "Bytes",IDC_STATIC,175,96,19,8
    LTEXT           "Live",IDC_STATIC,232,96,14,8
    LTEXT           "Decoded",IDC_STATIC,284,96,29,8
    LTEXT           "Purgeable",IDC_STATIC,351,96,33,8
    RTEXT           "0",IDC_IMAGES_OBJECT_COUNT,100,106,32,8
    RTEXT           "0",IDC_CSS_OBJECT_COUNT,100,116,32,8
    RTEXT           "0",IDC_XSL_OBJECT_COUNT,100,126,32,8
    RTEXT           "0",IDC_JSC_OBJECT_COUNT,100,135,32,8
    RTEXT           "0",IDC_TOTAL_OBJECT_COUNT,100,146,32,8
    RTEXT           "0",IDC_IMAGES_BYTES,162,106,32,8
    RTEXT           "0",IDC_CSS_BYTES,162,116,32,8
    RTEXT           "0",IDC_XSL_BYTES,162,126,32,8
    RTEXT           "0",IDC_JSC_BYTES,162,135,32,8
    RTEXT           "0",IDC_TOTAL_BYTES,162,146,32,8
    RTEXT           "0",IDC_IMAGES_LIVE_COUNT,221,106,32,8
    RTEXT           "0",IDC_CSS_LIVE_COUNT,221,116,32,8
    RTEXT           "0",IDC_XSL_LIVE_COUNT,221,126,32,8
    RTEXT           "0",IDC_JSC_LIVE_COUNT,221,135,32,8
    RTEXT           "0",IDC_TOTAL_LIVE_COUNT,221,146,32,8
    RTEXT           "0",IDC_IMAGES_DECODED_COUNT,284,106,32,8
    RTEXT           "0",IDC_CSS_DECODED_COUNT,284,116,32,8
    RTEXT           "0",IDC_XSL_DECODED_COUNT,284,126,32,8
    RTEXT           "0",IDC_JSC_DECODED_COUNT,284,135,32,8
    RTEXT           "0",IDC_TOTAL_DECODED,284,146,32,8
    RTEXT           "0",IDC_IMAGES_PURGEABLE_COUNT,354,106,32,8
    RTEXT           "0",IDC_CSS_PURGEABLE_COUNT,354,116,32,8
    RTEXT           "0",IDC_XSL_PURGEABLE_COUNT,354,126,32,8
    RTEXT           "0",IDC_JSC_PURGEABLE_COUNT,354,135,32,8
    RTEXT           "0",IDC_TOTAL_PURGEABLE,354,146,32,8
    RTEXT           "Total Objects",IDC_STATIC,63,207,44,8
    RTEXT           "Global Objects",IDC_STATIC,56,217,51,8
    RTEXT           "Protected Objects",IDC_STATIC,48,227,59,8
    RTEXT           "0",IDC_TOTAL_JSC_HEAP_OBJECTS,127,207,56,8
    RTEXT           "0",IDC_GLOBAL_JSC_HEAP_OBJECTS,127,217,56,8
    RTEXT           "0",IDC_PROTECTED_JSC_HEAP_OBJECTS,127,227,56,8
    RTEXT           "Size",IDC_STATIC56,223,207,14,8
    RTEXT           "Free",IDC_STATIC57,222,217,16,8
    RTEXT           "0",IDC_JSC_HEAP_SIZE,270,207,56,8
    RTEXT           "0",IDC_JSC_HEAP_FREE,270,217,56,8
    PUSHBUTTON      "Purge Inactive Font Data",IDC_BUTTON5,293,415,95,14,WS_DISABLED
    LTEXT           "Total Font Data Objects",IDC_STATIC,208,379,78,8
    LTEXT           "Inactive Font Data Objects",IDC_STATIC,198,390,88,8
    LTEXT           "Glyph Pages",IDC_STATIC,246,402,40,8
    RTEXT           "0",IDC_TOTAL_FONT_OBJECTS,329,379,56,8
    RTEXT           "0",IDC_INACTIVE_FONT_OBJECTS,329,390,56,8
    RTEXT           "0",IDC_GLYPH_PAGES,329,402,56,8
    LTEXT           "Page URL Mappings",IDC_STATIC,33,380,64,8
    LTEXT           "Retained Page URLs",IDC_STATIC,31,390,66,8
    LTEXT           "Site Icon Records",IDC_STATIC,40,400,57,8
    LTEXT           "Site Icons with Data",IDC_STATIC,32,410,65,8
    RTEXT           "0",IDC_PAGE_URL_MAPPINGS,101,380,52,8
    RTEXT           "0",IDC_RETAINED_PAGE_URLS,101,390,52,8
    RTEXT           "0",IDC_SITE_ICON_RECORDS,101,400,52,8
    RTEXT           "0",IDC_SITE_ICONS_WITH_DATA,101,410,52,8
END

IDD_USER_AGENT DIALOGEX 0, 0, 309, 176
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    LTEXT           "Type a custom user agent string for this page.",IDC_Message,7,7,295,19
    EDITTEXT        IDC_USER_AGENT_INPUT,7,34,295,117,ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK",IDOK,198,155,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,252,155,50,14
END

IDD_AUTH DIALOGEX 0, 0, 231, 119
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Authentication Required"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "Sign In",IDOK,116,98,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,174,98,50,14
    LTEXT           "Realm",IDC_REALM_TEXT,67,21,157,8
    RTEXT           "User Name:",IDC_STATIC,7,41,57,8
    EDITTEXT        IDC_AUTH_USER,67,39,157,14,ES_AUTOHSCROLL
    RTEXT           "Password:",IDC_STATIC,7,66,57,8
    EDITTEXT        IDC_AUTH_PASSWORD,67,64,157,14,ES_PASSWORD | ES_AUTOHSCROLL
END

IDD_PROXY DIALOGEX 0, 0, 310, 176
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Proxy Configuration"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,199,155,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,253,155,50,14
    CONTROL         "Use system default proxy configuration.",IDC_PROXY_DEFAULT,
                    "Button",BS_AUTORADIOBUTTON | WS_GROUP,22,15,226,10
    CONTROL         "Use custom proxy configuration:",IDC_PROXY_CUSTOM,
                    "Button",BS_AUTORADIOBUTTON,22,33,226,10
    CONTROL         "Don't use proxy.",IDC_PROXY_DISABLE,"Button",BS_AUTORADIOBUTTON,22,117,226,10
    EDITTEXT        IDC_PROXY_URL,76,52,193,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_PROXY_EXCLUDE,76,85,193,14,ES_AUTOHSCROLL
    LTEXT           "URL:",IDC_STATIC,30,55,43,8,0,WS_EX_RIGHT
    LTEXT           "Excude list:",IDC_STATIC,30,88,43,8,0,WS_EX_RIGHT
    LTEXT           "Example: http://192.168.0.2:8000",IDC_STATIC,80,68,194,8
    LTEXT           "Comma separated hostnames.",IDC_STATIC,80,101,194,8
END

IDD_SERVER_TRUST DIALOGEX 0, 0, 319, 184
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Server Trust Evaluation Request"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "Yes",IDOK,197,163,50,14
    PUSHBUTTON      "No",IDCANCEL,262,163,50,14
    LTEXT           "Certificate information",IDC_STATIC,7,7,294,17
    EDITTEXT        IDC_SERVER_TRUST_TEXT,7,24,305,130,ES_MULTILINE | ES_READONLY | WS_VSCROLL | WS_HSCROLL | NOT WS_TABSTOP
END


#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE 
BEGIN
    "MiniBrowserLibResource.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


/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
    IDD_ABOUTBOX, DIALOG
    BEGIN
    END

    IDD_CACHES, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 394
        TOPMARGIN, 7
        BOTTOMMARGIN, 449
    END

    IDD_USER_AGENT, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 302
        TOPMARGIN, 7
        BOTTOMMARGIN, 169
    END

    IDD_AUTH, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 224
        VERTGUIDE, 64
        VERTGUIDE, 67
        TOPMARGIN, 7
        BOTTOMMARGIN, 92
        HORZGUIDE, 25
        HORZGUIDE, 50
    END

    IDD_PROXY, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 303
        VERTGUIDE, 22
        TOPMARGIN, 7
        BOTTOMMARGIN, 169
    END

    IDD_SERVER_TRUST, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 312
        TOPMARGIN, 7
        BOTTOMMARGIN, 177
    END
END
#endif    // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// String Table
//

STRINGTABLE
BEGIN
    IDS_APP_TITLE           "MiniBrowser"
    IDC_MINIBROWSER         "MINIBROWSER"
END

#endif    // English (United States) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED

