williamr@2: /*
williamr@2: * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
williamr@2: * All rights reserved.
williamr@2: * This component and the accompanying materials are made available
williamr@2: * under the terms of the License "Eclipse Public License v1.0"
williamr@2: * which accompanies this distribution, and is available
williamr@2: * at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2: *
williamr@2: * Initial Contributors:
williamr@2: * Nokia Corporation - initial contribution.
williamr@2: *
williamr@2: * Contributors:
williamr@2: *
williamr@2: * Description:  Enum Definition of the Browser Control API
williamr@2: *
williamr@2: */
williamr@2: 
williamr@2: 
williamr@2: #ifndef BRCTLDEFS_H
williamr@2: #define BRCTLDEFS_H
williamr@2: 
williamr@2: //  INCLUDES
williamr@2: 
williamr@2: // DATA TYPES
williamr@2: 
williamr@2: // FORWARD DECLARATIONS
williamr@2: 
williamr@2: // EXPORTED FUNCTION
williamr@2: 
williamr@2: /**
williamr@2: * The TBrCtlDefs class contains definitions of custom data types for the Browser Control API.
williamr@2: *
williamr@2: * Usage:
williamr@2: *
williamr@2: * @code
williamr@2: *  #include <BrCtlDefs.h>
williamr@2: *
williamr@2: * @see S60 Platform: Browser Control API Developer's Guide Version 2.0
williamr@2: * @lib BrowserEngine.lib
williamr@2: * @since 3.0
williamr@2: * @file BrCtlDefs.h
williamr@2: * @endcode     *
williamr@2: */
williamr@2: class TBrCtlDefs
williamr@2:     {
williamr@2:     public:
williamr@2:         /**
williamr@2:          * The Browser Control uses 600 command IDs, whose default
williamr@2:          * range is from 15000 - 15600. The host application can specify
williamr@2:          * any desired range through the API.
williamr@2:          */
williamr@2:         enum TBrCtlCommandId
williamr@2:             {
williamr@2:             ECommandIdBrowserBase = 0, ///< The base Browser ID.
williamr@2:             ECommandIdSubscribeToBase = 90, ///< The SubscribeToBase ID.
williamr@2:             ECommandIdPluginBase = 100, ///< The base plug-in ID.
williamr@2:             ECommandIdWMLBase = 300, ///< The base WML ID.
williamr@2:             ECommandIdRange = 600,   ///< The maximum number of command IDs.
williamr@2:             ECommandIdBase = 15000   ///< The base value for the command IDs.
williamr@2: 
williamr@2:             };
williamr@2:         /**
williamr@2:         * Rules that determine in which mode the cache operates.
williamr@2:         */
williamr@2:         enum TBrCtlCacheMode
williamr@2:             {
williamr@2:             /**
williamr@2:             * Normal caching operation.
williamr@2:             * If the requested entity is in the cache and it has not expired,
williamr@2:             * get it from the cache. If the requested entity is not in the cache,
williamr@2:             * or if it has expired, the browser should request it from the server.
williamr@2:             */
williamr@2:             ECacheModeNormal = 0,
williamr@2:             /**
williamr@2:             * If the requested entity is in the cache, get it from the cache
williamr@2:             * even if it has expired. If the requested entity is not in the cache,
williamr@2:             * the browser should request it from the server.
williamr@2:             */
williamr@2:             ECacheModeHistory,
williamr@2:             /**
williamr@2:             * The browser should request the content from the server even if it is in the cache.
williamr@2:             */
williamr@2:             ECacheModeNoCache,
williamr@2:             /**
williamr@2:             * If the requested entity is in the cache, get it from the cache
williamr@2:             * even if it has expired. If the requested entity is not in the cache,
williamr@2:             * return an error.
williamr@2:             */
williamr@2:             ECacheModeOnlyCache
williamr@2:             };
williamr@2:         /**
williamr@2:         * The host application can send these commands
williamr@2:         * to the Browser Control by calling the HandleCommandL function.
williamr@2:         * @attention The host application should define the base for the command
williamr@2:         * IDs and add that base to the enum value of each command.
williamr@2:         */
williamr@2:         enum TBrCtlCommands
williamr@2:             {
williamr@2:             ECommandDisconnect = 0, ///< Unloads the HTTP Framework
williamr@2:             ECommandCancelFetch, ///< Cancels all outstanding requests
williamr@2:             ECommandOpen, ///< Activates the focused element
williamr@2:             ECommandReload, ///< Reloads the current page
williamr@2:             ECommandBack, ///< Loads the previous page, if available
williamr@2:             /**
williamr@2:             * Loads the next page. This command is used only to return
williamr@2:             * to the next page after going back to a previous page.
williamr@2:             */
williamr@2:             ECommandForward,
williamr@2:             ECommandClearHistory, ///< Clears the history stack
williamr@2:             /**
williamr@2:             * Shows a list of history entries. Do not use this parameter if
williamr@2:             * LoadDataL or InitLoadDataL are used.
williamr@2:             */
williamr@2:             ECommandShowHistory,
williamr@2:             ECommandAccept, ///< Accepts the input data in the editor.
williamr@2:             /**
williamr@2:             * Cancels the input data in the editor. Sets the focus back
williamr@2:             * on the browser after the focus is shifted to a plug-in.
williamr@2:             */
williamr@2:             ECommandCancel,
williamr@2:             ECommandOpenToViewer, ///< Opens object data in an external viewer
williamr@2:             /**
williamr@2:             * Adds the contact information of the link currently selected to
williamr@2:             * the phone book
williamr@2:             */
williamr@2:             ECommandAddToPhoneBook,
williamr@2:             /**
williamr@2:             *Makes a phone call using the phone number in the link currently selected
williamr@2:             */
williamr@2:             ECommandMakeCall,
williamr@2:             ECommandRemoveFileName, ///< Removes the file name from a file selection box
williamr@2:             ECommandShowImages, ///< Shows a list of the images in the current page
williamr@2:             ECommandLoadImages, ///< Loads images when automatic image loading is turned off
williamr@2:             ECommandGainFocus, ///< Called when the Browser Control returns from background
williamr@2:             ECommandLoseFocus, ///< Called when the Browser Control goes to the background
williamr@2:             /**
williamr@2:             * Do not call this parameter. It is a base for the next three commands.
williamr@2:             */
williamr@2:             ECommandFindItem,
williamr@2:             /**
williamr@2:             * Displays the FindItem dialog and highlights all of the
williamr@2:             * phone numbers in the current page. Use this parameter only
williamr@2:             * if you specified the ECapabilityFindItem capability.
williamr@2:             */
williamr@2:             ECommandFindItemPhoneNumber,
williamr@2:             /**
williamr@2:             * Displays the FindItem dialog and highlights all of the e-mail
williamr@2:             * addresses in the current page. Use this parameter only if you
williamr@2:             * specified the ECapabilityFindItem capability.
williamr@2:             */
williamr@2:             ECommandFindItemEMail,
williamr@2:             /**
williamr@2:             * Displays the FindItem dialog and highlights all of the URLs in
williamr@2:             * the current page. Use this parameter only if you specified
williamr@2:             * the ECapabilityFindItem capability.
williamr@2:             */
williamr@2:             ECommandFindItemAddress,
williamr@2:             ECommandFindKeyword, ///< Reserved for future use.
williamr@2:             ECommandClearFind, ///< Reserved for future use.
williamr@2:             ECommandShowThumbnailView, ///< Reserved for future use.
williamr@2:             ECommandShowDownloads, ///< Tells the Download Manager to display the list of downloads.
williamr@2:             /**
williamr@2:             * Saves the following launch parameters when the application
williamr@2:             * unexpectedly shuts down. These parameters all have the prefix ESettingsLaunch:
williamr@2:             * AppUid, ViewId, CustomMessageId
williamr@2:             * When the phone reboots, it uses these parameters to restart
williamr@2:             * the host application and resume the interrupted downloads.
williamr@2:             * NOTE: These parameters must be set before calling this command.
williamr@2:             */
williamr@2:             ECommandSaveLaunchParams,
williamr@2:             ECommandOneStepBack, ///< Reserved for future use.
williamr@2:             ECommandAppForeground, ///<
williamr@2:             ECommandAppBackground, ///<
williamr@2:             ECommandOpenNewWindow, ///<
williamr@2:             ECommandClearAutoFormFillData, ///<
williamr@2:             ECommandClearAutoFormFillPasswordData, ///<
williamr@2:             ECommandFreeMemory, ///<
williamr@2:             ECommandMemoryGood, ///<
williamr@2:             ECommandDumpRenderTree, ///<
williamr@2:             ECommandUnloadWMLEngine, ///<
williamr@2:             ECommandSmartLinkMakeCall, ///<
williamr@2:             ECommandSmartLinkSendMessage, ///<
williamr@2:             ECommandSmartLinkAddToPhoneBook, ///<
williamr@2:             ECommandShowToolBar, ///<Shows the toolbar
williamr@2:             ECommandSmartLinkSendEmail, ///<
williamr@2:             ECommandShowAnchorHref,  ///<Display the URL of a hyperlink - supported only for HTML
williamr@2:             ECommandLoadFocusedImage, ///<Load the focuesd image - supported only for HTML
williamr@2:             ECommandUnLoadPluginWindows, ///<Unload plugin windows
williamr@2:             /**
williamr@2:             * Displays the FindItem dialog and highlights all of the VoIP
williamr@2:             * addresses in the current page. Use this parameter only if you
williamr@2:             * specified the ECapabilityFindItem capability.
williamr@2:             */
williamr@2:             ECommandFindItemVoIPAddress, ///<Find VoIP address item
williamr@2:             ECommandSmartLinkMakeVoipCall,   ///<MakeVoip Callthrough smartlink
williamr@2:             /**
williamr@2:             * Zoom Slider configuration.
williamr@2:             */
williamr@2:             ECommandZoomSliderShow, ///< Zoom slider visible.
williamr@2:             ECommandZoomSliderHide, ///< Zoom slider hidden.
williamr@2:             ECommandHistoryNavigateForward,
williamr@2:             ECommandHistoryNavigateBack,
williamr@2:             /*
williamr@2:              ** Enter/Exit Fullscreen Browsing
williamr@2:              */
williamr@2:              ECommandEnterFullscreenBrowsing,
williamr@2:              ECommandLeaveFullscreenBrowsing,
williamr@2:              ECommandZoomIn,
williamr@2:              ECommandZoomOut
williamr@2:             };
williamr@2:         /**
williamr@2:         * The load event that occurred.
williamr@2:         */
williamr@2:         enum TBrCtlLoadEvent
williamr@2:             {
williamr@2:             EEventNone = 0,                     // Non event, Not used.
williamr@2:             /**
williamr@2:             * A page is beginning to load. This includes images, scripts,
williamr@2:             * style sheets, and anything else embedded in the page as a single load event.
williamr@2:             */
williamr@2:             EEventNewContentStart,
williamr@2:             /** A URL is beginning to load. This notifies the observer of a
williamr@2:             * separate load event for each image or other element embedded in the page.
williamr@2:             */
williamr@2:             EEventUrlLoadingStart,
williamr@2:             /**
williamr@2:             * The first data chunk has arrived. This occurs when the response
williamr@2:             * headers are received.
williamr@2:             */
williamr@2:             EEventNewUrlContentArrived,
williamr@2:             /**
williamr@2:             * Another data chunk has arrived.
williamr@2:             * This occurs for each chunk of data that is loaded, including the first chunk.
williamr@2:             */
williamr@2:             EEventMoreUrlContentArrived,
williamr@2:             /**
williamr@2:             * The first chunk of content is displayed. The previous page is
williamr@2:             * destroyed at this time. This occurs once per page.
williamr@2:             */
williamr@2:             EEventNewContentDisplayed,
williamr@2:             /**
williamr@2:             * Another chunk of content is displayed. This occurs for each
williamr@2:             * chunk of content that is displayed, except for the first chunk.
williamr@2:             */
williamr@2:             EEventMoreContentDisplayed,
williamr@2:             EEventUrlLoadingFinished,           ///< A URL has finished loading.
williamr@2:             /**
williamr@2:             * The page has finished loading. If the host application draws a
williamr@2:             * progress bar, it can be removed when this event is received.
williamr@2:             */
williamr@2:             EEventLoadFinished,
williamr@2:             EEventContentFinished,  ///< The content has finished loading.
williamr@2:             /**
williamr@2:             * A page title was encountered. After receiving this
williamr@2:             * event, the host application can call PageInfoLC to receive the page title.
williamr@2:             */
williamr@2:             EEventTitleAvailable,
williamr@2:             EEventLoadError,      ///< An error occurred while loading the page.
williamr@2:             /**
williamr@2:             * The user is navigating from a non-secure page to a secure page.
williamr@2:             * The host application displays a secure icon, if needed.
williamr@2:             */
williamr@2:             EEventEnteringSecurePage,
williamr@2:             /**
williamr@2:             * The user is navigating from a secure page to a non-secure page.
williamr@2:             * If the host application displays a secure icon, that icon should be removed.
williamr@2:             */
williamr@2:             EEventExitingSecurePage,
williamr@2:             /**
williamr@2:             * The user is entering a secure page that contains non-secure items.
williamr@2:             */
williamr@2:             EEventSomeItemsNotSecure,
williamr@2:             /**
williamr@2:             * The user is submitting information to a non-secure page.
williamr@2:             */
williamr@2:             EEventSubmittingToNonSecurePage,
williamr@2:             /**
williamr@2:             * User confirmation is required to redirect the browser.
williamr@2:             */
williamr@2:             EEventRedirectConfirmation,
williamr@2:             /**
williamr@2:             * User confirmation is required to repost a page that has been viewed previously.
williamr@2:             */
williamr@2:             EEventRepostConfirmation,
williamr@2:             /**
williamr@2:             * The user is entering a non-secure page that contains secure items.
williamr@2:             */
williamr@2:             EEventSecureItemInNonSecurePage,
williamr@2:             /**
williamr@2:             * Authentication failed or was cancelled.
williamr@2:             */
williamr@2:             EEventAuthenticationFailed,
williamr@2:             /**
williamr@2:             * A file is beginning to upload.
williamr@2:             */
williamr@2:             EEventUploadStart,
williamr@2:             /**
williamr@2:             * A file has finished uploading; the last chunk of data has been transmitted.
williamr@2:             */
williamr@2:             EEventUploadFinished,
williamr@2:             /**
williamr@2:             * Length of the data transmitted and the cumulative size of the uploaded file.
williamr@2:             */
williamr@2:             EEventUploadIncrement,
williamr@2:             EEventFaviconAvailable,
williamr@2:             EEventThumbnailAvailable
williamr@2:             };
williamr@2:         /**
williamr@2:         * The setting to manipulate.
williamr@2:         */
williamr@2: 
williamr@2:         enum TBrCtlSettings
williamr@2:             {
williamr@2:             ESettingsUnknown = -1, ///< Not used
williamr@2:             /**
williamr@2:             * If set to On, large pages are optimized for display on a small screen.
williamr@2:             * If set to Off, all pages display in their original format.
williamr@2:             */
williamr@2:             ESettingsSmallScreen = 0,
williamr@2:             /**
williamr@2:             * If set to On, images automatically load when a page is downloaded.
williamr@2:             * If set to Off, images are not loaded. Default: On
williamr@2:             */
williamr@2:             ESettingsAutoLoadImages,
williamr@2:             /**
williamr@2:             * If set to All.Large, all text is shown 40% larger than its declared size.
williamr@2:             * If set to Larger, all text is shown 20% larger than its declared size.
williamr@2:             * If set to Normal, all text is shown as its declared size.
williamr@2:             * If set to Smaller, all text is shown 20% smaller than its declared size.
williamr@2:             * If set to All.Small, all text is shown 40% smaller than its declared size.
williamr@2:             */
williamr@2:             ESettingsFontSize,
williamr@2:             /**
williamr@2:             * If set to On, the host application is embedded within another application.
williamr@2:             * If set to Off, the host application is not embedded within another application.
williamr@2:             */
williamr@2:             ESettingsEmbedded,
williamr@2:             /**
williamr@2:             * If set to On, paragraphs are automatically wrapped to fit into the display width.
williamr@2:             * If set to Off, paragraphs are not automatically wrapped.
williamr@2:             * @attention This parameter is not shown if ESettingsSmallScreen is set to On.
williamr@2:             */
williamr@2:             ESettingsTextWrapEnabled,
williamr@2:             /**
williamr@2:             * If set to Allow, the user can send and receive cookie information.
williamr@2:             * If set to Reject, the user cannot send or receive cookie information.
williamr@2:             */
williamr@2:             ESettingsCookiesEnabled,
williamr@2:             /**
williamr@2:             * If set to Finest, external style sheets are downloaded when
williamr@2:             * Small Screen Layout is used. If set to Fastest, external style
williamr@2:             * sheets are not downloaded when Small Screen Layout is used.
williamr@2:             * Default value: Fastest
williamr@2:             */
williamr@2:             ESettingsCSSFetchEnabled,
williamr@2:             /**
williamr@2:             * If set to Enable, ECMA Script is enabled.
williamr@2:             * If set to Disable, ECMA Script is disabled.
williamr@2:             * Default value: Enable
williamr@2:             */
williamr@2:             ESettingsECMAScriptEnabled,
williamr@2:             /**
williamr@2:             * Device unique identification number sent to a server for billing
williamr@2:             * purposes in e-commerce. If set to Enable, the Browser Control
williamr@2:             * sends the International Mobile Equipment Identity (IMEI) to the server.
williamr@2:             * If set to Disable, the Browser Control does not send the IMEI to the server.
williamr@2:             * Default value: Disable
williamr@2:             */
williamr@2:             ESettingsIMEINotifyEnabled,
williamr@2:             /**
williamr@2:             * Character coding. If set to Automatic, the character set is
williamr@2:             * automatically selected according to the following criteria, in order or priority:
williamr@2:             * 1. Detected from the Byte Order Mark (BOM)
williamr@2:             * 2. Detected from XML Document Type Definition (DTD)
williamr@2:             * 3. Declared in <meta> element
williamr@2:             * 4. Detected from HTTP headers
williamr@2:             * 5. Variant-specific default character set for automatic detection.
williamr@2:             * Possible character codings are:
williamr@2:             * Latin
williamr@2:             * Simplified Chinese
williamr@2:             * Traditional Chinese
williamr@2:             * Unicode (UTF-8)
williamr@2:             * Unicode (ucs-2)
williamr@2:             * ISO 8859 - 2,4,5,7,or 9
williamr@2:             * Hebrew (ISO-Logical)
williamr@2:             * Hebrew (ISO-Visual)
williamr@2:             * Hebrew (Windows)
williamr@2:             * Arabic (ISO)
williamr@2:             * Arabic (Windows)
williamr@2:             * Windows - 1250, 1251, 1253, 1254, or 1257
williamr@2:             * Thai
williamr@2:             * Thai (Windows 874)
williamr@2:             * Shift_jis
williamr@2:             * Euc-jp
williamr@2:             * ISO-2022-jp
williamr@2:             * The default value is variant-specific.
williamr@2:             */
williamr@2:             ESettingsCharacterset,
williamr@2:             /**
williamr@2:             * URL of the initial page. Tells the
williamr@2:             * Browser Control to send the referrer header in the request.
williamr@2:             */
williamr@2:             ESettingsSendRefererHeader,
williamr@2:             /**
williamr@2:             * One of the following:
williamr@2:             * Certificate not valid yet
williamr@2:             * Server certificate expired
williamr@2:             * Server certificate not received
williamr@2:             * Invalid server certificate
williamr@2:             * Authority certificate not valid yet
williamr@2:             * Authority certificate expired
williamr@2:             * Authority certificate not found
williamr@2:             * Authority certificate corrupted
williamr@2:             */
williamr@2:             ESettingsSecurityWarnings,
williamr@2:             /**
williamr@2:             * Default access point for the Browser Control to use when
williamr@2:             * connecting to the network.
williamr@2:             */
williamr@2:             ESettingsApId,
williamr@2:             ESettingsCurrentZoomLevelIndex, ///< Reserved for future use.
williamr@2:             ESettingsPageOverview,  ///< Reserved for future use.
williamr@2:             ESettingsNumOfDownloads, ///< Number of downloads in progress.
williamr@2:             /**
williamr@2:             * UID of the application to
williamr@2:             * restart after a reboot in order to continue an interrupted download.
williamr@2:             */
williamr@2:             ESettingsLaunchAppUid,
williamr@2:             /**
williamr@2:             * View ID of the application to
williamr@2:             * restart after a reboot in order to continue an interrupted download.
williamr@2:             */
williamr@2:             ESettingsLaunchViewId,
williamr@2:             /**
williamr@2:             * Message that asks the user whether to resume the download.
williamr@2:             */
williamr@2:             ESettingsLaunchCustomMessageId, ///< Reserved for future use.
williamr@2:             ESettingsBackList, ///< Reserved for future use.
williamr@2:             ESettingsAutoRefresh, ///< Reserved for future use.
williamr@2:             /**
williamr@2:             * If set, the browser encodes URLs using UTF-8 instead of
williamr@2:             * the original content encoding.
williamr@2:             * @attention This is recommended only for the APAC region.
williamr@2:             */
williamr@2:             ESettingsBrowserUtf8Encoding,
williamr@2:             ESettingsAutoFormFillEnabled, ///< For enabling the auto fill
williamr@2:             ESettingsSavedPage,           ///< Save the page
williamr@2:             ESettingsSmartLink,
williamr@2:             ESettingsAutoOpenDownloads, // For automatically open the downloaded files
williamr@2:             ESettingsDisableFlash, ///<Enable/Disable the flash
williamr@2:             ESettingsScriptLog,         /// script log
williamr@2:             /**
williamr@2:             * Toolbar buttons configuration settings
williamr@2:             */
williamr@2:             ESettingsToolbarOnOff,
williamr@2:             ESettingsToolbarButton1Cmd,
williamr@2:             ESettingsToolbarButton2Cmd,
williamr@2:             ESettingsToolbarButton3Cmd,
williamr@2:             ESettingsToolbarButton4Cmd,
williamr@2:             ESettingsToolbarButton5Cmd,
williamr@2:             ESettingsToolbarButton6Cmd,
williamr@2:             ESettingsToolbarButton7Cmd,
williamr@2:             /**
williamr@2:             * Browser Zoom level configuration settings
williamr@2:             */
williamr@2:             ESettingsZoomLevelMin,          ///< Minimum Zoom level supported
williamr@2:             ESettingsZoomLevelMax,          ///< Maximum Zoom level supported
williamr@2:             ESettingsZoomLevelDefault,      ///< Default Zoom level for new page
williamr@2:             ESettingsMaxEnum              ///< Must be last one
williamr@2:             };
williamr@2: 
williamr@2:             /**
williamr@2:             * The size of the font selected.
williamr@2:             */
williamr@2:         enum TBrCtlFontSizeLevel
williamr@2:             {
williamr@2:             /**
williamr@2:             * Text is shown 40% smaller than its declared size.
williamr@2:             */
williamr@2:             EFontSizeLevelAllSmall = 0,
williamr@2:             /**
williamr@2:             * Text is shown 20% smaller than its declared size.
williamr@2:             */
williamr@2:             EFontSizeLevelSmaller,
williamr@2:             /**
williamr@2:             * Text is shown as its declared size.
williamr@2:             */
williamr@2:             EFontSizeLevelNormal,
williamr@2:             /**
williamr@2:             * Text is shown 20% larger than its declared size.
williamr@2:             */
williamr@2:             EFontSizeLevelLarger,
williamr@2:             /**
williamr@2:             * Text is shown 40% larger than its declared size.
williamr@2:             */
williamr@2:             EFontSizeLevelAllLarge
williamr@2:             };
williamr@2:         /**
williamr@2:         * Configuration options for the Browser Control
williamr@2:         */
williamr@2:         enum TBrCtlCapabilities
williamr@2:             {
williamr@2:             /**
williamr@2:             * Displays horizontal and vertical scroll bars.
williamr@2:             */
williamr@2:             ECapabilityDisplayScrollBar         = 0x0001,
williamr@2:             /**
williamr@2:             * Sends request to load embedded content to the host application.
williamr@2:             * The host application indicates whether or not the load request
williamr@2:             * should proceed.
williamr@2:             */
williamr@2:             ECapabilityClientResolveEmbeddedURL = 0x0002,
williamr@2:             /**
williamr@2:             * Sends request to load a URL to the host application.
williamr@2:             * The host application indicates whether or not the load
williamr@2:             * request should proceed.
williamr@2:             */
williamr@2:             ECapabilityClientNotifyURL          = 0x0004,
williamr@2:             /**
williamr@2:             * Disables input boxes and Netscape plug-ins.
williamr@2:             */
williamr@2:             ECapabilityDisableInputAndPlugins   = 0x0008,
williamr@2:             /**
williamr@2:             * Adds Find Item to the Options menu.
williamr@2:             */
williamr@2:             ECapabilityFindItem                 = 0x0010,
williamr@2:             /**
williamr@2:             * Allows network access for HTTP requests.
williamr@2:             * If this option is not set, HTTP requests will fail.
williamr@2:             */
williamr@2:             ECapabilityLoadHttpFw               = 0x0020,
williamr@2:             /**
williamr@2:             * Employs the Download Manager to download content, such as audio or video files.
williamr@2:             */
williamr@2:             ECapabilityUseDlMgr                 = 0x0040,
williamr@2:             /**
williamr@2:             * Launches a viewer application to view the downloaded content.
williamr@2:             */
williamr@2:             ECapabilityLaunchViewer             = 0x0080,
williamr@2:             ECapabilityGraphicalHistory     = 0x0100, ///< Reserved for future use.
williamr@2:             ECapabilitySavedPage        = 0x0200,  ///< Reserved for future use.
williamr@2:             ECapabilityConfirmDownloads = 0x0400, ///< Enables confirmation dialog in the Download Manager.
williamr@2:             ECapabilityAutoFormFill     = 0x0800,
williamr@2:             ECapabilityCursorNavigation = 0x1000,
williamr@2:             ECapabilityGraphicalPage    = 0x2000,
williamr@2:             ECapabilityAccessKeys       = 0x4000,
williamr@2:             ECapabilityFavicon          = 0x8000,
williamr@2:             ECapabilityToolBar          = 0x00010000,
williamr@2:             ECapabilityWebKitLite       = 0x00020000,
williamr@2:             ECapabilityFitToScreen      = 0x00040000
williamr@2:             };
williamr@2: 
williamr@2:         /**
williamr@2:         * Gets the requested page information.
williamr@2:         */
williamr@2:         enum TBrCtlPageInfo
williamr@2:             {
williamr@2:             EPageInfoTitle = 0, ///< Page title, if a title was specified
williamr@2:             EPageInfoUrl,    ///< URL of the current page
williamr@2:             EPageInfoContent, ///< Page content as a text buffer
williamr@2:             EPageInfoSavedPage, ///< Page content, including all embedded content, as a buffer
williamr@2:             EPageInfoFocusedNodeUrl //< URL of the focused link. The function leaves if the focus is not on an anchor or imagemap
williamr@2:             };
williamr@2:         /**
williamr@2:         * Indicates whether the browser is in Image Map view.
williamr@2:         */
williamr@2:         enum TBrCtlState
williamr@2:             {
williamr@2:             /**
williamr@2:             * Currently, the
williamr@2:             * only state change that can be observed is in and out of Image Map view.
williamr@2:             */
williamr@2:             EStateImageMapView = 0,
williamr@2:             EStateHistoryView, ///< For future use
williamr@2:             EStateThumbnailView, ///< For future use
williamr@2:             EStateWmlView,        ///< For WML view
williamr@2:             EStateSmartTextView,   ///< For Smart text recognition mode
williamr@2:             EStateToolBarMode,      ///< For toolbar
williamr@2:             EStatePluginPlayer,
williamr@2:             EStateScriptLog,
williamr@2:             EStateZoomSliderMode,    ///< For ZoomSlider
williamr@2:             EStateFullscreenBrowsing,    ///< For entering/escaping fullscreen browsing
williamr@2:             EStateHistoryBeginning,
williamr@2:             EStateHistoryEnd,
williamr@2:             EStateSynchRequestMode,  ///< For synchronous (XHR) requests
williamr@2:             EStatePluginFullScreen
williamr@2:             };
williamr@2:         /**
williamr@2:         * Type of the focused element.
williamr@2:         */
williamr@2:         enum TBrCtlElementType
williamr@2:             {
williamr@2:             EElementNone = 0, ///< No element is present.
williamr@2:             EElementImageBox, ///< Box containing an image.
williamr@2:             /**
williamr@2:             * Element used to create either of the following:
williamr@2:             * A link to another document
williamr@2:             * A bookmark within a document
williamr@2:             */
williamr@2:             EElementAnchor,
williamr@2:             EElementTelAnchor, ///< Anchor with a "tel:" scheme
williamr@2:             EElementMailtoAnchor, ///< Anchor with a "mailto:" scheme
williamr@2:             EElementInputBox, ///< Input box that can be selected and activated.
williamr@2:             EElementActivatedInputBox, ///< Input box that contains an entry field into which the user can type.
williamr@2:             /**
williamr@2:             * Box that contains a list of items. The user
williamr@2:             * can select one of the items by clicking it.
williamr@2:             */
williamr@2:             EElementSelectBox,
williamr@2:             /**
williamr@2:             * Push button that can contain text or images. For example, Submit.
williamr@2:             */
williamr@2:             EElementButton,
williamr@2:             EElementTextAreaBox, ///< Input box that contains more than one line.
williamr@2:             EElementRootBox, ///< Root of the document.
williamr@2:             EElementObjectBox, ///< Placeholder for a plug-in that has not yet been downloaded.
williamr@2:             /**
williamr@2:             * Box containing a plug-in that the user can
williamr@2:             * manipulate; for example, by navigating links.
williamr@2:             */
williamr@2:             EElementActivatedObjectBox,
williamr@2:             EElementDownloadedObjectBox, ///< Plug-in that is present but is not being manipulated.
williamr@2:             EElementFileSelectionBoxNoContent, ///< File-browsing box in which no file is selected.
williamr@2:             EElementFileSelectionBoxWithContent, ///< File-browsing box in which a file was selected previously.
williamr@2:             EElementAreaBox, ///< Image map.
williamr@2:             EElementCheckBoxChecked, ///< A check box that was selected.
williamr@2:             EElementCheckBoxUnChecked, ///< A check box that was not selected.
williamr@2:             EElementRadioButtonSelected, ///< A radio button that was selected.
williamr@2:             EElementRadioButtonUnSelected, ///< A radio button that was not selected.
williamr@2: 
williamr@2:             EElementMouseButtonListener, ///< A Mouse button listener
williamr@2:             EElementScrollBar,    ///< A scroll bar
williamr@2: 
williamr@2:             EElementSmartLinkTel, ///< A telephone number in the page.
williamr@2:             EElementSmartLinkEmail, ///< an email address in the page.
williamr@2:             EElementBrokenImage, ///< A missing image
williamr@2:             EElementSmartLinkVoip, ///< A voip smartlink
williamr@2:             EElementSelectMultiBox ///< A select box with multiple select
williamr@2:         };
williamr@2: 
williamr@2:         /**
williamr@2:         * Identifies the navigation direction
williamr@2:         */
williamr@2:         enum TBrCtlNavigationDirection
williamr@2:             {
williamr@2:             ENavigationBack, ///< Navigate to the previous page
williamr@2:             ENavigationForward ///< Navigate to the next page
williamr@2:             };
williamr@2: 
williamr@2:        /**
williamr@2:         * Returns information about the version of the Browser Control.
williamr@2:         */
williamr@2:         enum TBrCtlVersionInfo
williamr@2:           {
williamr@2:           EVersionInfoName = 0, ///< Name of the Browser Control
williamr@2:           EVersionInfoVersion,  ///< Version of the Browser Control
williamr@2:           EVersionInfoBuild,    ///< Build of the Browser Control
williamr@2:           EBrowserVersion   ///< Browser Version
williamr@2:           };
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns information about the version of the Browser Control.
williamr@2:         */
williamr@2:         enum TBrCtlParams
williamr@2:             {
williamr@2:             EParamsUnknown = -1, ///< Not used
williamr@2:             /**
williamr@2:             * List of content types that do not use the Download Manager
williamr@2:             */
williamr@2:             EParamsSelfDownoadableTypes = 0,
williamr@2:             /**
williamr@2:             * List of headers that the Browser Control should add to each request
williamr@2:             */
williamr@2:             EParamsRequestHeaders,
williamr@2:             EParamsMax ///< Not used
williamr@2:             };
williamr@2: 
williamr@2:         /**
williamr@2:         * Reserved for future use
williamr@2:         */
williamr@2:     enum TBrCtlFindResponse
williamr@2:       {
williamr@2:       EFindNoMatches = 0, ///< Reserved for future use
williamr@2:       EFindWrapAround,    ///< Reserved for future use
williamr@2:       EFindAllMatches,    ///< Reserved for future use
williamr@2:       EFindMatch          ///< Reserved for future use
williamr@2:       };
williamr@2: 
williamr@2:     /**
williamr@2:     * Specifies the type of method to call to fetch a URL.
williamr@2:     * The MbrCtlWindowObserver employs this method.
williamr@2:     */
williamr@2:         enum TBrCtlMethod
williamr@2:             {
williamr@2:             /**
williamr@2:             * Get method should be used to fetch content from a URL
williamr@2:             */
williamr@2:             EMethodGet,
williamr@2:             /**
williamr@2:             * POST method should be used to fetch content from a URL
williamr@2:             */
williamr@2:             EMethodPost
williamr@2:             };
williamr@2:      /**
williamr@2:      * Commands sent by the host application
williamr@2:      * to the Browser Control by calling the HandleDownloadCommandL function.
williamr@2:      */
williamr@2:       enum TBrCtlDownloadCmd
williamr@2:       {
williamr@2:       /**
williamr@2:       * Pauses the download identified
williamr@2:       * by the aTransId parameter of the HandleDownloadCommandL function.
williamr@2:       */
williamr@2:       EDownloadCmdPause,
williamr@2:       /**
williamr@2:       * Resumes the download identified by
williamr@2:       * the aTransId parameter of the HandleDownloadCommandL function.
williamr@2:       */
williamr@2:       EDownloadCmdResume,
williamr@2:       /**
williamr@2:       * Cancels the download identified by the
williamr@2:       * aTransId parameter of the HandleDownloadCommandL function.
williamr@2:       */
williamr@2:       EDownloadCmdCancel,
williamr@2:       /**
williamr@2:       * Notifies the Download Manager that the download is progressive.
williamr@2:       * This means that the file can be played while the download is in progress.
williamr@2:       */
williamr@2:       EDownloadCmdMarkAsProgressive,
williamr@2:       /**
williamr@2:       * Notifies the Download Manager that the download is not progressive.
williamr@2:       * This means that the file cannot be played while the download is in progress.
williamr@2:       */
williamr@2:       EDownloadCmdMarkAsNotProgressive
williamr@2:       };
williamr@2: 
williamr@2:     enum TBrCtlBitmapInfo
williamr@2:       {
williamr@2:       EBitmapThumbnail = 0,
williamr@2:       EBitmapFavicon
williamr@2:       };
williamr@2: 
williamr@2:     /**
williamr@2:     * The client commands.
williamr@2:     */
williamr@2:     enum TBrCtlClientCommands
williamr@2:         {
williamr@2:         EClientCommandLaunchFindKeyword = 0,
williamr@2:         EClientCommandSubscribeToFeeds,
williamr@2:         EClientCommandShowContextMenu,
williamr@2:         EClientCommandToolbarSettings,
williamr@2:         EClientCommandGotoWebAddress,
williamr@2:         EClientCommandManageBookmarks,
williamr@2:         EClientCommandSaveAsBookmark,
williamr@2:         EClientCommandZoomIn,
williamr@2:         EClientCommandZoomOut,
williamr@2:         EClientCommandGoToHompage,
williamr@2:         EClientCommandRotateScreen,
williamr@2:         EClientCommandSavePage,
williamr@2:         EClientCommandSwitchWindow,
williamr@2:         EClientCommandShowHelp,
williamr@2:         EClientCommandToolbarConfigure,
williamr@2:         EClientCommandToolbarShowKeymap,
williamr@2:         EClientCommandFullScreen,
williamr@2:         EClientCommandZoomMode
williamr@2:         };
williamr@2: 
williamr@2:     /**
williamr@2:     * The widget params.
williamr@2:     */
williamr@2:     enum TBrCtlWidgetParams
williamr@2:         {
williamr@2:         EWidgetIdentifier = 0,
williamr@2:         EWidgetBundleId,
williamr@2:         EWidgetBasePath,
williamr@2:         EWidgetPublishState
williamr@2:         };
williamr@2: 
williamr@2:     /**
williamr@2:     * Orientation for rotating display
williamr@2:     */
williamr@2:     enum TBrCtlOrientation
williamr@2:         {
williamr@2:         EOrientationUndefined = 0,
williamr@2:         EOrientationLandscape,
williamr@2:         EOrientationPortrait
williamr@2:         };
williamr@2: 
williamr@2:     /**
williamr@2:     * How to notify javascript logs.
williamr@2:     */
williamr@2:     enum TBrCtlScriptLog
williamr@2:             {
williamr@2:             /**
williamr@2:             * script log output disabled
williamr@2:             */
williamr@2:             EScriptLogDisable,
williamr@2:             /**
williamr@2:             * script log output to a log file
williamr@2:             */
williamr@2:             EScriptLogToFile,
williamr@2:             /**
williamr@2:             * script log output to GUI console
williamr@2:             */
williamr@2:             EScriptLogToConsole,
williamr@2:             /**
williamr@2:             * script log output to both GUI console and file
williamr@2:             */
williamr@2:             EScriptLogToConsoleFile
williamr@2:             };
williamr@2: 
williamr@2:     enum TBrCtlFormData
williamr@2:         {
williamr@2:         EFormDataOff,
williamr@2:         EFormDataOnly,
williamr@2:         EFormDataPlusPassword
williamr@2:         };
williamr@2:     };
williamr@2: 
williamr@2: #endif      // BRCTLDEFS_H
williamr@2: 
williamr@2: // End of File