gcompris r3517 - in branches/gcomprixogoo: boards/skins/babytoy boards/skins/gartoon src/gcompris src/smallnumbers-activity src/smallnumbers-activity/resources/smallnumbers
- From: bcoudoin svn gnome org
- To: svn-commits-list gnome org
- Subject: gcompris r3517 - in branches/gcomprixogoo: boards/skins/babytoy boards/skins/gartoon src/gcompris src/smallnumbers-activity src/smallnumbers-activity/resources/smallnumbers
- Date: Sun, 31 Aug 2008 13:31:36 +0000 (UTC)
Author: bcoudoin
Date: Sun Aug 31 13:31:36 2008
New Revision: 3517
URL: http://svn.gnome.org/viewvc/gcompris?rev=3517&view=rev
Log:
moved the dies out of the skins.
now the bar's die is splitted in two parts to go level up and down. This
functionnality was implemented previously with the right click but it was not
accessible for the children.
Added:
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice0.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice1.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice2.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice3.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice4.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice5.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice6.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice7.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice8.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice9.svgz (contents, props changed)
branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice_area.svgz (contents, props changed)
Removed:
branches/gcomprixogoo/boards/skins/babytoy/level1.png
branches/gcomprixogoo/boards/skins/babytoy/level2.png
branches/gcomprixogoo/boards/skins/babytoy/level3.png
branches/gcomprixogoo/boards/skins/babytoy/level4.png
branches/gcomprixogoo/boards/skins/babytoy/level5.png
branches/gcomprixogoo/boards/skins/babytoy/level6.png
branches/gcomprixogoo/boards/skins/babytoy/level7.png
branches/gcomprixogoo/boards/skins/babytoy/level8.png
branches/gcomprixogoo/boards/skins/babytoy/level9.png
branches/gcomprixogoo/boards/skins/gartoon/level1.png
branches/gcomprixogoo/boards/skins/gartoon/level2.png
branches/gcomprixogoo/boards/skins/gartoon/level3.png
branches/gcomprixogoo/boards/skins/gartoon/level4.png
branches/gcomprixogoo/boards/skins/gartoon/level5.png
branches/gcomprixogoo/boards/skins/gartoon/level6.png
branches/gcomprixogoo/boards/skins/gartoon/level7.png
branches/gcomprixogoo/boards/skins/gartoon/level8.png
branches/gcomprixogoo/boards/skins/gartoon/level9.png
Modified:
branches/gcomprixogoo/src/gcompris/bar.c
branches/gcomprixogoo/src/smallnumbers-activity/smallnumbers.c
Modified: branches/gcomprixogoo/src/gcompris/bar.c
==============================================================================
--- branches/gcomprixogoo/src/gcompris/bar.c (original)
+++ branches/gcomprixogoo/src/gcompris/bar.c Sun Aug 31 13:31:36 2008
@@ -54,12 +54,15 @@
//static void _force_bar_down(void);
//static void _force_bar_up(char *data);
static gint bar_play_sound (gchar *sound);
+static void play_level_voice(int level);
static gint current_level = -1;
static gint current_flags = -1;
static GooCanvasItem *bar_item = NULL;
static GooCanvasItem *exit_item = NULL;
static GooCanvasItem *home_item = NULL;
+static GooCanvasItem *level_up_item = NULL;
+static GooCanvasItem *level_down_item = NULL;
static GooCanvasItem *level_item = NULL;
static GooCanvasItem *help_item = NULL;
static GooCanvasItem *repeat_item = NULL;
@@ -140,7 +143,6 @@
// HOME
pixmap = gc_skin_pixmap_load("home.png");
- zoom = (double)(height-BAR_GAP)/(double)gdk_pixbuf_get_height(pixmap);
home_item = goo_canvas_image_new (rootitem,
pixmap,
(width/NUMBER_OF_ITEMS) * 4,
@@ -152,22 +154,42 @@
// LEVEL
- pixmap = gc_skin_pixmap_load("level1.png");
- zoom = (double)(height-BAR_GAP)/(double)gdk_pixbuf_get_height(pixmap);
- level_item = goo_canvas_image_new (rootitem,
+ pixmap = gc_skin_pixmap_load("level_up.png");
+ int level_up_height = gdk_pixbuf_get_height(pixmap);
+ int level_up_width = gdk_pixbuf_get_width(pixmap);
+ level_up_item = goo_canvas_image_new (rootitem,
pixmap,
(width/NUMBER_OF_ITEMS) * 3,
buttony,
NULL);
gdk_pixbuf_unref(pixmap);
+ setup_item_signals(level_up_item, "level_up");
+
+ pixmap = gc_skin_pixmap_load("level_down.png");
+ level_down_item = goo_canvas_image_new (rootitem,
+ pixmap,
+ (width/NUMBER_OF_ITEMS) * 3,
+ buttony + level_up_height,
+ NULL);
+ gdk_pixbuf_unref(pixmap);
+ setup_item_signals(level_down_item, "level_down");
current_level = 1;
- setup_item_signals(level_item, "level");
+ level_item =
+ goo_canvas_text_new (rootitem,
+ "1",
+ (width/NUMBER_OF_ITEMS) * 3 + level_up_width/2,
+ buttony + 30,
+ -1,
+ GTK_ANCHOR_CENTER,
+ "font", gc_skin_font_board_title_bold,
+ "fill-color-rgba", gc_skin_get_color("menu/text"),
+ "alignment", PANGO_ALIGN_CENTER,
+ NULL);
// REPEAT
pixmap = gc_skin_pixmap_load("repeat.png");
- zoom = (double)(height-BAR_GAP)/(double)gdk_pixbuf_get_height(pixmap);
repeat_item = goo_canvas_image_new (rootitem,
pixmap,
(width/NUMBER_OF_ITEMS) * 0,
@@ -180,7 +202,6 @@
// HELP
pixmap = gc_skin_pixmap_load("help.png");
- zoom = (double)(height-BAR_GAP)/(double)gdk_pixbuf_get_height(pixmap);
help_item = goo_canvas_image_new (rootitem,
pixmap,
(width/NUMBER_OF_ITEMS) * 1,
@@ -194,7 +215,6 @@
if(properties->disable_config == 0)
{
pixmap = gc_skin_pixmap_load("config.png");
- zoom = (double)(height-BAR_GAP)/(double)gdk_pixbuf_get_height(pixmap);
config_item = goo_canvas_image_new (rootitem,
pixmap,
(width/NUMBER_OF_ITEMS) * 2,
@@ -207,7 +227,6 @@
// ABOUT
pixmap = gc_skin_pixmap_load("about.png");
- zoom = (double)(height-BAR_GAP)/(double)gdk_pixbuf_get_height(pixmap);
about_item = goo_canvas_image_new (rootitem,
pixmap,
(width/NUMBER_OF_ITEMS) * 3,
@@ -219,6 +238,18 @@
// Show them all
update_exit_button();
+ g_object_set (level_up_item,
+ "visibility", GOO_CANVAS_ITEM_INVISIBLE,
+ NULL);
+ g_object_set (level_down_item,
+ "visibility", GOO_CANVAS_ITEM_INVISIBLE,
+ NULL);
+ g_object_set (level_up_item,
+ "visibility", GOO_CANVAS_ITEM_INVISIBLE,
+ NULL);
+ g_object_set (level_down_item,
+ "visibility", GOO_CANVAS_ITEM_INVISIBLE,
+ NULL);
g_object_set (level_item,
"visibility", GOO_CANVAS_ITEM_INVISIBLE,
NULL);
@@ -245,7 +276,6 @@
void gc_bar_set_level(GcomprisBoard *gcomprisBoard)
{
char *str = NULL;
- GdkPixbuf *pixmap = NULL;
goo_canvas_item_raise(rootitem, NULL);
/* Non yet initialized : Something Wrong */
@@ -258,15 +288,13 @@
if(gcomprisBoard!=NULL)
{
- str = g_strdup_printf("level%d.png", gcomprisBoard->level);
- pixmap = gc_skin_pixmap_load(str);
-
- g_free(str);
+ str = g_strdup_printf("%d", gcomprisBoard->level);
g_object_set (level_item,
- "pixbuf", pixmap,
+ "text", str,
NULL);
- gdk_pixbuf_unref(pixmap);
+
+ g_free(str);
}
@@ -338,13 +366,29 @@
update_exit_button();
if(flags&GC_BAR_LEVEL)
+ {
+ g_object_set (level_up_item,
+ "visibility", GOO_CANVAS_ITEM_VISIBLE,
+ NULL);
+ g_object_set (level_down_item,
+ "visibility", GOO_CANVAS_ITEM_VISIBLE,
+ NULL);
g_object_set (level_item,
"visibility", GOO_CANVAS_ITEM_VISIBLE,
NULL);
+ }
else
+ {
+ g_object_set (level_up_item,
+ "visibility", GOO_CANVAS_ITEM_INVISIBLE,
+ NULL);
+ g_object_set (level_down_item,
+ "visibility", GOO_CANVAS_ITEM_INVISIBLE,
+ NULL);
g_object_set (level_item,
"visibility", GOO_CANVAS_ITEM_INVISIBLE,
NULL);
+ }
if(gc_help_has_board(gc_board_get_current()))
g_object_set (help_item,
@@ -592,6 +636,30 @@
return FALSE;
}
+/** Play the audio number given in @level
+ */
+static void
+play_level_voice(int level)
+{
+ /* Play the audio level number */
+ gchar *number_str = g_strdup_printf("%d", level);
+
+ if ( level < 10 )
+ {
+ /* Set the number as unicode */
+ gchar *level_str = gc_sound_alphabet(number_str);
+ g_free(number_str);
+ number_str = level_str;
+ }
+
+ gchar *audio_str = g_strdup_printf("voices/$LOCALE/alphabet/%s", number_str);
+
+ gc_sound_play_ogg("voices/$LOCALE/misc/level.ogg", audio_str, NULL);
+
+ g_free(number_str);
+ g_free(audio_str);
+}
+
/* Callback for the bar operations */
static gboolean
item_event_bar (GooCanvasItem *item,
@@ -615,53 +683,30 @@
if(gcomprisBoard && gcomprisBoard->plugin->ok != NULL)
gcomprisBoard->plugin->ok();
}
- else if(!strcmp((char *)data, "level"))
+ else if(!strcmp((char *)data, "level_up"))
{
- gint tmp = current_level;
-
- if(event->button == 1)
- {
current_level++;
if(gcomprisBoard && current_level > gcomprisBoard->maxlevel)
current_level=1;
- }
- else
- {
- /* Decrease the level */
- current_level--;
- if(current_level < 1)
- current_level = gcomprisBoard->maxlevel;
- }
- if(tmp!=current_level)
- {
- /* Set the level first because it can set a different current_level */
+ /* Set the level */
if(gcomprisBoard && gcomprisBoard->plugin->set_level != NULL)
- {
- gcomprisBoard->plugin->set_level(current_level);
- }
-
- {
- /* Play the audio level number */
- gchar *number_str = g_strdup_printf("%d", current_level);
-
- if ( current_level < 10 )
- {
- /* Set the number as unicode */
- gchar *current_level_str = gc_sound_alphabet(number_str);
- g_free(number_str);
- number_str = current_level_str;
- }
-
- gchar *audio_str = g_strdup_printf("voices/$LOCALE/alphabet/%s", number_str);
+ gcomprisBoard->plugin->set_level(current_level);
- gc_sound_play_ogg("voices/$LOCALE/misc/level.ogg", audio_str, NULL);
+ play_level_voice(current_level);
+ }
+ else if(!strcmp((char *)data, "level_down"))
+ {
+ /* Decrease the level */
+ current_level--;
+ if(current_level < 1)
+ current_level = gcomprisBoard->maxlevel;
- g_free(number_str);
- g_free(audio_str);
+ /* Set the level */
+ if(gcomprisBoard && gcomprisBoard->plugin->set_level != NULL)
+ gcomprisBoard->plugin->set_level(current_level);
- }
- }
+ play_level_voice(current_level);
}
else if(!strcmp((char *)data, "back"))
{
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice0.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice1.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice2.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice3.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice4.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice5.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice6.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice7.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice8.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice9.svgz
==============================================================================
Binary file. No diff available.
Added: branches/gcomprixogoo/src/smallnumbers-activity/resources/smallnumbers/dice_area.svgz
==============================================================================
Binary file. No diff available.
Modified: branches/gcomprixogoo/src/smallnumbers-activity/smallnumbers.c
==============================================================================
--- branches/gcomprixogoo/src/smallnumbers-activity/smallnumbers.c (original)
+++ branches/gcomprixogoo/src/smallnumbers-activity/smallnumbers.c Sun Aug 31 13:31:36 2008
@@ -293,7 +293,7 @@
/* Try the next level */
speed=100+(40/gcomprisBoard->level);
fallSpeed=5000-gcomprisBoard->level*200;
- imageZoom=0.9+(0.5/gcomprisBoard->level);
+ imageZoom=0.4+(0.5/gcomprisBoard->level);
gcomprisBoard->sublevel=1;
gc_score_set(gcomprisBoard->sublevel);
}
@@ -359,12 +359,11 @@
static void smallnumbers_create_item(GooCanvasItem *parent)
{
- GdkPixbuf *smallnumbers_pixmap = NULL;
GooCanvasItem *item;
GooCanvasItem *group_item;
guint i;
guint total_number = 0;
- double x = 0.0;
+ double x;
guint number_of_dice = number_of_dices;
group_item = goo_canvas_group_new (parent, NULL);
@@ -424,30 +423,24 @@
/*
* Now the images
*/
- str1 = g_strdup_printf("level%c.png", numbers[i]);
- str2 = gc_skin_image_get(str1);
-
- smallnumbers_pixmap = gc_pixmap_load(str2);
+ RsvgHandle *svg_handle;
+ RsvgDimensionData rsvg_dimension;
+ str1 = g_strdup_printf("smallnumbers/dice%c.svgz", numbers[i]);
+ svg_handle = gc_rsvg_load(str1);
+ rsvg_handle_get_dimensions (svg_handle, &rsvg_dimension);
g_free(str1);
- g_free(str2);
- if(x==0.0)
- {
- x = (double)(g_random_int()%(BOARDWIDTH-
- (guint)(gdk_pixbuf_get_width(smallnumbers_pixmap)* imageZoom)*2));
- }
- else
- {
- x += ((gdk_pixbuf_get_width(smallnumbers_pixmap)-10)*imageZoom);
- }
+ x = (double)(g_random_int()%(BOARDWIDTH-
+ (guint)(rsvg_dimension.width * imageZoom)*2));
+
+ item = goo_svg_item_new (group_item, svg_handle, NULL);
+ goo_canvas_item_translate(item,
+ x,
+ - (rsvg_dimension.height * imageZoom ));
+ goo_canvas_item_scale(item, imageZoom, imageZoom);
+ g_object_unref(svg_handle);
- item = goo_canvas_image_new (group_item,
- smallnumbers_pixmap,
- x,
- -gdk_pixbuf_get_height(smallnumbers_pixmap)*imageZoom,
- NULL);
- gdk_pixbuf_unref(smallnumbers_pixmap);
}
g_object_set_data (G_OBJECT (group_item), "dice_number", GINT_TO_POINTER (total_number));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]