zoom-region.c File Reference

#include "config.h"
#include "gmag-graphical-server.h"
#include <stdlib.h>
#include <string.h>
#include <popt.h>
#include <gdk/gdk.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include <libbonobo.h>
#include <math.h>
#include "zoom-region.h"
#include "zoom-region-private.h"
#include "magnifier.h"
#include "magnifier-private.h"

Go to the source code of this file.

Defines

#define DEBUG_CLIENT_CALLS
#define DBG(a)   if (client_debug) { (a); }
#define CLAMP_B_C(v)   (t = (v), CLAMP (t, -1, 1));
#define DEBUG_RECT(a, b)
 DEBUG STUFF.
#define _is_horizontal_rect(r)   ((r)->width > (r)->height)
 EVENT COALESCING.
#define _is_vertical_rect(r)   ((r)->height > (r)->width)
#define CLAMP_UCHAR(v)   (t = (v), CLAMP (t, 0, 255))
#define CLAMP_LOW_MID(v)   (t = (v), CLAMP (t, 0, 127))
#define CLAMP_MID_HIGH(v)   (t = (v), CLAMP (t, 127, 255))

Enumerations

enum  {
  ZOOM_REGION_MANAGED_PROP,
  ZOOM_REGION_POLL_MOUSE_PROP,
  ZOOM_REGION_DRAW_CURSOR_PROP,
  ZOOM_REGION_SMOOTHSCROLL_PROP,
  ZOOM_REGION_COLORBLIND_PROP,
  ZOOM_REGION_INVERT_PROP,
  ZOOM_REGION_SMOOTHING_PROP,
  ZOOM_REGION_CONTRASTR_PROP,
  ZOOM_REGION_CONTRASTG_PROP,
  ZOOM_REGION_CONTRASTB_PROP,
  ZOOM_REGION_BRIGHTR_PROP,
  ZOOM_REGION_BRIGHTG_PROP,
  ZOOM_REGION_BRIGHTB_PROP,
  ZOOM_REGION_XSCALE_PROP,
  ZOOM_REGION_YSCALE_PROP,
  ZOOM_REGION_BORDERSIZE_PROP,
  ZOOM_REGION_BORDERSIZETOP_PROP,
  ZOOM_REGION_BORDERSIZELEFT_PROP,
  ZOOM_REGION_BORDERSIZERIGHT_PROP,
  ZOOM_REGION_BORDERSIZEBOTTOM_PROP,
  ZOOM_REGION_BORDERCOLOR_PROP,
  ZOOM_REGION_XALIGN_PROP,
  ZOOM_REGION_YALIGN_PROP,
  ZOOM_REGION_VIEWPORT_PROP,
  ZOOM_REGION_TESTPATTERN_PROP,
  ZOOM_REGION_TIMING_TEST_PROP,
  ZOOM_REGION_TIMING_OUTPUT_PROP,
  ZOOM_REGION_TIMING_PAN_RATE_PROP,
  ZOOM_REGION_EXIT_MAGNIFIER
}
enum  ZoomRegionPixmapCreationError {
  ZOOM_REGION_ERROR_NONE,
  ZOOM_REGION_ERROR_NO_TARGET_DRAWABLE,
  ZOOM_REGION_ERROR_TOO_BIG
}

Functions

static void zoom_region_sync (ZoomRegion *region)
static void zoom_region_finalize (GObject *object)
static void zoom_region_update (ZoomRegion *zoom_region, const GdkRectangle update_rect)
 zoom_region_update:
static void zoom_region_queue_update (ZoomRegion *zoom_region, const GdkRectangle rect)
static int zoom_region_process_updates (gpointer data)
static void zoom_region_paint (ZoomRegion *zoom_region, GdkRectangle *area)
 Note: clips to region's current GdkWindow.
static void zoom_region_paint_pixmap (ZoomRegion *zoom_region, GdkRectangle *rect)
static int zoom_region_update_pointer_timeout (gpointer data)
static GdkRectangle zoom_region_rect_from_bounds (ZoomRegion *zoom_region, const GNOME_Magnifier_RectBounds *bounds)
static
ZoomRegionPixmapCreationError 
zoom_region_create_pixmap (ZoomRegion *zoom_region)
static GdkRectangle zoom_region_update_pixmap (ZoomRegion *zoom_region, const GdkRectangle update_rect, GdkRectangle *paint_rect)
static void zoom_region_get_move_x_y (ZoomRegion *zoom_region, long *x, long *y)
static void zoom_region_recompute_exposed_bounds (ZoomRegion *zoom_region)
static void zoom_region_update_current (ZoomRegion *zoom_region)
void reset_timing_stats ()
static void _debug_announce_rect (char *msg, GdkRectangle rect)
static gboolean _diff_pixbufs (const GdkPixbuf *a, const GdkPixbuf *b)
static GList * _coalesce_update_rects (GList *q, int min_coalesce_length)
 _coalesce_update_rects : coalesces multiple "vertical" rects and "horizontal" rects into one of each.
