/*
 * Copyright 2005-2006 Jacek Caban
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include "shdoclc.h"

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

STRINGTABLE
{
    IDS_MESSAGE_BOX_TITLE, "Wine Internet Explorer"
}

STRINGTABLE
{
    IDS_PRINT_HEADER_TEMPLATE "&w&bPage &p" /* FIXME: should be "&w&bPage &p of &P" */
    IDS_PRINT_FOOTER_TEMPLATE "#msgctxt#do not translate#&u&b&d"
}

IDR_BROWSE_CONTEXT_MENU MENU
{
    POPUP "" /* Default */
    {
        MENUITEM "&Back",                  IDM_GOBACKWARD
        MENUITEM "F&orward",               IDM_GOFORWARD
        MENUITEM SEPARATOR
        MENUITEM "&Save Background As...", IDM_SAVEBACKGROUND
        MENUITEM "Set As Back&ground",     IDM_SETWALLPAPER
        MENUITEM "&Copy Background",       IDM_COPYBACKGROUND
        MENUITEM "Set as &Desktop Item",   IDM_SETDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "Select &All",            IDM_SELECTALL
        MENUITEM "&Paste",                 IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Create Shor&tcut",       IDM_CREATESHORTCUT
        MENUITEM "Add to &Favorites...",   IDM_ADDFAVORITES
        MENUITEM "&View Source",           IDM_VIEWSOURCE
        MENUITEM SEPARATOR
        MENUITEM "&Encoding",              IDM_LANGUAGE
        MENUITEM SEPARATOR
        MENUITEM "Pr&int",                 IDM_PRINT
        MENUITEM "&Refresh",               _IDM_REFRESH
        MENUITEM SEPARATOR
        MENUITEM "&Properties",            IDM_PROPERTIES
    }

    POPUP "" /* Image */
    {
        MENUITEM "&Open Link",               IDM_FOLLOWLINKC
        MENUITEM "Open Link in &New Window", IDM_FOLLOWLINKN
        MENUITEM "Save Target &As...",       IDM_SAVETARGET
        MENUITEM "&Print Target",            IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "S&how Picture",            IDM_SHOWPICTURE
        MENUITEM "&Save Picture As...",      IDM_SAVEPICTURE
        MENUITEM "&E-mail Picture...",       IDM_MP_EMAILPICTURE
        MENUITEM "Pr&int Picture...",        IDM_MP_PRINTPICTURE
        MENUITEM "&Go to My Pictures",       IDM_MP_MYPICS
        MENUITEM "Set as Back&ground",       IDM_SETWALLPAPER
        MENUITEM "Set as &Desktop Item...",  IDM_SETDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "Cu&t",                     IDM_CUT
        MENUITEM "&Copy",                    IDM_COPY
        MENUITEM "Copy Shor&tcut",           IDM_COPYSHORTCUT
        MENUITEM "&Paste",                   IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Add to &Favorites...",     IDM_ADDFAVORITES
        MENUITEM SEPARATOR
        MENUITEM "P&roperties",              IDM_PROPERTIES
    }

    POPUP "" /* Control */
    {
        MENUITEM "&Undo",       IDM_UNDO
        MENUITEM SEPARATOR
        MENUITEM "Cu&t",        IDM_CUT
        MENUITEM "&Copy",       IDM_COPY
        MENUITEM "&Paste",      IDM_PASTE
        MENUITEM "&Delete",     IDM_DELETE
        MENUITEM SEPARATOR
        MENUITEM "Select &All", IDM_SELECTALL
    }

    POPUP "" /* Table */
    {
        POPUP "&Select"
        {
            MENUITEM "&Cell",         IDM_CELLSELECT
            MENUITEM "&Row",          IDM_ROWSELECT
            MENUITEM "&Column",       IDM_COLUMNSELECT
            MENUITEM "&Table",        IDM_TABLESELECT
        }
        MENUITEM SEPARATOR
        MENUITEM "&Cell Properties",  IDM_CELLPROPERTIES
        MENUITEM "&Table Properties", IDM_TABLEPROPERTIES
    }

    POPUP "" /* 1DSite Select */
    {
        MENUITEM "Cu&t",        IDM_CUT
        MENUITEM "&Copy",       IDM_COPY
        MENUITEM "Paste",       IDM_PASTE
        MENUITEM "Select &All", IDM_SELECTALL
        MENUITEM "&Print",      IDM_PRINT
        MENUITEM SEPARATOR
    }

    POPUP "" /* Anchor */
    {
        MENUITEM "&Open",                IDM_FOLLOWLINKC
        MENUITEM "Open in &New Window",  IDM_FOLLOWLINKN
        MENUITEM "Save Target &As...",   IDM_SAVETARGET
        MENUITEM "&Print Target",        IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "Cut",                  IDM_CUT
        MENUITEM "&Copy",                IDM_COPY
        MENUITEM "Copy Shor&tcut",       IDM_COPYSHORTCUT
        MENUITEM "&Paste",               IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Add to &Favorites...", IDM_ADDFAVORITES
        MENUITEM SEPARATOR
        MENUITEM "P&roperties",          IDM_PROPERTIES
    }

    POPUP "" /* Context Unknown */
    {
        MENUITEM SEPARATOR
    }

    POPUP "" /* DYNSRC Image */
    {
        MENUITEM "&Open Link",               IDM_FOLLOWLINKC
        MENUITEM "Open Link in &New Window", IDM_FOLLOWLINKN
        MENUITEM "Save Target &As...",       IDM_SAVETARGET
        MENUITEM "&Print Target",            IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "S&how Picture",            IDM_SHOWPICTURE
        MENUITEM "&Save Video As...",        IDM_SAVEPICTURE
        MENUITEM "Set as Back&ground",       IDM_SETWALLPAPER
        MENUITEM "Set as &Desktop Item...",  IDM_SETDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "Cu&t",                     IDM_CUT
        MENUITEM "&Copy",                    IDM_COPY
        MENUITEM "Copy Shor&tcut",           IDM_COPYSHORTCUT
        MENUITEM "&Paste",                   IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Add to &Favorites...",     IDM_ADDFAVORITES
        MENUITEM SEPARATOR
        MENUITEM "Play",                     IDM_DYNSRCPLAY
        MENUITEM "Stop",                     IDM_DYNSRCSTOP
        MENUITEM "P&roperties",              IDM_PROPERTIES
    }

    POPUP "" /* ART Image */
    {
        MENUITEM "&Open Link",               IDM_FOLLOWLINKC
        MENUITEM "Open Link in &New Window", IDM_FOLLOWLINKN
        MENUITEM "Save Target &As...",       IDM_SAVETARGET
        MENUITEM "&Print Target",            IDM_PRINTTARGET
        MENUITEM SEPARATOR
        MENUITEM "S&how Picture",            IDM_SHOWPICTURE
        MENUITEM "&Save Picture As...",      IDM_SAVEPICTURE
        MENUITEM "Set as Back&ground",       IDM_SETWALLPAPER
        MENUITEM "Set as &Desktop Item...",  IDM_SETDESKTOPITEM
        MENUITEM SEPARATOR
        MENUITEM "Cu&t",                     IDM_CUT
        MENUITEM "&Copy",                    IDM_COPY
        MENUITEM "Copy Shor&tcut",           IDM_COPYSHORTCUT
        MENUITEM "&Paste",                   IDM_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Add to &Favorites...",     IDM_ADDFAVORITES
        MENUITEM SEPARATOR
        MENUITEM "Play",                     IDM_IMGARTPLAY
        MENUITEM "Stop",                     IDM_IMGARTSTOP
        MENUITEM "Rewind",                   IDM_IMGARTREWIND
        MENUITEM SEPARATOR
        MENUITEM "P&roperties",              IDM_PROPERTIES
    }

    POPUP "" /* Debug */
    {
        MENUITEM "Trace Tags",         IDM_TRACETAGS
        MENUITEM "Resource Failures",  IDM_RESOURCEFAILURES
        MENUITEM "Dump Tracking Info", IDM_DUMPTRACKINGINFO
        MENUITEM "Debug Break",        IDM_DEBUGBREAK
        MENUITEM "Debug View",         IDM_DEBUGVIEW
        MENUITEM "Dump Tree",          IDM_DUMPTREE
        MENUITEM "Dump Lines",         IDM_DUMPLINES
        MENUITEM "Dump DisplayTree",   IDM_DUMPDISPLAYTREE
        MENUITEM "Dump FormatCaches",  IDM_DUMPFORMATCACHES
        MENUITEM "Dump LayoutRects",   IDM_DUMPLAYOUTRECTS
        MENUITEM "Memory Monitor",     IDM_MEMORYMONITOR
        MENUITEM "Performance Meters", IDM_PERFORMANCEMETERS
        MENUITEM "Save HTML",          IDM_SAVEHTML
        MENUITEM SEPARATOR
        MENUITEM "&Browse View",       IDM_BROWSEMODE
        MENUITEM "&Edit View",         IDM_EDITMODE
    }

    POPUP "" /* Vertical Scrollbar */
    {
        MENUITEM "Scroll Here",  IDM_SCROLL_HERE
        MENUITEM SEPARATOR
        MENUITEM "Top",          IDM_SCROLL_TOP
        MENUITEM "Bottom",       IDM_SCROLL_BOTTOM
        MENUITEM SEPARATOR
        MENUITEM "Page Up",      IDM_SCROLL_PAGEUP
        MENUITEM "Page Down",    IDM_SCROLL_PAGEDOWN
        MENUITEM SEPARATOR
        MENUITEM "Scroll Up",    IDM_SCROLL_UP
        MENUITEM "Scroll Down",  IDM_SCROLL_DOWN
    }

    POPUP "" /* Horizontal Scrollbar */
    {
        MENUITEM "Scroll Here",  IDM_SCROLL_HERE
        MENUITEM SEPARATOR
        MENUITEM "Left Edge",    IDM_SCROLL_LEFTEDGE
        MENUITEM "Right Edge",   IDM_SCROLL_RIGHTEDGE
        MENUITEM SEPARATOR
        MENUITEM "Page Left",    IDM_SCROLL_PAGELEFT
        MENUITEM "Page Right",   IDM_SCROLL_PAGERIGHT
        MENUITEM SEPARATOR
        MENUITEM "Scroll Left",  IDM_SCROLL_LEFT
        MENUITEM "Scroll Right", IDM_SCROLL_RIGHT
    }
}
