From: Arun Persaud Date: Tue, 19 Jan 2010 02:28:08 +0000 (-0800) Subject: worked on MoveHistory window X-Git-Tag: gtk-20100206~16 X-Git-Url: http://winboard.nl/cgi-bin?p=xboard.git;a=commitdiff_plain;h=a84055fab56abd3cb232692e6d7f24d122f74497 worked on MoveHistory window it now displays the moves correctly. Next: add keyboard and mouse support to be able to select a move and go to that position --- diff --git a/interface.h b/interface.h index 3ee8d15..3ae8aa2 100644 --- a/interface.h +++ b/interface.h @@ -18,6 +18,9 @@ GtkWidget *GUI_EditTagsTextArea=NULL; GtkListStore *LIST_MoveHistory=NULL; GtkListStore *LIST_GameList=NULL; +GtkTreeView *TREE_History=NULL; +GtkTreeView *TREE_Game=NULL; + gint boardWidth; gint boardHeight; diff --git a/xboard.c b/xboard.c index a25dcdf..2e7d470 100644 --- a/xboard.c +++ b/xboard.c @@ -1450,12 +1450,6 @@ main(argc, argv) GUI_Aspect = GTK_WIDGET (gtk_builder_get_object (builder, "Aspectframe")); if(!GUI_Aspect) printf("Error: gtk_builder didn't work!\n"); - GUI_History = GTK_WIDGET (gtk_builder_get_object (builder, "MoveHistory")); - if(!GUI_History) printf("Error: gtk_builder didn't work!\n"); - - GUI_GameList = GTK_WIDGET (gtk_builder_get_object (builder, "GameList")); - if(!GUI_GameList) printf("Error: gtk_builder didn't work!\n"); - GUI_Menubar = GTK_WIDGET (gtk_builder_get_object (builder, "MenuBar")); if(!GUI_Menubar) printf("Error: gtk_builder didn't work!\n"); GUI_Timer = GTK_WIDGET (gtk_builder_get_object (builder, "Timer")); @@ -1471,6 +1465,7 @@ main(argc, argv) GUI_Blackclock = GTK_WIDGET (gtk_builder_get_object (builder, "BlackClock")); if(!GUI_Blackclock) printf("Error: gtk_builder didn't work!\n"); + /* GTK lists stores*/ LIST_MoveHistory = GTK_LIST_STORE (gtk_builder_get_object (builder, "MoveHistoryStore")); if(!LIST_MoveHistory) printf("Error: gtk_builder didn't work!\n"); @@ -1484,6 +1479,23 @@ main(argc, argv) GUI_EditTagsTextArea = GTK_WIDGET (gtk_builder_get_object (builder, "EditTagsTextArea")); if(!GUI_EditTagsTextArea) printf("Error: gtk_builder didn't work!\n"); + /* move history and game list windows */ + GUI_History = GTK_WIDGET (gtk_builder_get_object (builder, "MoveHistory")); + if(!GUI_History) printf("Error: gtk_builder didn't work!\n"); + + TREE_History = GTK_TREE_VIEW (gtk_builder_get_object (builder, "MoveHistoryView")); + if(!TREE_History) printf("Error: gtk_builder didn't work!\n"); + + GUI_GameList = GTK_WIDGET (gtk_builder_get_object (builder, "GameList")); + if(!GUI_GameList) printf("Error: gtk_builder didn't work!\n"); + + TREE_Game = GTK_TREE_VIEW (gtk_builder_get_object (builder, "GameListView")); + if(!TREE_Game) printf("Error: gtk_builder didn't work!\n"); + + + /* connect lists to views */ + gtk_tree_view_set_model(TREE_History,GTK_TREE_MODEL(LIST_MoveHistory)); + gtk_tree_view_set_model(TREE_Game,GTK_TREE_MODEL(LIST_GameList)); gtk_builder_connect_signals (builder, NULL); diff --git a/xhistory.c b/xhistory.c index 6bf4ad0..cd572db 100644 --- a/xhistory.c +++ b/xhistory.c @@ -103,6 +103,7 @@ void HistorySet(char movelist[][2*MOVE_LEN],int first,int last,int current) /* TODO need to add highlights for current move */ /* TODO need to add navigation by keyboard or mouse (double click on move) */ + /* first clear everything, do we need this? */ gtk_list_store_clear(LIST_MoveHistory); @@ -142,7 +143,7 @@ void HistorySet(char movelist[][2*MOVE_LEN],int first,int last,int current) /* save move */ gtk_list_store_append (LIST_MoveHistory, &iter); gtk_list_store_set (LIST_MoveHistory, &iter, - 0, i, + 0, (i/2 +1), 1, movewhite, 2, moveblack, -1); @@ -155,17 +156,18 @@ void HistorySet(char movelist[][2*MOVE_LEN],int first,int last,int current) /* check if there is a white move left */ if(movewhite[0]) { - i++; strcpy(moveblack,""); + /* save move */ gtk_list_store_append (LIST_MoveHistory, &iter); gtk_list_store_set (LIST_MoveHistory, &iter, - 0, i, + 0, (i/2 +1), 1, movewhite, 2, moveblack, -1); }; + //TODO // EvalGraphSet( first, last, current, pvInfoList ); // piggy-backed