static GdkRectangle _rectangle_clip_to_rectangle (GdkRectangle area, GdkRectangle clip_rect)
 COORDINATE CONVERSIONS.
static GdkRectangle _rectangle_clip_to_bounds (GdkRectangle area, GNOME_Magnifier_RectBounds *clip_bounds)
static GdkRectangle zoom_region_clip_to_source (ZoomRegion *zoom_region, GdkRectangle area)
static GdkRectangle zoom_region_clip_to_exposed_target (ZoomRegion *zoom_region, GdkRectangle area)
static GdkRectangle zoom_region_clip_to_scaled_pixmap (ZoomRegion *zoom_region, GdkRectangle area)
static GdkRectangle zoom_region_clip_to_window (ZoomRegion *zoom_region, GdkRectangle area)
static GdkRectangle zoom_region_source_rect_from_view_bounds (ZoomRegion *zoom_region, const GNOME_Magnifier_RectBounds *view_bounds)
static GdkRectangle zoom_region_view_rect_from_source_rect (ZoomRegion *zoom_region, const GdkRectangle source_rect)
static GdkRectangle zoom_region_source_rect_from_view_rect (ZoomRegion *zoom_region, const GdkRectangle view_rect)
static CORBA_boolean zoom_region_update_scale (ZoomRegion *zoom_region, gdouble x, gdouble y)
 **************
static GdkRectangle zoom_region_cursor_rect (ZoomRegion *zoom_region)
static void zoom_region_unpaint_crosswire_cursor (ZoomRegion *zoom_region, GdkRectangle *clip_rect)
static void zoom_region_paint_crosswire_cursor (ZoomRegion *zoom_region, GdkRectangle *clip_rect)
static void zoom_region_unpaint_cursor (ZoomRegion *zoom_region, GdkRectangle *clip_rect)
static void zoom_region_paint_cursor (ZoomRegion *zoom_region, GdkRectangle *clip_rect)
static void zoom_region_coalesce_updates (ZoomRegion *zoom_region)
 zoom_region_coalesce_updates:
