// Microsoft Visual C++ generated resource script.
//
#include "chrome_dll_resource.h"
#include "chrome_command_ids.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 (U.S.) resources

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

/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//

// Note that we don't handle any of the VK_BROWSER_* commands here. We will
// pick those up in the WM_APPCOMMAND message.
IDR_MAINFRAME ACCELERATORS
BEGIN
#if defined(ENABLE_BASIC_PRINTING)
    "P",            IDC_BASIC_PRINT,            VIRTKEY, CONTROL, SHIFT
#endif  // ENABLE_BASIC_PRINTING
    VK_LEFT,        IDC_BACK,                   VIRTKEY, ALT
    VK_BACK,        IDC_BACK,                   VIRTKEY
    "D",            IDC_BOOKMARK_PAGE,          VIRTKEY, CONTROL
    "D",            IDC_BOOKMARK_ALL_TABS,      VIRTKEY, CONTROL, SHIFT
    VK_DELETE,      IDC_CLEAR_BROWSING_DATA,    VIRTKEY, CONTROL, SHIFT
    VK_F4,          IDC_CLOSE_TAB,              VIRTKEY, CONTROL
    "W",            IDC_CLOSE_TAB,              VIRTKEY, CONTROL
    "W",            IDC_CLOSE_WINDOW,           VIRTKEY, CONTROL, SHIFT
    "F",            IDC_FIND,                   VIRTKEY, CONTROL
    "G",            IDC_FIND_NEXT,              VIRTKEY, CONTROL
    VK_F3,          IDC_FIND_NEXT,              VIRTKEY
    "G",            IDC_FIND_PREVIOUS,          VIRTKEY, CONTROL, SHIFT
    VK_F3,          IDC_FIND_PREVIOUS,          VIRTKEY, SHIFT
    "D",            IDC_FOCUS_LOCATION,         VIRTKEY, ALT
    "L",            IDC_FOCUS_LOCATION,         VIRTKEY, CONTROL
    VK_F10,         IDC_FOCUS_MENU_BAR,         VIRTKEY
    VK_MENU,        IDC_FOCUS_MENU_BAR,         VIRTKEY
    VK_F6,          IDC_FOCUS_NEXT_PANE,        VIRTKEY
    VK_F6,          IDC_FOCUS_PREVIOUS_PANE,    VIRTKEY, SHIFT
    "K",            IDC_FOCUS_SEARCH,           VIRTKEY, CONTROL
    "E",            IDC_FOCUS_SEARCH,           VIRTKEY, CONTROL
    "T",            IDC_FOCUS_TOOLBAR,          VIRTKEY, SHIFT, ALT
    "B",            IDC_FOCUS_BOOKMARKS,        VIRTKEY, SHIFT, ALT
    "A",            IDC_FOCUS_INFOBARS,         VIRTKEY, SHIFT, ALT
    VK_RIGHT,       IDC_FORWARD,                VIRTKEY, ALT
    VK_BACK,        IDC_FORWARD,                VIRTKEY, SHIFT
    VK_F11,         IDC_FULLSCREEN,             VIRTKEY
    VK_F1,          IDC_HELP_PAGE_VIA_KEYBOARD, VIRTKEY
    "I",            IDC_DEV_TOOLS,              VIRTKEY, CONTROL, SHIFT
    "J",            IDC_DEV_TOOLS_CONSOLE,      VIRTKEY, CONTROL, SHIFT
    "C",            IDC_DEV_TOOLS_INSPECT,      VIRTKEY, CONTROL, SHIFT
    VK_F12,         IDC_DEV_TOOLS_TOGGLE,       VIRTKEY
    "N",            IDC_NEW_INCOGNITO_WINDOW,   VIRTKEY, CONTROL, SHIFT
    "T",            IDC_NEW_TAB,                VIRTKEY, CONTROL
    "N",            IDC_NEW_WINDOW,             VIRTKEY, CONTROL
    "O",            IDC_OPEN_FILE,              VIRTKEY, CONTROL
    "P",            IDC_PRINT,                  VIRTKEY, CONTROL
    "R",            IDC_RELOAD,                 VIRTKEY, CONTROL
    "R",            IDC_RELOAD_IGNORING_CACHE,  VIRTKEY, CONTROL, SHIFT
    VK_F5,          IDC_RELOAD,                 VIRTKEY
    VK_F5,          IDC_RELOAD_IGNORING_CACHE,  VIRTKEY, CONTROL
    VK_F5,          IDC_RELOAD_IGNORING_CACHE,  VIRTKEY, SHIFT
    VK_HOME,        IDC_HOME,                   VIRTKEY, ALT
    "T",            IDC_RESTORE_TAB,            VIRTKEY, CONTROL, SHIFT
    "S",            IDC_SAVE_PAGE,              VIRTKEY, CONTROL
    "9",            IDC_SELECT_LAST_TAB,        VIRTKEY, CONTROL
    VK_NUMPAD9,     IDC_SELECT_LAST_TAB,        VIRTKEY, CONTROL
    VK_TAB,         IDC_SELECT_NEXT_TAB,        VIRTKEY, CONTROL
    VK_NEXT,        IDC_SELECT_NEXT_TAB,        VIRTKEY, CONTROL
    VK_TAB,         IDC_SELECT_PREVIOUS_TAB,    VIRTKEY, CONTROL, SHIFT
    VK_PRIOR,       IDC_SELECT_PREVIOUS_TAB,    VIRTKEY, CONTROL
    // NOTE: IDC_SELECT_TAB_N is bound to the key ctrl-(N+1), and selects the
    // tab at index N. For example, IDC_SELECT_TAB_0 is bound to ctrl-1, and
    // selects the tab at index 0.
    "1",            IDC_SELECT_TAB_0,           VIRTKEY, CONTROL
    VK_NUMPAD1,     IDC_SELECT_TAB_0,           VIRTKEY, CONTROL
    "2",            IDC_SELECT_TAB_1,           VIRTKEY, CONTROL
    VK_NUMPAD2,     IDC_SELECT_TAB_1,           VIRTKEY, CONTROL
    "3",            IDC_SELECT_TAB_2,           VIRTKEY, CONTROL
    VK_NUMPAD3,     IDC_SELECT_TAB_2,           VIRTKEY, CONTROL
    "4",            IDC_SELECT_TAB_3,           VIRTKEY, CONTROL
    VK_NUMPAD4,     IDC_SELECT_TAB_3,           VIRTKEY, CONTROL
    "5",            IDC_SELECT_TAB_4,           VIRTKEY, CONTROL
    VK_NUMPAD5,     IDC_SELECT_TAB_4,           VIRTKEY, CONTROL
    "6",            IDC_SELECT_TAB_5,           VIRTKEY, CONTROL
    VK_NUMPAD6,     IDC_SELECT_TAB_5,           VIRTKEY, CONTROL
    "7",            IDC_SELECT_TAB_6,           VIRTKEY, CONTROL
    VK_NUMPAD7,     IDC_SELECT_TAB_6,           VIRTKEY, CONTROL
    "8",            IDC_SELECT_TAB_7,           VIRTKEY, CONTROL
    VK_NUMPAD8,     IDC_SELECT_TAB_7,           VIRTKEY, CONTROL
    "B",            IDC_SHOW_BOOKMARK_BAR,      VIRTKEY, CONTROL, SHIFT
    "O",            IDC_SHOW_BOOKMARK_MANAGER,  VIRTKEY, CONTROL, SHIFT
    "J",            IDC_SHOW_DOWNLOADS,         VIRTKEY, CONTROL
    "H",            IDC_SHOW_HISTORY,           VIRTKEY, CONTROL
    "F",            IDC_SHOW_APP_MENU,          VIRTKEY, ALT
    "E",            IDC_SHOW_APP_MENU,          VIRTKEY, ALT
    "M",            IDC_SHOW_AVATAR_MENU,       VIRTKEY, CONTROL, SHIFT
    VK_ESCAPE,      IDC_STOP,                   VIRTKEY
    VK_ESCAPE,      IDC_TASK_MANAGER,           VIRTKEY, SHIFT
    VK_OEM_PERIOD,  IDC_TOGGLE_SPEECH_INPUT,    VIRTKEY, CONTROL, SHIFT
    "U",            IDC_VIEW_SOURCE,            VIRTKEY, CONTROL
    VK_OEM_MINUS,   IDC_ZOOM_MINUS,             VIRTKEY, CONTROL
    VK_OEM_MINUS,   IDC_ZOOM_MINUS,             VIRTKEY, CONTROL, SHIFT
    VK_SUBTRACT,    IDC_ZOOM_MINUS,             VIRTKEY, CONTROL
    "0",            IDC_ZOOM_NORMAL,            VIRTKEY, CONTROL
    VK_NUMPAD0,     IDC_ZOOM_NORMAL,            VIRTKEY, CONTROL
    VK_OEM_PLUS,    IDC_ZOOM_PLUS,              VIRTKEY, CONTROL
    VK_OEM_PLUS,    IDC_ZOOM_PLUS,              VIRTKEY, CONTROL, SHIFT
    VK_ADD,         IDC_ZOOM_PLUS,              VIRTKEY, CONTROL
