// 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
    "P",            IDC_ADVANCED_PRINT,         VIRTKEY, CONTROL, SHIFT
    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
    "A",            IDC_TOGGLE_ASH_DESKTOP,     VIRTKEY, CONTROL, SHIFT
END

IDR_CHROMEFRAME ACCELERATORS
BEGIN
    "I",            IDC_DEV_TOOLS,              VIRTKEY, CONTROL, SHIFT
    "J",            IDC_DEV_TOOLS_CONSOLE,      VIRTKEY, CONTROL, SHIFT
    "C",            IDC_DEV_TOOLS_INSPECT,      VIRTKEY, CONTROL, SHIFT
    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\chrome.ico"
IDR_SXS             ICON                        "theme\google_chrome\chrome_sxs.ico"
#else
IDR_MAINFRAME       ICON                        "theme\chromium\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)