static void zoom_region_paint_border (ZoomRegion *zoom_region)
static void zoom_region_expose_handler (GtkWindow *w, GdkEventExpose *event, gpointer data)
static void zoom_region_update_cursor (ZoomRegion *zoom_region, int dx, int dy, GdkRectangle *clip_rect)
static gboolean zoom_region_calculate_scroll_rects (ZoomRegion *zoom_region, int dx, int dy, GdkRectangle *scroll_rect, GdkRectangle *expose_rect_h, GdkRectangle *expose_rect_v)
static void zoom_region_scroll_fast (ZoomRegion *zoom_region, int dx, int dy, GdkRectangle *scroll_rect, GdkRectangle *expose_rect_h, GdkRectangle *expose_rect_v)
static void zoom_region_scroll_smooth (ZoomRegion *zoom_region, int dx, int dy, GdkRectangle *scroll_rect, GdkRectangle *expose_rect_h, GdkRectangle *expose_rect_v)
static void zoom_region_scroll (ZoomRegion *zoom_region, int dx, int dy)
static void zoom_region_set_cursor_pos (ZoomRegion *zoom_region, int x, int y)
static gboolean zoom_region_update_pointer (ZoomRegion *zoom_region, gboolean draw_cursor)
static int zoom_region_update_pointer_idle (gpointer data)
static void zoom_region_moveto (ZoomRegion *zoom_region, const long x, const long y)
static void zoom_region_process_pixbuf (ZoomRegion *zoom_region, GdkPixbuf *pixbuf)
static void zoom_region_post_process_pixbuf (ZoomRegion *zoom_region, GdkPixbuf *subimage, GdkPixbuf *scaled_image)
static GdkPixbuf * zoom_region_get_source_subwindow (ZoomRegion *zoom_region, const GdkRectangle bounds)
static void zoom_region_init_window (ZoomRegion *zoom_region)
void timing_report (ZoomRegion *zoom_region)
static void zoom_region_time_frame (ZoomRegion *zoom_region, Magnifier *magnifier)
static gboolean gdk_timing_idle (gpointer data)
static void zoom_region_align (ZoomRegion *zoom_region)
static void zoom_region_set_viewport (ZoomRegion *zoom_region, const GNOME_Magnifier_RectBounds *viewport)
static void zoom_region_get_property (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id, CORBA_Environment *ev, gpointer user_data)
static void zoom_region_update_borders (ZoomRegion *zoom_region)
static void zoom_region_set_property (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id, CORBA_Environment *ev, gpointer user_data)
static int zoom_region_process_pending (gpointer data)
static int zoom_region_pan_test (gpointer data)
static void impl_zoom_region_set_pointer_pos (PortableServer_Servant servant, const CORBA_long mouse_x, const CORBA_long mouse_y, CORBA_Environment *ev)
static void impl_zoom_region_set_contrast (PortableServer_Servant servant, const CORBA_float R, const CORBA_float G, const CORBA_float B, CORBA_Environment *ev)
static void impl_zoom_region_get_contrast (PortableServer_Servant servant, CORBA_float *R, CORBA_float *G, CORBA_float *B, CORBA_Environment *ev)
static void impl_zoom_region_set_brightness (PortableServer_Servant servant, const CORBA_float R, const CORBA_float G, const CORBA_float B, CORBA_Environment *ev)
static void impl_zoom_region_get_brightness (PortableServer_Servant servant, CORBA_float *R, CORBA_float *G, CORBA_float *B, CORBA_Environment *ev)
static void impl_zoom_region_set_roi (PortableServer_Servant servant, const GNOME_Magnifier_RectBounds *bounds, CORBA_Environment *ev)
static CORBA_boolean impl_zoom_region_set_mag_factor (PortableServer_Servant servant, const CORBA_float mag_factor_x, const CORBA_float mag_factor_y, CORBA_Environment *ev)
static void impl_zoom_region_get_mag_factor (PortableServer_Servant servant, CORBA_float *mag_factor_x, CORBA_float *mag_factor_y, CORBA_Environment *ev)
static Bonobo_PropertyBag impl_zoom_region_get_properties (PortableServer_Servant servant, CORBA_Environment *ev)
static void impl_zoom_region_update_pointer (PortableServer_Servant servant, CORBA_Environment *ev)
static void impl_zoom_region_mark_dirty (PortableServer_Servant servant, const GNOME_Magnifier_RectBounds *roi_dirty, CORBA_Environment *ev)
static GNOME_Magnifier_RectBounds impl_zoom_region_get_roi (PortableServer_Servant servant, CORBA_Environment *ev)
static void impl_zoom_region_move_resize (PortableServer_Servant servant, const GNOME_Magnifier_RectBounds *viewport_bounds, CORBA_Environment *ev)
static void zoom_region_do_dispose (ZoomRegion *zoom_region)
static void impl_zoom_region_dispose (PortableServer_Servant servant, CORBA_Environment *ev)
static void zoom_region_dispose (GObject *object)
static void zoom_region_class_init (ZoomRegionClass *klass)
static void zoom_region_properties_init (ZoomRegion *zoom_region)
static void zoom_region_private_init (ZoomRegionPrivate *priv)
static void zoom_region_init (ZoomRegion *zoom_region)
ZoomRegionzoom_region_new (void)
 BONOBO_TYPE_FUNC_FULL (ZoomRegion, GNOME_Magnifier_ZoomRegion, BONOBO_TYPE_OBJECT, zoom_region)

Variables

static gboolean client_debug = FALSE
static GObjectClass * parent_class = NULL
enum { ... }  PropIdx
gchar * prop_names [ZOOM_REGION_EXIT_MAGNIFIER+1]
static float timing_scale_max = 0
static float timing_idle_max = 0
static float timing_frame_max = 0
static float cps_max = 0
static float nrr_max = 0
static float update_nrr_max = 0
static gboolean reset_timing = FALSE
static gboolean timing_test = FALSE
static guint pending_idle_handler = 0
static gboolean processing_updates = FALSE
static gboolean timing_start = FALSE
static gboolean can_coalesce = TRUE


Define Documentation

#define DEBUG_CLIENT_CALLS

Definition at line 52 of file zoom-region.c.

#define DBG (  )     if (client_debug) { (a); }

Definition at line 56 of file zoom-region.c.

#define CLAMP_B_C (  )     (t = (v), CLAMP (t, -1, 1));

Definition at line 150 of file zoom-region.c.

#define DEBUG_RECT ( a,
 ) 

DEBUG STUFF.

