/************************************************************************************************** * * ADOBE SYSTEMS INCORPORATED * Copyright 2013 Adobe Systems Incorporated * All Rights Reserved. * * NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the * terms of the Adobe license agreement accompanying it. If you have received this file from a * source other than Adobe, then your use, modification, or distribution of it requires the prior * written permission of Adobe. * **************************************************************************************************/ /** CSInterface - v8.0.0 */ /** * Stores constants for the window types supported by the CSXS infrastructure. */ function CSXSWindowType() { } /** Constant for the CSXS window type Panel. */ CSXSWindowType._PANEL = "Panel"; /** Constant for the CSXS window type Modeless. */ CSXSWindowType._MODELESS = "Modeless"; /** Constant for the CSXS window type ModalDialog. */ CSXSWindowType._MODAL_DIALOG = "ModalDialog"; /** EvalScript error message */ EvalScript_ErrMessage = "EvalScript error."; /** * @class Version * Defines a version number with major, minor, micro, and special * components. The major, minor and micro values are numeric; the special * value can be any string. * * @param major The major version component, a positive integer up to nine digits long. * @param minor The minor version component, a positive integer up to nine digits long. * @param micro The micro version component, a positive integer up to nine digits long. * @param special The special version component, an arbitrary string. * * @return A new \c Version object. */ function Version(major, minor, micro, special) { this.major = major; this.minor = minor; this.micro = micro; this.special = special; } /** * The maximum value allowed for a numeric version component. * This reflects the maximum value allowed in PlugPlug and the manifest schema. */ Version.MAX_NUM = 999999999; /** * @class VersionBound * Defines a boundary for a version range, which associates a \c Version object * with a flag for whether it is an inclusive or exclusive boundary. * * @param version The \c #Version object. * @param inclusive True if this boundary is inclusive, false if it is exclusive. * * @return A new \c VersionBound object. */ function VersionBound(version, inclusive) { this.version = version; this.inclusive = inclusive; } /** * @class VersionRange * Defines a range of versions using a lower boundary and optional upper boundary. * * @param lowerBound The \c #VersionBound object. * @param upperBound The \c #VersionBound object, or null for a range with no upper boundary. * * @return A new \c VersionRange object. */ function VersionRange(lowerBound, upperBound) { this.lowerBound = lowerBound; this.upperBound = upperBound; } /** * @class Runtime * Represents a runtime related to the CEP infrastructure. * Extensions can declare dependencies on particular * CEP runtime versions in the extension manifest. * * @param name The runtime name. * @param version A \c #VersionRange object that defines a range of valid versions. * * @return A new \c Runtime object. */ function Runtime(name, versionRange) { this.name = name; this.versionRange = versionRange; } /** * @class Extension * Encapsulates a CEP-based extension to an Adobe application. * * @param id The unique identifier of this extension. * @param name The localizable display name of this extension. * @param mainPath The path of the "index.html" file. * @param basePath The base path of this extension. * @param windowType The window type of the main window of this extension. Valid values are defined by \c #CSXSWindowType. * @param width The default width in pixels of the main window of this extension. * @param height The default height in pixels of the main window of this extension. * @param minWidth The minimum width in pixels of the main window of this extension. * @param minHeight The minimum height in pixels of the main window of this extension. * @param maxWidth The maximum width in pixels of the main window of this extension. * @param maxHeight The maximum height in pixels of the main window of this extension. * @param defaultExtensionDataXml The extension data contained in the default \c ExtensionDispatchInfo section of the extension manifest. * @param specialExtensionDataXml The extension data contained in the application-specific \c ExtensionDispatchInfo section of the extension manifest. * @param requiredRuntimeList An array of \c Runtime objects for runtimes required by this extension. * @param isAutoVisible True if this extension is visible on loading. * @param isPluginExtension True if this extension has been deployed in the Plugins folder of the host application. * * @return A new \c Extension object. */ function Extension(id, name, mainPath, basePath, windowType, width, height, minWidth, minHeight, maxWidth, maxHeight, defaultExtensionDataXml, specialExtensionDataXml, requiredRuntimeList, isAutoVisible, isPluginExtension) { this.id = id; this.name = name; this.mainPath = mainPath; this.basePath = basePath; this.windowType = windowType; this.width = width; this.height = height; this.minWidth = minWidth; this.minHeight = minHeight; this.maxWidth = maxWidth; this.maxHeight = maxHeight; this.defaultExtensionDataXml = defaultExtensionDataXml; this.specialExtensionDataXml = specialExtensionDataXml; this.requiredRuntimeList = requiredRuntimeList; this.isAutoVisible = isAutoVisible; this.isPluginExtension = isPluginExtension; } /** * @class CSEvent * A standard JavaScript event, the base class for CEP events. * * @param type The name of the event type. * @param scope The scope of event, can be "GLOBAL" or "APPLICATION". * @param appId The unique identifier of the application that generated the event. * @param extensionId The unique identifier of the extension that generated the event. * * @return A new \c CSEvent object */ function CSEvent(type, scope, appId, extensionId) { this.type = type; this.scope = scope; this.appId = appId; this.extensionId = extensionId; } /** Event-specific data. */ CSEvent.prototype.data = ""; /** * @class SystemPath * Stores operating-system-specific location constants for use in the * \c #CSInterface.getSystemPath() method. * @return A new \c SystemPath object. */ function SystemPath() { } /** The path to user data. */ SystemPath.USER_DATA = "userData"; /** The path to common files for Adobe applications. */ SystemPath.COMMON_FILES = "commonFiles"; /** The path to the user's default document folder. */ SystemPath.MY_DOCUMENTS = "myDocuments"; /** @deprecated. Use \c #SystemPath.Extension. */ SystemPath.APPLICATION = "application"; /** The path to current extension. */ SystemPath.EXTENSION = "extension"; /** The path to hosting application's executable. */ SystemPath.HOST_APPLICATION = "hostApplication"; /** * @class ColorType * Stores color-type constants. */ function ColorType() { } /** RGB color type. */ ColorType.RGB = "rgb"; /** Gradient color type. */ ColorType.GRADIENT = "gradient"; /** Null color type. */ ColorType.NONE = "none"; /** * @class RGBColor * Stores an RGB color with red, green, blue, and alpha values. * All values are in the range [0.0 to 255.0]. Invalid numeric values are * converted to numbers within this range. * * @param red The red value, in the range [0.0 to 255.0]. * @param green The green value, in the range [0.0 to 255.0]. * @param blue The blue value, in the range [0.0 to 255.0]. * @param alpha The alpha (transparency) value, in the range [0.0 to 255.0]. * The default, 255.0, means that the color is fully opaque. * * @return A new RGBColor object. */ function RGBColor(red, green, blue, alpha) { this.red = red; this.green = green; this.blue = blue; this.alpha = alpha; } /** * @class Direction * A point value in which the y component is 0 and the x component * is positive or negative for a right or left direction, * or the x component is 0 and the y component is positive or negative for * an up or down direction. * * @param x The horizontal component of the point. * @param y The vertical component of the point. * * @return A new \c Direction object. */ function Direction(x, y) { this.x = x; this.y = y; } /** * @class GradientStop * Stores gradient stop information. * * @param offset The offset of the gradient stop, in the range [0.0 to 1.0]. * @param rgbColor The color of the gradient at this point, an \c #RGBColor object. * * @return GradientStop object. */ function GradientStop(offset, rgbColor) { this.offset = offset; this.rgbColor = rgbColor; } /** * @class GradientColor * Stores gradient color information. * * @param type The gradient type, must be "linear". * @param direction A \c #Direction object for the direction of the gradient (up, down, right, or left). * @param numStops The number of stops in the gradient. * @param gradientStopList An array of \c #GradientStop objects. * * @return A new \c GradientColor object. */ function GradientColor(type, direction, numStops, arrGradientStop) { this.type = type; this.direction = direction; this.numStops = numStops; this.arrGradientStop = arrGradientStop; } /** * @class UIColor * Stores color information, including the type, anti-alias level, and specific color * values in a color object of an appropriate type. * * @param type The color type, 1 for "rgb" and 2 for "gradient". The supplied color object must correspond to this type. * @param antialiasLevel The anti-alias level constant. * @param color A \c #RGBColor or \c #GradientColor object containing specific color information. * * @return A new \c UIColor object. */ function UIColor(type, antialiasLevel, color) { this.type = type; this.antialiasLevel = antialiasLevel; this.color = color; } /** * @class AppSkinInfo * Stores window-skin properties, such as color and font. All color parameter values are \c #UIColor objects except that systemHighlightColor is \c #RGBColor object. * * @param baseFontFamily The base font family of the application. * @param baseFontSize The base font size of the application. * @param appBarBackgroundColor The application bar background color. * @param panelBackgroundColor The background color of the extension panel. * @param appBarBackgroundColorSRGB The application bar background color, as sRGB. * @param panelBackgroundColorSRGB The background color of the extension panel, as sRGB. * @param systemHighlightColor The highlight color of the extension panel, if provided by the host application. Otherwise, the operating-system highlight color. * * @return AppSkinInfo object. */ function AppSkinInfo(baseFontFamily, baseFontSize, appBarBackgroundColor, panelBackgroundColor, appBarBackgroundColorSRGB, panelBackgroundColorSRGB, systemHighlightColor) { this.baseFontFamily = baseFontFamily; this.baseFontSize = baseFontSize; this.appBarBackgroundColor = appBarBackgroundColor; this.panelBackgroundColor = panelBackgroundColor; this.appBarBackgroundColorSRGB = appBarBackgroundColorSRGB; this.panelBackgroundColorSRGB = panelBackgroundColorSRGB; this.systemHighlightColor = systemHighlightColor; } /** * @class HostEnvironment * Stores information about the environment in which the extension is loaded. * * @param appName The application's name. * @param appVersion The application's version. * @param appLocale The application's current license locale. * @param appUILocale The application's current UI locale. * @param appId The application's unique identifier. * @param isAppOnline True if the application is currently online. * @param appSkinInfo An \c #AppSkinInfo object containing the application's default color and font styles. * * @return A new \c HostEnvironment object. */ function HostEnvironment(appName, appVersion, appLocale, appUILocale, appId, isAppOnline, appSkinInfo) { this.appName = appName; this.appVersion = appVersion; this.appLocale = appLocale; this.appUILocale = appUILocale; this.appId = appId; this.isAppOnline = isAppOnline; this.appSkinInfo = appSkinInfo; } /** * @class HostCapabilities * Stores information about the host capabilities. * * @param EXTENDED_PANEL_MENU True if the application supports panel menu. * @param EXTENDED_PANEL_ICONS True if the application supports panel icon. * @param DELEGATE_APE_ENGINE True if the application supports delegated APE engine. * @param SUPPORT_HTML_EXTENSIONS True if the application supports HTML extensions. * @param DISABLE_FLASH_EXTENSIONS True if the application disables FLASH extensions. * * @return A new \c HostCapabilities object. */ function HostCapabilities(EXTENDED_PANEL_MENU, EXTENDED_PANEL_ICONS, DELEGATE_APE_ENGINE, SUPPORT_HTML_EXTENSIONS, DISABLE_FLASH_EXTENSIONS) { this.EXTENDED_PANEL_MENU = EXTENDED_PANEL_MENU; this.EXTENDED_PANEL_ICONS = EXTENDED_PANEL_ICONS; this.DELEGATE_APE_ENGINE = DELEGATE_APE_ENGINE; this.SUPPORT_HTML_EXTENSIONS = SUPPORT_HTML_EXTENSIONS; this.DISABLE_FLASH_EXTENSIONS = DISABLE_FLASH_EXTENSIONS; // Since 5.0.0 } /** * @class ApiVersion * Stores current api version. * * Since 4.2.0 * * @param major The major version * @param minor The minor version. * @param micro The micro version. * * @return ApiVersion object. */ function ApiVersion(major, minor, micro) { this.major = major; this.minor = minor; this.micro = micro; } /** * @class MenuItemStatus * Stores flyout menu item status * * Since 5.2.0 * * @param menuItemLabel The menu item label. * @param enabled True if user wants to enable the menu item. * @param checked True if user wants to check the menu item. * * @return MenuItemStatus object. */ function MenuItemStatus(menuItemLabel, enabled, checked) { this.menuItemLabel = menuItemLabel; this.enabled = enabled; this.checked = checked; } /** * @class ContextMenuItemStatus * Stores the status of the context menu item. * * Since 5.2.0 * * @param menuItemID The menu item id. * @param enabled True if user wants to enable the menu item. * @param checked True if user wants to check the menu item. * * @return MenuItemStatus object. */ function ContextMenuItemStatus(menuItemID, enabled, checked) { this.menuItemID = menuItemID; this.enabled = enabled; this.checked = checked; } //------------------------------ CSInterface ---------------------------------- /** * @class CSInterface * This is the entry point to the CEP extensibility infrastructure. * Instantiate this object and use it to: *
requestOpenExtension("HLP", "");
*
*/
CSInterface.prototype.requestOpenExtension = function(extensionId, params)
{
window.__adobe_cep__.requestOpenExtension(extensionId, params);
};
/**
* Retrieves the list of extensions currently loaded in the current host application.
* The extension list is initialized once, and remains the same during the lifetime
* of the CEP session.
*
* @param extensionIds Optional, an array of unique identifiers for extensions of interest.
* If omitted, retrieves data for all extensions.
*
* @return Zero or more \c #Extension objects.
*/
CSInterface.prototype.getExtensions = function(extensionIds)
{
var extensionIdsStr = JSON.stringify(extensionIds);
var extensionsStr = window.__adobe_cep__.getExtensions(extensionIdsStr);
var extensions = JSON.parse(extensionsStr);
return extensions;
};
/**
* Retrieves network-related preferences.
*
* @return A JavaScript object containing network preferences.
*/
CSInterface.prototype.getNetworkPreferences = function()
{
var result = window.__adobe_cep__.getNetworkPreferences();
var networkPre = JSON.parse(result);
return networkPre;
};
/**
* Initializes the resource bundle for this extension with property values
* for the current application and locale.
* To support multiple locales, you must define a property file for each locale,
* containing keyed display-string values for that locale.
* See localization documentation for Extension Builder and related products.
*
* Keys can be in the
* form key.value="localized string"
, for use in HTML text elements.
* For example, in this input element, the localized \c key.value string is displayed
* instead of the empty \c value string:
*
*
*
* @return An object containing the resource bundle information.
*/
CSInterface.prototype.initResourceBundle = function()
{
var resourceBundle = JSON.parse(window.__adobe_cep__.initResourceBundle());
var resElms = document.querySelectorAll('[data-locale]');
for (var n = 0; n < resElms.length; n++)
{
var resEl = resElms[n];
// Get the resource key from the element.
var resKey = resEl.getAttribute('data-locale');
if (resKey)
{
// Get all the resources that start with the key.
for (var key in resourceBundle)
{
if (key.indexOf(resKey) === 0)
{
var resValue = resourceBundle[key];
if (key.length == resKey.length)
{
resEl.innerHTML = resValue;
}
else if ('.' == key.charAt(resKey.length))
{
var attrKey = key.substring(resKey.length + 1);
resEl[attrKey] = resValue;
}
}
}
}
}
return resourceBundle;
};
/**
* Writes installation information to a file.
*
* @return The file path.
*/
CSInterface.prototype.dumpInstallationInfo = function()
{
return window.__adobe_cep__.dumpInstallationInfo();
};
/**
* Retrieves version information for the current Operating System,
* See http://www.useragentstring.com/pages/Chrome/ for Chrome \c navigator.userAgent values.
*
* @return A string containing the OS version, or "unknown Operation System".
* If user customizes the User Agent by setting CEF command parameter "--user-agent", only
* "Mac OS X" or "Windows" will be returned.
*/
CSInterface.prototype.getOSInformation = function()
{
var userAgent = navigator.userAgent;
if ((navigator.platform == "Win32") || (navigator.platform == "Windows"))
{
var winVersion = "Windows";
var winBit = "";
if (userAgent.indexOf("Windows") > -1)
{
if (userAgent.indexOf("Windows NT 5.0") > -1)
{
winVersion = "Windows 2000";
}
else if (userAgent.indexOf("Windows NT 5.1") > -1)
{
winVersion = "Windows XP";
}
else if (userAgent.indexOf("Windows NT 5.2") > -1)
{
winVersion = "Windows Server 2003";
}
else if (userAgent.indexOf("Windows NT 6.0") > -1)
{
winVersion = "Windows Vista";
}
else if (userAgent.indexOf("Windows NT 6.1") > -1)
{
winVersion = "Windows 7";
}
else if (userAgent.indexOf("Windows NT 6.2") > -1)
{
winVersion = "Windows 8";
}
else if (userAgent.indexOf("Windows NT 6.3") > -1)
{
winVersion = "Windows 8.1";
}
else if (userAgent.indexOf("Windows NT 10") > -1)
{
winVersion = "Windows 10";
}
if (userAgent.indexOf("WOW64") > -1 || userAgent.indexOf("Win64") > -1)
{
winBit = " 64-bit";
}
else
{
winBit = " 32-bit";
}
}
return winVersion + winBit;
}
else if ((navigator.platform == "MacIntel") || (navigator.platform == "Macintosh"))
{
var result = "Mac OS X";
if (userAgent.indexOf("Mac OS X") > -1)
{
result = userAgent.substring(userAgent.indexOf("Mac OS X"), userAgent.indexOf(")"));
result = result.replace(/_/g, ".");
}
return result;
}
return "Unknown Operation System";
};
/**
* Opens a page in the default system browser.
*
* Since 4.2.0
*
* @param url The URL of the page/file to open, or the email address.
* Must use HTTP/HTTPS/file/mailto protocol. For example:
* "http://www.adobe.com"
* "https://github.com"
* "file:///C:/log.txt"
* "mailto:test@adobe.com"
*
* @return One of these error codes:\n
*