gcompris r3258 - in branches/gcomprixogoo: boards/skins/babytoy boards/skins/gartoon src/gcompris
- From: bcoudoin svn gnome org
- To: svn-commits-list gnome org
- Subject: gcompris r3258 - in branches/gcomprixogoo: boards/skins/babytoy boards/skins/gartoon src/gcompris
- Date: Sun, 17 Feb 2008 02:16:03 +0000 (GMT)
Author: bcoudoin
Date: Sun Feb 17 02:16:03 2008
New Revision: 3258
URL: http://svn.gnome.org/viewvc/gcompris?rev=3258&view=rev
Log:
implemented a movable bar
Added:
branches/gcomprixogoo/boards/skins/babytoy/bar_bg.png (contents, props changed)
branches/gcomprixogoo/boards/skins/gartoon/bar_bg.png (contents, props changed)
Removed:
branches/gcomprixogoo/boards/skins/babytoy/bar_bg.jpg
branches/gcomprixogoo/boards/skins/gartoon/bar_bg.jpg
Modified:
branches/gcomprixogoo/src/gcompris/bar.c
branches/gcomprixogoo/src/gcompris/gameutil.c
branches/gcomprixogoo/src/gcompris/gcompris.c
Added: branches/gcomprixogoo/boards/skins/babytoy/bar_bg.png
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/boards/skins/gartoon/bar_bg.png
==============================================================================
Binary file. No diff available.
Modified: branches/gcomprixogoo/src/gcompris/bar.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/bar.c (original)
+++ branches/gcomprixogoo/src/gcompris/bar.c Sun Feb 17 02:16:03 2008
@@ -48,6 +48,8 @@
gchar *data);
static void bar_reset_sound_id (void);
static void setup_item_signals (GooCanvasItem *item, gchar* name);
+static void _bar_down();
+static void _bar_up();
static gint current_level = -1;
static gint current_flags = -1;
@@ -60,6 +62,7 @@
static GooCanvasItem *repeat_item = NULL;
static GooCanvasItem *config_item = NULL;
static GooCanvasItem *about_item = NULL;
+static GooCanvasItem *rootitem = NULL;
static gint sound_play_id = 0;
@@ -79,7 +82,6 @@
{
GcomprisProperties *properties = gc_prop_get();
GdkPixbuf *pixmap = NULL;
- GooCanvasItem *rootitem;
gint16 width, height;
double zoom;
@@ -89,13 +91,15 @@
bar_reset_sound_id();
rootitem = goo_canvas_group_new (goo_canvas_get_root_item(theCanvas), NULL);
+ goo_canvas_item_translate(rootitem, 0, BOARDHEIGHT - BARHEIGHT);
- pixmap = gc_skin_pixmap_load("bar_bg.jpg");
+ pixmap = gc_skin_pixmap_load("bar_bg.png");
bar_item = goo_canvas_image_new (rootitem,
pixmap,
0,
0,
NULL);
+ setup_item_signals(bar_item, "bar");
gdk_pixbuf_unref(pixmap);
// EXIT
@@ -231,7 +235,10 @@
g_object_set (about_item,
"visibility", GOO_CANVAS_ITEM_INVISIBLE,
- NULL);}
+ NULL);
+
+ _bar_down();
+}
void gc_bar_set_level(GcomprisBoard *gcomprisBoard)
@@ -378,6 +385,35 @@
}
+static void
+_bar_down()
+{
+ goo_canvas_item_animate(rootitem,
+ 0,
+ BOARDHEIGHT - 20,
+ 1,
+ 0,
+ TRUE,
+ 1000,
+ 80,
+ GOO_CANVAS_ANIMATE_FREEZE);
+}
+
+static void
+_bar_up()
+{
+ goo_canvas_item_raise(rootitem, NULL);
+ goo_canvas_item_animate(rootitem,
+ 0,
+ BOARDHEIGHT - BARHEIGHT,
+ 1,
+ 0,
+ TRUE,
+ 700,
+ 80,
+ GOO_CANVAS_ANIMATE_FREEZE);
+}
+
/* Hide all icons in the control bar
* or retore the icons to the previous value
*/
@@ -385,11 +421,7 @@
gc_bar_hide (gboolean hide)
{
/* Non yet initialized : Something Wrong */
- if(level_item==NULL)
- {
- g_message("in bar_set_level, level_item uninitialized : should not happen\n");
- return;
- }
+ g_assert(level_item);
if(hide)
{
@@ -411,12 +443,14 @@
"visibility", GOO_CANVAS_ITEM_INVISIBLE, NULL);
g_object_set(about_item,
"visibility", GOO_CANVAS_ITEM_INVISIBLE, NULL);
+
}
else
{
g_object_set(home_item,
"visibility", GOO_CANVAS_ITEM_VISIBLE, NULL);
gc_bar_set(current_flags);
+
}
}
@@ -487,6 +521,7 @@
{
bar_reset_sound_id();
sound_play_id = g_timeout_add (1000, (GtkFunction) bar_play_sound, data);
+ _bar_up();
return FALSE;
}
@@ -497,6 +532,7 @@
char *data)
{
bar_reset_sound_id();
+ _bar_down();
return FALSE;
}
@@ -624,5 +660,6 @@
(GtkSignalFunc) item_event_bar,
name);
- gc_item_focus_init(item, NULL);
+ if(strcmp(name, "bar"))
+ gc_item_focus_init(item, NULL);
}
Modified: branches/gcomprixogoo/src/gcompris/gameutil.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/gameutil.c (original)
+++ branches/gcomprixogoo/src/gcompris/gameutil.c Sun Feb 17 02:16:03 2008
@@ -250,7 +250,12 @@
target_item = source_item;
goo_canvas_item_get_bounds(target_item, &bounds);
-
+ goo_canvas_convert_to_item_space(goo_canvas_item_get_canvas(target_item),
+ goo_canvas_item_get_parent(target_item),
+ &bounds.x1, &bounds.y1);
+ goo_canvas_convert_to_item_space(goo_canvas_item_get_canvas(target_item),
+ goo_canvas_item_get_parent(target_item),
+ &bounds.x2, &bounds.y2);
highlight_item = g_object_get_data (G_OBJECT(target_item),
"highlight_item");
Modified: branches/gcomprixogoo/src/gcompris/gcompris.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/gcompris.c (original)
+++ branches/gcomprixogoo/src/gcompris/gcompris.c Sun Feb 17 02:16:03 2008
@@ -58,7 +58,6 @@
static GtkWidget *window;
static GtkWidget *canvas;
-static GtkWidget *canvas_bar;
static GtkWidget *fixed;
static GtkWidget *drawing_area;
gchar * exec_prefix = NULL;
@@ -280,9 +279,9 @@
&screen_width,
&screen_height);
- yratio=screen_height/(float)(BOARDHEIGHT+BARHEIGHT);
+ yratio=screen_height/(float)(BOARDHEIGHT);
xratio=screen_width/(float)BOARDWIDTH;
- zoom_factor=MIN(xratio, yratio);
+ zoom_factor = MIN(xratio, yratio);
g_message("The screen_width=%f screen_height=%f ratio=%f\n",
(double)screen_width, (double)screen_height, zoom_factor);
@@ -290,15 +289,7 @@
goo_canvas_set_scale (GOO_CANVAS(canvas), zoom_factor);
gtk_fixed_move(GTK_FIXED(fixed), canvas,
(screen_width-BOARDWIDTH*zoom_factor)/2,
- (screen_height-(BOARDHEIGHT+BARHEIGHT)*zoom_factor)/2);
-
- gtk_widget_set_usize (GTK_WIDGET(canvas_bar),
- BOARDWIDTH*zoom_factor, BARHEIGHT*zoom_factor);
- goo_canvas_set_scale (GOO_CANVAS(canvas_bar), zoom_factor);
- gtk_fixed_move(GTK_FIXED(fixed), canvas_bar,
- (screen_width-BOARDWIDTH*zoom_factor)/2,
- (screen_height-(BOARDHEIGHT+BARHEIGHT)*zoom_factor)/2
- + BOARDHEIGHT*zoom_factor);
+ (screen_height-BOARDHEIGHT*zoom_factor)/2);
_expose_background_callback (drawing_area, NULL, NULL);
@@ -616,7 +607,7 @@
init_background()
{
drawing_area = gtk_drawing_area_new ();
- gtk_widget_set_size_request (drawing_area, BOARDWIDTH, BOARDHEIGHT+BARHEIGHT);
+ gtk_widget_set_size_request (drawing_area, BOARDWIDTH, BOARDHEIGHT);
g_signal_connect (G_OBJECT (drawing_area), "expose_event",
G_CALLBACK (_expose_background_callback), NULL);
/* Create a vertical box in which I put first the play board area, then the button bar */
@@ -625,11 +616,9 @@
gtk_fixed_put (GTK_FIXED(fixed), GTK_WIDGET(drawing_area), 0, 0);
gtk_fixed_put (GTK_FIXED(fixed), GTK_WIDGET(canvas), 0, 0);
- gtk_fixed_put (GTK_FIXED(fixed), GTK_WIDGET(canvas_bar), 0, BOARDHEIGHT);
gtk_widget_show (GTK_WIDGET(fixed));
gtk_widget_show (GTK_WIDGET(canvas));
- gtk_widget_show (GTK_WIDGET(canvas_bar));
gtk_widget_set_usize (GTK_WIDGET(canvas), BOARDWIDTH, BOARDHEIGHT);
goo_canvas_set_bounds (GOO_CANVAS(canvas),
@@ -637,11 +626,6 @@
BOARDWIDTH,
BOARDHEIGHT);
- gtk_widget_set_usize (canvas_bar, BOARDWIDTH, BARHEIGHT);
- goo_canvas_set_bounds (GOO_CANVAS(canvas_bar),
- 0, 0,
- BOARDWIDTH,
- BARHEIGHT);
}
static void setup_window ()
@@ -691,8 +675,8 @@
hints.min_height = 144;
hints.width_inc = 1;
hints.height_inc = 1;
- hints.min_aspect = (float)BOARDWIDTH/(BOARDHEIGHT+BARHEIGHT);
- hints. max_aspect = (float)BOARDWIDTH/(BOARDHEIGHT+BARHEIGHT);
+ hints.min_aspect = (float)BOARDWIDTH/BOARDHEIGHT;
+ hints. max_aspect = (float)BOARDWIDTH/BOARDHEIGHT;
gtk_window_set_geometry_hints (GTK_WINDOW (window),
NULL,
&hints,
@@ -727,9 +711,7 @@
// Set the cursor
gc_cursor_set(GCOMPRIS_DEFAULT_CURSOR);
- /* For non anti alias canvas */
canvas = goo_canvas_new();
- canvas_bar = goo_canvas_new();
g_object_set (G_OBJECT(goo_canvas_get_root_item(GOO_CANVAS(canvas))),
"can-focus", TRUE,
@@ -741,9 +723,6 @@
g_signal_connect_after (canvas,
"key_press_event",
GTK_SIGNAL_FUNC (board_widget_key_press_callback), 0);
- g_signal_connect_after (canvas_bar,
- "key_press_event",
- GTK_SIGNAL_FUNC (board_widget_key_press_callback), 0);
GTK_WIDGET_SET_FLAGS (canvas, GTK_CAN_FOCUS);
gtk_widget_grab_focus (canvas);
@@ -799,7 +778,7 @@
}
/* Run the bar */
- gc_bar_start(GOO_CANVAS(canvas_bar));
+ gc_bar_start(GOO_CANVAS(canvas));
init_background();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]