00001 /* 00002 * AT-SPI - Assistive Technology Service Provider Interface 00003 * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) 00004 * 00005 * Copyright 2001 Sun Microsystems Inc. 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Library General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Library General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Library General Public 00018 * License along with this library; if not, write to the 00019 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00020 * Boston, MA 02111-1307, USA. 00021 */ 00022 00023 #ifndef ZOOM_REGION_H_ 00024 #define ZOOM_REGION_H_ 00025 00026 00027 #ifdef __cplusplus 00028 extern "C" { 00029 #endif /* __cplusplus */ 00030 00031 #include <bonobo/bonobo-object.h> 00032 #include "GNOME_Magnifier.h" 00033 00034 #define ZOOM_REGION_TYPE (zoom_region_get_type ()) 00035 #define ZOOM_REGION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ZOOM_REGION_TYPE, ZoomRegion)) 00036 #define ZOOM_REGION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ZOOM_REGION_TYPE, ZoomRegionClass)) 00037 #define IS_ZOOM_REGION(o) (G_TYPE_CHECK__INSTANCE_TYPE ((o), ZOOM_REGION_TYPE)) 00038 #define IS_ZOOM_REGION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ZOOM_REGION_TYPE)) 00039 00040 typedef GList * (*CoalesceFunc)(GList *, int); 00041 00042 typedef struct _ZoomRegionPrivate ZoomRegionPrivate; 00043 00044 typedef struct { 00045 BonoboObject parent; 00046 BonoboPropertyBag *properties; 00047 gboolean invert; 00048 gboolean is_managed; 00049 gboolean draw_cursor; 00050 gboolean cache_source; 00051 gchar *smoothing; 00052 gfloat contrast; 00053 gfloat xscale; 00054 gfloat yscale; 00055 gfloat contrast_r; 00056 gfloat contrast_g; 00057 gfloat contrast_b; 00058 gfloat bright_r; 00059 gfloat bright_g; 00060 gfloat bright_b; 00061 gint border_size; 00062 guint32 border_color; /* A-RGB, 8 bits each, MSB==alpha */ 00063 gint x_align_policy; /* TODO: enums here */ 00064 gint y_align_policy; 00065 GNOME_Magnifier_ZoomRegion_ScrollingPolicy smooth_scroll_policy; 00066 GNOME_Magnifier_ZoomRegion_ColorBlindFilter color_blind_filter; 00067 /* bounds of viewport, in target magnifier window coords */ 00068 GNOME_Magnifier_RectBounds roi; 00069 GNOME_Magnifier_RectBounds viewport; 00070 ZoomRegionPrivate *priv; 00071 CoalesceFunc coalesce_func; 00072 gint timing_iterations; 00073 gboolean timing_output; 00074 gint timing_pan_rate; 00075 gboolean exit_magnifier; 00076 gboolean poll_mouse; 00077 #ifdef ZOOM_REGION_DEBUG 00078 gboolean alive; 00079 #endif 00080 } ZoomRegion; 00081 00082 typedef struct { 00083 BonoboObjectClass parent_class; 00084 POA_GNOME_Magnifier_ZoomRegion__epv epv; 00085 } ZoomRegionClass; 00086 00087 GType zoom_region_get_type (void); 00088 ZoomRegion *zoom_region_new (void); 00089 00090 #ifdef __cplusplus 00091 } 00092 #endif /* __cplusplus */ 00093 00094 #endif /* ZOOM_REGION_H_ */