Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TODO2
-rw-r--r--boards/algebra_minus.xml.in1
-rw-r--r--boards/click_on_letter.xml.in6
-rw-r--r--boards/clockgame.xml.in4
-rw-r--r--boards/imageid.xml.in2
-rw-r--r--boards/imagename.xml.in2
-rw-r--r--boards/planegame.xml.in4
-rw-r--r--docs/C/gcompris.texi5
-rw-r--r--po/fr.po2
-rw-r--r--src/boards/menu.c4
-rw-r--r--src/gcompris/callbacks.c69
-rw-r--r--src/gcompris/callbacks.h32
-rw-r--r--src/gcompris/dir-close.xpm47
-rw-r--r--src/gcompris/dir-open.xpm53
-rw-r--r--src/gcompris/gcompris-edit.c135
-rw-r--r--src/gcompris/gcompris-edit.glade97
-rw-r--r--src/gcompris/gcompris-edit.h12
-rw-r--r--src/gcompris/help.c18
-rw-r--r--src/gcompris/interface.c101
-rw-r--r--src/gcompris/properties.c37
-rw-r--r--src/gcompris/properties.h6
21 files changed, 425 insertions, 214 deletions
diff --git a/TODO b/TODO
index fd3f4ad..bf14731 100644
--- a/TODO
+++ b/TODO
@@ -23,6 +23,8 @@
* use gnome-vfs to package boards in a unique file
+* change the scale board to be more realistic and flexible.
+
Bug report from Marec Dirson:
- dans le tableau "trains" (et sans doute ailleurs), il lui arrive
diff --git a/boards/algebra_minus.xml.in b/boards/algebra_minus.xml.in
index 40bfe75..cea9b3d 100644
--- a/boards/algebra_minus.xml.in
+++ b/boards/algebra_minus.xml.in
@@ -1,4 +1,3 @@
-
<?xml version="1.0" encoding="UTF-8"?>
<GCompris>
<Board
diff --git a/boards/click_on_letter.xml.in b/boards/click_on_letter.xml.in
index cb78ef3..7844ec3 100644
--- a/boards/click_on_letter.xml.in
+++ b/boards/click_on_letter.xml.in
@@ -10,9 +10,9 @@
boarddir="click_on_letter">
<_title>Click on a letter</_title>
<_description>Hear a letter and click on the right letter</_description>
- <_prerequisite>None<_prerequisite>
- <_goal>Letter recognition<_goal>
+ <_prerequisite>None</_prerequisite>
+ <_goal>Letter recognition</_goal>
<_manual>A letter is spelled. Click on the corresponding letter in the main area.
-You can hear again the letter by clicking on the speaker icon in the bottom horizonl frame.<_manual>
+You can hear again the letter by clicking on the speaker icon in the bottom horizonl frame.</_manual>
</Board>
</GCompris>
diff --git a/boards/clockgame.xml.in b/boards/clockgame.xml.in
index feed099..6cdc414 100644
--- a/boards/clockgame.xml.in
+++ b/boards/clockgame.xml.in
@@ -9,8 +9,8 @@
boarddir="">
<_title>Learning Clock</_title>
<_description>Learn how to read the time</_description>
- <_prequisite>Time concept
-Time reading<_prerequisite>
+ <_prerequisite>Time concept
+Time reading</_prerequisite>
<_goal>Distinguish differences between hour, minute and second.
Compose a time in a clock</_goal>
<_manual>For each printed hour (hours:minutes or
diff --git a/boards/imageid.xml.in b/boards/imageid.xml.in
index 5d83143..af1df32 100644
--- a/boards/imageid.xml.in
+++ b/boards/imageid.xml.in
@@ -9,7 +9,7 @@
boarddir="imageid">
<_title>Reading pratice</_title>
<_description>Practice reading by finding the word matching an image</_description>
- <_prerequisite>Reading</prerequisite>
+ <_prerequisite>Reading</_prerequisite>
<_manual>Click on the word corresponding to the printed
image. When you are sure of your choice click on the hand at the
bottom</_manual>
diff --git a/boards/imagename.xml.in b/boards/imagename.xml.in
index 5f04251..9e6b119 100644
--- a/boards/imagename.xml.in
+++ b/boards/imagename.xml.in
@@ -9,7 +9,7 @@
boarddir="imagename">
<_description>Drag and Drop the items above their written name</_description>
<_title>Image Name</_title>
- <_prerequisiste>Reading</_prerequisite>
+ <_prerequisite>Reading</_prerequisite>
<_goal>Vocabulary and reading</_goal>
<_manual>In the main board area, a set of red plots associated
with work are printed. In the vertical frame - at the left of the
diff --git a/boards/planegame.xml.in b/boards/planegame.xml.in
index e3eb50b..3ca7c6d 100644
--- a/boards/planegame.xml.in
+++ b/boards/planegame.xml.in
@@ -8,8 +8,8 @@
author="Bruno Coudoin (bruno.coudoin@free.fr)">
<_title>Numbers in Order</_title>
<_description>Move the helicopter to catch the clouds in the correct order</_description>
- <_gaol>Numeration training</_goal>
- <_prerequsite>Number</_prerequisite>
+ <_goal>Numeration training</_goal>
+ <_prerequisite>Number</_prerequisite>
<_manual>Use the up, down, right and left keyboard keys to
move the helicopter to catch the numbers in the incremental
order</_manual>
diff --git a/docs/C/gcompris.texi b/docs/C/gcompris.texi
index 6dfd939..ab84edf 100644
--- a/docs/C/gcompris.texi
+++ b/docs/C/gcompris.texi
@@ -113,7 +113,7 @@ Note that the descriptions are internationalized which means translated in a tar
@item
Control bar:
@cindex Control bar
-The control bar is always present in GCompris. This icons are contextual which means that when an icon is not meaningfull in a specific contect, it is simply not displayed.
+The control bar is always present in GCompris. This icons are contextual which means that when an icon is not meaningfull in a specific context, it is simply not displayed.
The control bar contains the icons from left to right:
@enumerate
@@ -163,9 +163,6 @@ At the menu level, just click on the board icon.
@subsection Ending a game
In the control bar, select the right most icon.
-@subsection Game status
-The bottom of the GCompris window
-
@node Internationalization Issues, Developers Guide, User Manual, Top
@chapter Internationalization Issues
@section Is my language supported?
diff --git a/po/fr.po b/po/fr.po
index 9f45cba..c4365af 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -291,7 +291,7 @@ msgstr "Attrape et fais glisser les éléments pour reconstruire la carte"
#: boards/geography.xml.in.h:2
msgid "Place the lands"
-msgstr "Places les pays"
+msgstr "Place les pays"
#: boards/gletters.xml.in.h:1 src/boards/gletters.c:76
msgid "Simple Letters"
diff --git a/src/boards/menu.c b/src/boards/menu.c
index a25aed5..3b6b321 100644
--- a/src/boards/menu.c
+++ b/src/boards/menu.c
@@ -1,6 +1,6 @@
/* gcompris - menu.c
*
- * Time-stamp: <2002/04/14 00:27:08 bruno>
+ * Time-stamp: <2002/06/07 01:16:08 bruno>
*
* Copyright (C) 2000 Bruno Coudoin
*
@@ -220,7 +220,7 @@ menu_config ()
static void display_board_icon(GcomprisBoard *board)
{
- if (board!=NULL)
+ if (board!=NULL && gcompris_properties_get_board_status(board->name))
{
menu_create_item(boardRootItem, board);
}
diff --git a/src/gcompris/callbacks.c b/src/gcompris/callbacks.c
index 31e1299..d090041 100644
--- a/src/gcompris/callbacks.c
+++ b/src/gcompris/callbacks.c
@@ -76,9 +76,22 @@ on_ctree1_tree_select_row (GtkCTree *ctree,
GcomprisBoard *gcomprisBoard = gtk_ctree_node_get_row_data(ctree, (GtkCTreeNode *)node);
printf("selected %s\n", gcomprisBoard->name);
+ gcompris_ctree_selection_add(gcomprisBoard, node);
gcompris_edit_display_description(gcomprisBoard);
}
+void
+on_ctree1_tree_unselect_row (GtkCTree *ctree,
+ GList *node,
+ gint column,
+ gpointer user_data)
+{
+ GcomprisBoard *gcomprisBoard = gtk_ctree_node_get_row_data(ctree, (GtkCTreeNode *)node);
+
+ gcompris_ctree_selection_del(gcomprisBoard, node);
+
+}
+
void
on_buttonIconList_clicked (GtkButton *button,
@@ -89,3 +102,59 @@ on_buttonIconList_clicked (GtkButton *button,
gcompris_edit_display_iconlist();
}
+
+void
+on_buttonAdd_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+ if(gcompris_ctree_get_selected_board())
+ {
+ gcompris_properties_enable_board(gcompris_ctree_get_selected_board()->name);
+ gcompris_ctree_set_board_status(gcompris_ctree_get_selected_board(),
+ gcompris_ctree_get_selected_node(),
+ TRUE);
+ }
+
+}
+
+void
+on_buttonDel_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+ if(gcompris_ctree_get_selected_board())
+ {
+ gcompris_properties_disable_board(gcompris_ctree_get_selected_board()->name);
+ gcompris_ctree_set_board_status(gcompris_ctree_get_selected_board(),
+ gcompris_ctree_get_selected_node(),
+ FALSE);
+ }
+
+}
+
+
+
+void
+on_ctree1_tree_collapse (GtkCTree *ctree,
+ GList *node,
+ gpointer user_data)
+{
+ GcomprisBoard *gcomprisBoard = gtk_ctree_node_get_row_data(ctree, (GtkCTreeNode *)node);
+
+ printf("icon list collapse\n");
+ gcompris_ctree_update_status(gcomprisBoard, node);
+}
+
+
+void
+on_ctree1_tree_expand (GtkCTree *ctree,
+ GList *node,
+ gpointer user_data)
+{
+ GcomprisBoard *gcomprisBoard = gtk_ctree_node_get_row_data(ctree, (GtkCTreeNode *)node);
+
+ printf("icon list expand\n");
+ gcompris_ctree_update_status(gcomprisBoard, node);
+}
+
diff --git a/src/gcompris/callbacks.h b/src/gcompris/callbacks.h
index acb8939..364f027 100644
--- a/src/gcompris/callbacks.h
+++ b/src/gcompris/callbacks.h
@@ -86,3 +86,35 @@ on_about2_activate (GtkMenuItem *menuitem,
void
on_buttonIconList_clicked (GtkButton *button,
gpointer user_data);
+
+void
+on_ctree1_tree_unselect_row (GtkCTree *ctree,
+ GList *node,
+ gint column,
+ gpointer user_data);
+
+void
+on_button1_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_button2_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_buttonDel_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_buttonAdd_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_ctree1_tree_collapse (GtkCTree *ctree,
+ GList *node,
+ gpointer user_data);
+
+void
+on_ctree1_tree_expand (GtkCTree *ctree,
+ GList *node,
+ gpointer user_data);
diff --git a/src/gcompris/dir-close.xpm b/src/gcompris/dir-close.xpm
deleted file mode 100644
index d3167be..0000000
--- a/src/gcompris/dir-close.xpm
+++ /dev/null
@@ -1,47 +0,0 @@
-/* XPM */
-static char * DIRECTORY_CLOSE_XPM[] = {
-"16 16 28 1",
-" c None",
-". c #000000",
-"+ c #C4B893",
-"@ c #A59A7C",
-"# c #AAA07F",
-"$ c #8F866B",
-"% c #EEEADC",
-"& c #E6DCC3",
-"* c #F1ECE0",
-"= c #CCC4AF",
-"- c #D7D3C8",
-"; c #E2D8B9",
-"> c #CBC0A1",
-", c #DBCDA5",
-"' c #C5B996",
-") c #C0B591",
-"! c #AFA586",
-"~ c #8F866D",
-"{ c #EAE4D0",
-"] c #807764",
-"^ c #746D5C",
-"/ c #B3A988",
-"( c #9F9679",
-"_ c #BDB18F",
-": c #9E9377",
-"< c #696454",
-"[ c #DFD4B0",
-"} c #585448",
-" ",
-" ",
-" .... ",
-" .+@+@. ",
-" .#$#$#$...... ",
-" .%&*&*&%*=-;>.",
-" .;+,+,+,')!+~.",
-" .{,+,+,))!+!].",
-" .;+,+,)+!+!!^.",
-" .{,+,)+!+!/(^.",
-" .;+,_+!+!!(:<.",
-" .{,_+!+!!::~<.",
-" .[]~]:]~]^<<}.",
-" ............ ",
-" ",
-" "};
diff --git a/src/gcompris/dir-open.xpm b/src/gcompris/dir-open.xpm
deleted file mode 100644
index 3f9e2f9..0000000
--- a/src/gcompris/dir-open.xpm
+++ /dev/null
@@ -1,53 +0,0 @@
-/* XPM */
-static char * DIRECTORY_OPEN_XPM[] = {
-"16 16 34 1",
-" c None",
-". c #000000",
-"+ c #C4B893",
-"@ c #A59A7C",
-"# c #AAA07F",
-"$ c #8F866B",
-"% c #B3AB92",
-"& c #9B9174",
-"* c #ADA282",
-"= c #988F72",
-"- c #8A826A",
-"; c #716A56",
-"> c #605A48",
-", c #353128",
-"' c #8F866D",
-") c #E5DBC0",
-"! c #E8E0C9",
-"~ c #DCD0AA",
-"{ c #565041",
-"] c #655E4F",
-"^ c #EAE4D0",
-"/ c #D7C89C",
-"( c #B3A57D",
-"_ c #D4C494",
-": c #5B5648",
-"< c #DCD7C6",
-"[ c #83795B",
-"} c #353535",
-"| c #ACA181",
-"1 c #534F42",
-"2 c #E2D9BB",
-"3 c #72694F",
-"4 c #C0B79E",
-"5 c #978C69",
-" ",
-" ",
-" .... ",
-" .+@+@. ",
-" .#$#$#$...... ",
-" .%&*&*&*=-&-;.",
-" ...........>,'.",
-".)!~!~!~!~!~.{].",
-".^/(_(_(_(_(.{:.",
-" .<_(_(_(_(_[.:.",
-" }!|_(_(_(_(_.1.",
-" }2(_(_(_(_(3..",
-" .4(5(5(5(5(5..",
-" ............ ",
-" ",
-" "};
diff --git a/src/gcompris/gcompris-edit.c b/src/gcompris/gcompris-edit.c
index 3f04cc6..1865900 100644
--- a/src/gcompris/gcompris-edit.c
+++ b/src/gcompris/gcompris-edit.c
@@ -36,21 +36,24 @@
#include "gcompris.h"
#include "gcompris-edit.h"
-#include "dir-open.xpm"
-#include "dir-close.xpm"
+#include "on.xpm"
+#include "off.xpm"
static GtkWidget *gcompris_edit = NULL;
static GtkWidget *ctree1 = NULL;
-static GdkPixmap *pixmap_open;
-static GdkPixmap *pixmap_close;
-static GdkPixmap *pixmap_open_mask;
-static GdkPixmap *pixmap_close_mask;
-static GdkPixmap *pixmap_open_transp;
-static GdkPixmap *pixmap_close_transp;
+static GdkPixmap *pixmap_on;
+static GdkPixmap *pixmap_on_mask;
+static GdkPixmap *pixmap_on_transp;
+static GdkPixmap *pixmap_off;
+static GdkPixmap *pixmap_off_mask;
+static GdkPixmap *pixmap_off_transp;
static gboolean read_xml_file(GtkCTreeNode *parentNode, char *fname);
+static GcomprisBoard *selectedBoard = NULL;
+static GtkCTreeNode *selectedNode = NULL;
+
void gcompris_edit_display_iconlist()
{
GtkWidget *windowWidget = NULL;
@@ -68,6 +71,36 @@ void gcompris_edit_display_iconlist()
}
/*
+ * Redisplay the icon representing the status of the board
+ */
+void gcompris_ctree_update_status(GcomprisBoard *gcomprisBoard,
+ GtkCTreeNode *node)
+{
+ if(gcompris_properties_get_board_status(gcomprisBoard->name))
+ gcompris_ctree_set_board_status(gcomprisBoard, node, TRUE);
+ else
+ gcompris_ctree_set_board_status(gcomprisBoard, node, FALSE);
+}
+
+/*
+ * Set the icon in the tree depending on the given status
+ */
+void gcompris_ctree_set_board_status(GcomprisBoard *gcomprisBoard,
+ GtkCTreeNode *node,
+ gboolean status)
+{
+ if(status)
+ gtk_ctree_node_set_pixtext(GTK_CTREE(ctree1), node, 0,
+ gcomprisBoard->name, 8,
+ pixmap_on, pixmap_on_mask);
+ else
+ gtk_ctree_node_set_pixtext(GTK_CTREE(ctree1), node, 0,
+ gcomprisBoard->name, 8,
+ pixmap_off, pixmap_off_mask);
+
+}
+
+/*
* Update the description based on the given gcomprisBoard
*/
void gcompris_edit_display_description(GcomprisBoard *gcomprisBoard)
@@ -90,18 +123,18 @@ void gcompris_edit_display_description(GcomprisBoard *gcomprisBoard)
"entryName");
if(gcomprisBoard->name)
- gtk_entry_set_text(GTK_ENTRY(tmpWidget), gcomprisBoard->name);
+ gtk_entry_set_text(GTK_ENTRY(tmpWidget), gcomprisBoard->name);
else
- gtk_entry_set_text(GTK_ENTRY(tmpWidget), "");
+ gtk_entry_set_text(GTK_ENTRY(tmpWidget), "");
/* Title */
tmpWidget = gtk_object_get_data (GTK_OBJECT (gcompris_edit),
"entryTitle");
if(gcomprisBoard->title)
- gtk_entry_set_text(GTK_ENTRY(tmpWidget), gcomprisBoard->title);
+ gtk_entry_set_text(GTK_ENTRY(tmpWidget), gcomprisBoard->title);
else
- gtk_entry_set_text(GTK_ENTRY(tmpWidget), "");
+ gtk_entry_set_text(GTK_ENTRY(tmpWidget), "");
/* Description */
@@ -111,22 +144,22 @@ void gcompris_edit_display_description(GcomprisBoard *gcomprisBoard)
gtk_text_backward_delete(GTK_TEXT(tmpWidget), gtk_text_get_length(GTK_TEXT(tmpWidget)));
if(gcomprisBoard->description)
- gtk_text_insert(GTK_TEXT(tmpWidget), NULL, NULL, NULL, gcomprisBoard->description,
- strlen(gcomprisBoard->description));
+ gtk_text_insert(GTK_TEXT(tmpWidget), NULL, NULL, NULL, gcomprisBoard->description,
+ strlen(gcomprisBoard->description));
/* Difficulty */
tmpWidget = gtk_object_get_data (GTK_OBJECT (gcompris_edit),
"spinbuttonDifficulty");
if(gcomprisBoard->difficulty)
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(tmpWidget), atof(gcomprisBoard->difficulty));
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(tmpWidget), atof(gcomprisBoard->difficulty));
else
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(tmpWidget), (double)0);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(tmpWidget), (double)0);
/* Author */
tmpWidget = gtk_object_get_data (GTK_OBJECT (gcompris_edit),
"entryAuthor");
if(gcomprisBoard->author)
- gtk_entry_set_text(GTK_ENTRY(tmpWidget), gcomprisBoard->author);
+ gtk_entry_set_text(GTK_ENTRY(tmpWidget), gcomprisBoard->author);
else
gtk_entry_set_text(GTK_ENTRY(tmpWidget), "");
@@ -135,7 +168,7 @@ void gcompris_edit_display_description(GcomprisBoard *gcomprisBoard)
"entryBoardDir");
if(gcomprisBoard->boarddir)
- gtk_entry_set_text(GTK_ENTRY(tmpWidget), gcomprisBoard->boarddir);
+ gtk_entry_set_text(GTK_ENTRY(tmpWidget), gcomprisBoard->boarddir);
else
gtk_entry_set_text(GTK_ENTRY(tmpWidget), "");
@@ -213,16 +246,18 @@ GtkCTreeNode *add_node_to_ctree ( GtkWidget *ctree1,
NULL,
text,
2,
- pixmap_open,
- pixmap_open_mask,
- pixmap_close,
- pixmap_close_mask,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
FALSE,
TRUE);
-
+
/* Associaste our data to the node */
gtk_ctree_node_set_row_data(GTK_CTREE(ctree1), newNode, gcomprisBoardMenu);
+ gcompris_ctree_update_status(gcomprisBoardMenu, newNode);
+
return(newNode);
}
@@ -233,14 +268,14 @@ void init_tree()
"ctree1");
/* Init pixmaps */
- pixmap_open = gdk_pixmap_create_from_xpm_d(gcompris_edit->window,
- &pixmap_open_mask,
- &pixmap_open_transp,
- DIRECTORY_OPEN_XPM);
- pixmap_close = gdk_pixmap_create_from_xpm_d(gcompris_edit->window,
- &pixmap_close_mask,
- &pixmap_close_transp,
- DIRECTORY_CLOSE_XPM);
+ pixmap_on = gdk_pixmap_create_from_xpm_d(gcompris_edit->window,
+ &pixmap_on_mask,
+ &pixmap_on_transp,
+ BOARD_ON_XPM);
+ pixmap_off = gdk_pixmap_create_from_xpm_d(gcompris_edit->window,
+ &pixmap_off_mask,
+ &pixmap_off_transp,
+ BOARD_OFF_XPM);
read_xml_file(NULL, PACKAGE_DATA_DIR INITIAL_MENU);
}
@@ -357,7 +392,39 @@ read_xml_file(GtkCTreeNode *parentNode, char *fname)
}
+/*
+ * Manage the tree selection : add the selection
+ */
+void gcompris_ctree_selection_add(GcomprisBoard *gcomprisBoard, GtkCTreeNode *node)
+{
+ selectedBoard = gcomprisBoard;
+ selectedNode = node;
+}
+/*
+ * Manage the tree selection : del the selection
+ */
+void gcompris_ctree_selection_del(GcomprisBoard *gcomprisBoard, GtkCTreeNode *node)
+{
+ selectedBoard = NULL;
+ selectedNode = NULL;
+}
+
+/*
+ * Manage the tree selection : return it
+ */
+GcomprisBoard *gcompris_ctree_get_selected_board()
+{
+ return (selectedBoard);
+}
+
+/*
+ * Manage the tree selection : return it
+ */
+GtkCTreeNode *gcompris_ctree_get_selected_node()
+{
+ return (selectedNode);
+}
@@ -380,6 +447,12 @@ main (int argc, char *argv[])
gcompris_edit = create_gcompris_edit ();
gtk_widget_show (gcompris_edit);
+ /* connect exit code */
+ gtk_signal_connect (GTK_OBJECT (gcompris_edit), "delete_event",
+ GTK_SIGNAL_FUNC (gtk_exit), NULL);
+ gtk_signal_connect (GTK_OBJECT (gcompris_edit), "destroy",
+ GTK_SIGNAL_FUNC (gtk_exit), NULL);
+
init_plugins();
init_tree();
diff --git a/src/gcompris/gcompris-edit.glade b/src/gcompris/gcompris-edit.glade
index fc0037c..0720325 100644
--- a/src/gcompris/gcompris-edit.glade
+++ b/src/gcompris/gcompris-edit.glade
@@ -18,13 +18,13 @@
<widget>
<class>GnomeApp</class>
<name>gcompris-edit</name>
- <title>Edit</title>
+ <title>GCompris Edit</title>
<type>GTK_WINDOW_TOPLEVEL</type>
<position>GTK_WIN_POS_NONE</position>
<modal>False</modal>
- <default_width>610</default_width>
+ <default_width>706</default_width>
<default_height>450</default_height>
- <allow_shrink>False</allow_shrink>
+ <allow_shrink>True</allow_shrink>
<allow_grow>True</allow_grow>
<auto_shrink>False</auto_shrink>
<enable_layout_config>True</enable_layout_config>
@@ -213,8 +213,13 @@
<widget>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
- <name>button1</name>
+ <name>buttonAdd</name>
<tooltip>Nouveau fichier</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_buttonAdd_clicked</handler>
+ <last_modification_time>Thu, 06 Jun 2002 21:44:16 GMT</last_modification_time>
+ </signal>
<label>Ajouter</label>
<stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap>
</widget>
@@ -222,8 +227,13 @@
<widget>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
- <name>button2</name>
+ <name>buttonDel</name>
<tooltip>Ouvrir un fichier</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_buttonDel_clicked</handler>
+ <last_modification_time>Thu, 06 Jun 2002 21:43:58 GMT</last_modification_time>
+ </signal>
<label>Supprimer</label>
<stock_pixmap>GNOME_STOCK_PIXMAP_REMOVE</stock_pixmap>
</widget>
@@ -231,7 +241,7 @@
<widget>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
- <name>button4</name>
+ <name>buttonUp</name>
<label>Monter</label>
<stock_pixmap>GNOME_STOCK_PIXMAP_UP</stock_pixmap>
</widget>
@@ -239,7 +249,7 @@
<widget>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
- <name>button5</name>
+ <name>buttonDown</name>
<label>Descendre</label>
<stock_pixmap>GNOME_STOCK_PIXMAP_DOWN</stock_pixmap>
</widget>
@@ -247,7 +257,7 @@
<widget>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
- <name>button3</name>
+ <name>buttonSave</name>
<tooltip>Enregistrer le fichier</tooltip>
<label>Enregistrer</label>
<stock_pixmap>GNOME_STOCK_PIXMAP_SAVE</stock_pixmap>
@@ -289,6 +299,23 @@
<handler>on_ctree1_tree_select_row</handler>
<last_modification_time>Tue, 04 Jun 2002 23:31:35 GMT</last_modification_time>
</signal>
+ <signal>
+ <name>tree_unselect_row</name>
+ <handler>on_ctree1_tree_unselect_row</handler>
+ <last_modification_time>Thu, 06 Jun 2002 21:36:45 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>tree_collapse</name>
+ <handler>on_ctree1_tree_collapse</handler>
+ <after>True</after>
+ <last_modification_time>Sat, 08 Jun 2002 07:11:37 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>tree_expand</name>
+ <handler>on_ctree1_tree_expand</handler>
+ <after>True</after>
+ <last_modification_time>Sat, 08 Jun 2002 07:11:43 GMT</last_modification_time>
+ </signal>
<columns>3</columns>
<column_widths>80,80,80</column_widths>
<selection_mode>GTK_SELECTION_SINGLE</selection_mode>
@@ -358,8 +385,8 @@
<widget>
<class>GtkScrolledWindow</class>
<name>scrolledwindow_description</name>
- <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy>
- <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy>
+ <hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy>
+ <vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy>
<hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
<vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
@@ -732,21 +759,51 @@
</widget>
<widget>
- <class>GtkButton</class>
- <name>buttonIconList</name>
- <tooltip>Enregistrer le fichier</tooltip>
- <signal>
- <name>clicked</name>
- <handler>on_buttonIconList_clicked</handler>
- <last_modification_time>Wed, 05 Jun 2002 21:47:16 GMT</last_modification_time>
- </signal>
- <label>...</label>
- <relief>GTK_RELIEF_NORMAL</relief>
+ <class>GtkVBox</class>
+ <name>vbox1</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
+ <pack>GTK_PACK_END</pack>
</child>
+
+ <widget>
+ <class>GtkVButtonBox</class>
+ <name>vbuttonbox1</name>
+ <layout_style>GTK_BUTTONBOX_DEFAULT_STYLE</layout_style>
+ <spacing>10</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>buttonIconList</name>
+ <tooltip>Enregistrer le fichier</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_buttonIconList_clicked</handler>
+ <last_modification_time>Wed, 05 Jun 2002 21:47:16 GMT</last_modification_time>
+ </signal>
+ <label>...</label>
+ <relief>GTK_RELIEF_NORMAL</relief>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+ </widget>
</widget>
</widget>
diff --git a/src/gcompris/gcompris-edit.h b/src/gcompris/gcompris-edit.h
index cb886cd..6251678 100644
--- a/src/gcompris/gcompris-edit.h
+++ b/src/gcompris/gcompris-edit.h
@@ -21,5 +21,13 @@
-void gcompris_edit_display_description(GcomprisBoard *gcomprisBoard);
-void gcompris_edit_display_iconlist();
+void gcompris_edit_display_description(GcomprisBoard *gcomprisBoard);
+void gcompris_edit_display_iconlist();
+void gcompris_ctree_selection_add(GcomprisBoard *gcomprisBoard, GtkCTreeNode *node);
+void gcompris_ctree_selection_del(GcomprisBoard *gcomprisBoard, GtkCTreeNode *node);
+GcomprisBoard *gcompris_ctree_get_selected_board();
+GtkCTreeNode *gcompris_ctree_get_selected_node();
+void gcompris_ctree_set_board_status(GcomprisBoard *gcomprisBoard,
+ GtkCTreeNode *node,
+ gboolean status);
+void gcompris_ctree_update_status(gcomprisBoard, node);
diff --git a/src/gcompris/help.c b/src/gcompris/help.c
index f496ec1..afc1485 100644
--- a/src/gcompris/help.c
+++ b/src/gcompris/help.c
@@ -1,6 +1,6 @@
/* gcompris - help.c
*
- * Time-stamp: <2002/06/01 02:27:27 bruno>
+ * Time-stamp: <2002/06/07 00:18:25 bruno>
*
* Copyright (C) 2000 Bruno Coudoin
*
@@ -184,10 +184,10 @@ void gcompris_help_start (GcomprisBoard *gcomprisBoard)
"anchor", GTK_ANCHOR_CENTER,
"fill_color_rgba", COLOR_TEXT_BUTTON,
NULL);
- gtk_signal_connect(GTK_OBJECT(item), "event",
+ gtk_signal_connect(GTK_OBJECT(item_prerequisite_text), "event",
(GtkSignalFunc) item_event_help,
"prerequisite");
- gtk_signal_connect(GTK_OBJECT(item), "event",
+ gtk_signal_connect(GTK_OBJECT(item_prerequisite_text), "event",
(GtkSignalFunc) gcompris_item_event_focus,
item_prerequisite);
}
@@ -218,10 +218,10 @@ void gcompris_help_start (GcomprisBoard *gcomprisBoard)
"anchor", GTK_ANCHOR_CENTER,
"fill_color_rgba", COLOR_TEXT_BUTTON,
NULL);
- gtk_signal_connect(GTK_OBJECT(item), "event",
+ gtk_signal_connect(GTK_OBJECT(item_goal_text), "event",
(GtkSignalFunc) item_event_help,
"goal");
- gtk_signal_connect(GTK_OBJECT(item), "event",
+ gtk_signal_connect(GTK_OBJECT(item_goal_text), "event",
(GtkSignalFunc) gcompris_item_event_focus,
item_goal);
}
@@ -252,10 +252,10 @@ void gcompris_help_start (GcomprisBoard *gcomprisBoard)
"anchor", GTK_ANCHOR_CENTER,
"fill_color_rgba", COLOR_TEXT_BUTTON,
NULL);
- gtk_signal_connect(GTK_OBJECT(item), "event",
+ gtk_signal_connect(GTK_OBJECT(item_manual_text), "event",
(GtkSignalFunc) item_event_help,
"manual");
- gtk_signal_connect(GTK_OBJECT(item), "event",
+ gtk_signal_connect(GTK_OBJECT(item_manual_text), "event",
(GtkSignalFunc) gcompris_item_event_focus,
item_manual);
}
@@ -286,10 +286,10 @@ void gcompris_help_start (GcomprisBoard *gcomprisBoard)
"anchor", GTK_ANCHOR_CENTER,
"fill_color_rgba", COLOR_TEXT_BUTTON,
NULL);
- gtk_signal_connect(GTK_OBJECT(item), "event",
+ gtk_signal_connect(GTK_OBJECT(item_credit_text), "event",
(GtkSignalFunc) item_event_help,
"credit");
- gtk_signal_connect(GTK_OBJECT(item), "event",
+ gtk_signal_connect(GTK_OBJECT(item_credit_text), "event",
(GtkSignalFunc) gcompris_item_event_focus,
item_credit);
}
diff --git a/src/gcompris/interface.c b/src/gcompris/interface.c
index 5cbc05c..821b4a3 100644
--- a/src/gcompris/interface.c
+++ b/src/gcompris/interface.c
@@ -57,11 +57,11 @@ create_gcompris_edit (void)
GtkWidget *dock1;
GtkWidget *toolbar1;
GtkWidget *tmp_toolbar_icon;
- GtkWidget *button1;
- GtkWidget *button2;
- GtkWidget *button4;
- GtkWidget *button5;
- GtkWidget *button3;
+ GtkWidget *buttonAdd;
+ GtkWidget *buttonDel;
+ GtkWidget *buttonUp;
+ GtkWidget *buttonDown;
+ GtkWidget *buttonSave;
GtkWidget *hpaned1;
GtkWidget *scrolledwindow1;
GtkWidget *ctree1;
@@ -88,6 +88,8 @@ create_gcompris_edit (void)
GtkWidget *entryBoardDir;
GtkWidget *hbox1;
GtkWidget *pixmapBoardIcon;
+ GtkWidget *vbox1;
+ GtkWidget *vbuttonbox1;
GtkWidget *buttonIconList;
GtkWidget *label20;
GtkWidget *label12;
@@ -113,10 +115,11 @@ create_gcompris_edit (void)
tooltips = gtk_tooltips_new ();
- gcompris_edit = gnome_app_new ("Edit", _("Edit"));
+ gcompris_edit = gnome_app_new ("Edit", _("GCompris Edit"));
gtk_widget_set_name (gcompris_edit, "gcompris_edit");
gtk_object_set_data (GTK_OBJECT (gcompris_edit), "gcompris_edit", gcompris_edit);
- gtk_window_set_default_size (GTK_WINDOW (gcompris_edit), 610, 450);
+ gtk_window_set_default_size (GTK_WINDOW (gcompris_edit), 706, 450);
+ gtk_window_set_policy (GTK_WINDOW (gcompris_edit), TRUE, TRUE, FALSE);
dock1 = GNOME_APP (gcompris_edit)->dock;
gtk_widget_set_name (dock1, "dock1");
@@ -214,69 +217,69 @@ create_gcompris_edit (void)
gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar1), GTK_RELIEF_NONE);
tmp_toolbar_icon = gnome_stock_pixmap_widget (gcompris_edit, GNOME_STOCK_PIXMAP_ADD);
- button1 = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
+ buttonAdd = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
GTK_TOOLBAR_CHILD_BUTTON,
NULL,
_("Ajouter"),
_("Nouveau fichier"), NULL,
tmp_toolbar_icon, NULL, NULL);
- gtk_widget_set_name (button1, "button1");
- gtk_widget_ref (button1);
- gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "button1", button1,
+ gtk_widget_set_name (buttonAdd, "buttonAdd");
+ gtk_widget_ref (buttonAdd);
+ gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "buttonAdd", buttonAdd,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (button1);
+ gtk_widget_show (buttonAdd);
tmp_toolbar_icon = gnome_stock_pixmap_widget (gcompris_edit, GNOME_STOCK_PIXMAP_REMOVE);
- button2 = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
+ buttonDel = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
GTK_TOOLBAR_CHILD_BUTTON,
NULL,
_("Supprimer"),
_("Ouvrir un fichier"), NULL,
tmp_toolbar_icon, NULL, NULL);
- gtk_widget_set_name (button2, "button2");
- gtk_widget_ref (button2);
- gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "button2", button2,
+ gtk_widget_set_name (buttonDel, "buttonDel");
+ gtk_widget_ref (buttonDel);
+ gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "buttonDel", buttonDel,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (button2);
+ gtk_widget_show (buttonDel);
tmp_toolbar_icon = gnome_stock_pixmap_widget (gcompris_edit, GNOME_STOCK_PIXMAP_UP);
- button4 = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
+ buttonUp = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
GTK_TOOLBAR_CHILD_BUTTON,
NULL,
_("Monter"),
NULL, NULL,
tmp_toolbar_icon, NULL, NULL);
- gtk_widget_set_name (button4, "button4");
- gtk_widget_ref (button4);
- gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "button4", button4,
+ gtk_widget_set_name (buttonUp, "buttonUp");
+ gtk_widget_ref (buttonUp);
+ gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "buttonUp", buttonUp,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (button4);
+ gtk_widget_show (buttonUp);
tmp_toolbar_icon = gnome_stock_pixmap_widget (gcompris_edit, GNOME_STOCK_PIXMAP_DOWN);
- button5 = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
+ buttonDown = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
GTK_TOOLBAR_CHILD_BUTTON,
NULL,
_("Descendre"),
NULL, NULL,
tmp_toolbar_icon, NULL, NULL);
- gtk_widget_set_name (button5, "button5");
- gtk_widget_ref (button5);
- gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "button5", button5,
+ gtk_widget_set_name (buttonDown, "buttonDown");
+ gtk_widget_ref (buttonDown);
+ gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "buttonDown", buttonDown,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (button5);
+ gtk_widget_show (buttonDown);
tmp_toolbar_icon = gnome_stock_pixmap_widget (gcompris_edit, GNOME_STOCK_PIXMAP_SAVE);
- button3 = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
+ buttonSave = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
GTK_TOOLBAR_CHILD_BUTTON,
NULL,
_("Enregistrer"),
_("Enregistrer le fichier"), NULL,
tmp_toolbar_icon, NULL, NULL);
- gtk_widget_set_name (button3, "button3");
- gtk_widget_ref (button3);
- gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "button3", button3,
+ gtk_widget_set_name (buttonSave, "buttonSave");
+ gtk_widget_ref (buttonSave);
+ gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "buttonSave", buttonSave,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (button3);
+ gtk_widget_show (buttonSave);
hpaned1 = gtk_hpaned_new ();
gtk_widget_set_name (hpaned1, "hpaned1");
@@ -352,6 +355,7 @@ create_gcompris_edit (void)
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (scrolledwindow_description);
gtk_container_add (GTK_CONTAINER (notebook1), scrolledwindow_description);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow_description), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
viewport1 = gtk_viewport_new (NULL, NULL);
gtk_widget_set_name (viewport1, "viewport1");
@@ -527,13 +531,29 @@ create_gcompris_edit (void)
gtk_widget_show (pixmapBoardIcon);
gtk_box_pack_start (GTK_BOX (hbox1), pixmapBoardIcon, TRUE, TRUE, 0);
+ vbox1 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_set_name (vbox1, "vbox1");
+ gtk_widget_ref (vbox1);
+ gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "vbox1", vbox1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox1);
+ gtk_box_pack_end (GTK_BOX (hbox1), vbox1, FALSE, FALSE, 0);
+
+ vbuttonbox1 = gtk_vbutton_box_new ();
+ gtk_widget_set_name (vbuttonbox1, "vbuttonbox1");
+ gtk_widget_ref (vbuttonbox1);
+ gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "vbuttonbox1", vbuttonbox1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbuttonbox1);
+ gtk_box_pack_start (GTK_BOX (vbox1), vbuttonbox1, TRUE, TRUE, 0);
+
buttonIconList = gtk_button_new_with_label (_("..."));
gtk_widget_set_name (buttonIconList, "buttonIconList");
gtk_widget_ref (buttonIconList);
gtk_object_set_data_full (GTK_OBJECT (gcompris_edit), "buttonIconList", buttonIconList,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (buttonIconList);
- gtk_box_pack_start (GTK_BOX (hbox1), buttonIconList, FALSE, FALSE, 0);
+ gtk_box_pack_end (GTK_BOX (vbox1), buttonIconList, FALSE, FALSE, 0);
GTK_WIDGET_UNSET_FLAGS (buttonIconList, GTK_CAN_FOCUS);
gtk_tooltips_set_tip (tooltips, buttonIconList, _("Enregistrer le fichier"), NULL);
@@ -731,9 +751,24 @@ create_gcompris_edit (void)
gnome_app_set_statusbar (GNOME_APP (gcompris_edit), appbar1);
gnome_app_install_menu_hints (GNOME_APP (gcompris_edit), menubar1_uiinfo);
+ gtk_signal_connect (GTK_OBJECT (buttonAdd), "clicked",
+ GTK_SIGNAL_FUNC (on_buttonAdd_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (buttonDel), "clicked",
+ GTK_SIGNAL_FUNC (on_buttonDel_clicked),
+ NULL);
gtk_signal_connect (GTK_OBJECT (ctree1), "tree_select_row",
GTK_SIGNAL_FUNC (on_ctree1_tree_select_row),
NULL);
+ gtk_signal_connect (GTK_OBJECT (ctree1), "tree_unselect_row",
+ GTK_SIGNAL_FUNC (on_ctree1_tree_unselect_row),
+ NULL);
+ gtk_signal_connect_after (GTK_OBJECT (ctree1), "tree_collapse",
+ GTK_SIGNAL_FUNC (on_ctree1_tree_collapse),
+ NULL);
+ gtk_signal_connect_after (GTK_OBJECT (ctree1), "tree_expand",
+ GTK_SIGNAL_FUNC (on_ctree1_tree_expand),
+ NULL);
gtk_signal_connect (GTK_OBJECT (buttonIconList), "clicked",
GTK_SIGNAL_FUNC (on_buttonIconList_clicked),
NULL);
diff --git a/src/gcompris/properties.c b/src/gcompris/properties.c
index a3f6a1c..17bfeea 100644
--- a/src/gcompris/properties.c
+++ b/src/gcompris/properties.c
@@ -1,6 +1,6 @@
/* gcompris - properties.c
*
- * Time-stamp: <2002/05/01 22:30:19 bruno>
+ * Time-stamp: <2002/06/07 00:16:20 bruno>
*
* Copyright (C) 2000 Bruno Coudoin
*
@@ -108,6 +108,41 @@ void gcompris_properties_save (GcomprisProperties *props)
gnome_config_sync ();
}
+/*
+ * Management of the status of the boards
+ */
+void gcompris_properties_enable_board(gchar *boardName)
+{
+ gchar *tmp = g_strdup_printf("/gcompris/BoardStatus/%s=1", boardName);
+ gnome_config_set_int (tmp, 1);
+ g_free(tmp);
+
+ gnome_config_sync ();
+}
+
+void gcompris_properties_disable_board(gchar *boardName)
+{
+ gchar *tmp = g_strdup_printf("/gcompris/BoardStatus/%s=0", boardName);
+ gnome_config_set_int (tmp, 0);
+ g_free(tmp);
+
+ gnome_config_sync ();
+}
+
+gboolean gcompris_properties_get_board_status(gchar *boardName)
+{
+ gboolean status;
+ gchar *tmp = g_strdup_printf("/gcompris/BoardStatus/%s=1", boardName);
+
+ status = ((gnome_config_get_int (tmp) == 1) ? TRUE : FALSE);
+
+ g_free(tmp);
+
+ return(status);
+
+
+}
+
/* Local Variables: */
diff --git a/src/gcompris/properties.h b/src/gcompris/properties.h
index 04c0b84..f5d239c 100644
--- a/src/gcompris/properties.h
+++ b/src/gcompris/properties.h
@@ -1,6 +1,6 @@
/* gcompris - properties.h
*
- * Time-stamp: <2002/05/01 22:13:04 bruno>
+ * Time-stamp: <2002/06/06 23:58:55 bruno>
*
* Copyright (C) 2000 Bruno Coudoin
*
@@ -38,6 +38,10 @@ void gcompris_properties_destroy (GcomprisProperties *props);
GcomprisProperties *gcompris_properties_copy (GcomprisProperties *props);
void gcompris_properties_save (GcomprisProperties *props);
+void gcompris_properties_enable_board(gchar *boardName);
+void gcompris_properties_disable_board(gchar *boardName);
+gboolean gcompris_properties_get_board_status(gchar *boardName);
+
#endif
/* Local Variables: */