return; // dummy
}
+//--------------------------------- Game-List options dialog ------------------------------------------
+
+char *strings[LPUSERGLT_SIZE];
+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)
+{
+ safeStrCpy(name, strings[index], MSG_SIZ);
+ return TRUE;
+}
+
+void
+GLT_DeSelectList ()
+{
+}
+
+static void GLT_Button P((int n));
+static int GLT_OK P((int n));
+
+static Option listOptions[] = {
+{ 0, LR|TB, 200, NULL, (void*) strings, "", NULL, ListBox, "" },
+{ 0, 0, 0, NULL, (void*) &GLT_Button, NULL, NULL, Button, N_("factory") },
+{ 0, SAME_ROW, 0, NULL, (void*) &GLT_Button, NULL, NULL, Button, N_("up") },
+{ 0, SAME_ROW, 0, NULL, (void*) &GLT_Button, NULL, NULL, Button, N_("down") },
+{ 0, SAME_ROW, 0, NULL, (void*) &GLT_OK, "", NULL, EndMark , "" }
+};
+
+static int
+GLT_OK (int n)
+{
+ GLT_ParseList();
+ appData.gameListTags = strdup(lpUserGLT);
+ return 1;
+}
+
+static void
+GLT_Button (int n)
+{
+ int index = SelectedListBoxItem (&listOptions[0]);
+ char *p;
+ if (index < 0) {
+ DisplayError(_("No tag selected"), 0);
+ return;
+ }
+ p = strings[index];
+ if (n == 3) {
+ if(index >= strlen(GLT_ALL_TAGS)) return;
+ strings[index] = strings[index+1];
+ strings[++index] = p;
+ } else
+ if (n == 2) {
+ if(index == 0) return;
+ strings[index] = strings[index-1];
+ strings[--index] = p;
+ } else
+ if (n == 1) {
+ safeStrCpy(lpUserGLT, GLT_DEFAULT_TAGS, LPUSERGLT_SIZE);
+ GLT_TagsToList(lpUserGLT);
+ index = 0;
+ LoadListBox(&listOptions[0]); // Note: the others don't need this, as the highligh
+ }
+ HighlightListBoxItem(&listOptions[0], index);
+}
+
+void
+GameListOptionsPopUp ()
+{
+ safeStrCpy(lpUserGLT, appData.gameListTags, LPUSERGLT_SIZE);
+ GLT_TagsToList(lpUserGLT);
+
+ GenericPopUp(listOptions, _("Game-list options"), TransientDlg);
+}
+
//----------------------------- Error popup in various uses -----------------------------
/*
}
return False;
}
-//--------------------------------- 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)
-{
- safeStrCpy(name, strings[index], MSG_SIZ);
- return TRUE;
-}
-
-void
-GLT_DeSelectList ()
-{
- XawListChange(listwidg, strings, 0, 0, True);
- XawListHighlight(listwidg, 0);
-}
-
-void
-GameListOptionsPopDown ()
-{
- if (gameListOptShell == NULL) return;
-
- XtPopdown(gameListOptShell);
- XtDestroyWidget(gameListOptShell);
- gameListOptShell = 0;
- XtSetKeyboardFocus(shellWidget, formWidget);
-}
-
-void
-GameListOptionsCallback (Widget w, XtPointer client_data, XtPointer 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) {
- safeStrCpy(lpUserGLT, GLT_DEFAULT_TAGS, LPUSERGLT_SIZE);
- 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);
-
- safeStrCpy(lpUserGLT, appData.gameListTags, LPUSERGLT_SIZE);
- GLT_TagsToList(lpUserGLT);
-
- XtRealizeWidget(shell);
- CatchDeleteWindow(shell, "GameListOptionsPopDown");
-
- return shell;
-}
-
-void
-GameListOptionsPopUp (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
- if (gameListOptShell == NULL)
- gameListOptShell = GameListOptionsCreate();
-
- XtPopup(gameListOptShell, XtGrabNone);
-}
-