// 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

#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)
