gcompris r3254 - in branches/gcomprixogoo/src: babymatch-activity boards canal_lock-activity click_on_letter-activity crane-activity enumerate-activity gcompris magic_hat_minus-activity paratrooper-activity scalesboard-activity tangram-activity tangram-activity/resources/tangram wordprocessor-activity
- From: bcoudoin svn gnome org
- To: svn-commits-list gnome org
- Subject: gcompris r3254 - in branches/gcomprixogoo/src: babymatch-activity boards canal_lock-activity click_on_letter-activity crane-activity enumerate-activity gcompris magic_hat_minus-activity paratrooper-activity scalesboard-activity tangram-activity tangram-activity/resources/tangram wordprocessor-activity
- Date: Sat, 16 Feb 2008 14:31:10 +0000 (GMT)
Author: bcoudoin
Date: Sat Feb 16 14:31:09 2008
New Revision: 3254
URL: http://svn.gnome.org/viewvc/gcompris?rev=3254&view=rev
Log:
Improved focus management API
Still need to implement it in the python side
Modified:
branches/gcomprixogoo/src/babymatch-activity/shapegame.c
branches/gcomprixogoo/src/boards/menu2.c
branches/gcomprixogoo/src/boards/py-mod-utils.c
branches/gcomprixogoo/src/canal_lock-activity/canal_lock.c
branches/gcomprixogoo/src/click_on_letter-activity/click_on_letter.c
branches/gcomprixogoo/src/crane-activity/crane.c
branches/gcomprixogoo/src/enumerate-activity/enumerate.c
branches/gcomprixogoo/src/gcompris/about.c
branches/gcomprixogoo/src/gcompris/bar.c
branches/gcomprixogoo/src/gcompris/board_config.c
branches/gcomprixogoo/src/gcompris/config.c
branches/gcomprixogoo/src/gcompris/file_selector.c
branches/gcomprixogoo/src/gcompris/gameutil.c
branches/gcomprixogoo/src/gcompris/gameutil.h
branches/gcomprixogoo/src/gcompris/gcompris_confirm.c
branches/gcomprixogoo/src/gcompris/help.c
branches/gcomprixogoo/src/gcompris/images_selector.c
branches/gcomprixogoo/src/magic_hat_minus-activity/magic_hat.c
branches/gcomprixogoo/src/paratrooper-activity/paratrooper.c
branches/gcomprixogoo/src/scalesboard-activity/scale.c
branches/gcomprixogoo/src/tangram-activity/gtans_interface.c
branches/gcomprixogoo/src/tangram-activity/resources/tangram/Makefile.am
branches/gcomprixogoo/src/wordprocessor-activity/wordprocessor.c
Modified: branches/gcomprixogoo/src/babymatch-activity/shapegame.c
==============================================================================
--- branches/gcomprixogoo/src/babymatch-activity/shapegame.c (original)
+++ branches/gcomprixogoo/src/babymatch-activity/shapegame.c Sat Feb 16 14:31:09 2008
@@ -624,14 +624,8 @@
"button_press_event",
(GtkSignalFunc) item_event_ok,
"previous_shapelist");
- g_signal_connect(previous_shapelist_item,
- "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
- g_signal_connect(previous_shapelist_item,
- "leave_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(previous_shapelist_item, NULL);
+
gdk_pixbuf_unref(pixmap);
pixmap = gc_skin_pixmap_load("button_forward.png");
@@ -645,12 +639,7 @@
g_signal_connect(next_shapelist_item, "button_press_event",
(GtkSignalFunc) item_event_ok,
"next_shapelist");
- g_signal_connect(next_shapelist_item, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
- g_signal_connect(next_shapelist_item, "leave_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(next_shapelist_item, NULL);
gdk_pixbuf_unref(pixmap);
g_object_set (next_shapelist_item, "visibility",
GOO_CANVAS_ITEM_INVISIBLE, NULL);
@@ -793,12 +782,7 @@
shape->name,
shape->shapelistgroup_index, current_shapelistgroup_index);
setup_item(item, icon_shape);
- g_signal_connect(item, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
- g_signal_connect(item, "leave_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
}
}
}
@@ -1529,12 +1513,12 @@
/* get the ZOOMY coord of the shape */
zoomy = xmlGetProp_Double(xmlnode, BAD_CAST "zoomy", 1);
- /* get the POSITION of the shape */
+ /* get the POSITION of the shape : DEPRECATED */
/* Position in the xml means:
* 0 = BOTTOM
* 1 or more = TOP
*/
- position = (guint) xmlGetProp_Double(xmlnode, BAD_CAST "position", 0);
+ position = 0;
/* Back to the user locale */
gc_locale_set(locale);
@@ -1653,7 +1637,6 @@
{
GList *shape_list_init = NULL;
xmlNodePtr node;
- GList *list;
GooCanvasItem *item;
int list_length, i;
@@ -1692,18 +1675,6 @@
g_object_set (next_shapelist_item, "visibility", GOO_CANVAS_ITEM_VISIBLE, NULL);
current_shapelistgroup_index = 0;
}
-
- /* Loop through all the shapes and */
- /* Arrange the order (depth) of the shapes on the canvas */
- /* Depending on the xml given definition in the position property */
- for(list = shape_list; list != NULL; list = list->next)
- {
- Shape *shape = list->data;
-
- goo_canvas_item_lower(shape->item, NULL);
- //FIXMEif(shape->position>=1)
- //goo_canvas_item_raise(shape->item, ABS(shape->position));
- }
}
Modified: branches/gcomprixogoo/src/boards/menu2.c
==============================================================================
--- branches/gcomprixogoo/src/boards/menu2.c (original)
+++ branches/gcomprixogoo/src/boards/menu2.c Sat Feb 16 14:31:09 2008
@@ -319,9 +319,7 @@
g_signal_connect (item, "leave_notify_event",
(GtkSignalFunc) on_leave_notify, menuitems);
- g_signal_connect(item, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
}
}
@@ -549,9 +547,7 @@
g_signal_connect (menu_button, "leave_notify_event",
(GtkSignalFunc) on_leave_notify, menuitems);
- g_signal_connect(menu_button, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(menu_button, NULL);
}
@@ -799,11 +795,7 @@
(GtkSignalFunc) item_event,
menuitems);
- g_signal_connect(item, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
-
-
+ gc_item_focus_init(item, NULL);
i++;
}
Modified: branches/gcomprixogoo/src/boards/py-mod-utils.c
==============================================================================
--- branches/gcomprixogoo/src/boards/py-mod-utils.c (original)
+++ branches/gcomprixogoo/src/boards/py-mod-utils.c Sat Feb 16 14:31:09 2008
@@ -100,8 +100,8 @@
/* gint gc_item_focus_event(GooCanvasItem *item,
- GdkEvent *event,
- GooCanvasItem *dest_item);
+ GdkEvent *event,
+ GooCanvasItem *dest_item);
*/
static PyObject*
py_gc_item_focus_event(PyObject* self, PyObject* args)
Modified: branches/gcomprixogoo/src/canal_lock-activity/canal_lock.c
==============================================================================
--- branches/gcomprixogoo/src/canal_lock-activity/canal_lock.c (original)
+++ branches/gcomprixogoo/src/canal_lock-activity/canal_lock.c Sat Feb 16 14:31:09 2008
@@ -277,9 +277,8 @@
g_signal_connect(tuxboat_item, "button-press-event",
(GtkSignalFunc) item_event,
NULL);
- g_signal_connect(tuxboat_item, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(tuxboat_item, NULL);
+
tuxboat_width = gdk_pixbuf_get_width(pixmap);
gdk_pixbuf_unref(pixmap);
Modified: branches/gcomprixogoo/src/click_on_letter-activity/click_on_letter.c
==============================================================================
--- branches/gcomprixogoo/src/click_on_letter-activity/click_on_letter.c (original)
+++ branches/gcomprixogoo/src/click_on_letter-activity/click_on_letter.c Sat Feb 16 14:31:09 2008
@@ -430,7 +430,7 @@
(GtkSignalFunc) item_event, GINT_TO_POINTER(i));
g_signal_connect(buttons[i], "button_press_event",
(GtkSignalFunc) item_event, GINT_TO_POINTER(i));
- // g_signal_connect(GTK_OBJECT(buttons[i]), "enter_notify_event", (GtkSignalFunc) gc_item_focus_event, NULL);
+ gc_item_focus_init(buttons[i], NULL);
}
@@ -516,16 +516,12 @@
if (selected_button != NULL && selected_button != button) {
button_pixmap = gc_pixmap_load("click_on_letter/wagon-yellow.png");
- /* Warning changing the image needs to update pixbuf_ref for the focus usage */
- gc_item_focus_free(selected_button, NULL);
g_object_set(selected_button, "pixbuf", button_pixmap, NULL);
gdk_pixbuf_unref(button_pixmap);
}
if (selected_button != button) {
button_pixmap_selected = gc_pixmap_load("click_on_letter/wagon-green.png");
- /* Warning changing the image needs to update pixbuf_ref for the focus usage */
- gc_item_focus_free(button, NULL);
g_object_set(button, "pixbuf", button_pixmap_selected, NULL);
selected_button = button;
gdk_pixbuf_unref(button_pixmap_selected);
Modified: branches/gcomprixogoo/src/crane-activity/crane.c
==============================================================================
--- branches/gcomprixogoo/src/crane-activity/crane.c (original)
+++ branches/gcomprixogoo/src/crane-activity/crane.c Sat Feb 16 14:31:09 2008
@@ -555,9 +555,7 @@
NULL);
g_signal_connect(item_arrow, "button_press_event",
(GtkSignalFunc) arrow_event, GINT_TO_POINTER(i));
- g_signal_connect(item_arrow, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item_arrow, NULL);
gdk_pixbuf_unref( arrow[i].pixmap);
}
Modified: branches/gcomprixogoo/src/enumerate-activity/enumerate.c
==============================================================================
--- branches/gcomprixogoo/src/enumerate-activity/enumerate.c (original)
+++ branches/gcomprixogoo/src/enumerate-activity/enumerate.c Sat Feb 16 14:31:09 2008
@@ -460,9 +460,7 @@
g_signal_connect(item, "button-press-event",
(GtkSignalFunc) item_event_focus, GINT_TO_POINTER(i));
- g_signal_connect(item, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
answer_item[i] = \
Modified: branches/gcomprixogoo/src/gcompris/about.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/about.c (original)
+++ branches/gcomprixogoo/src/gcompris/about.c Sat Feb 16 14:31:09 2008
@@ -249,9 +249,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_ok,
"ok");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
gdk_pixbuf_unref(pixmap);
@@ -276,9 +274,7 @@
g_signal_connect(item2, "button_press_event",
(GtkSignalFunc) item_event_ok,
"ok");
- g_signal_connect(item2, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- item);
+ gc_item_focus_init(item2, item);
pixmap = gc_skin_pixmap_load("gcompris-about.png");
Modified: branches/gcomprixogoo/src/gcompris/bar.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/bar.c (original)
+++ branches/gcomprixogoo/src/gcompris/bar.c Sat Feb 16 14:31:09 2008
@@ -253,8 +253,6 @@
pixmap = gc_skin_pixmap_load(str);
g_free(str);
- /* Warning changing the image needs to free the focus first */
- gc_item_focus_free(level_item, NULL);
g_object_set (level_item,
"pixbuf", pixmap,
@@ -286,8 +284,6 @@
return;
}
- /* Warning changing the image needs to update pixbuf_ref for the focus usage */
- gc_item_focus_free(repeat_item, NULL);
g_object_set (repeat_item,
"pixbuf", pixmap,
NULL);
@@ -628,10 +624,5 @@
(GtkSignalFunc) item_event_bar,
name);
- g_signal_connect(item, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
- g_signal_connect(item, "leave_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
}
Modified: branches/gcomprixogoo/src/gcompris/board_config.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/board_config.c (original)
+++ branches/gcomprixogoo/src/gcompris/board_config.c Sat Feb 16 14:31:09 2008
@@ -87,6 +87,7 @@
Confcallback(NULL);
Confcallback = NULL;
}
+ gc_bar_hide(FALSE);
g_free(label_markup);
}
@@ -130,15 +131,21 @@
Confcallback = callback;
hash_conf = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
+ gc_bar_hide(TRUE);
+
/* Creating a config window will cause our main window to loose focus,
this tells the main window to ignore the next focus out event (and thus
stay in fullscreen mode if we're fullscreen). */
/* main configuration window */
+ /* FIXME MODAL NO MORE WORK: ONCE THE DIALOG IS REMOVED, THE BAR
+ EVENT NO MORE WORKS
+ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ */
conf_window = \
GTK_WINDOW(gtk_dialog_new_with_buttons ("GCompris",
GTK_WINDOW(gtk_widget_get_toplevel (GTK_WIDGET(gc_board_get_current()->canvas))),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL,
GTK_STOCK_APPLY,
Modified: branches/gcomprixogoo/src/gcompris/config.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/config.c (original)
+++ branches/gcomprixogoo/src/gcompris/config.c Sat Feb 16 14:31:09 2008
@@ -260,9 +260,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_ok,
"fullscreen");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
goo_canvas_text_new (rootitem,
@@ -302,9 +300,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_ok,
"music");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
goo_canvas_text_new (rootitem,
@@ -329,9 +325,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_ok,
"effect");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
goo_canvas_text_new (rootitem,
@@ -453,9 +447,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_ok,
"ok");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
goo_canvas_text_new (rootitem,
_("OK"),
@@ -478,9 +470,7 @@
g_signal_connect(item2, "button_press_event",
(GtkSignalFunc) item_event_ok,
"ok");
- g_signal_connect(item2, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- item);
+ gc_item_focus_init(item2, item);
gdk_pixbuf_unref(pixmap);
@@ -563,9 +553,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_ok,
eventname_previous);
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
gdk_pixbuf_unref(pixmap);
@@ -579,9 +567,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_ok,
eventname_next);
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
gdk_pixbuf_unref(pixmap);
}
@@ -753,8 +739,6 @@
gc_fullscreen_set(properties->fullscreen);
- /* Warning changing the image needs to update pixbuf_ref for the focus usage */
- gc_item_focus_free(item, NULL);
g_object_set (item,
"pixbuf", (properties->fullscreen ? pixmap_checked : pixmap_unchecked),
NULL);
@@ -763,8 +747,6 @@
else if(!strcmp((char *)data, "music"))
{
properties->music = (properties->music ? 0 : 1);
- /* Warning changing the image needs to update pixbuf_ref for the focus usage */
- gc_item_focus_free(item, NULL);
g_object_set (item,
"pixbuf", (properties->music ? pixmap_checked : pixmap_unchecked),
NULL);
@@ -780,8 +762,6 @@
else if(!strcmp((char *)data, "effect"))
{
properties->fx = (properties->fx ? 0 : 1);
- /* Warning changing the image needs to update pixbuf_ref for the focus usage */
- gc_item_focus_free(item, NULL);
g_object_set (item,
"pixbuf", (properties->fx ? pixmap_checked : pixmap_unchecked),
NULL);
Modified: branches/gcomprixogoo/src/gcompris/file_selector.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/file_selector.c (original)
+++ branches/gcomprixogoo/src/gcompris/file_selector.c Sat Feb 16 14:31:09 2008
@@ -261,9 +261,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_file_selector,
"/cancel/");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
item = goo_canvas_text_new (rootitem,
_("CANCEL"),
@@ -277,9 +275,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_file_selector,
"/cancel/");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- item);
+ gc_item_focus_init(item, NULL);
// OK
item = goo_canvas_image_new (rootitem,
@@ -291,9 +287,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_file_selector,
"/ok/");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
item = goo_canvas_text_new (rootitem,
(mode==MODE_LOAD ? _("LOAD") : _("SAVE")),
@@ -307,9 +301,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_file_selector,
"/ok/");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- item);
+ gc_item_focus_init(item, NULL);
gdk_pixbuf_unref(pixmap);
@@ -507,9 +499,7 @@
(GtkSignalFunc) item_event_file_selector,
allfilename);
}
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
g_object_set_data_full (G_OBJECT (item),
"allfilename", allfilename, g_free);
Modified: branches/gcomprixogoo/src/gcompris/gameutil.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/gameutil.c (original)
+++ branches/gcomprixogoo/src/gcompris/gameutil.c Sat Feb 16 14:31:09 2008
@@ -175,48 +175,67 @@
}
/**
- * Free the highlight image from our image_focus system
+ * Init an item so that it has a focus
+ * Optionnaly, provide a target_item that will be focused
+ * by events on source_item.
*
- * It must be called before assigning a new image to an item that
- * already has a focus enabled with gc_item_focus_event().
*/
-void
-gc_item_focus_free(GooCanvasItem *item, void *none)
+#define GAP 4
+void gc_item_focus_init(GooCanvasItem *source_item,
+ GooCanvasItem *target_item)
{
+ GooCanvasItem *highlight_item;
+ GooCanvasBounds bounds;
+
+ if(!target_item)
+ target_item = source_item;
+
+ goo_canvas_item_get_bounds(target_item, &bounds);
+
+ highlight_item = g_object_get_data (G_OBJECT(target_item),
+ "highlight_item");
+
+ /* Create the highlight_item */
+ if(!highlight_item)
+ highlight_item =
+ goo_canvas_rect_new (goo_canvas_item_get_parent(target_item),
+ bounds.x1 - GAP,
+ bounds.y1 - GAP,
+ bounds.x2 - bounds.x1 + GAP*2,
+ bounds.y2 - bounds.y1 + GAP*2,
+ "stroke_color_rgba", 0xFFFFFFFFL,
+ "fill_color_rgba", 0xFF000090L,
+ "line-width", (double) 2,
+ "radius-x", (double) 10,
+ "radius-y", (double) 10,
+ NULL);
+
+ g_object_set_data (G_OBJECT(target_item), "highlight_item",
+ highlight_item);
+ goo_canvas_item_lower(highlight_item, target_item);
+ g_object_set (highlight_item,
+ "visibility", GOO_CANVAS_ITEM_INVISIBLE,
+ NULL);
+
+ g_signal_connect(source_item, "enter_notify_event",
+ (GtkSignalFunc) gc_item_focus_event,
+ target_item);
+ g_signal_connect(source_item, "leave_notify_event",
+ (GtkSignalFunc) gc_item_focus_event,
+ target_item);
}
/**
* Set the focus of the given image (highlight or not)
*
*/
-#define GAP 4
void gc_item_focus_set(GooCanvasItem *item, gboolean focus)
{
GooCanvasItem *highlight_item;
highlight_item = g_object_get_data (G_OBJECT(item),
"highlight_item");
- if(!highlight_item)
- {
- GooCanvasBounds bounds;
- goo_canvas_item_get_bounds(item, &bounds);
-
- /* Create the highlight_item */
- highlight_item = \
- goo_canvas_rect_new (goo_canvas_item_get_parent(item),
- bounds.x1 - GAP,
- bounds.y1 - GAP,
- bounds.x2 - bounds.x1 + GAP*2,
- bounds.y2 - bounds.y1 + GAP*2,
- "stroke_color_rgba", 0xFFFFFFFFL,
- "fill_color_rgba", 0xFF000090L,
- "line-width", (double) 2,
- "radius-x", (double) 10,
- "radius-y", (double) 10,
- NULL);
- g_object_set_data (G_OBJECT(item), "highlight_item", highlight_item);
- goo_canvas_item_lower(highlight_item, item);
- }
+ g_assert(highlight_item);
switch (focus)
{
@@ -244,10 +263,10 @@
gint
gc_item_focus_event(GooCanvasItem *item, GooCanvasItem *target,
GdkEvent *event,
- GooCanvasItem *dest_item)
+ GooCanvasItem *target_item)
{
- if(dest_item != NULL)
- item = dest_item;
+ if(target_item != NULL)
+ item = target_item;
switch (event->type)
{
@@ -462,10 +481,6 @@
goo_canvas_item_translate(item, x, y);
goo_canvas_item_scale(item, ratio, ratio);
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
-
gdk_pixbuf_unref(pixmap);
return(stars_group);
Modified: branches/gcomprixogoo/src/gcompris/gameutil.h
==============================================================================
--- branches/gcomprixogoo/src/gcompris/gameutil.h (original)
+++ branches/gcomprixogoo/src/gcompris/gameutil.h Sat Feb 16 14:31:09 2008
@@ -44,8 +44,9 @@
GdkPixbuf *gc_pixmap_load(const gchar *filename, ...);
RsvgHandle *gc_rsvg_load(const gchar *format, ...);
+void gc_item_focus_init(GooCanvasItem *source_item,
+ GooCanvasItem *target_item);
void gc_item_focus_set(GooCanvasItem *item, gboolean focus);
-void gc_item_focus_free(GooCanvasItem *item, void *none);
gint gc_item_focus_event(GooCanvasItem *item, GooCanvasItem *target,
GdkEvent *event,
GooCanvasItem *dest_item);
Modified: branches/gcomprixogoo/src/gcompris/gcompris_confirm.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/gcompris_confirm.c (original)
+++ branches/gcomprixogoo/src/gcompris/gcompris_confirm.c Sat Feb 16 14:31:09 2008
@@ -156,7 +156,7 @@
gchar *no_text,
ConfirmCallBack iscb) {
- GooCanvasItem *item, *item2;
+ GooCanvasItem *item;
GdkPixbuf *pixmap = NULL;
GdkPixbuf *pixmap_cross = NULL;
GdkPixbuf *pixmap_stick = NULL;
@@ -247,9 +247,7 @@
(GtkSignalFunc) button_event,
"/no/");
- g_signal_connect(no_button, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(no_button, NULL);
// CANCEL CROSS
no_cross = goo_canvas_image_new (rootitem,
@@ -264,9 +262,7 @@
g_signal_connect(no_cross, "button_press_event",
(GtkSignalFunc) button_event,
"/no/");
- g_signal_connect(no_cross, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(no_cross, no_button);
goo_canvas_text_new (rootitem,
@@ -292,9 +288,7 @@
(GtkSignalFunc) button_event,
"/yes/");
- g_signal_connect(yes_button, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(yes_button, NULL);
// OK stick
yes_stick = goo_canvas_image_new (rootitem,
@@ -309,20 +303,17 @@
g_signal_connect(yes_stick, "button_press_event",
(GtkSignalFunc) button_event,
"/yes/");
- g_signal_connect(yes_stick, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
-
+ gc_item_focus_init(yes_stick, yes_button);
- item2 = goo_canvas_text_new (rootitem,
- yes_text,
- (gdouble) button_x + gdk_pixbuf_get_width(pixmap) + button_x_int ,
- (gdouble) button_y + button_h/3 + 20,
- -1,
- GTK_ANCHOR_WEST,
- "font", gc_skin_font_subtitle,
- "fill-color-rgba", gc_skin_get_color("gcompris/helpfg"),
- NULL);
+ goo_canvas_text_new (rootitem,
+ yes_text,
+ (gdouble) button_x + gdk_pixbuf_get_width(pixmap) + button_x_int ,
+ (gdouble) button_y + button_h/3 + 20,
+ -1,
+ GTK_ANCHOR_WEST,
+ "font", gc_skin_font_subtitle,
+ "fill-color-rgba", gc_skin_get_color("gcompris/helpfg"),
+ NULL);
confirm_displayed = TRUE;
Modified: branches/gcomprixogoo/src/gcompris/help.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/help.c (original)
+++ branches/gcomprixogoo/src/gcompris/help.c Sat Feb 16 14:31:09 2008
@@ -167,6 +167,7 @@
g_signal_connect(item_prerequisite, "button_press_event",
(GtkSignalFunc) item_event_help,
"prerequisite");
+ gc_item_focus_init(item_prerequisite, NULL);
item_prerequisite_text = \
goo_canvas_text_new (rootitem,
@@ -195,6 +196,7 @@
g_signal_connect(item_goal, "button_press_event",
(GtkSignalFunc) item_event_help,
"goal");
+ gc_item_focus_init(item_goal, NULL);
item_goal_text = goo_canvas_text_new (rootitem,
_("Goal"),
@@ -222,6 +224,7 @@
g_signal_connect(item_manual, "button_press_event",
(GtkSignalFunc) item_event_help,
"manual");
+ gc_item_focus_init(item_manual, NULL);
item_manual_text = goo_canvas_text_new (rootitem,
_("Manual"),
@@ -249,6 +252,7 @@
g_signal_connect(item_credit, "button_press_event",
(GtkSignalFunc) item_event_help,
"credit");
+ gc_item_focus_init(item_credit, NULL);
item_credit_text = goo_canvas_text_new (rootitem,
_("Credit"),
@@ -344,9 +348,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_help,
"ok");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
item2 = goo_canvas_text_new (rootitem,
_("OK"),
@@ -360,9 +362,7 @@
g_signal_connect(item2, "button_press_event",
(GtkSignalFunc) item_event_help,
"ok");
- g_signal_connect(item2, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- item);
+ gc_item_focus_init(item2, item);
gdk_pixbuf_unref(pixmap);
gc_bar_hide(TRUE);
@@ -405,8 +405,6 @@
if(item_selected)
{
pixmap = gc_skin_pixmap_load("button_up.png");
- /* Warning changing the image needs to update pixbuf_ref for the focus usage */
- gc_item_focus_free(item_selected, NULL);
g_object_set(item_selected,
"pixbuf", pixmap,
NULL);
@@ -418,8 +416,6 @@
}
pixmap = gc_skin_pixmap_load("button_up_selected.png");
- /* Warning changing the image needs to update pixbuf_ref for the focus usage */
- gc_item_focus_free(item, NULL);
g_object_set(item,
"pixbuf", pixmap,
NULL);
Modified: branches/gcomprixogoo/src/gcompris/images_selector.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/images_selector.c (original)
+++ branches/gcomprixogoo/src/gcompris/images_selector.c Sat Feb 16 14:31:09 2008
@@ -307,9 +307,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_images_selector,
"/ok/");
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
item2 = goo_canvas_text_new (rootitem,
_("OK"),
@@ -323,9 +321,7 @@
g_signal_connect(item2, "button_press_event",
(GtkSignalFunc) item_event_images_selector,
"/ok/");
- g_signal_connect(item2, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- item);
+ gc_item_focus_init(item2, item);
gdk_pixbuf_unref(pixmap);
}
@@ -398,9 +394,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_images_selector,
imagename);
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
ix += IMAGE_WIDTH + IMAGE_GAP;
if(ix >= DRAWING_AREA_X2 - DRAWING_AREA_X1 - IMAGE_GAP)
@@ -453,9 +447,7 @@
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) item_event_imageset_selector,
imagename);
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
isy += LIST_IMAGE_HEIGHT + IMAGE_GAP;
Modified: branches/gcomprixogoo/src/magic_hat_minus-activity/magic_hat.c
==============================================================================
--- branches/gcomprixogoo/src/magic_hat_minus-activity/magic_hat.c (original)
+++ branches/gcomprixogoo/src/magic_hat_minus-activity/magic_hat.c Sat Feb 16 14:31:09 2008
@@ -526,8 +526,7 @@
"button_press_event",
(GtkSignalFunc) hat_event,
NULL);
- g_signal_connect(item, "button_press_event",
- (GtkSignalFunc) gc_item_focus_event, NULL);
+ gc_item_focus_init(item, NULL);
}
}
Modified: branches/gcomprixogoo/src/paratrooper-activity/paratrooper.c
==============================================================================
--- branches/gcomprixogoo/src/paratrooper-activity/paratrooper.c (original)
+++ branches/gcomprixogoo/src/paratrooper-activity/paratrooper.c Sat Feb 16 14:31:09 2008
@@ -338,9 +338,7 @@
g_signal_connect(planeitem, "button-press-event",
(GtkSignalFunc) item_event,
NULL);
- g_signal_connect(planeitem, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(planeitem, NULL);
g_object_unref(svg_handle);
windspeed = (3 + rand() % (100 * gcomprisBoard->level) / 100);
@@ -406,9 +404,6 @@
g_signal_connect(paratrooperItem.paratrooper, "button-press-event",
(GtkSignalFunc) item_event,
NULL);
- g_signal_connect(paratrooperItem.paratrooper, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
paratrooperItem.instruct = \
goo_canvas_text_new (boardRootItem,
@@ -591,6 +586,7 @@
"rsvg-handle", svg_handle,
NULL);
g_object_unref(svg_handle);
+ gc_item_focus_init(paratrooperItem.paratrooper, NULL);
goo_canvas_item_get_bounds(planeitem, &bounds);
Modified: branches/gcomprixogoo/src/scalesboard-activity/scale.c
==============================================================================
--- branches/gcomprixogoo/src/scalesboard-activity/scale.c (original)
+++ branches/gcomprixogoo/src/scalesboard-activity/scale.c Sat Feb 16 14:31:09 2008
@@ -572,8 +572,7 @@
new_item->y);
gdk_pixbuf_unref(pixmap);
- g_signal_connect(new_item->item, "enter_notify_event",
- (GtkSignalFunc)gc_item_focus_event, NULL);
+ gc_item_focus_init(new_item->item, NULL);
g_signal_connect(new_item->item, "button_press_event",
(GtkSignalFunc)gc_drag_event, new_item);
g_signal_connect(new_item->item, "button_release_event",
Modified: branches/gcomprixogoo/src/tangram-activity/gtans_interface.c
==============================================================================
--- branches/gcomprixogoo/src/tangram-activity/gtans_interface.c (original)
+++ branches/gcomprixogoo/src/tangram-activity/gtans_interface.c Sat Feb 16 14:31:09 2008
@@ -117,18 +117,13 @@
(GtkSignalFunc) on_arrow_clicked,
(gpointer) FALSE);
- g_signal_connect(previous_figure, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(previous_figure, NULL);
g_signal_connect(next_figure, "button_press_event",
(GtkSignalFunc) on_arrow_clicked,
(gpointer) TRUE);
- g_signal_connect(next_figure, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
-
+ gc_item_focus_init(next_figure, NULL);
pixmap_show = gc_pixmap_load("tangram/gtans_show.png");
@@ -154,13 +149,9 @@
(GtkSignalFunc) on_show_clicked,
NULL);
- g_signal_connect(outline_figure, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(outline_figure, NULL);
- g_signal_connect(show_figure, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(show_figure, NULL);
pixmap_symetry = gc_pixmap_load("tangram/tool-flip.png");
@@ -175,9 +166,7 @@
(GtkSignalFunc) on_symetry_clicked,
NULL);
- g_signal_connect(symetry, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(symetry, NULL);
/* rotation buttons */
@@ -231,34 +220,25 @@
(GtkSignalFunc) on_rotation_clicked,
(gpointer) 0);
- g_signal_connect(r_rot_s, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(r_rot_s, NULL);
g_signal_connect(l_rot_s, "button_press_event",
(GtkSignalFunc) on_rotation_clicked,
(gpointer) 1);
- g_signal_connect(l_rot_s, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(l_rot_s, NULL);
g_signal_connect(r_rot_b, "button_press_event",
(GtkSignalFunc) on_rotation_clicked,
(gpointer) 2);
- g_signal_connect(r_rot_b, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(r_rot_b, NULL);
g_signal_connect(l_rot_b, "button_press_event",
(GtkSignalFunc) on_rotation_clicked,
(gpointer) 3);
- g_signal_connect(l_rot_b, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
-
+ gc_item_focus_init(l_rot_b, NULL);
}
Modified: branches/gcomprixogoo/src/tangram-activity/resources/tangram/Makefile.am
==============================================================================
--- branches/gcomprixogoo/src/tangram-activity/resources/tangram/Makefile.am (original)
+++ branches/gcomprixogoo/src/tangram-activity/resources/tangram/Makefile.am Sat Feb 16 14:31:09 2008
@@ -7,6 +7,7 @@
gtans_outline.png \
gtans_rotate-left.png \
gtans_rotate.png \
- gtans_show.png
+ gtans_show.png \
+ tool-flip.png
EXTRA_DIST = $(img_DATA)
Modified: branches/gcomprixogoo/src/wordprocessor-activity/wordprocessor.c
==============================================================================
--- branches/gcomprixogoo/src/wordprocessor-activity/wordprocessor.c (original)
+++ branches/gcomprixogoo/src/wordprocessor-activity/wordprocessor.c Sat Feb 16 14:31:09 2008
@@ -371,9 +371,8 @@
gdk_pixbuf_unref(pixmap);
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) save_event, buffer);
- g_signal_connect(item, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
+
/*
* The load button
@@ -388,9 +387,8 @@
gdk_pixbuf_unref(pixmap);
g_signal_connect(item, "button_press_event",
(GtkSignalFunc) load_event, buffer);
- g_signal_connect(item, "enter_notify_event",
- (GtkSignalFunc) gc_item_focus_event,
- NULL);
+ gc_item_focus_init(item, NULL);
+
y += 45;
/*
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]