/* test if everything worked ok */
GUI_Window = GTK_WIDGET (gtk_builder_get_object (builder, "MainWindow"));
- if(!GUI_Window) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_Window) printf("Error: gtk_builder didn't work (MainWindow)!\n");
GUI_Aspect = GTK_WIDGET (gtk_builder_get_object (builder, "Aspectframe"));
- if(!GUI_Aspect) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_Aspect) printf("Error: gtk_builder didn't work (Aspectframe)!\n");
GUI_Menubar = GTK_WIDGET (gtk_builder_get_object (builder, "MenuBar"));
- if(!GUI_Menubar) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_Menubar) printf("Error: gtk_builder didn't work (MenuBar)!\n");
GUI_Timer = GTK_WIDGET (gtk_builder_get_object (builder, "Timer"));
- if(!GUI_Timer) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_Timer) printf("Error: gtk_builder didn't work (Timer)!\n");
GUI_Buttonbar = GTK_WIDGET (gtk_builder_get_object (builder, "ButtonBar"));
- if(!GUI_Buttonbar) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_Buttonbar) printf("Error: gtk_builder didn't work (ButtonBar)!\n");
GUI_Board = GTK_WIDGET (gtk_builder_get_object (builder, "Board"));
- if(!GUI_Board) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_Board) printf("Error: gtk_builder didn't work (Board)!\n");
GUI_Whiteclock = GTK_WIDGET (gtk_builder_get_object (builder, "WhiteClock"));
- if(!GUI_Whiteclock) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_Whiteclock) printf("Error: gtk_builder didn't work (WhiteClock)!\n");
GUI_Blackclock = GTK_WIDGET (gtk_builder_get_object (builder, "BlackClock"));
- if(!GUI_Blackclock) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_Blackclock) printf("Error: gtk_builder didn't work (BlackClock)!\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");
+ if(!LIST_MoveHistory) printf("Error: gtk_builder didn't work (MoveHistoryStore)!\n");
LIST_GameList = GTK_LIST_STORE (gtk_builder_get_object (builder, "GameListStore"));
- if(!LIST_GameList) printf("Error: gtk_builder didn't work!\n");
+ if(!LIST_GameList) printf("Error: gtk_builder didn't work (GameListStore)!\n");
/* EditTags window */
GUI_EditTags = GTK_WIDGET (gtk_builder_get_object (builder, "EditTags"));
- if(!GUI_EditTags) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_EditTags) printf("Error: gtk_builder didn't work (EditTags)!\n");
GUI_EditTagsTextArea = GTK_WIDGET (gtk_builder_get_object (builder, "EditTagsTextArea"));
- if(!GUI_EditTagsTextArea) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_EditTagsTextArea) printf("Error: gtk_builder didn't work(EditTagsTextArea)!\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");
+ if(!GUI_History) printf("Error: gtk_builder didn't work (MoveHistory)!\n");
TREE_History = GTK_TREE_VIEW (gtk_builder_get_object (builder, "MoveHistoryView"));
- if(!TREE_History) printf("Error: gtk_builder didn't work!\n");
+ if(!TREE_History) printf("Error: gtk_builder didn't work (MoveHistoryView)!\n");
GUI_GameList = GTK_WIDGET (gtk_builder_get_object (builder, "GameList"));
- if(!GUI_GameList) printf("Error: gtk_builder didn't work!\n");
+ if(!GUI_GameList) printf("Error: gtk_builder didn't work (GameList)!\n");
TREE_Game = GTK_TREE_VIEW (gtk_builder_get_object (builder, "GameListView"));
- if(!TREE_Game) printf("Error: gtk_builder didn't work!\n");
+ if(!TREE_Game) printf("Error: gtk_builder didn't work (GameListView)!\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_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);
extern GtkWidget *GUI_History;
extern GtkListStore *LIST_MoveHistory;
+extern GtkTreeView *TREE_History;
String dots=" ... ";
Position gameHistoryX, gameHistoryY;
return;
}
-void HistoryMoveProc(Widget w, XtPointer closure, XtPointer call_data)
+void
+HistoryMoveProc(window, event, data)
+ GtkWindow *window;
+ GdkEvent *event;
+ gpointer data;
{
- int to;
- /*
- XawListReturnStruct *R = (XawListReturnStruct *) call_data;
- if (w == hist->mvn || w == hist->mvw) {
- to=2*R->list_index-1;
- ToNrEvent(to);
- }
- else if (w == hist->mvb) {
- to=2*R->list_index;
- ToNrEvent(to);
+ int to; /* the move we want to go to */
+
+ /* check if the mouse was clicked */
+ if(event->type == GDK_BUTTON_PRESS)
+ {
+ GtkTreeViewColumn *column;
+ GtkTreePath *path;
+ GList *cols;
+ gint *indices;
+ gint row,col;
+
+ /* can we convert this into an element of the history list? */
+ if(gtk_tree_view_get_path_at_pos(TREE_History,
+ (gint)event->button.x, (gint)event->button.y,
+ &path,&column,NULL,NULL))
+ {
+ /* find out which row and column the user clicked on */
+ indices = gtk_tree_path_get_indices(path);
+ row = indices[0];
+ cols = gtk_tree_view_get_columns(GTK_TREE_VIEW(column->tree_view));
+ col = g_list_index(cols,(gpointer)column);
+ g_list_free(cols);
+ gtk_tree_path_free(path);
+
+ printf("DEBUG: row %d col %d\n",row,col);
+
+
+ if(col)
+ {
+ /* user didn't click on the move number */
+
+ to = 2*row + col;
+ printf("DEBUG: going to %d\n",to);fflush(stdout);
+
+ /* set board to that move */
+ ToNrEvent(to);
+ }
+ }
}
- */
+ return;
}
/* TODO need to add highlights for current move */
/* TODO need to add navigation by keyboard or mouse (double click on move) */
+ strcpy(movewhite,"");
+ strcpy(moveblack,"");
/* first clear everything, do we need this? */
gtk_list_store_clear(LIST_MoveHistory);