diff options
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | boards/algebra_minus.xml.in | 1 | ||||
-rw-r--r-- | boards/click_on_letter.xml.in | 6 | ||||
-rw-r--r-- | boards/clockgame.xml.in | 4 | ||||
-rw-r--r-- | boards/imageid.xml.in | 2 | ||||
-rw-r--r-- | boards/imagename.xml.in | 2 | ||||
-rw-r--r-- | boards/planegame.xml.in | 4 | ||||
-rw-r--r-- | docs/C/gcompris.texi | 5 | ||||
-rw-r--r-- | po/fr.po | 2 | ||||
-rw-r--r-- | src/boards/menu.c | 4 | ||||
-rw-r--r-- | src/gcompris/callbacks.c | 69 | ||||
-rw-r--r-- | src/gcompris/callbacks.h | 32 | ||||
-rw-r--r-- | src/gcompris/dir-close.xpm | 47 | ||||
-rw-r--r-- | src/gcompris/dir-open.xpm | 53 | ||||
-rw-r--r-- | src/gcompris/gcompris-edit.c | 135 | ||||
-rw-r--r-- | src/gcompris/gcompris-edit.glade | 97 | ||||
-rw-r--r-- | src/gcompris/gcompris-edit.h | 12 | ||||
-rw-r--r-- | src/gcompris/help.c | 18 | ||||
-rw-r--r-- | src/gcompris/interface.c | 101 | ||||
-rw-r--r-- | src/gcompris/properties.c | 37 | ||||
-rw-r--r-- | src/gcompris/properties.h | 6 |
21 files changed, 425 insertions, 214 deletions
@@ -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? @@ -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: */ |