Definition at line 202 of file zoom-region.c.

Referenced by zoom_region_paint_cursor().

#define _is_horizontal_rect (  )     ((r)->width > (r)->height)

EVENT COALESCING.

Definition at line 444 of file zoom-region.c.

#define _is_vertical_rect (  )     ((r)->height > (r)->width)

Definition at line 445 of file zoom-region.c.

#define CLAMP_UCHAR (  )     (t = (v), CLAMP (t, 0, 255))

Referenced by zoom_region_process_pixbuf().

#define CLAMP_LOW_MID (  )     (t = (v), CLAMP (t, 0, 127))

Referenced by zoom_region_process_pixbuf().

#define CLAMP_MID_HIGH (  )     (t = (v), CLAMP (t, 127, 255))

Referenced by zoom_region_process_pixbuf().


Enumeration Type Documentation

anonymous enum

Enumerator:
ZOOM_REGION_MANAGED_PROP 
ZOOM_REGION_POLL_MOUSE_PROP 
ZOOM_REGION_DRAW_CURSOR_PROP 
ZOOM_REGION_SMOOTHSCROLL_PROP 
ZOOM_REGION_COLORBLIND_PROP 
ZOOM_REGION_INVERT_PROP 
ZOOM_REGION_SMOOTHING_PROP 
ZOOM_REGION_CONTRASTR_PROP 
ZOOM_REGION_CONTRASTG_PROP 
ZOOM_REGION_CONTRASTB_PROP 
ZOOM_REGION_BRIGHTR_PROP 
ZOOM_REGION_BRIGHTG_PROP 
ZOOM_REGION_BRIGHTB_PROP 
ZOOM_REGION_XSCALE_PROP 
ZOOM_REGION_YSCALE_PROP 
ZOOM_REGION_BORDERSIZE_PROP 
ZOOM_REGION_BORDERSIZETOP_PROP 
ZOOM_REGION_BORDERSIZELEFT_PROP 
ZOOM_REGION_BORDERSIZERIGHT_PROP 
ZOOM_REGION_BORDERSIZEBOTTOM_PROP 
ZOOM_REGION_BORDERCOLOR_PROP 
ZOOM_REGION_XALIGN_PROP 
ZOOM_REGION_YALIGN_PROP 
ZOOM_REGION_VIEWPORT_PROP 
ZOOM_REGION_TESTPATTERN_PROP 
ZOOM_REGION_TIMING_TEST_PROP 
ZOOM_REGION_TIMING_OUTPUT_PROP 
ZOOM_REGION_TIMING_PAN_RATE_PROP 
ZOOM_REGION_EXIT_MAGNIFIER 

Definition at line 62 of file zoom-region.c.

enum ZoomRegionPixmapCreationError

Enumerator:
ZOOM_REGION_ERROR_NONE 
ZOOM_REGION_ERROR_NO_TARGET_DRAWABLE 
ZOOM_REGION_ERROR_TOO_BIG 

Definition at line 129 of file zoom-region.c.


Function Documentation

static void zoom_region_sync ( ZoomRegion region  )  [static]

Definition at line 2182 of file zoom-region.c.

static void zoom_region_finalize ( GObject *  object  )  [static]

Definition at line 3715 of file zoom-region.c.

static void zoom_region_update ( ZoomRegion zoom_region,
const GdkRectangle  update_rect 
) [static]

zoom_region_update:

: a RectBounds structure indicating the source area to update, in the source coordinate system.

Definition at line 1926 of file zoom-region.c.

static void zoom_region_queue_update ( ZoomRegion zoom_region,
const GdkRectangle  rect 
) [static]

Definition at line 719 of file zoom-region.c.

static int zoom_region_process_updates ( gpointer  data  )  [static]

Definition at line 2026 of file zoom-region.c.

static void zoom_region_paint ( ZoomRegion zoom_region,
GdkRectangle *  rect 
) [static]

Note: clips to region's current GdkWindow.

Definition at line 1175 of file zoom-region.c.

static void zoom_region_paint_pixmap ( ZoomRegion zoom_region,
GdkRectangle *  rect 
) [static]

Definition at line 1144 of file zoom-region.c.

static int zoom_region_update_pointer_timeout ( gpointer  data  )  [static]

Definition at line 1521 of file zoom-region.c.

static GdkRectangle zoom_region_rect_from_bounds ( ZoomRegion zoom_region,
const GNOME_Magnifier_RectBounds bounds 
) [static]

Definition at line 663 of file zoom-region.c.

Referenced by zoom_region_paint_cursor().

