extern int toY;
extern int squareSize,lineGap;
+extern int LoadGamePopUp P((FILE *f, int gameNumber, char *title));
+extern int LoadPosition P((FILE *f, int gameNumber, char *title));
+extern int SaveGame P((FILE *f, int gameNumber, char *title));
+extern int SavePosition P((FILE *f, int gameNumber, char *title));
+
gboolean
ExposeProc(object, user_data)
GtkObject *object;
int totalh=0,nw,nh;
float ratio;
int boardWidth,boardHeight,old,new;
-
+
nw=GTK_WIDGET(object)->allocation.width;
nh=GTK_WIDGET(object)->allocation.height;
-
+
old=squareSize;
squareSize = nw/(BOARD_WIDTH*1.05+0.05);
if(old!=squareSize)
{
lineGap = squareSize*0.05;
-
+
boardWidth = lineGap + BOARD_WIDTH * (squareSize + lineGap);
boardHeight = lineGap + BOARD_HEIGHT * (squareSize + lineGap);
-
+
/* get the height of the menus, etc. and calculate the aspect ratio */
gtk_widget_size_request(GTK_WIDGET(GUI_Menubar), &w);
totalh += w.height;
totalh += w.height;
gtk_widget_size_request(GTK_WIDGET(GUI_Buttonbar), &w);
totalh += w.height;
-
+
ratio = ((float)totalh+boardHeight)/((float)boardWidth) ;
-
+
gtk_widget_set_size_request(GTK_WIDGET(GUI_Board),
boardWidth,boardHeight);
-
+
gtk_aspect_frame_set (GTK_ASPECT_FRAME(GUI_Aspect),0,0,ratio,TRUE);
/* recreate pieces with new size... TODO: keep svg in memory and just recreate pixmap instead of reloading files */
CreatePieces();
- }
+ }
return FALSE; /* return false, so that other expose events are called too */
}
* File menu
*/
-void LoadNextGameProc(object, user_data)
+void
+LoadNextGameProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
-void LoadPrevGameProc(object, user_data)
+void
+LoadPrevGameProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
-void ReloadGameProc(object, user_data)
+void
+ReloadGameProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
-
-void LoadNextPositionProc(object, user_data)
+void
+LoadNextPositionProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
-void LoadPrevPositionProc(object, user_data)
+void
+LoadPrevPositionProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
-void ReloadPositionProc(object, user_data)
+void
+ReloadPositionProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
+void
+LoadPositionProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ if (gameMode == AnalyzeMode || gameMode == AnalyzeFile)
+ {
+ Reset(FALSE, TRUE);
+ };
+
+ FileNamePopUp(_("Load position file name?"), "", LoadPosition, "rb");
+ return;
+}
+
+void
+SaveGameProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ FileNamePopUp(_("Save game file name?"),
+ DefaultFileName(appData.oldSaveStyle ? "game" : "pgn"),
+ SaveGame, "a");
+ return;
+}
+
+void
+SavePositionProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ FileNamePopUp(_("Save position file name?"),
+ DefaultFileName(appData.oldSaveStyle ? "pos" : "fen"),
+ SavePosition, "a");
+ return;
+}
+
+void
+AnalyzeFileProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ if (!first.analysisSupport)
+ {
+ char buf[MSG_SIZ];
+ snprintf(buf, sizeof(buf), _("%s does not support analysis"), first.tidy);
+ DisplayError(buf, 0);
+ return;
+ };
+ Reset(FALSE, TRUE);
+
+ if (!appData.showThinking)
+ ShowThinkingProc(NULL,NULL);
+
+ AnalyzeFileEvent();
+ FileNamePopUp(_("File to analyze"), "", LoadGamePopUp, "rb");
+ AnalysisPeriodicEvent(1);
+ return;
+}
+
/* End File Menu */
}
/* Option Menu */
-void AutocommProc(object, user_data)
+void
+AutocommProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
-void AutoflagProc(object, user_data)
+void
+AutoflagProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
-void AutoflipProc(object, user_data)
+void
+AutoflipProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
-void ShowThinkingProc(object, user_data)
+void
+ShowThinkingProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
- appData.showThinking = !appData.showThinking;
+ appData.showThinking = !appData.showThinking;
ShowThinkingEvent();
return;
}
-void HideThinkingProc(object, user_data)
+void
+HideThinkingProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
-void FlipViewProc(object, user_data)
+void
+FlipViewProc(object, user_data)
GtkObject *object;
gpointer user_data;
{
return;
}
+void
+AlwaysQueenProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.alwaysPromoteToQueen = !appData.alwaysPromoteToQueen;
+ return;
+}
+
+void
+AnimateDraggingProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.animateDragging = !appData.animateDragging;
+
+ if (appData.animateDragging)
+ {
+ // TODO convert to gtk
+ // CreateAnimVars();
+ };
+
+ return;
+}
+
+void
+AnimateMovingProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.animate = !appData.animate;
+
+ if (appData.animate)
+ {
+ // TODO convert to gtk
+ // CreateAnimVars();
+ };
+
+ return;
+}
+
+void
+AutobsProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.autoObserve = !appData.autoObserve;
+ return;
+}
+
+void
+AutoraiseProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.autoRaiseBoard = !appData.autoRaiseBoard;
+ return;
+}
+
+void
+AutosaveProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.autoSaveGames = !appData.autoSaveGames;
+ return;
+}
+
+void
+BlindfoldProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.blindfold = !appData.blindfold;
+ DrawPosition(True, NULL);
+ return;
+}
+
+void
+TestLegalityProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.testLegality = !appData.testLegality;
+ return;
+}
+
+void
+FlashMovesProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ if (appData.flashCount == 0)
+ {
+ appData.flashCount = 3;
+ }
+ else
+ {
+ appData.flashCount = -appData.flashCount;
+ };
+
+ // TODO: check if this is working correct*/
+ return;
+}
+
+#if HIGHDRAG
+void
+HighlightDraggingProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ /* TODO: connect to option menu */
+ appData.highlightDragging = !appData.highlightDragging;
+ return;
+}
+#endif
+
+void
+HighlightLastMoveProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.highlightLastMove = !appData.highlightLastMove;
+ return;
+}
+
+void
+IcsAlarmProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.icsAlarm = !appData.icsAlarm;
+ return;
+}
+
+void
+MoveSoundProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.ringBellAfterMoves = !appData.ringBellAfterMoves;
+ return;
+}
+
+void
+OldSaveStyleProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ appData.oldSaveStyle = !appData.oldSaveStyle;
+ return;
+}
+
+void
+PeriodicUpdatesProc(object, user_data)
+ GtkObject *object;
+ gpointer user_data;
+{
+ PeriodicUpdatesEvent(!appData.periodicUpdates);
+ return;
+}
+
+/* end option menu */
gboolean CloseWindowProc(GtkWidget *button)
{
GtkObject *object;
gpointer user_data;
{
- GtkWidget *dialog;
- dialog = gtk_file_chooser_dialog_new (_("Load game file name?"),
- GTK_WINDOW(GUI_Window),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
- NULL);
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
- {
- char *filename;
- FILE *f;
-
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
-
- //see loadgamepopup
- f = fopen(filename, "rb");
- if (f == NULL)
- {
- DisplayError(_("Failed to open file"), errno);
- }
- else
- {
- /* TODO add indec */
- (void) LoadGamePopUp(f, 0, filename);
- }
- g_free (filename);
- };
-
- gtk_widget_destroy (dialog);
- ModeHighlight();
-
+ FileNamePopUp(_("Load game file name?"),"",LoadGamePopUp,"rb");
return;
}
gpointer user_data;
{
appData.getMoveList = !appData.getMoveList;
-
- if (appData.getMoveList)
+
+ if (appData.getMoveList)
{
GetMoveListEvent();
- }
+ }
// gets set automatically? if we set it with set_active we end up in an endless loop switching between 0 and 1
// gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (object),(gboolean) appData.getMoveList );
-
+
return;
}