gcompris r3255 - in branches/gcomprixogoo/src: bargame-activity boards connect4-activity gcompris login-activity melody-activity mosaic-activity sudoku-activity watercycle-activity
- From: bcoudoin svn gnome org
- To: svn-commits-list gnome org
- Subject: gcompris r3255 - in branches/gcomprixogoo/src: bargame-activity boards connect4-activity gcompris login-activity melody-activity mosaic-activity sudoku-activity watercycle-activity
- Date: Sat, 16 Feb 2008 15:23:45 +0000 (GMT)
Author: bcoudoin
Date: Sat Feb 16 15:23:45 2008
New Revision: 3255
URL: http://svn.gnome.org/viewvc/gcompris?rev=3255&view=rev
Log:
implemented the new focus system in python and ported
the activities
Modified:
branches/gcomprixogoo/src/bargame-activity/bargame.py
branches/gcomprixogoo/src/boards/py-mod-utils.c
branches/gcomprixogoo/src/connect4-activity/connect4.py
branches/gcomprixogoo/src/gcompris/gameutil.c
branches/gcomprixogoo/src/gcompris/gameutil.h
branches/gcomprixogoo/src/login-activity/login.py
branches/gcomprixogoo/src/melody-activity/melody.py
branches/gcomprixogoo/src/mosaic-activity/mosaic.py
branches/gcomprixogoo/src/sudoku-activity/sudoku.py
branches/gcomprixogoo/src/watercycle-activity/watercycle.py
Modified: branches/gcomprixogoo/src/bargame-activity/bargame.py
==============================================================================
--- branches/gcomprixogoo/src/bargame-activity/bargame.py (original)
+++ branches/gcomprixogoo/src/bargame-activity/bargame.py Sat Feb 16 15:23:45 2008
@@ -471,20 +471,20 @@
def __init__(self, board, root, prof_image):
self.board = board
- self.prof_item =goocanvas.Image(
+ self.prof_item = goocanvas.Image(
parent = root,
y = 230
)
+
+
+ def set_prof(self, prof_image):
+ self.prof_item.props.pixbuf = gcompris.utils.load_pixmap(prof_image)
bounds = self.prof_item.get_bounds()
self.prof_item.props.x = \
(gcompris.BOARD_WIDTH - bounds.x2-bounds.x1)/2 - 90
-
self.prof_item.connect("button_press_event",self.event_play)
# This item is clickeable and it must be seen
- self.prof_item.connect("button_press_event", gcompris.utils.item_event_focus)
-
- def set_prof(self, prof_image):
- self.prof_item.props.pixbuf = gcompris.utils.load_pixmap(prof_image)
+ gcompris.utils.item_focus_init(self.prof_item, None)
def event_play(self, item, target, event):
if ((event.type != gtk.gdk.BUTTON_PRESS) or
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 15:23:45 2008
@@ -72,26 +72,28 @@
}
-
-/* void gc_item_focus_set(GooCanvasItem *item, gboolean focus); */
+/* gint gc_item_focus_init(GooCanvasItem *source_item,
+ GooCanvasItem *target_item);
+*/
static PyObject*
-py_gc_item_focus_set(PyObject* self, PyObject* args)
+py_gc_item_focus_init(PyObject* self, PyObject* args)
{
PyObject* pyitem;
+ PyObject* pytarget;
GooCanvasItem* item;
- gint pyfocus;
- gboolean focus;
+ GooCanvasItem* target = NULL;
/* Parse arguments */
- if(!PyArg_ParseTuple(args, "Oi:gc_item_focus_set", &pyitem, &pyfocus))
+ if(!PyArg_ParseTuple(args, "OO:gc_item_focus_init",
+ &pyitem, &pytarget))
return NULL;
item = (GooCanvasItem*) pygobject_get(pyitem);
- if(pyfocus>0) focus = TRUE;
- else focus = FALSE;
+ if(pytarget != Py_None)
+ target = (GooCanvasItem*) pygobject_get(pytarget);
/* Call the corresponding C function */
- gc_item_focus_set(item, focus);
+ gc_item_focus_init(item, target);
/* Create and return the result */
Py_INCREF(Py_None);
@@ -99,37 +101,6 @@
}
-/* gint gc_item_focus_event(GooCanvasItem *item,
- GdkEvent *event,
- GooCanvasItem *dest_item);
-*/
-static PyObject*
-py_gc_item_focus_event(PyObject* self, PyObject* args)
-{
- PyObject* pyitem;
- PyObject* pytarget;
- GooCanvasItem* item;
- GooCanvasItem* target;
- PyObject* pyevent;
- GdkEvent* event;
- gint result;
-
- /* Parse arguments */
- if(!PyArg_ParseTuple(args, "OOO:gc_item_focus_event",
- &pyitem, &pytarget, &pyevent))
- return NULL;
- item = (GooCanvasItem*) pygobject_get(pyitem);
- target = (GooCanvasItem*) pygobject_get(pytarget);
- event = (GdkEvent*) pygobject_get(pyevent);
-
- /* Call the corresponding C function */
- result = gc_item_focus_event(item, target, event, NULL);
-
- /* Create and return the result */
- return Py_BuildValue("i", result);
-}
-
-
/* void gc_item_absolute_move(GooCanvasItem *item, int x, int y); */
static PyObject*
py_gc_item_absolute_move(PyObject* self, PyObject* args)
@@ -341,7 +312,8 @@
/* Parse arguments */
- if(!PyArg_ParseTuple(args, "Oss:gcompris_canvas_set_property", &pyitem, &property, &value))
+ if(!PyArg_ParseTuple(args, "Oss:gcompris_canvas_set_property",
+ &pyitem, &property, &value))
return NULL;
/* pass parameter from python */
@@ -393,8 +365,7 @@
static PyMethodDef PythonGcomprisUtilsModule[] = {
{ "load_pixmap", py_gc_pixmap_load, METH_VARARGS, "gc_pixmap_load" },
{ "find_file_absolute", py_gc_file_find_absolute, METH_VARARGS, "gc_file_find_absolute" },
- { "set_image_focus", py_gc_item_focus_set, METH_VARARGS, "gc_item_focus_set" },
- { "item_event_focus", py_gc_item_focus_event, METH_VARARGS, "gc_item_focus_event" },
+ { "item_focus_init", py_gc_item_focus_init, METH_VARARGS, "gc_item_focus_init" },
{ "item_absolute_move", py_gc_item_absolute_move, METH_VARARGS, "gc_item_absolute_move" },
{ "item_rotate", py_gc_item_rotate, METH_VARARGS, "gc_item_rotate" },
{ "item_rotate_relative", py_gc_item_rotate_relative, METH_VARARGS, "gc_item_rotate_relative" },
Modified: branches/gcomprixogoo/src/connect4-activity/connect4.py
==============================================================================
--- branches/gcomprixogoo/src/connect4-activity/connect4.py (original)
+++ branches/gcomprixogoo/src/connect4-activity/connect4.py Sat Feb 16 15:23:45 2008
@@ -98,7 +98,7 @@
y=350.0
)
self.prof.connect("button_press_event", self.profItemEvent, 0)
- self.prof.connect("enter_notify_event", gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(self.prof, None)
self.timericon = gcompris.anim.CanvasItem( gcompris.anim.Animation("connect4/sablier.txt"),
self.rootitem )
Modified: branches/gcomprixogoo/src/gcompris/gameutil.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/gameutil.c (original)
+++ branches/gcomprixogoo/src/gcompris/gameutil.c Sat Feb 16 15:23:45 2008
@@ -175,66 +175,16 @@
}
/**
- * Init an item so that it has a focus
- * Optionnaly, provide a target_item that will be focused
- * by events on source_item.
- *
- */
-#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)
*
*/
-void gc_item_focus_set(GooCanvasItem *item, gboolean focus)
+static void
+gc_item_focus_set(GooCanvasItem *item, gboolean focus)
{
GooCanvasItem *highlight_item;
highlight_item = g_object_get_data (G_OBJECT(item),
- "highlight_item");
+ "highlight_item");
g_assert(highlight_item);
switch (focus)
@@ -260,7 +210,7 @@
* or the given one
*
*/
-gint
+static gint
gc_item_focus_event(GooCanvasItem *item, GooCanvasItem *target,
GdkEvent *event,
GooCanvasItem *target_item)
@@ -283,6 +233,57 @@
return FALSE;
}
+/**
+ * Init an item so that it has a focus
+ * Optionnaly, provide a target_item that will be focused
+ * by events on source_item.
+ *
+ */
+#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);
+}
+
/*
* Return a new copy of the given string in which it has
* changes '\''n' to '\n'.
Modified: branches/gcomprixogoo/src/gcompris/gameutil.h
==============================================================================
--- branches/gcomprixogoo/src/gcompris/gameutil.h (original)
+++ branches/gcomprixogoo/src/gcompris/gameutil.h Sat Feb 16 15:23:45 2008
@@ -46,10 +46,6 @@
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);
-gint gc_item_focus_event(GooCanvasItem *item, GooCanvasItem *target,
- GdkEvent *event,
- GooCanvasItem *dest_item);
gchar *convertUTF8Toisolat1(gchar * text);
void gc_item_absolute_move(GooCanvasItem *item, int x, int y);
Modified: branches/gcomprixogoo/src/login-activity/login.py
==============================================================================
--- branches/gcomprixogoo/src/login-activity/login.py (original)
+++ branches/gcomprixogoo/src/login-activity/login.py Sat Feb 16 15:23:45 2008
@@ -277,7 +277,7 @@
y = y - button_pixbuf.get_height()/2,
)
# This item is clickeable and it must be seen
- item.connect("button_press_event", gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(item, None)
item.connect("button_press_event", self.letter_click_event,
(users, start_filter + letter))
@@ -339,7 +339,7 @@
y = y - button_pixbuf.get_height()/2,
)
# This item is clickeable and it must be seen
- item.connect("button_press_event", gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(item, None)
item.connect("button_press_event", self.name_click_event, user)
Modified: branches/gcomprixogoo/src/melody-activity/melody.py
==============================================================================
--- branches/gcomprixogoo/src/melody-activity/melody.py (original)
+++ branches/gcomprixogoo/src/melody-activity/melody.py Sat Feb 16 15:23:45 2008
@@ -163,7 +163,7 @@
)
self.switch_item.connect("button_press_event", self.switch_item_event)
# This item is clickeable and it must be seen
- self.switch_item.connect("button_press_event", gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(self.switch_item, None)
# Put the sound buttons
@@ -178,8 +178,7 @@
)
self.sound_item.connect("button_press_event", self.sound_item_event, i)
# This item is clickeable and it must be seen
- self.sound_item.connect("button_press_event",
- gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(self.sound_item, None)
self.bang_item = goocanvas.Image(
Modified: branches/gcomprixogoo/src/mosaic-activity/mosaic.py
==============================================================================
--- branches/gcomprixogoo/src/mosaic-activity/mosaic.py (original)
+++ branches/gcomprixogoo/src/mosaic-activity/mosaic.py Sat Feb 16 15:23:45 2008
@@ -274,7 +274,8 @@
y = orig_y + y * (self.palette_item_height + gap_y))
if not colored:
- item.connect("button_press_event", self.set_focus_item_event, (i, palette))
+ item.connect("button_press_event",
+ self.set_focus_item_event, (i, palette))
self.user_list.append((-1, -1))
else:
self.target_list.append((color_index_x, color_index_y))
@@ -314,7 +315,7 @@
x = coord_x,
y = coord_y)
- item.connect("button_press_event", gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(item, None)
item.connect("button_press_event",
self.set_color_item_event, (palette_x, palette_y,
coord_x, coord_y))
Modified: branches/gcomprixogoo/src/sudoku-activity/sudoku.py
==============================================================================
--- branches/gcomprixogoo/src/sudoku-activity/sudoku.py (original)
+++ branches/gcomprixogoo/src/sudoku-activity/sudoku.py Sat Feb 16 15:23:45 2008
@@ -454,7 +454,7 @@
item.connect("button_press_event", self.symbol_item_event, valid_chars[y])
# This item is clickeable and it must be seen
- item.connect("button_press_event", gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(item, None)
# Select the first item
if y == 0:
@@ -582,7 +582,7 @@
if(not text):
item.props.visibility = goocanvas.ITEM_INVISIBLE
# This item is clickeable and it must be seen
- item.connect("enter_notify_event", gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(item, None)
item.connect("button_press_event", self.hide_symbol_event, (x, y))
#
Modified: branches/gcomprixogoo/src/watercycle-activity/watercycle.py
==============================================================================
--- branches/gcomprixogoo/src/watercycle-activity/watercycle.py (original)
+++ branches/gcomprixogoo/src/watercycle-activity/watercycle.py Sat Feb 16 15:23:45 2008
@@ -107,7 +107,7 @@
)
self.sunitem.connect("button_press_event", self.sun_item_event)
# This item is clickeable and it must be seen
- self.sunitem.connect("button_press_event", gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(self.sunitem, None)
self.sun_direction = -1
self.sun_on = 0
@@ -155,7 +155,7 @@
self.clouditem.props.visibility = goocanvas.ITEM_INVISIBLE
self.clouditem.connect("button_press_event", self.cloud_item_event)
# This item is clickeable and it must be seen
- self.clouditem.connect("button_press_event", gcompris.utils.item_event_focus)
+ gcompris.utils.item_focus_init(self.clouditem, None)
self.cloud_on = 0
# The vapor
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]