END

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE
BEGIN
    "chrome_dll_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

/////////////////////////////////////////////////////////////////////////////
//
// Icons
//
// This is duplicated from the .exe file to make ATL happy (it tries to load
// the icon from the current module). We can perhaps work around this in the
// future to get the icon from the .exe, which would save a copy.

#if defined(GOOGLE_CHROME_BUILD)
IDR_MAINFRAME       ICON                        "theme\google_chrome\win\chrome.ico"
IDR_SXS             ICON                        "theme\google_chrome\win\chrome_sxs.ico"
#else
IDR_MAINFRAME       ICON                        "theme\chromium\win\chromium.ico"
#endif

// We include these resources because all ICON types need to be in the
// same .rc file.  See:
// http://www.technewsgroups.net/group/microsoft.public.dotnet.general/topic2111.aspx
IDI_THROBBER_01     ICON                        "theme\vista_frame_throbber_01.ico"
IDI_THROBBER_02     ICON                        "theme\vista_frame_throbber_02.ico"
IDI_THROBBER_03     ICON                        "theme\vista_frame_throbber_03.ico"
IDI_THROBBER_04     ICON                        "theme\vista_frame_throbber_04.ico"
IDI_THROBBER_05     ICON                        "theme\vista_frame_throbber_05.ico"
IDI_THROBBER_06     ICON                        "theme\vista_frame_throbber_06.ico"
IDI_THROBBER_07     ICON                        "theme\vista_frame_throbber_07.ico"
IDI_THROBBER_08     ICON                        "theme\vista_frame_throbber_08.ico"
IDI_THROBBER_09     ICON                        "theme\vista_frame_throbber_09.ico"
IDI_THROBBER_10     ICON                        "theme\vista_frame_throbber_10.ico"
IDI_THROBBER_11     ICON                        "theme\vista_frame_throbber_11.ico"
IDI_THROBBER_12     ICON                        "theme\vista_frame_throbber_12.ico"
IDI_THROBBER_13     ICON                        "theme\vista_frame_throbber_13.ico"
IDI_THROBBER_14     ICON                        "theme\vista_frame_throbber_14.ico"
IDI_THROBBER_15     ICON                        "theme\vista_frame_throbber_15.ico"
IDI_THROBBER_16     ICON                        "theme\vista_frame_throbber_16.ico"
IDI_THROBBER_17     ICON                        "theme\vista_frame_throbber_17.ico"
IDI_THROBBER_18     ICON                        "theme\vista_frame_throbber_18.ico"
IDI_THROBBER_19     ICON                        "theme\vista_frame_throbber_19.ico"
IDI_THROBBER_20     ICON                        "theme\vista_frame_throbber_20.ico"
IDI_THROBBER_21     ICON                        "theme\vista_frame_throbber_21.ico"
IDI_THROBBER_22     ICON                        "theme\vista_frame_throbber_22.ico"
IDI_THROBBER_23     ICON                        "theme\vista_frame_throbber_23.ico"
IDI_THROBBER_24     ICON                        "theme\vista_frame_throbber_24.ico"

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

IDD_IPC_SETTINGS DIALOGEX 0, 0, 182, 558
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "IPC Logging Settings"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    CONTROL         "",IDC_Messages,"SysListView32",LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,22,170,529
    PUSHBUTTON      "All",IDC_MessagesAll,7,6,56,13
    PUSHBUTTON      "None",IDC_MessagesNone,121,7,56,13
END


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

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
    IDD_IPC_SETTINGS, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 784
        TOPMARGIN, 7
        BOTTOMMARGIN, 421
    END
END
#endif    // APSTUDIO_INVOKED

#endif    // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////

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


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

// (temp change to touch this file or incremental builds may break now
// that we removed chrome_dll_version.rc from it)