static ZoomRegionPixmapCreationError zoom_region_create_pixmap ( ZoomRegion zoom_region  )  [static]

Definition at line 1191 of file zoom-region.c.

static GdkRectangle zoom_region_update_pixmap ( ZoomRegion zoom_region,
const GdkRectangle  update_rect,
GdkRectangle *  paint_rect 
) [static]

XXX: We seem to be breaking with the original intention here, which was to keep a fullscreen scaled pixbuf in-sync.

Definition at line 1828 of file zoom-region.c.

static void zoom_region_get_move_x_y ( ZoomRegion zoom_region,
long *  x,
long *  y 
) [static]

Definition at line 2220 of file zoom-region.c.

static void zoom_region_recompute_exposed_bounds ( ZoomRegion zoom_region  )  [static]

Definition at line 1442 of file zoom-region.c.

static void zoom_region_update_current ( ZoomRegion zoom_region  )  [static]

Definition at line 742 of file zoom-region.c.

void reset_timing_stats (  ) 

Definition at line 172 of file zoom-region.c.

References cps_max, timing::dx_total, timing::dy_total, timing::frame_total, timing::idle_total, timing::last_dy, timing::last_frame_val, mag_timing, nrr_max, timing::num_frame_samples, timing::num_idle_samples, timing::num_line_samples, timing::num_scale_samples, timing::process, timing::scale_total, timing_frame_max, timing_idle_max, timing_scale_max, update_nrr_max, and timing::update_pixels_total.

static void _debug_announce_rect ( char *  msg,
GdkRectangle  rect 
) [static]

Definition at line 205 of file zoom-region.c.

static gboolean _diff_pixbufs ( const GdkPixbuf *  a,
const GdkPixbuf *  b 
) [static]

Definition at line 212 of file zoom-region.c.

static GList* _coalesce_update_rects ( GList *  q,
int  min_coalesce_length 
) [static]

_coalesce_update_rects : coalesces multiple "vertical" rects and "horizontal" rects into one of each.

Can result in overlapping/larger update area for tiled rects, but reduces queue size dramatically.

Definition at line 454 of file zoom-region.c.

static GdkRectangle _rectangle_clip_to_rectangle ( GdkRectangle  area,
GdkRectangle  clip_rect 
) [static]

COORDINATE CONVERSIONS.

clip an area in source coords to the exposed target area

Definition at line 523 of file zoom-region.c.

static GdkRectangle _rectangle_clip_to_bounds ( GdkRectangle  area,
GNOME_Magnifier_RectBounds clip_bounds 
) [static]

Definition at line 535 of file zoom-region.c.

static GdkRectangle zoom_region_clip_to_source ( ZoomRegion zoom_region,
GdkRectangle  area 
) [static]

Definition at line 548 of file zoom-region.c.

static GdkRectangle zoom_region_clip_to_exposed_target ( ZoomRegion zoom_region,
GdkRectangle  area 
) [static]

Definition at line 562 of file zoom-region.c.

static GdkRectangle zoom_region_clip_to_scaled_pixmap ( ZoomRegion zoom_region,
GdkRectangle  area 
) [static]

Definition at line 585 of file zoom-region.c.

static GdkRectangle zoom_region_clip_to_window ( ZoomRegion zoom_region,
GdkRectangle  area 
) [static]

Definition at line 599 of file zoom-region.c.

static GdkRectangle zoom_region_source_rect_from_view_bounds ( ZoomRegion zoom_region,
const GNOME_Magnifier_RectBounds view_bounds 
) [static]

Definition at line 621 of file zoom-region.c.

static GdkRectangle zoom_region_view_rect_from_source_rect ( ZoomRegion zoom_region,
const GdkRectangle  source_rect 
) [static]

Definition at line 635 of file zoom-region.c.

static GdkRectangle zoom_region_source_rect_from_view_rect ( ZoomRegion zoom_region,
const GdkRectangle  view_rect 
) [static]

Definition at line 649 of file zoom-region.c.

static CORBA_boolean zoom_region_update_scale ( ZoomRegion zoom_region,
gdouble  x,
gdouble  y 
) [static]

**************

Definition at line 677 of file zoom-region.c.

static GdkRectangle zoom_region_cursor_rect ( ZoomRegion zoom_region  )  [static]

Definition at line 761 of file zoom-region.c.

Referenced by zoom_region_paint_cursor().

static void zoom_region_unpaint_crosswire_cursor ( ZoomRegion zoom_region,
GdkRectangle *  clip_rect 
) [static]

Definition at line 781 of file zoom-region.c.

