Update Spanish translation
[gnumeric.git] / src / gnumeric-simple-canvas.c
blobd912242906fc9dd8d96504db3422599edb607a11
1 #include <gnumeric-config.h>
2 #include <gnumeric.h>
3 #include <gnumeric-simple-canvas.h>
5 #include <sheet-control-gui-priv.h>
6 #include <gutils.h>
7 #include <goffice/goffice.h>
8 #include <gsf/gsf-impl-utils.h>
10 static gboolean debug_canvas_grab;
12 static GtkWidgetClass const *parent;
13 static gint
14 gnm_simple_canvas_key_press (GtkWidget *widget, GdkEventKey *event)
16 GnmSimpleCanvas *gcanvas = GNM_SIMPLE_CANVAS (widget);
18 if (gcanvas->scg->grab_stack > 0)
19 return TRUE;
20 return parent->key_press_event (widget, event);
23 static gint
24 gnm_simple_canvas_key_release (GtkWidget *widget, GdkEventKey *event)
26 GnmSimpleCanvas *gcanvas = GNM_SIMPLE_CANVAS (widget);
28 if (gcanvas->scg->grab_stack > 0)
29 return TRUE;
30 return parent->key_release_event (widget, event);
33 static void
34 gnm_simple_canvas_class_init (GtkWidgetClass *klass)
36 parent = g_type_class_peek_parent (klass);
37 klass->key_press_event = gnm_simple_canvas_key_press;
38 klass->key_release_event = gnm_simple_canvas_key_release;
39 debug_canvas_grab = gnm_debug_flag ("canvas-grab");
42 GSF_CLASS (GnmSimpleCanvas, gnm_simple_canvas,
43 gnm_simple_canvas_class_init, NULL,
44 GOC_TYPE_CANVAS)
46 GocCanvas *
47 gnm_simple_canvas_new (SheetControlGUI *scg)
49 GnmSimpleCanvas *gcanvas = g_object_new (GNM_SIMPLE_CANVAS_TYPE, NULL);
50 gcanvas->scg = scg;
52 return GOC_CANVAS (gcanvas);
55 void
56 gnm_simple_canvas_ungrab (GocItem *item)
58 GnmSimpleCanvas *gcanvas = GNM_SIMPLE_CANVAS(item->canvas);
60 g_return_if_fail (gcanvas != NULL);
62 gcanvas->scg->grab_stack--;
63 if (debug_canvas_grab)
64 g_printerr ("Grab dec to %d\n", gcanvas->scg->grab_stack);
65 goc_item_ungrab (item);
68 void
69 gnm_simple_canvas_grab (GocItem *item)
71 GnmSimpleCanvas *gcanvas = GNM_SIMPLE_CANVAS(item->canvas);
73 g_return_if_fail (gcanvas != NULL);
75 gcanvas->scg->grab_stack++;
76 if (debug_canvas_grab)
77 g_printerr ("Grab inc to %d\n", gcanvas->scg->grab_stack);
78 goc_item_grab (item);