mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-08 20:47:44 +00:00
79196ab9b1
This check-in related to bug #25068. This isn't part of the build.
149 lines
5.2 KiB
Plaintext
149 lines
5.2 KiB
Plaintext
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
* Contributor(s):
|
|
*
|
|
* Rusty Lynch <rusty.lynch@intel.com>
|
|
*/
|
|
/*
|
|
* Defines scriptable interface to SANE plugin.
|
|
*/
|
|
|
|
#include "nsISupports.idl"
|
|
#include "domstubs.idl"
|
|
|
|
[scriptable, uuid(10982800-365e-11d3-a2bf-0004ac779ef3)]
|
|
/**
|
|
* This interface can be obtained with the following HTML/JavaScript sequence:
|
|
*
|
|
* <pre>
|
|
* <EMBED type="application/X-sane-plugin"
|
|
* id="SaneObject"
|
|
* onScanComplete="ScanCompleteCallback()"
|
|
* device="hp:/dev/usbscanner"
|
|
* line_width="5"
|
|
* line_style="dash"
|
|
* cap_style="round"
|
|
* join_style="round"
|
|
* width=320 height=240>
|
|
*
|
|
* <form name="myForm">
|
|
* <!-- Scan Selected Region -->
|
|
* <input type="button"
|
|
* value="Start Scan"
|
|
* onClick="scanner.ScanImage()">
|
|
* <!-- many more buttons for controlling scanner/camera... -->
|
|
* </form>
|
|
* <script>
|
|
* var scanner = document.SaneObject.nsISaneControl;
|
|
* dump("scanner = "+ scanner + "\n");
|
|
* </script>
|
|
* </pre>
|
|
*
|
|
* This fragment will create an embedded plugin, which can then be accessed
|
|
* and controlled by the nsISanePluginInstance interface which is instantiated
|
|
* in the script.
|
|
*/
|
|
interface nsISanePluginInstance : nsISupports
|
|
{
|
|
/////////////////////////////////////////////////////////////////////
|
|
// Plugin Status Interface
|
|
|
|
// Read-Only: Contains completion status of last operation
|
|
attribute boolean Success;
|
|
|
|
// Read-Only: Contains the current state of the scanner (IDLE|BUSY)
|
|
attribute string State;
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
// Image Preview Interface
|
|
|
|
// Move zoom box to a given geometry in one step
|
|
void ZoomImage(in unsigned short x, in unsigned short y,
|
|
in unsigned short width, in unsigned short height);
|
|
void ZoomImageWithAttributes(in unsigned short x,
|
|
in unsigned short y,
|
|
in unsigned short width,
|
|
in unsigned short height,
|
|
in long req_line_width,
|
|
in string req_line_style,
|
|
in string req_cap_style,
|
|
in string req_join_style);
|
|
|
|
// Undo all croping and reset zoom box for entire image
|
|
void Restore ();
|
|
|
|
// Zoom in on the image and reset the zoom box to contain
|
|
// the entire image.
|
|
void Crop(in unsigned short x, in unsigned short y,
|
|
in unsigned short width, in unsigned short height);
|
|
|
|
// Read/Write zoom box geometry
|
|
// (Each write will trigger a refresh!)
|
|
attribute unsigned short ZoomX;
|
|
attribute unsigned short ZoomY;
|
|
attribute unsigned short ZoomWidth;
|
|
attribute unsigned short ZoomHeight;
|
|
|
|
// Read/Write zoom box line attributes
|
|
// (Each write will trigger a refresh!)
|
|
attribute long ZoomLineWidth;
|
|
attribute string ZoomLineStyle;
|
|
attribute string ZoomCapStyle;
|
|
attribute string ZoomJoinStyle;
|
|
|
|
// Read-Only zoom box change indicators
|
|
// (For SANE devices that support changing the scan area,
|
|
// this allows for the controling JavaScript to safely adjust
|
|
// the scan area in a device specific manner.)
|
|
attribute float ZoomBR_XChange; // % bottom right x change on last zoom
|
|
attribute float ZoomBR_YChange; // % bottom right y ...
|
|
attribute float ZoomTL_XChange; // % top left x ...
|
|
attribute float ZoomTL_YChange; // % top left y ...
|
|
|
|
// Read/Write JPEG compression attributes
|
|
attribute long Quality;
|
|
attribute string Method;
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Generic SANE Interface
|
|
|
|
// READ_ONLY: returns a colon delimeted list of option descriptions
|
|
// where each option description is a comma delimited
|
|
// list of values
|
|
attribute string DeviceOptions;
|
|
|
|
// Returns or sets the active device.
|
|
attribute string ActiveDevice;
|
|
|
|
// READ_ONLY: returns a comma delimited list of image parameters
|
|
attribute string ImageParameters;
|
|
|
|
// READ_ONLY: returns a comma delimited list of available devices
|
|
attribute string AvailableDevices;
|
|
|
|
// Pull image from device with current option settings.
|
|
// As a side effect, the zoom box is set to contain the
|
|
// entire image.
|
|
void ScanImage();
|
|
void SetOption(in string name, in string value);
|
|
|
|
// Pop up a dialog to save current image to a file
|
|
void SaveImage();
|
|
};
|
|
|
|
%{ C++
|
|
//10982800-365e-11d3-a2bf-0004ac780ef3
|
|
#define NS_SANE_PLUGIN_CONTROL_CID \
|
|
{ 0x10982800, 0x365e, 0x11d3, { 0xa2, 0xbf, 0x0, 0x04, 0xac, 0x78, 0x0e, 0xf3 }}
|
|
|
|
%}
|