static void zoom_region_paint_crosswire_cursor ( ZoomRegion zoom_region,
GdkRectangle *  clip_rect 
) [static]

Definition at line 808 of file zoom-region.c.

static void zoom_region_unpaint_cursor ( ZoomRegion zoom_region,
GdkRectangle *  clip_rect 
) [static]

Definition at line 968 of file zoom-region.c.

static void zoom_region_paint_cursor ( ZoomRegion zoom_region,
GdkRectangle *  clip_rect 
) [static]

Definition at line 979 of file zoom-region.c.

References _ZoomRegionPrivate::cursor_backing_pixels, _ZoomRegionPrivate::cursor_backing_rect, Magnifier::cursor_hotspot, _MagnifierPrivate::cursor_mask, DEBUG_RECT, _ZoomRegionPrivate::default_gc, ZoomRegion::draw_cursor, _ZoomRegionPrivate::last_drawn_crosswire_pos, magnifier_get_cursor(), _ZoomRegionPrivate::paint_cursor_gc, _ZoomRegionPrivate::parent, Magnifier::priv, ZoomRegion::priv, ZoomRegion::viewport, _ZoomRegionPrivate::w, GNOME_Magnifier_Point_type::x, GNOME_Magnifier_Point_type::y, zoom_region_cursor_rect(), and zoom_region_rect_from_bounds().

static void zoom_region_coalesce_updates ( ZoomRegion zoom_region  )  [static]

zoom_region_coalesce_updates:

Definition at line 1075 of file zoom-region.c.

static void zoom_region_paint_border ( ZoomRegion zoom_region  )  [static]

Definition at line 1114 of file zoom-region.c.

References _ZoomRegionPrivate::border, ZoomRegion::border_color, ZoomRegion::border_size_bottom, ZoomRegion::border_size_left, ZoomRegion::border_size_right, ZoomRegion::border_size_top, and ZoomRegion::priv.

static void zoom_region_expose_handler ( GtkWindow *  w,
GdkEventExpose *  event,
gpointer  data 
) [static]

Definition at line 1227 of file zoom-region.c.

static void zoom_region_update_cursor ( ZoomRegion zoom_region,
int  dx,
int  dy,
GdkRectangle *  clip_rect 
) [static]

Definition at line 1258 of file zoom-region.c.

static gboolean zoom_region_calculate_scroll_rects ( ZoomRegion zoom_region,
int  dx,
int  dy,
GdkRectangle *  scroll_rect,
GdkRectangle *  expose_rect_h,
GdkRectangle *  expose_rect_v 
) [static]

Definition at line 1279 of file zoom-region.c.

static void zoom_region_scroll_fast ( ZoomRegion zoom_region,
int  dx,
int  dy,
GdkRectangle *  scroll_rect,
GdkRectangle *  expose_rect_h,
GdkRectangle *  expose_rect_v 
) [static]

Definition at line 1333 of file zoom-region.c.

static void zoom_region_scroll_smooth ( ZoomRegion zoom_region,
int  dx,
int  dy,
GdkRectangle *  scroll_rect,
GdkRectangle *  expose_rect_h,
GdkRectangle *  expose_rect_v 
) [static]

Definition at line 1362 of file zoom-region.c.

static void zoom_region_scroll ( ZoomRegion zoom_region,
int  dx,
int  dy 
) [static]

Definition at line 1388 of file zoom-region.c.

static void zoom_region_set_cursor_pos ( ZoomRegion zoom_region,
int  x,
int  y 
) [static]

Definition at line 1451 of file zoom-region.c.

static gboolean zoom_region_update_pointer ( ZoomRegion zoom_region,
gboolean  draw_cursor 
) [static]

Definition at line 1461 of file zoom-region.c.

static int zoom_region_update_pointer_idle ( gpointer  data  )  [static]

Definition at line 1502 of file zoom-region.c.

static void zoom_region_moveto ( ZoomRegion zoom_region,
const long  x,
const long  y 
) [static]

Definition at line 1538 of file zoom-region.c.

static void zoom_region_process_pixbuf ( ZoomRegion zoom_region,
GdkPixbuf *  pixbuf 
) [static]

Definition at line 1565 of file zoom-region.c.

References ZoomRegion::bright_b, ZoomRegion::bright_g, ZoomRegion::bright_r, CLAMP_LOW_MID, CLAMP_MID_HIGH, CLAMP_UCHAR, ZoomRegion::color_blind_filter, ZoomRegion::contrast_b, ZoomRegion::contrast_g, ZoomRegion::contrast_r, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_HUE_SHIFT_NEGATIVE, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_HUE_SHIFT_POSITIVE, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_MONOCHRONE_OTHERS, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_NO_FILTER, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_BLUE, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_GREEN, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_RED, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_BLUE, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_GREEN, GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_RED, and ZoomRegion::invert.

