X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xgamelist.c;h=3a04f3f83082be7a7efec1bd1853ff47bacdcd01;hb=369d80a758a3b9f552874f26909d79864a902731;hp=258eb39fc00e2fa3e1b331dcbcdb15c82e4f699d;hpb=6256f7e127a42d71c5e99a0bf70eee0a599c5839;p=xboard.git diff --git a/xgamelist.c b/xgamelist.c index 258eb39..3a04f3f 100644 --- a/xgamelist.c +++ b/xgamelist.c @@ -106,6 +106,8 @@ static int listLength; char gameListTranslations[] = "(2): LoadSelectedProc() \n \ Return: LoadSelectedProc() \n"; +char filterTranslations[] = + "Return: SetFilterProc() \n"; typedef struct { Widget shell; @@ -254,6 +256,8 @@ GameListCreate(name, callback, client_data) filterText = XtCreateManagedWidget(_("filtertext"), asciiTextWidgetClass, form, args, j); XtAddEventHandler(filterText, ButtonPressMask, False, SetFocus, (XtPointer) shell); + XtOverrideTranslations(filterText, + XtParseTranslationTable(filterTranslations)); j = 0; XtSetArg(args[j], XtNfromVert, viewport); j++; @@ -535,6 +539,29 @@ LoadSelectedProc(w, event, prms, nprms) } void +SetFilterProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + String name; + Widget list; + int j = 0; + XtSetArg(args[j], XtNstring, &name); j++; + XtGetValues(filterText, args, j); + strcpy(filterString, name); + if(GameListPrepare()) GameListReplace(); // crashes on empty list... + list = XtNameToWidget(glc->shell, "*form.viewport.list"); + XawListHighlight(list, 0); + j = 0; + XtSetArg(args[j], XtNdisplayCaret, False); j++; + XtSetValues(filterText, args, j); + XtSetKeyboardFocus(glc->shell, list); +} + +void GameListPopDown() { Arg args[16];