static void fontAction(Widget widget, xfselControlBlkType *ctrlBlk, XmListCallbackStruct *call_data) { char *sel; XmStringGetLtoR(call_data->item, XmSTRING_DEFAULT_CHARSET, &sel); if (ctrlBlk->sel1 == NULL) { ctrlBlk->sel1 = XtMalloc(strlen(sel) + 1); strcpy(ctrlBlk->sel1, sel); } else { if (strcmp(ctrlBlk->sel1, sel) == 0) { /* Unselecting current selection */ XtFree(ctrlBlk->sel1); ctrlBlk->sel1 = NULL; XmListDeselectItem(widget, call_data->item); } else { XtFree(ctrlBlk->sel1); ctrlBlk->sel1 = XtMalloc(strlen(sel) + 1); strcpy(ctrlBlk->sel1, sel); } } XtFree(sel); setupScrollLists(FONT, *ctrlBlk); if ((ctrlBlk->sel1 != NULL) && (ctrlBlk->sel2 != NULL) && (ctrlBlk->sel3 != NULL)) choiceMade(ctrlBlk); else { enableSample(ctrlBlk, False, NULL); XmTextSetString(ctrlBlk->fontNameField, ""); } }
void ChoiceView::choose(int chosen) { emit choiceMade(_choices[chosen]); }