Enhancements to Magnifier.idl, based on feedback from Gnopernicus team.
[platform/core/uifw/at-spi2-atk.git] / util / idl / Magnifier.idl
1 /* 
2  * AT-SPI - Assistive Technology Service Provider Interface 
3  * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
4  *
5  * Copyright 2001 Sun Microsystems Inc.
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public
18  * License along with this library; if not, write to the
19  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20  * Boston, MA 02111-1307, USA.
21  */
22
23 #ifndef _ACCESSIBILITY_MAGNIFIER_IDL
24 #define _ACCESSIBILITY_MAGNIFIER_IDL
25
26 #include <Bonobo.idl>
27
28 module Accessibility {
29   
30   interface Magnifier : Bonobo::Unknown {
31
32     /**
33      * void setMagFactor: sets the current x and y magnification ratio.
34      * @zoom_region: the index of the affected zoom region.
35      * @magX: the magnification factor in the x direction for the specified region. 
36      * @magY: the magnification factor in the x direction for the specified region. 
37      **/
38     oneway void setMagFactor (in short zoom_region, in float magX, in float magY);
39
40     /**
41      * #attribute SourceDisplay: a @string containing the X display name
42      *                            containing the region to be magnified.
43      **/
44     attribute string SourceDisplay;
45
46     /**
47      * #attribute TargetDisplay: a @string containing the X display name
48      *                           where the magnifier pixels are to be displayed.
49      **/
50     attribute string TargetDisplay;
51
52     /**
53      * oneway void setROI:
54      * Sets the region of interest for the magnifier.
55      * @zoom_region: the index of the affected zoom region.
56      * @x1: the minimum X coordinate of the ROI bounding box
57      * @x2: the maximum X coordinate of the ROI bounding box
58      * @y1: the minimum Y coordinate of the ROI bounding box
59      * @y2: the maximum Y coordinate of the ROI bounding box
60      **/
61     oneway void setROI (in short zoom_region, 
62                         in long x1, in long y1, in long x2, in long y2);
63
64     /**
65      * oneway void setROI:
66      * Sets the region of interest for the zoom region.
67      * If the zoom region was previously 'unmanaged', this associates
68      * it with the ROI.
69      * @zoom_region: the index of the affected zoom region.
70      * @x1: the minimum X coordinate of the ROI bounding box
71      * @x2: the maximum X coordinate of the ROI bounding box
72      * @y1: the minimum Y coordinate of the ROI bounding box
73      * @y2: the maximum Y coordinate of the ROI bounding box
74      **/
75     oneway void markDirty (in short zoom_region,
76                            in long x1, in long y1, in long x2, in long y2); 
77
78     /**
79      * oneway void markUnmanaged:
80      * Mark a zoom region as 'unmanaged', meaning that it should not
81      * attempt to get pixels from the source display but will have its
82      * pixels drawn by a client.
83      * @zoom_region: the index of the affected zoom region.
84      **/
85     oneway void markUnmanaged (in short zoom_region);
86
87     /**
88      * short createZoomRegion:
89      * Creates a new zoom region for the magnifier.
90      * The new region is initially unmanaged'.
91      * @zx: the scale factor in the x direction for the new zoom region
92      * @zy: the scale factor in the y direction for the new zoom region
93      * @x1: the minimum X coordinate of the zoomed area bounding box
94      * @x2: the maximum X coordinate of the zoomed area bounding box
95      * @y1: the minimum Y coordinate of the zoomed area bounding box
96      * @y2: the maximum Y coordinate of the zoomed area bounding box
97      **/
98     short createZoomRegion (in float zx, in float zy,
99                             in long x1, in long y1, 
100                             in long x2, in long y2); 
101
102     /**
103      * boolean getZoomRegionParams:
104      * Queries a specific zoom region for its parameters.
105      * returns: FALSE if the specified zoom region does not exist.
106      * @zoom_region: the index specifying which zoom region to query.
107      * @zx: the scale factor in the x direction for the new zoom region
108      * @zy: the scale factor in the y direction for the new zoom region
109      * @x1: the minimum X coordinate of the zoomed area bounding box
110      * @x2: the maximum X coordinate of the zoomed area bounding box
111      * @y1: the minimum Y coordinate of the zoomed area bounding box
112      * @y2: the maximum Y coordinate of the zoomed area bounding box
113      **/
114     boolean getZoomRegionParams (in short zoom_region,
115                                  out float zx, out float zy,
116                                  out long x1,  out long y1,
117                                  out long x2,  out long y2); 
118
119     /**
120      * void resizeZoomRegion:
121      * Resizes the specified zoom region on the target display.
122      * @zoom_region: the index of the affected zoom region.
123      * @x1: the minimum X coordinate of the zoomed area bounding box
124      * @x2: the maximum X coordinate of the zoomed area bounding box
125      * @y1: the minimum Y coordinate of the zoomed area bounding box
126      * @y2: the maximum Y coordinate of the zoomed area bounding box
127      **/
128     oneway void resizeZoomRegion (in short zoom_region,
129                                   in long x1, in long y1, 
130                                   in long x2, in long y2);
131
132     /** 
133      * void destroyZoomRegion:
134      * Remove the specified zoom region from the magnifier.
135      **/
136     oneway void destroyZoomRegion (in short zoom_region);
137
138     /** 
139      * void clearAllZoomRegions: 
140      * Clears and destroys all currently defined zoom regions.
141      **/
142     void clearAllZoomRegions ();
143
144     /** 
145      * void exit: 
146      * Unmap the current magnifier from the display.
147      **/
148     void exit ();
149
150   };
151 };
152
153 #endif
154