00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef MAGNIFIER_H_
00024 #define MAGNIFIER_H_
00025
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029
00030 #include "GNOME_Magnifier.h"
00031
00032 #include <glib.h>
00033
00034 #include <gdk/gdk.h>
00035
00036 #include <bonobo/bonobo-object.h>
00037 #include <bonobo/bonobo-property-bag.h>
00038
00039 #include <login-helper/login-helper.h>
00040
00041 #define MAGNIFIER_TYPE (magnifier_get_type ())
00042 #define MAGNIFIER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MAGNIFIER_TYPE, Magnifier))
00043 #define MAGNIFIER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), MAGNIFIER_TYPE, MagnifierClass))
00044 #define IS_MAGNIFIER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MAGNIFIER_TYPE))
00045 #define IS_MAGNIFIER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), MAGNIFIER_TYPE))
00046
00047 #define MAGNIFIER_OAFIID "OAFIID:GNOME_Magnifier_Magnifier:0.9"
00048
00049 typedef struct _MagnifierPrivate MagnifierPrivate;
00050
00051 typedef struct {
00052 BonoboObject parent;
00053 BonoboPropertyBag *property_bag;
00054 GdkDisplay *source_display;
00055 GdkDisplay *target_display;
00056 gchar *source_display_name;
00057 gchar *target_display_name;
00058 int source_screen_num;
00059 int target_screen_num;
00060 GList *zoom_regions;
00061 gboolean source_initialized;
00062 gint crosswire_size;
00063 gint crosswire_length;
00064 guint32 crosswire_color;
00065 gboolean crosswire_clip;
00066 gchar *cursor_set;
00067 gint cursor_size_x;
00068 gint cursor_size_y;
00069 guint32 cursor_color;
00070 float cursor_scale_factor;
00071 GNOME_Magnifier_RectBounds source_bounds;
00072 GNOME_Magnifier_RectBounds target_bounds;
00073 GNOME_Magnifier_Point cursor_hotspot;
00074 MagnifierPrivate *priv;
00075 } Magnifier;
00076
00077 typedef struct {
00078 BonoboObjectClass parent_class;
00079 POA_GNOME_Magnifier_Magnifier__epv epv;
00080 } MagnifierClass;
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131 typedef struct timing {
00132 GTimer *process;
00133 GTimer *frame;
00134 GTimer *scale;
00135 GTimer *idle;
00136 gdouble scale_val;
00137 gdouble idle_val;
00138 gdouble frame_val;
00139 int dx;
00140 int dy;
00141 gdouble scale_total;
00142 gdouble idle_total;
00143 gdouble frame_total;
00144 int dx_total;
00145 int dy_total;
00146 long update_pixels_total;
00147 long num_scale_samples;
00148 long num_idle_samples;
00149 long num_frame_samples;
00150 long num_line_samples;
00151 gdouble last_frame_val;
00152 int last_dy;
00153 } TimingStruct;
00154
00155 TimingStruct mag_timing;
00156
00157 GdkDrawable *magnifier_get_cursor (Magnifier *magnifier);
00158 GType magnifier_get_type (void);
00159 GdkWindow *magnifier_get_root (Magnifier *magnifier);
00160 Magnifier *magnifier_new (gboolean override_redirect);
00161 void magnifier_notify_damage (Magnifier *magnifier,
00162 GdkRectangle *rect);
00163 void magnifier_set_cursor_from_pixbuf (Magnifier *magnifier,
00164 GdkPixbuf *pointer_pixbuf);
00165 void magnifier_set_cursor_pixmap_by_name (Magnifier *magnifier,
00166 const gchar *cursor_name,
00167 gboolean source_fallback);
00168 void magnifier_transform_cursor (Magnifier *magnifier);
00169 void magnifier_zoom_regions_update_pointer (Magnifier *magnifier);
00170 gboolean magnifier_full_screen_capable (Magnifier *magnifier);
00171 #ifdef __cplusplus
00172 }
00173 #endif
00174
00175 #endif