From: H.G. Muller Date: Thu, 4 Feb 2010 22:09:47 +0000 (+0100) Subject: Merge gamelistopt sources into gamelist source files X-Git-Tag: master-20100206~17 X-Git-Url: http://winboard.nl/cgi-bin?p=xboard.git;a=commitdiff_plain;h=8e2285c90cf5a1230fdf8fde9640c5a0ea67f0c4 Merge gamelistopt sources into gamelist source files The files xgamelistopt.c and gamelistopt.c are merged with xgamelist.c and gamelist.c, respectively. The WB front-end for the dialog already resided in winboard.c, so there was little need to move it to wgameist.c file. Makefiles adapted accordingly. Unsuitable key bindings were removed. The low-level front-end prototypes are now defined in in frontend.h. --- diff --git a/Makefile.am b/Makefile.am index 3c4595e..3abd176 100644 --- a/Makefile.am +++ b/Makefile.am @@ -12,7 +12,6 @@ xboard_SOURCES = backend.c backend.h backendz.h \ common.h \ frontend.h \ gamelist.c \ - gamelistopt.c \ gettext.h \ lists.c lists.h \ moves.c moves.h \ @@ -25,7 +24,6 @@ xboard_SOURCES = backend.c backend.h backendz.h \ xengineoutput.c \ evalgraph.c evalgraph.h xevalgraph.c \ xgamelist.c xgamelist.h\ - xgamelistopt.c \ xhistory.c xhistory.h \ xoptions.c \ $(ZPY) diff --git a/frontend.h b/frontend.h index 3e3e0b4..38abd03 100644 --- a/frontend.h +++ b/frontend.h @@ -155,6 +155,14 @@ void CmailSigHandlerCallBack P((InputSourceRef isr, VOIDSTAR closure, extern ProcRef cmailPR; +/* in xgamelist.c or winboard.c */ +void GLT_ClearList(); +void GLT_DeSelectList(); +void GLT_AddToList( char *name ); +Boolean GLT_GetFromList( int index, char *name ); + +extern char lpUserGLT[]; + /* these are in wgamelist.c */ void GameListPopUp P((FILE *fp, char *filename)); void GameListPopDown P((void)); diff --git a/gamelist.c b/gamelist.c index e7a2b4c..aae489a 100644 --- a/gamelist.c +++ b/gamelist.c @@ -496,3 +496,115 @@ char * GameListLineFull( int number, GameInfo * gameInfo ) return ret; } + +// --------------------------------------- Game-List options dialog -------------------------------------- + +// back-end +typedef struct { + char id; + char * name; +} GLT_Item; + +// back-end: translation table tag id-char <-> full tag name +static GLT_Item GLT_ItemInfo[] = { + { GLT_EVENT, "Event" }, + { GLT_SITE, "Site" }, + { GLT_DATE, "Date" }, + { GLT_ROUND, "Round" }, + { GLT_PLAYERS, "Players" }, + { GLT_RESULT, "Result" }, + { GLT_WHITE_ELO, "White Rating" }, + { GLT_BLACK_ELO, "Black Rating" }, + { GLT_TIME_CONTROL,"Time Control" }, + { GLT_VARIANT, "Variant" }, + { GLT_OUT_OF_BOOK,PGN_OUT_OF_BOOK }, + { GLT_RESULT_COMMENT, "Result Comment" }, // [HGM] rescom + { 0, 0 } +}; + +char lpUserGLT[64]; + +// back-end: convert the tag id-char to a full tag name +char * GLT_FindItem( char id ) +{ + char * result = 0; + + GLT_Item * list = GLT_ItemInfo; + + while( list->id != 0 ) { + if( list->id == id ) { + result = list->name; + break; + } + + list++; + } + + return result; +} + +// back-end: build the list of tag names +void +GLT_TagsToList( char * tags ) +{ + char * pc = tags; + + GLT_ClearList(); + + while( *pc ) { + GLT_AddToList( GLT_FindItem(*pc) ); + pc++; + } + + GLT_AddToList( " --- Hidden tags --- " ); + + pc = GLT_ALL_TAGS; + + while( *pc ) { + if( strchr( tags, *pc ) == 0 ) { + GLT_AddToList( GLT_FindItem(*pc) ); + } + pc++; + } + + GLT_DeSelectList(); +} + +// back-end: retrieve item from dialog and translate to id-char +char +GLT_ListItemToTag( int index ) +{ + char result = '\0'; + char name[128]; + + GLT_Item * list = GLT_ItemInfo; + + if( GLT_GetFromList(index, name) ) { + while( list->id != 0 ) { + if( strcmp( list->name, name ) == 0 ) { + result = list->id; + break; + } + + list++; + } + } + + return result; +} + +// back-end: add items id-chars one-by-one to temp tags string +void +GLT_ParseList() +{ + char * pc = lpUserGLT; + int idx = 0; + char id; + + do { + id = GLT_ListItemToTag( idx ); + *pc++ = id; + idx++; + } while( id != '\0' ); +} + diff --git a/gamelistopt.c b/gamelistopt.c deleted file mode 100644 index 3a29b8b..0000000 --- a/gamelistopt.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - * gamelistopt.c -- Game list window for WinBoard - * - * Copyright 1995,2009 Free Software Foundation, Inc. - * - * Enhancements Copyright 2005 Alessandro Scotti - * - * ------------------------------------------------------------------------ - * - * 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 3 of the License, or (at - * your option) any later version. - * - * 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, see http://www.gnu.org/licenses/. * - * - *------------------------------------------------------------------------ - ** See the file ChangeLog for a revision history. */ - -#include "config.h" - -#include -#include -#include -#include -#include - -#include "common.h" -#include "frontend.h" -#include "backend.h" - -void GLT_ClearList(); -void GLT_DeSelectList(); -void GLT_AddToList( char *name ); -Boolean GLT_GetFromList( int index, char *name ); - -// back-end -typedef struct { - char id; - char * name; -} GLT_Item; - -// back-end: translation table tag id-char <-> full tag name -static GLT_Item GLT_ItemInfo[] = { - { GLT_EVENT, "Event" }, - { GLT_SITE, "Site" }, - { GLT_DATE, "Date" }, - { GLT_ROUND, "Round" }, - { GLT_PLAYERS, "Players" }, - { GLT_RESULT, "Result" }, - { GLT_WHITE_ELO, "White Rating" }, - { GLT_BLACK_ELO, "Black Rating" }, - { GLT_TIME_CONTROL,"Time Control" }, - { GLT_VARIANT, "Variant" }, - { GLT_OUT_OF_BOOK,PGN_OUT_OF_BOOK }, - { GLT_RESULT_COMMENT, "Result Comment" }, // [HGM] rescom - { 0, 0 } -}; - -char lpUserGLT[64]; - -// back-end: convert the tag id-char to a full tag name -char * GLT_FindItem( char id ) -{ - char * result = 0; - - GLT_Item * list = GLT_ItemInfo; - - while( list->id != 0 ) { - if( list->id == id ) { - result = list->name; - break; - } - - list++; - } - - return result; -} - -// back-end: build the list of tag names -void -GLT_TagsToList( char * tags ) -{ - char * pc = tags; - - GLT_ClearList(); - - while( *pc ) { - GLT_AddToList( GLT_FindItem(*pc) ); - pc++; - } - - GLT_AddToList( " --- Hidden tags --- " ); - - pc = GLT_ALL_TAGS; - - while( *pc ) { - if( strchr( tags, *pc ) == 0 ) { - GLT_AddToList( GLT_FindItem(*pc) ); - } - pc++; - } - - GLT_DeSelectList(); -} - -// back-end: retrieve item from dialog and translate to id-char -char -GLT_ListItemToTag( int index ) -{ - char result = '\0'; - char name[128]; - - GLT_Item * list = GLT_ItemInfo; - - if( GLT_GetFromList(index, name) ) { - while( list->id != 0 ) { - if( strcmp( list->name, name ) == 0 ) { - result = list->id; - break; - } - - list++; - } - } - - return result; -} - -// back-end: add items id-chars one-by-one to temp tags string -void -GLT_ParseList() -{ - char * pc = lpUserGLT; - int idx = 0; - char id; - - do { - id = GLT_ListItemToTag( idx ); - *pc++ = id; - idx++; - } while( id != '\0' ); -} - diff --git a/winboard/makefile.gcc b/winboard/makefile.gcc index 7e37463..778883e 100644 --- a/winboard/makefile.gcc +++ b/winboard/makefile.gcc @@ -4,7 +4,7 @@ PROJ=winboard -OBJS=backend.o book.o gamelist.o gamelistopt.o lists.o moves.o pgntags.o uci.o zippy.o\ +OBJS=backend.o book.o gamelist.o lists.o moves.o pgntags.o uci.o zippy.o\ parser.o wbres.o wclipbrd.o wedittags.o wengineoutput.o wevalgraph.o\ wgamelist.o whistory.o history.o winboard.o wlayout.o woptions.o wsnap.o\ wsockerr.o help.o wsettings.o wchat.o engineoutput.o evalgraph.o @@ -109,10 +109,6 @@ gamelist.o: ../gamelist.c config.h ../lists.h ../common.h ../frontend.h \ ../backend.h ../parser.h $(call compile, $<) -gamelistopt.o: ../gamelistopt.c config.h ../lists.h ../common.h ../frontend.h \ - ../backend.h - $(call compile, $<) - wclipbrd.o: wclipbrd.c config.h ../common.h ../frontend.h ../backend.h \ winboard.h resource.h wclipbrd.h ../lists.h $(call compile, $<) diff --git a/winboard/makefile.ms b/winboard/makefile.ms index fb3e790..759139e 100644 --- a/winboard/makefile.ms +++ b/winboard/makefile.ms @@ -12,7 +12,7 @@ VCVER=6 PROJ = winboard -OBJS=backend.obj book.obj gamelist.obj gamelistopt.obj lists.obj moves.obj pgntags.obj uci.obj\ +OBJS=backend.obj book.obj gamelist.obj lists.obj moves.obj pgntags.obj uci.obj\ zippy.obj parser.obj wclipbrd.obj wedittags.obj wengineoutput.obj wevalgraph.obj\ wgamelist.obj whistory.obj history.obj winboard.obj wlayout.obj woptions.obj wsnap.obj\ wsockerr.obj help.obj wsettings.obj wchat.obj engineoutput.obj evalgraph.obj @@ -110,10 +110,6 @@ gamelist.obj: ../gamelist.c config.h ../lists.h ../common.h ../frontend.h \ ../backend.h ../parser.h $(CC) $(CFLAGS) ../gamelist.c -gamelistopt.obj: ../gamelistopt.c config.h ../lists.h ../common.h ../frontend.h \ - ../backend.h - $(CC) $(CFLAGS) ../gamelistopt.c - lists.obj: ../lists.c config.h ../lists.h ../common.h $(CC) $(CFLAGS) ../lists.c diff --git a/xgamelist.c b/xgamelist.c index f09bdd7..c23bf6f 100644 --- a/xgamelist.c +++ b/xgamelist.c @@ -620,3 +620,216 @@ GameListIsUp() { return glc && glc->up; } + +//--------------------------------- Game-List options dialog ------------------------------------------ + +Widget gameListOptShell, listwidg; + +char *strings[20]; +int stringPtr; + +void GLT_ClearList() +{ + strings[0] = NULL; + stringPtr = 0; +} + +void GLT_AddToList(char *name) +{ + strings[stringPtr++] = name; + strings[stringPtr] = NULL; +} + +Boolean GLT_GetFromList(int index, char *name) +{ + strcpy(name, strings[index]); +} + +void GLT_DeSelectList() +{ + XawListChange(listwidg, strings, 0, 0, True); + XawListHighlight(listwidg, 0); +} + +void +GameListOptionsPopDown() +{ + Arg args[16]; + int j; + + if (gameListOptShell == NULL) return; + XtPopdown(gameListOptShell); + XtDestroyWidget(gameListOptShell); + gameListOptShell = 0; + XtSetKeyboardFocus(shellWidget, formWidget); +} + +void +GameListOptionsCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + String name; + Arg args[16]; + int j; + Widget listwidg; + XawListReturnStruct *rs; + int index; + char *p; + + j = 0; + XtSetArg(args[j], XtNlabel, &name); j++; + XtGetValues(w, args, j); + + if (strcmp(name, _("OK")) == 0) { + GLT_ParseList(); + appData.gameListTags = strdup(lpUserGLT); + GameListOptionsPopDown(); + return; + } else + if (strcmp(name, _("cancel")) == 0) { + GameListOptionsPopDown(); + return; + } + listwidg = XtNameToWidget(gameListOptShell, "*form.list"); + rs = XawListShowCurrent(listwidg); + index = rs->list_index; + if (index < 0) { + DisplayError(_("No tag selected"), 0); + return; + } + p = strings[index]; + if (strcmp(name, _("down")) == 0) { + if(index >= strlen(GLT_ALL_TAGS)) return; + strings[index] = strings[index+1]; + strings[++index] = p; + } else + if (strcmp(name, _("up")) == 0) { + if(index == 0) return; + strings[index] = strings[index-1]; + strings[--index] = p; + } else + if (strcmp(name, _("factory")) == 0) { + strcpy(lpUserGLT, GLT_DEFAULT_TAGS); + GLT_TagsToList(lpUserGLT); + index = 0; + } + XawListHighlight(listwidg, index); +} + +Widget +GameListOptionsCreate() +{ + Arg args[16]; + Widget shell, form, viewport, layout; + Widget b_load, b_loadprev, b_loadnext, b_close, b_cancel; + Dimension fw_width; + XtPointer client_data = NULL; + int j; + + j = 0; + XtSetArg(args[j], XtNwidth, &fw_width); j++; + XtGetValues(formWidget, args, j); + + j = 0; + XtSetArg(args[j], XtNresizable, True); j++; + XtSetArg(args[j], XtNallowShellResize, True); j++; + shell = gameListOptShell = + XtCreatePopupShell("Game-list options", transientShellWidgetClass, + shellWidget, args, j); + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, shell, + layoutArgs, XtNumber(layoutArgs)); + j = 0; + XtSetArg(args[j], XtNborderWidth, 0); j++; + form = + XtCreateManagedWidget("form", formWidgetClass, layout, args, j); + + j = 0; + XtSetArg(args[j], XtNdefaultColumns, 1); j++; + XtSetArg(args[j], XtNforceColumns, True); j++; + XtSetArg(args[j], XtNverticalList, True); j++; + listwidg = viewport = + XtCreateManagedWidget("list", listWidgetClass, form, args, j); + XawListHighlight(listwidg, 0); +// XtAugmentTranslations(listwidg, +// XtParseTranslationTable(gameListOptTranslations)); + + j = 0; + XtSetArg(args[j], XtNfromVert, viewport); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_load = + XtCreateManagedWidget(_("factory"), commandWidgetClass, form, args, j); + XtAddCallback(b_load, XtNcallback, GameListOptionsCallback, client_data); + + j = 0; + XtSetArg(args[j], XtNfromVert, viewport); j++; + XtSetArg(args[j], XtNfromHoriz, b_load); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_loadprev = + XtCreateManagedWidget(_("up"), commandWidgetClass, form, args, j); + XtAddCallback(b_loadprev, XtNcallback, GameListOptionsCallback, client_data); + + j = 0; + XtSetArg(args[j], XtNfromVert, viewport); j++; + XtSetArg(args[j], XtNfromHoriz, b_loadprev); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_loadnext = + XtCreateManagedWidget(_("down"), commandWidgetClass, form, args, j); + XtAddCallback(b_loadnext, XtNcallback, GameListOptionsCallback, client_data); + + j = 0; + XtSetArg(args[j], XtNfromVert, viewport); j++; + XtSetArg(args[j], XtNfromHoriz, b_loadnext); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_cancel = + XtCreateManagedWidget(_("cancel"), commandWidgetClass, form, args, j); + XtAddCallback(b_cancel, XtNcallback, GameListOptionsCallback, client_data); + + j = 0; + XtSetArg(args[j], XtNfromVert, viewport); j++; + XtSetArg(args[j], XtNfromHoriz, b_cancel); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_close = + XtCreateManagedWidget(_("OK"), commandWidgetClass, form, args, j); + XtAddCallback(b_close, XtNcallback, GameListOptionsCallback, client_data); + + strcpy(lpUserGLT, appData.gameListTags); + GLT_TagsToList(lpUserGLT); + + XtRealizeWidget(shell); + CatchDeleteWindow(shell, "GameListOptionsPopDown"); + + return shell; +} + +void +GameListOptionsPopUp(Widget w, XEvent *event, String *prms, Cardinal *nprms) +{ + Arg args[16]; + int j, nstrings; + Widget listwidg; + + if (gameListOptShell == NULL) { + gameListOptShell = GameListOptionsCreate(); + } + + XtPopup(gameListOptShell, XtGrabNone); +} + + diff --git a/xgamelistopt.c b/xgamelistopt.c deleted file mode 100644 index 43ee0e8..0000000 --- a/xgamelistopt.c +++ /dev/null @@ -1,320 +0,0 @@ -/* - * xgamelistopt.c -- Game list options dialog, part of X front end for XBoard - * - * Copyright 1995,2009 Free Software Foundation, Inc. - * ------------------------------------------------------------------------ - * - * 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 3 of the License, or (at - * your option) any later version. - * - * 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, see http://www.gnu.org/licenses/. * - * - *------------------------------------------------------------------------ - ** See the file ChangeLog for a revision history. */ - -#include "config.h" - -#include -#include -#include -#include - -#if STDC_HEADERS -# include -# include -#else /* not STDC_HEADERS */ -extern char *getenv(); -# if HAVE_STRING_H -# include -# else /* not HAVE_STRING_H */ -# include -# endif /* not HAVE_STRING_H */ -#endif /* not STDC_HEADERS */ - -#if HAVE_UNISTD_H -# include -#endif - -#include -#include -#include -#include -#if USE_XAW3D -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#else -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#endif - -#include "common.h" -#include "frontend.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 int squareSize; -extern Pixmap xMarkPixmap; -extern char *layoutName; -extern char lpUserGLT[]; - -char gameListOptTranslations[] = - "(2): LoadSelectedProc() \n \ - Return: LoadSelectedProc() \n"; - -static Arg layoutArgs[] = { - { XtNborderWidth, 0 }, - { XtNdefaultDistance, 0 } -}; - -Widget gameListOptShell, listwidg; - -char *strings[20]; -int stringPtr; - -void GLT_ClearList() -{ - strings[0] = NULL; - stringPtr = 0; -} - -void GLT_AddToList(char *name) -{ - strings[stringPtr++] = name; - strings[stringPtr] = NULL; -} - -void GLT_GetFromList(int index, char *name) -{ - strcpy(name, strings[index]); -} - -void GLT_DeSelectList() -{ - XawListChange(listwidg, strings, 0, 0, True); - XawListHighlight(listwidg, 0); -} - -void -GameListOptionsPopDown() -{ - Arg args[16]; - int j; - - if (gameListOptShell == NULL) return; - XtPopdown(gameListOptShell); - XtDestroyWidget(gameListOptShell); - gameListOptShell = 0; - XtSetKeyboardFocus(shellWidget, formWidget); -} - -void -GameListOptionsCallback(w, client_data, call_data) - Widget w; - XtPointer client_data, call_data; -{ - String name; - Arg args[16]; - int j; - Widget listwidg; - XawListReturnStruct *rs; - int index; - char *p; - - j = 0; - XtSetArg(args[j], XtNlabel, &name); j++; - XtGetValues(w, args, j); - - if (strcmp(name, _("OK")) == 0) { - GLT_ParseList(); - appData.gameListTags = strdup(lpUserGLT); - GameListOptionsPopDown(); - return; - } else - if (strcmp(name, _("cancel")) == 0) { - GameListOptionsPopDown(); - return; - } - listwidg = XtNameToWidget(gameListOptShell, "*form.list"); - rs = XawListShowCurrent(listwidg); - index = rs->list_index; - if (index < 0) { - DisplayError(_("No tag selected"), 0); - return; - } - p = strings[index]; - if (strcmp(name, _("down")) == 0) { - if(index >= strlen(GLT_ALL_TAGS)) return; - strings[index] = strings[index+1]; - strings[++index] = p; - } else - if (strcmp(name, _("up")) == 0) { - if(index == 0) return; - strings[index] = strings[index-1]; - strings[--index] = p; - } else - if (strcmp(name, _("factory")) == 0) { - strcpy(lpUserGLT, GLT_DEFAULT_TAGS); - GLT_TagsToList(lpUserGLT); - index = 0; - } - XawListHighlight(listwidg, index); -} - -Widget -GameListOptionsCreate() -{ - Arg args[16]; - Widget shell, form, viewport, layout; - Widget b_load, b_loadprev, b_loadnext, b_close, b_cancel; - Dimension fw_width; - XtPointer client_data = NULL; - int j; - - j = 0; - XtSetArg(args[j], XtNwidth, &fw_width); j++; - XtGetValues(formWidget, args, j); - - j = 0; - XtSetArg(args[j], XtNresizable, True); j++; - XtSetArg(args[j], XtNallowShellResize, True); j++; - shell = gameListOptShell = - XtCreatePopupShell("Game-list options", transientShellWidgetClass, - shellWidget, args, j); - layout = - XtCreateManagedWidget(layoutName, formWidgetClass, shell, - layoutArgs, XtNumber(layoutArgs)); - j = 0; - XtSetArg(args[j], XtNborderWidth, 0); j++; - form = - XtCreateManagedWidget("form", formWidgetClass, layout, args, j); - - j = 0; -// XtSetArg(args[j], XtNlist, glc->strings); j++; - XtSetArg(args[j], XtNdefaultColumns, 1); j++; - XtSetArg(args[j], XtNforceColumns, True); j++; - XtSetArg(args[j], XtNverticalList, True); j++; - listwidg = viewport = - XtCreateManagedWidget("list", listWidgetClass, form, args, j); - XawListHighlight(listwidg, 0); - XtAugmentTranslations(listwidg, - XtParseTranslationTable(gameListOptTranslations)); - - j = 0; - XtSetArg(args[j], XtNfromVert, viewport); j++; - XtSetArg(args[j], XtNtop, XtChainBottom); j++; - XtSetArg(args[j], XtNbottom, XtChainBottom); j++; - XtSetArg(args[j], XtNleft, XtChainLeft); j++; - XtSetArg(args[j], XtNright, XtChainLeft); j++; - b_load = - XtCreateManagedWidget(_("factory"), commandWidgetClass, form, args, j); - XtAddCallback(b_load, XtNcallback, GameListOptionsCallback, client_data); - - j = 0; - XtSetArg(args[j], XtNfromVert, viewport); j++; - XtSetArg(args[j], XtNfromHoriz, b_load); j++; - XtSetArg(args[j], XtNtop, XtChainBottom); j++; - XtSetArg(args[j], XtNbottom, XtChainBottom); j++; - XtSetArg(args[j], XtNleft, XtChainLeft); j++; - XtSetArg(args[j], XtNright, XtChainLeft); j++; - b_loadprev = - XtCreateManagedWidget(_("up"), commandWidgetClass, form, args, j); - XtAddCallback(b_loadprev, XtNcallback, GameListOptionsCallback, client_data); - - j = 0; - XtSetArg(args[j], XtNfromVert, viewport); j++; - XtSetArg(args[j], XtNfromHoriz, b_loadprev); j++; - XtSetArg(args[j], XtNtop, XtChainBottom); j++; - XtSetArg(args[j], XtNbottom, XtChainBottom); j++; - XtSetArg(args[j], XtNleft, XtChainLeft); j++; - XtSetArg(args[j], XtNright, XtChainLeft); j++; - b_loadnext = - XtCreateManagedWidget(_("down"), commandWidgetClass, form, args, j); - XtAddCallback(b_loadnext, XtNcallback, GameListOptionsCallback, client_data); - - j = 0; - XtSetArg(args[j], XtNfromVert, viewport); j++; - XtSetArg(args[j], XtNfromHoriz, b_loadnext); j++; - XtSetArg(args[j], XtNtop, XtChainBottom); j++; - XtSetArg(args[j], XtNbottom, XtChainBottom); j++; - XtSetArg(args[j], XtNleft, XtChainLeft); j++; - XtSetArg(args[j], XtNright, XtChainLeft); j++; - b_cancel = - XtCreateManagedWidget(_("cancel"), commandWidgetClass, form, args, j); - XtAddCallback(b_cancel, XtNcallback, GameListOptionsCallback, client_data); - - j = 0; - XtSetArg(args[j], XtNfromVert, viewport); j++; - XtSetArg(args[j], XtNfromHoriz, b_cancel); j++; - XtSetArg(args[j], XtNtop, XtChainBottom); j++; - XtSetArg(args[j], XtNbottom, XtChainBottom); j++; - XtSetArg(args[j], XtNleft, XtChainLeft); j++; - XtSetArg(args[j], XtNright, XtChainLeft); j++; - b_close = - XtCreateManagedWidget(_("OK"), commandWidgetClass, form, args, j); - XtAddCallback(b_close, XtNcallback, GameListOptionsCallback, client_data); - - strcpy(lpUserGLT, appData.gameListTags); - GLT_TagsToList(lpUserGLT); - - XtRealizeWidget(shell); - CatchDeleteWindow(shell, "GameListOptionsPopDown"); - - return shell; -} - -void -GameListOptionsPopUp(Widget w, XEvent *event, String *prms, Cardinal *nprms) -{ - Arg args[16]; - int j, nstrings; - Widget listwidg; - - if (gameListOptShell == NULL) { - gameListOptShell = GameListOptionsCreate(); - } - - XtPopup(gameListOptShell, XtGrabNone); -} - -