/* * This injects a single character into the file selector. */ char *injectCDKFselect (CDKFSELECT *fselect, chtype input) { /* Declare local variables. */ char *filename; boolean file; /* Let the user play. */ filename = injectCDKEntry (fselect->entryField, input); /* Copy the entry field exitType to the fileselector. */ fselect->exitType = fselect->entryField->exitType; /* If we exited early, make sure we don't interpret it as a file. */ if (fselect->exitType == vEARLY_EXIT) { return 0; } /* Can we change into the directory? */ file = chdir (filename); chdir (fselect->pwd); /* If it's not a directory, return the filename. */ if (file != 0) { /* It's a regular file, create the full path. */ fselect->pathname = copyChar (filename); /* Return the complete pathname. */ return (fselect->pathname); } else { /* Set the file selector information. */ setCDKFselect (fselect, filename, fselect->fieldAttribute, fselect->fillerCharacter, fselect->highlight, fselect->dirAttribute, fselect->fileAttribute, fselect->linkAttribute, fselect->sockAttribute, ObjOf(fselect)->box); /* Redraw the scrolling list. */ drawCDKScroll (fselect->scrollField, ObjOf(fselect->scrollField)->box); } /* Set the exit type and return a null pointer. */ fselect->exitType = vEARLY_EXIT; return 0; }
/* * This injects a single character into the alphalist. */ char *injectCDKAlphalist (CDKALPHALIST *alphalist, chtype input) { char *ret = 0; /* Draw the widget. */ drawCDKAlphalist (alphalist, ObjOf(alphalist)->box); /* Inject a character into the widget. */ ret = injectCDKEntry (alphalist->entryField, input); /* Copy the exit type from the entry field. */ alphalist->exitType = alphalist->entryField->exitType; /* Determine the exit status. */ if (alphalist->exitType != vEARLY_EXIT) { return ret; } return 0; }
/* * This injects a single character into the alphalist. */ static int _injectCDKAlphalist (CDKOBJS *object, chtype input) { CDKALPHALIST *alphalist = (CDKALPHALIST *)object; char *ret = unknownString; /* Draw the widget. */ drawCDKAlphalist (alphalist, ObjOf (alphalist)->box); /* Inject a character into the widget. */ ret = injectCDKEntry (alphalist->entryField, input); /* Copy the exit type from the entry field. */ copyExitType (alphalist, alphalist->entryField); /* Determine the exit status. */ if (alphalist->exitType == vEARLY_EXIT) ret = unknownString; ResultOf (alphalist).valueString = ret; return (ret != unknownString); }