/*
* xgamelist.c -- Game list window, part of X front end for XBoard
- * $Id$
*
- * Copyright 1995 Free Software Foundation, Inc.
- *
- * The following terms apply to the enhanced version of XBoard distributed
- * by the Free Software Foundation:
+ * Copyright 1995,2009 Free Software Foundation, Inc.
* ------------------------------------------------------------------------
- * This program is free software; you can redistribute it and/or modify
+ *
+ * GNU XBoard is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * the Free Software Foundation, either version 3 of the License, or (at
+ * your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * GNU XBoard is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * ------------------------------------------------------------------------
+ * along with this program. If not, see http://www.gnu.org/licenses/. *
*
- * See the file ChangeLog for a revision history.
- */
+ *------------------------------------------------------------------------
+ ** See the file ChangeLog for a revision history. */
#include "config.h"
#include "backend.h"
#include "xboard.h"
#include "xgamelist.h"
+#include "gettext.h"
+
+#ifdef ENABLE_NLS
+# define _(s) gettext (s)
+# define N_(s) gettext_noop (s)
+#else
+# define _(s) (s)
+# define N_(s) s
+#endif
-extern Widget formWidget, shellWidget, boardWidget, menuBarWidget;
-extern Display *xDisplay;
+
+extern Widget formWidget, boardWidget, menuBarWidget, gameListShell;
extern int squareSize;
extern Pixmap xMarkPixmap;
extern char *layoutName;
XtSetArg(args[j], XtNresizable, True); j++;
XtSetArg(args[j], XtNallowShellResize, True); j++;
#if TOPLEVEL
- shell =
- XtCreatePopupShell(name, topLevelShellWidgetClass,
- shellWidget, args, j);
+// shell = gameListShell =
+// XtCreatePopupShell(name, topLevelShellWidgetClass,
+// shellWidget, args, j);
#else
- shell =
- XtCreatePopupShell(name, transientShellWidgetClass,
- shellWidget, args, j);
+// shell = gameListShell =
+// XtCreatePopupShell(name, transientShellWidgetClass,
+// shellWidget, args, j);
#endif
layout =
XtCreateManagedWidget(layoutName, formWidgetClass, shell,
XtSetArg(args[j], XtNleft, XtChainLeft); j++;
XtSetArg(args[j], XtNright, XtChainLeft); j++;
b_load =
- XtCreateManagedWidget("load", commandWidgetClass, form, args, j);
+ XtCreateManagedWidget(_("load"), commandWidgetClass, form, args, j);
XtAddCallback(b_load, XtNcallback, callback, client_data);
j = 0;
XtSetArg(args[j], XtNleft, XtChainLeft); j++;
XtSetArg(args[j], XtNright, XtChainLeft); j++;
b_loadprev =
- XtCreateManagedWidget("prev", commandWidgetClass, form, args, j);
+ XtCreateManagedWidget(_("prev"), commandWidgetClass, form, args, j);
XtAddCallback(b_loadprev, XtNcallback, callback, client_data);
j = 0;
XtSetArg(args[j], XtNleft, XtChainLeft); j++;
XtSetArg(args[j], XtNright, XtChainLeft); j++;
b_loadnext =
- XtCreateManagedWidget("next", commandWidgetClass, form, args, j);
+ XtCreateManagedWidget(_("next"), commandWidgetClass, form, args, j);
XtAddCallback(b_loadnext, XtNcallback, callback, client_data);
j = 0;
XtSetArg(args[j], XtNleft, XtChainLeft); j++;
XtSetArg(args[j], XtNright, XtChainLeft); j++;
b_close =
- XtCreateManagedWidget("close", commandWidgetClass, form, args, j);
+ XtCreateManagedWidget(_("close"), commandWidgetClass, form, args, j);
XtAddCallback(b_close, XtNcallback, callback, client_data);
+ if(wpGameList.width > 0) {
+ glc->x = wpGameList.x;
+ glc->y = wpGameList.y;
+ glc->w = wpGameList.width;
+ glc->h = wpGameList.height;
+ }
+
if (glc->x == -1) {
Position y1;
Dimension h1;
glc->w = fw_width * 3/4;
glc->h = squareSize * 3;
- XSync(xDisplay, False);
+ // XSync(xDisplay, False);
#ifdef NOTDEF
/* This code seems to tickle an X bug if it is executed too soon
after xboard starts up. The coordinates get transformed as if
the main window was positioned at (0, 0).
*/
- XtTranslateCoords(shellWidget, (fw_width - glc->w) / 2,
- y1 + (h1 - glc->h + appData.borderYoffset) / 2,
- &glc->x, &glc->y);
+// XtTranslateCoords(shellWidget, (fw_width - glc->w) / 2,
+// y1 + (h1 - glc->h + appData.borderYoffset) / 2,
+// &glc->x, &glc->y);
#else /*!NOTDEF*/
- XTranslateCoordinates(xDisplay, XtWindow(shellWidget),
- RootWindowOfScreen(XtScreen(shellWidget)),
- (fw_width - glc->w) / 2,
- y1 + (h1 - glc->h + appData.borderYoffset) / 2,
- &xx, &yy, &junk);
+// XTranslateCoordinates(xDisplay, XtWindow(shellWidget),
+// RootWindowOfScreen(XtScreen(shellWidget)),
+// (fw_width - glc->w) / 2,
+// y1 + (h1 - glc->h + appData.borderYoffset) / 2,
+// &xx, &yy, &junk);
glc->x = xx;
glc->y = yy;
#endif /*!NOTDEF*/
XtSetValues(shell, args, j);
XtRealizeWidget(shell);
- CatchDeleteWindow(shell, "GameListPopDown");
+ // CatchDeleteWindow(shell, "GameListPopDown");
return shell;
}
XtSetArg(args[j], XtNlabel, &name); j++;
XtGetValues(w, args, j);
- if (strcmp(name, "close") == 0) {
+ if (strcmp(name, _("close")) == 0) {
GameListPopDown();
return;
}
listwidg = XtNameToWidget(glc->shell, "*form.viewport.list");
rs = XawListShowCurrent(listwidg);
- if (strcmp(name, "load") == 0) {
+ if (strcmp(name, _("load")) == 0) {
index = rs->list_index;
if (index < 0) {
- DisplayError("No game selected", 0);
+ DisplayError(_("No game selected"), 0);
return;
}
- } else if (strcmp(name, "next") == 0) {
+ } else if (strcmp(name, _("next")) == 0) {
index = rs->list_index + 1;
if (index >= ((ListGame *) gameList.tailPred)->number) {
- DisplayError("Can't go forward any further", 0);
+ DisplayError(_("Can't go forward any further"), 0);
return;
}
XawListHighlight(listwidg, index);
- } else if (strcmp(name, "prev") == 0) {
+ } else if (strcmp(name, _("prev")) == 0) {
index = rs->list_index - 1;
if (index < 0) {
- DisplayError("Can't back up any further", 0);
+ DisplayError(_("Can't back up any further"), 0);
return;
}
XawListHighlight(listwidg, index);
int j;
if (glc == NULL) {
- DisplayError("There is no game list", 0);
+ DisplayError(_("There is no game list"), 0);
return;
}
if (glc->up) {
XtSetArg(args[j], XtNheight, &glc->h); j++;
XtSetArg(args[j], XtNwidth, &glc->w); j++;
XtGetValues(glc->shell, args, j);
+ wpGameList.x = glc->x - 4;
+ wpGameList.y = glc->y - 23;
+ wpGameList.width = glc->w;
+ wpGameList.height = glc->h;
XtPopdown(glc->shell);
- XtSetKeyboardFocus(shellWidget, formWidget);
+// XtSetKeyboardFocus(shellWidget, formWidget);
glc->up = False;
j = 0;
XtSetArg(args[j], XtNleftBitmap, None); j++;
listwidg = XtNameToWidget(glc->shell, "*form.viewport.list");
XawListHighlight(listwidg, index - 1);
}
+
+Boolean
+GameListIsUp()
+{
+ return glc && glc->up;
+}