static void make_command_widget(int height) { if (!listener_text) { Arg args[32]; Widget wv, wh; int n; if (!actions_loaded) {XtAppAddActions(MAIN_APP(ss), acts, NUM_ACTS); actions_loaded = true;} n = attach_all_sides(args, 0); XtSetArg(args[n], XmNheight, height); n++; if ((sound_style(ss) == SOUNDS_IN_NOTEBOOK) || (sound_style(ss) == SOUNDS_HORIZONTAL)) listener_pane = XtCreateManagedWidget("frm", xmFormWidgetClass, SOUND_PANE_BOX(ss), args, n); else listener_pane = XtCreateManagedWidget("frm", xmFormWidgetClass, SOUND_PANE(ss), args, n); /* this widget is not redundant at least in Metroworks Motif */ n = 0; XtSetArg(args[n], XmNbackground, ss->sgx->listener_color); n++; XtSetArg(args[n], XmNforeground, ss->sgx->listener_text_color); n++; if (ss->sgx->listener_fontlist) {XtSetArg(args[n], XM_FONT_RESOURCE, ss->sgx->listener_fontlist); n++;} n = attach_all_sides(args, n); XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++; XtSetArg(args[n], XmNskipAdjust, true); n++; XtSetArg(args[n], XmNvalue, listener_prompt(ss)); n++; XtSetArg(args[n], XmNpendingDelete, false); n++; /* don't cut selection upon paste */ XtSetArg(args[n], XmNpositionIndex, XmLAST_POSITION); n++; XtSetArg(args[n], XmNhighlightThickness, 1); n++; listener_text = XmCreateScrolledText(listener_pane, "lisp-listener", args, n); ss->sgx->listener_pane = listener_text; XtVaSetValues(MAIN_SHELL(ss), XmNallowShellResize, false, NULL); XtManageChild(listener_text); XmTextSetCursorPosition(listener_text, 1); if (!transTable4) transTable4 = XtParseTranslationTable(TextTrans4); XtOverrideTranslations(listener_text, transTable4); printout_end = 0; XtAddCallback(listener_text, XmNactivateCallback, command_return_callback, NULL); XtAddCallback(listener_text, XmNmodifyVerifyCallback, command_modify_callback, NULL); XtAddCallback(listener_text, XmNmotionVerifyCallback, command_motion_callback, NULL); lisp_window = XtParent(listener_text); XtAddEventHandler(lisp_window, EnterWindowMask, false, listener_focus_callback, NULL); XtAddEventHandler(lisp_window, LeaveWindowMask, false, listener_unfocus_callback, NULL); XmChangeColor(lisp_window, ss->sgx->basic_color); XtVaGetValues(lisp_window, XmNverticalScrollBar, &wv, XmNhorizontalScrollBar, &wh, NULL); XmChangeColor(wv, ss->sgx->basic_color); XmChangeColor(wh, ss->sgx->basic_color); map_over_children(SOUND_PANE(ss), color_sashes); if (auto_resize(ss)) XtVaSetValues(MAIN_SHELL(ss), XmNallowShellResize, true, NULL); } }
static void create_completions_dialog(char *title) { Arg args[20]; int n; XmString titlestr; titlestr = XmStringCreateLocalized(title); n = 0; XtSetArg(args[n], XmNbackground, ss->sgx->basic_color); n++; XtSetArg(args[n], XmNdialogTitle, titlestr); n++; XtSetArg(args[n], XmNresizePolicy, XmRESIZE_GROW); n++; XtSetArg(args[n], XmNnoResize, false); n++; /* XtSetArg(args[n], XmNtransient, false); n++; */ completions_dialog = XmCreateMessageDialog(MAIN_PANE(ss), "snd-completion-help", args, n); XtUnmanageChild(XmMessageBoxGetChild(completions_dialog, XmDIALOG_CANCEL_BUTTON)); XtUnmanageChild(XmMessageBoxGetChild(completions_dialog, XmDIALOG_SYMBOL_LABEL)); XmStringFree(titlestr); n = 0; completions_list = XmCreateScrolledList(completions_dialog, "completion-help-text", args, n); XtVaSetValues(completions_list, XmNbackground, ss->sgx->white, XmNforeground, ss->sgx->black, NULL); XtManageChild(completions_list); XtAddCallback(completions_list, XmNbrowseSelectionCallback, completions_browse_callback, NULL); XtAddCallback(completions_dialog, XmNhelpCallback, completions_help_callback, NULL); XtAddCallback(completions_dialog, XmNokCallback, completions_ok_callback, NULL); XtManageChild(completions_dialog); map_over_children(completions_dialog, set_main_color_of_widget); XtVaSetValues(completions_list, XmNbackground, ss->sgx->white, XmNforeground, ss->sgx->black, NULL); XtVaSetValues(XmMessageBoxGetChild(completions_dialog, XmDIALOG_OK_BUTTON), XmNarmColor, ss->sgx->pushed_button_color, NULL); XtVaSetValues(XmMessageBoxGetChild(completions_dialog, XmDIALOG_HELP_BUTTON), XmNarmColor, ss->sgx->pushed_button_color, NULL); XtVaSetValues(XmMessageBoxGetChild(completions_dialog, XmDIALOG_OK_BUTTON), XmNbackground, ss->sgx->quit_button_color, NULL); XtVaSetValues(XmMessageBoxGetChild(completions_dialog, XmDIALOG_HELP_BUTTON), XmNbackground, ss->sgx->help_button_color, NULL); set_dialog_widget(COMPLETION_DIALOG, completions_dialog); }
static void make_edit_find_dialog(bool managed) { if (!edit_find_dialog) { Widget dl, rc; Arg args[20]; int n; XmString xmstr1, xmstr3, titlestr; n = 0; XtSetArg(args[n], XmNbackground, ss->basic_color); n++; xmstr1 = XmStringCreateLocalized((char *)"Go Away"); xmstr3 = XmStringCreateLocalized((char *)"Previous"); titlestr = XmStringCreateLocalized((char *)"Find"); XtSetArg(args[n], XmNokLabelString, xmstr1); n++; XtSetArg(args[n], XmNcancelLabelString, xmstr3); n++; XtSetArg(args[n], XmNautoUnmanage, false); n++; XtSetArg(args[n], XmNdialogTitle, titlestr); n++; XtSetArg(args[n], XmNresizePolicy, XmRESIZE_GROW); n++; XtSetArg(args[n], XmNnoResize, false); n++; XtSetArg(args[n], XmNtransient, false); n++; edit_find_dialog = XmCreateMessageDialog(MAIN_SHELL(ss), (char *)"find", args, n); XmStringFree(xmstr1); XmStringFree(xmstr3); XmStringFree(titlestr); XtUnmanageChild(XmMessageBoxGetChild(edit_find_dialog, XmDIALOG_SYMBOL_LABEL)); XtUnmanageChild(XmMessageBoxGetChild(edit_find_dialog, XmDIALOG_MESSAGE_LABEL)); XtAddCallback(edit_find_dialog, XmNhelpCallback, edit_find_help_callback, NULL); XtAddCallback(edit_find_dialog, XmNcancelCallback, edit_find_previous_callback, NULL); XtAddCallback(edit_find_dialog, XmNokCallback, edit_find_cancel_callback, NULL); n = 0; XtSetArg(args[n], XmNbackground, ss->highlight_color); n++; XtSetArg(args[n], XmNarmColor, ss->selection_color); n++; findnextB = XtCreateManagedWidget("Next", xmPushButtonGadgetClass, edit_find_dialog, args, n); XtAddCallback(findnextB, XmNactivateCallback, edit_find_next_callback, NULL); rc = XtCreateManagedWidget("row", xmFormWidgetClass, edit_find_dialog, NULL, 0); n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_NONE); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_NONE); n++; dl = XtCreateManagedWidget("find:", xmLabelWidgetClass, rc, args, n); n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++; XtSetArg(args[n], XmNleftWidget, dl); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_NONE); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++; edit_find_text = make_textfield_widget("text", rc, args, n, ACTIVATABLE, add_completer_func(expression_completer, NULL)); n = 0; XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_NONE); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++; XtSetArg(args[n], XmNtopWidget, edit_find_text); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNmarginHeight, 10); n++; edit_find_label = XtCreateManagedWidget(" ", xmLabelWidgetClass, rc, args, n); n = 0; XtSetArg(args[n], XmNbackground, ss->basic_color); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++; XtSetArg(args[n], XmNtopWidget, edit_find_label); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNallowResize, true); n++; XtSetArg(args[n], XmNshadowType, XmSHADOW_ETCHED_IN); n++; XtSetArg(args[n], XmNshadowThickness, 2); n++; find_error_frame = XtCreateManagedWidget("find-error-frame", xmFrameWidgetClass, rc, args, n); n = 0; XtSetArg(args[n], XmNbackground, ss->highlight_color); n++; find_error_label = XtCreateManagedWidget("", xmLabelWidgetClass, find_error_frame, args, n); map_over_children(edit_find_dialog, set_main_color_of_widget); XtVaSetValues(XmMessageBoxGetChild(edit_find_dialog, XmDIALOG_OK_BUTTON), XmNarmColor, ss->selection_color, NULL); XtVaSetValues(XmMessageBoxGetChild(edit_find_dialog, XmDIALOG_CANCEL_BUTTON), XmNarmColor, ss->selection_color, NULL); XtVaSetValues(XmMessageBoxGetChild(edit_find_dialog, XmDIALOG_HELP_BUTTON), XmNarmColor, ss->selection_color, NULL); XtVaSetValues(XmMessageBoxGetChild(edit_find_dialog, XmDIALOG_OK_BUTTON), XmNbackground, ss->highlight_color, NULL); XtVaSetValues(XmMessageBoxGetChild(edit_find_dialog, XmDIALOG_CANCEL_BUTTON), XmNbackground, ss->highlight_color, NULL); XtVaSetValues(XmMessageBoxGetChild(edit_find_dialog, XmDIALOG_HELP_BUTTON), XmNbackground, ss->highlight_color, NULL); cancelB = XmMessageBoxGetChild(edit_find_dialog, XmDIALOG_OK_BUTTON); set_dialog_widget(FIND_DIALOG, edit_find_dialog); XtUnmanageChild(find_error_frame); if (managed) XtManageChild(edit_find_dialog); { Atom wm_delete_window; wm_delete_window = XmInternAtom(MAIN_DISPLAY(ss), (char *)"WM_DELETE_WINDOW", false); XmAddWMProtocolCallback(XtParent(edit_find_dialog), wm_delete_window, find_dialog_close, NULL); } } else { if (managed) { if (!XtIsManaged(edit_find_dialog)) XtManageChild(edit_find_dialog); raise_dialog(edit_find_dialog); } } }