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 MAGNIFIER_H_ 00024 #define MAGNIFIER_H_ 00025 00026 00027 #ifdef __cplusplus 00028 extern "C" { 00029 #endif /* __cplusplus */ 00030 00031 #include <X11/Xlib.h> 00032 #include <gdk/gdk.h> 00033 #include <bonobo/bonobo-object.h> 00034 #include <bonobo/bonobo-property-bag.h> 00035 #include <login-helper/login-helper.h> 00036 #include "GNOME_Magnifier.h" 00037 00038 #define MAGNIFIER_TYPE (magnifier_get_type ()) 00039 #define MAGNIFIER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MAGNIFIER_TYPE, Magnifier)) 00040 #define MAGNIFIER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), MAGNIFIER_TYPE, MagnifierClass)) 00041 #define IS_MAGNIFIER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MAGNIFIER_TYPE)) 00042 #define IS_MAGNIFIER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), MAGNIFIER_TYPE)) 00043 00044 #define MAGNIFIER_OAFIID "OAFIID:GNOME_Magnifier_Magnifier:0.9" 00045 00046 typedef struct _MagnifierPrivate MagnifierPrivate; 00047 00048 typedef struct { 00049 BonoboObject parent; 00050 BonoboPropertyBag *property_bag; 00051 GdkDisplay *source_display; 00052 GdkDisplay *target_display; 00053 gchar *source_display_name; 00054 gchar *target_display_name; 00055 int source_screen_num; 00056 int target_screen_num; 00057 GList *zoom_regions; 00058 gboolean source_initialized; 00059 gint crosswire_size; 00060 guint32 crosswire_color; 00061 gboolean crosswire_clip; 00062 gchar *cursor_set; 00063 gint cursor_size_x; 00064 gint cursor_size_y; 00065 guint32 cursor_color; 00066 float cursor_scale_factor; 00067 GNOME_Magnifier_RectBounds source_bounds; 00068 GNOME_Magnifier_RectBounds target_bounds; 00069 GNOME_Magnifier_Point cursor_hotspot; 00070 MagnifierPrivate *priv; 00071 } Magnifier; 00072 00073 typedef struct { 00074 BonoboObjectClass parent_class; 00075 POA_GNOME_Magnifier_Magnifier__epv epv; 00076 } MagnifierClass; 00077 00078 GdkDrawable *magnifier_get_cursor (Magnifier *magnifier); 00079 GType magnifier_get_type (void); 00080 GdkWindow *magnifier_get_root (Magnifier *magnifier); 00081 Magnifier *magnifier_new (gboolean override_redirect); 00082 gboolean magnifier_error_check (void); 00083 void magnifier_notify_damage (Magnifier *magnifier, XRectangle *rect); 00084 gboolean magnifier_source_has_damage_extension (Magnifier *magnifier); 00085 #ifdef __cplusplus 00086 } 00087 #endif /* __cplusplus */ 00088 00089 #endif /* MAGNIFIER_H_ */