static void zoom_region_post_process_pixbuf ( ZoomRegion zoom_region,
GdkPixbuf *  subimage,
GdkPixbuf *  scaled_image 
) [static]

ADI: This is where your image smoothing code hooks into the magnifier. This routine can call others which post-process the GdkPixbuf before rendering to the screen.

We can make this a two-stage process also, whereby the post-process code is only called in a lower-priority idle handler, and queues repaints when it is done.

Definition at line 1707 of file zoom-region.c.

static GdkPixbuf* zoom_region_get_source_subwindow ( ZoomRegion zoom_region,
const GdkRectangle  bounds 
) [static]

Definition at line 1724 of file zoom-region.c.

static void zoom_region_init_window ( ZoomRegion zoom_region  )  [static]

Definition at line 1977 of file zoom-region.c.

void timing_report ( ZoomRegion zoom_region  ) 

Definition at line 2059 of file zoom-region.c.

static void zoom_region_time_frame ( ZoomRegion zoom_region,
Magnifier magnifier 
) [static]

Definition at line 2120 of file zoom-region.c.

static gboolean gdk_timing_idle ( gpointer  data  )  [static]

Definition at line 2189 of file zoom-region.c.

static void zoom_region_align ( ZoomRegion zoom_region  )  [static]

Definition at line 2257 of file zoom-region.c.

static void zoom_region_set_viewport ( ZoomRegion zoom_region,
const GNOME_Magnifier_RectBounds viewport 
) [static]

Definition at line 2321 of file zoom-region.c.

static void zoom_region_get_property ( BonoboPropertyBag *  bag,
BonoboArg *  arg,
guint  arg_id,
CORBA_Environment *  ev,
gpointer  user_data 
) [static]

Definition at line 2401 of file zoom-region.c.

static void zoom_region_update_borders ( ZoomRegion zoom_region  )  [static]

Definition at line 2517 of file zoom-region.c.

static void zoom_region_set_property ( BonoboPropertyBag *  bag,
BonoboArg *  arg,
guint  arg_id,
CORBA_Environment *  ev,
gpointer  user_data 
) [static]

Definition at line 2538 of file zoom-region.c.

static int zoom_region_process_pending ( gpointer  data  )  [static]

Definition at line 2714 of file zoom-region.c.

static int zoom_region_pan_test ( gpointer  data  )  [static]

Definition at line 2726 of file zoom-region.c.

static void impl_zoom_region_set_pointer_pos ( PortableServer_Servant  servant,
const CORBA_long  mouse_x,
const CORBA_long  mouse_y,
CORBA_Environment *  ev 
) [static]

Definition at line 2817 of file zoom-region.c.

static void impl_zoom_region_set_contrast ( PortableServer_Servant  servant,
const CORBA_float  R,
const CORBA_float  G,
const CORBA_float  B,
CORBA_Environment *  ev 
) [static]

Definition at line 2858 of file zoom-region.c.

static void impl_zoom_region_get_contrast ( PortableServer_Servant  servant,
CORBA_float *  R,
CORBA_float *  G,
CORBA_float *  B,
CORBA_Environment *  ev 
) [static]

Definition at line 2887 of file zoom-region.c.

static void impl_zoom_region_set_brightness ( PortableServer_Servant  servant,
const CORBA_float  R,
const CORBA_float  G,
const CORBA_float  B,
CORBA_Environment *  ev 
) [static]

Definition at line 2906 of file zoom-region.c.

static void impl_zoom_region_get_brightness ( PortableServer_Servant  servant,
CORBA_float *  R,
CORBA_float *  G,
CORBA_float *  B,
CORBA_Environment *  ev 
) [static]

Definition at line 2935 of file zoom-region.c.

static void impl_zoom_region_set_roi ( PortableServer_Servant  servant,
const GNOME_Magnifier_RectBounds bounds,
CORBA_Environment *  ev 
) [static]

Definition at line 2954 of file zoom-region.c.

static CORBA_boolean impl_zoom_region_set_mag_factor ( PortableServer_Servant  servant,
const CORBA_float  mag_factor_x,
const CORBA_float  mag_factor_y,
CORBA_Environment *  ev 
) [static]

Definition at line 3031 of file zoom-region.c.

