* Massachusetts.
*
* Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
+ * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc.
*
* The following terms apply to Digital Equipment Corporation's copyright
* interest in XBoard:
#include "draw.h"
#ifdef OSXAPP
-# include <gtkmacintegration/gtkosxapplication.h>
+# include <gtkmacintegration-gtk2/gtkosxapplication.h>
// prevent pathname of positional file argument provided by OS X being be mistaken for option name
// (price is that we won't recognize Windows option format anymore).
# define SLASH '-'
RETSIGTYPE IntSigHandler P((int sig));
RETSIGTYPE TermSizeSigHandler P((int sig));
char *InsertPxlSize P((char *pattern, int targetPxlSize));
+#ifdef TODO_GTK
#if ENABLE_NLS
XFontSet CreateFontSet P((char *base_fnt_lst));
#else
char *FindFont P((char *pattern, int targetPxlSize));
#endif
+#endif
void DelayedDrag P((void));
void ICSInputBoxPopUp P((void));
void MoveTypeInProc P((GdkEventKey *eventkey));
snprintf(svgDir, MSG_SIZ, "%s/themes/default", dataDir);
suppress = (argc == 1 || argc > 1 && argv[1][00] != '-'); // OSX sends signal even if name was already argv[1]!
g_signal_connect(theApp, "NSApplicationOpenFile", G_CALLBACK(StartNewXBoard), NULL);
+ g_signal_connect(theApp, "NSApplicationWillTerminate", G_CALLBACK(ExitEvent), NULL);
// we must call application ready before we can get the signal,
// and supply a (dummy) menu bar before that, to avoid problems with dual apples in it
gtkosx_application_set_menu_bar(theApp, GTK_MENU_SHELL(gtk_menu_bar_new()));
programName, appData.boardSize);
exit(2);
}
- if(BOARD_WIDTH > 8)
- squareSize = (squareSize*8 + BOARD_WIDTH/2)/BOARD_WIDTH; // scale height
if (i < 7) {
/* Find some defaults; use the nearest known size */
SizeDefaults *szd, *nearest;
tinyLayout = szd->tinyLayout;
// [HGM] font: use defaults from settings file if available and not overruled
}
+ if(BOARD_WIDTH != 8) {
+ squareSize = (squareSize*8 + BOARD_WIDTH/2)/BOARD_WIDTH; // keep width the same
+ lineGap = (squareSize < 37 ? 1 : squareSize < 59 ? 2 : squareSize < 116 ? 3 : 4);
+ }
defaultLineGap = lineGap;
if(appData.overrideLineGap >= 0) lineGap = appData.overrideLineGap;
h = BOARD_HEIGHT * (squareSize + lineGap) + lineGap;
if(optList[W_BOARD].max > w) optList[W_BOARD].max = w;
if(optList[W_BOARD].value > h) optList[W_BOARD].value = h;
- first = 0;
+ first = appData.fixedSize;
}
static guint delayedDragTag = 0;
ModeHighlight ()
{
static int oldPausing = FALSE;
- static GameMode oldmode = (GameMode) -1;
+ static GameMode oldMode = (GameMode) -1;
char *wname;
if (!boardWidget) return;
}
}
- wname = ModeToWidgetName(oldmode);
+ wname = ModeToWidgetName(oldMode);
if (wname != NULL) {
MarkMenuItem(wname, False);
}
if (wname != NULL) {
MarkMenuItem(wname, True);
}
- oldmode = gameMode;
+ if(oldMode == TwoMachinesPlay) EnableNamedMenuItem("Mode.MachineMatch", True);
MarkMenuItem("Mode.MachineMatch", matchMode && matchGame < appData.matchGames);
+ oldMode = gameMode;
/* Maybe all the enables should be handled here, not just this one */
EnableNamedMenuItem("Mode.Training", gameMode == Training || gameMode == PlayFromGameFile);
buf[0]=eventkey->keyval;
buf[1]='\0';
- if (eventkey->keyval > 32 && eventkey->keyval < 256)
+ if (eventkey->keyval > 32 && eventkey->keyval < 256 || *buf == 27)
ConsoleAutoPopUp (buf);
}
{ // called from menu
#ifdef OSXAPP
char buf[MSG_SIZ];
- snprintf(buf, MSG_SIZ, "%s ./man.command", appData.sysOpen);
+ snprintf(buf, MSG_SIZ, "osascript -e 'tell application \"Terminal\"' -e 'activate' -e 'do script \"man %s/../man/man6/xboard.6\"' -e 'end tell'", dataDir);
system(buf);
#else
system("xterm -e man xboard &");
}
void
+InfoProc ()
+{
+ char buf[MSG_SIZ];
+#ifdef OSXAPP
+ snprintf(buf, MSG_SIZ, "osascript -e 'tell application \"Terminal\"' -e 'activate' -e 'do script \"info -d %s/../info -f xboard.info\"' -e 'end tell'", dataDir);
+#else
+ snprintf(buf, sizeof(buf), "xterm -e info --directory %s --directory . -f %s &",
+ INFODIR, INFOFILE);
+#endif
+ system(buf);
+}
+
+
+void
SetWindowTitle (char *text, char *title, char *icon)
{
#ifdef TODO_GTK
char fileext[10] = "";
char *result = NULL;
char *cp;
+ char curDir[MSG_SIZ];
+
+ StartDir(filter, NULL); // change to start directory for this file type
+
+ if(def && *def && def[strlen(def)-1] == '/') {
+ getcwd(curDir, MSG_SIZ);
+ chdir(def);
+ }
+
/* make a copy of the filter string, so that strtok can work with it*/
cp = strdup(filter);
ASSIGN(*name, filename);
ScheduleDelayedEvent(DelayedLoad, 50);
}
+ StartDir(filter, filename);
g_free (filename);
- };
+ }
+ else StartDir(filter, "");
gtk_widget_destroy (dialog);
ModeHighlight();
+ if(def && *def && def[strlen(def)-1] == '/') chdir(curDir);
+
free(cp);
return;