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


LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

STRINGTABLE DISCARDABLE
{
    IDS_HTMLDISABLED    "HTML rendering is currently disabled."
    IDS_HTMLDOCUMENT    "HTML Document"
    IDS_DOWNLOADING     "Downloading..."
    IDS_INSTALLING      "Installing..."
}

ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE  0, 0, 260, 85
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Wine Gecko Installer"
FONT 8, "MS Shell Dlg"
{
    LTEXT "This application is trying to show an HTML page. Wine needs Gecko (Mozilla HTML " \
          "engine) to be installed to show the page. Click install if you want Wine to " \
          "automatically download and install Gecko.", ID_DWL_STATUS, 10, 10, 240, 30, SS_LEFT
    CONTROL "Progress", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12
    PUSHBUTTON "Cancel", IDCANCEL, 140, 60, 50, 15, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Install", ID_DWL_INSTALL, 200, 60, 50, 15, WS_GROUP | WS_TABSTOP
}

/* FIXME: This should be in shdoclc.dll */

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 &Favourites",     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 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 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 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 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 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 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 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
    }
}