static void impl_zoom_region_get_mag_factor ( PortableServer_Servant  servant,
CORBA_float *  mag_factor_x,
CORBA_float *  mag_factor_y,
CORBA_Environment *  ev 
) [static]

Definition at line 3072 of file zoom-region.c.

static Bonobo_PropertyBag impl_zoom_region_get_properties ( PortableServer_Servant  servant,
CORBA_Environment *  ev 
) [static]

Definition at line 3088 of file zoom-region.c.

static void impl_zoom_region_update_pointer ( PortableServer_Servant  servant,
CORBA_Environment *  ev 
) [static]

Definition at line 3102 of file zoom-region.c.

static void impl_zoom_region_mark_dirty ( PortableServer_Servant  servant,
const GNOME_Magnifier_RectBounds roi_dirty,
CORBA_Environment *  ev 
) [static]

Definition at line 3116 of file zoom-region.c.

static GNOME_Magnifier_RectBounds impl_zoom_region_get_roi ( PortableServer_Servant  servant,
CORBA_Environment *  ev 
) [static]

Definition at line 3137 of file zoom-region.c.

static void impl_zoom_region_move_resize ( PortableServer_Servant  servant,
const GNOME_Magnifier_RectBounds viewport_bounds,
CORBA_Environment *  ev 
) [static]

Definition at line 3150 of file zoom-region.c.

static void zoom_region_do_dispose ( ZoomRegion zoom_region  )  [static]

Definition at line 3165 of file zoom-region.c.

Referenced by zoom_region_dispose().

static void impl_zoom_region_dispose ( PortableServer_Servant  servant,
CORBA_Environment *  ev 
) [static]

Definition at line 3187 of file zoom-region.c.

static void zoom_region_dispose ( GObject *  object  )  [static]

Definition at line 3198 of file zoom-region.c.

References ZOOM_REGION, and zoom_region_do_dispose().

static void zoom_region_class_init ( ZoomRegionClass klass  )  [static]

Definition at line 3208 of file zoom-region.c.

static void zoom_region_properties_init ( ZoomRegion zoom_region  )  [static]

Definition at line 3239 of file zoom-region.c.

static void zoom_region_private_init ( ZoomRegionPrivate priv  )  [static]

Definition at line 3630 of file zoom-region.c.

static void zoom_region_init ( ZoomRegion zoom_region  )  [static]

Definition at line 3660 of file zoom-region.c.

ZoomRegion* zoom_region_new ( void   ) 

Definition at line 3708 of file zoom-region.c.

Referenced by impl_magnifier_create_zoom_region().

BONOBO_TYPE_FUNC_FULL ( ZoomRegion  ,
GNOME_Magnifier_ZoomRegion  ,
BONOBO_TYPE_OBJECT  ,
zoom_region   
)


Variable Documentation

gboolean client_debug = FALSE [static]

Definition at line 55 of file zoom-region.c.

GObjectClass* parent_class = NULL [static]

Definition at line 60 of file zoom-region.c.

enum { ... } PropIdx

gchar* prop_names[ZOOM_REGION_EXIT_MAGNIFIER+1]

Definition at line 95 of file zoom-region.c.

float timing_scale_max = 0 [static]

Definition at line 135 of file zoom-region.c.

Referenced by reset_timing_stats().

float timing_idle_max = 0 [static]

Definition at line 136 of file zoom-region.c.

Referenced by reset_timing_stats().

float timing_frame_max = 0 [static]

Definition at line 137 of file zoom-region.c.

Referenced by reset_timing_stats().

float cps_max = 0 [static]

Definition at line 138 of file zoom-region.c.

Referenced by reset_timing_stats().

float nrr_max = 0 [static]

Definition at line 139 of file zoom-region.c.

Referenced by reset_timing_stats().

float update_nrr_max = 0 [static]

Definition at line 140 of file zoom-region.c.

Referenced by reset_timing_stats().

gboolean reset_timing = FALSE [static]

Definition at line 141 of file zoom-region.c.

gboolean timing_test = FALSE [static]

Definition at line 142 of file zoom-region.c.

guint pending_idle_handler = 0 [static]

Definition at line 144 of file zoom-region.c.

gboolean processing_updates = FALSE [static]

Definition at line 145 of file zoom-region.c.

gboolean timing_start = FALSE [static]

Definition at line 146 of file zoom-region.c.

gboolean can_coalesce = TRUE [static]

Definition at line 148 of file zoom-region.c.


Generated on Sun Aug 9 20:57:37 2009 for gnome-mag by  doxygen 1.5.4