Convert dialogs to Xft

This commit is contained in:
Ray Chason
2026-08-19 09:37:41 +03:00
committed by Pasi Kallinen
parent 8ae58f9347
commit cfe67ecc62
3 changed files with 50 additions and 3 deletions
+4
View File
@@ -132,6 +132,7 @@ CreateDialog(Widget parent, String name, XtCallbackProc okay_callback,
XtSetArg(args[num_args], nhStr(XtNborderWidth), 0); num_args++;
prompt = XtCreateManagedWidget("prompt", labelWidgetClass, form,
args, num_args);
X11_wrap_widget_if_Xft(prompt, NHW_MENU);
num_args = 0;
#ifdef SPECIAL_CMAP
@@ -169,6 +170,7 @@ CreateDialog(Widget parent, String name, XtCallbackProc okay_callback,
XtParseAcceleratorTable(okay_accelerators)); num_args++;
okay = XtCreateManagedWidget("okay", commandWidgetClass, form,
args, num_args);
X11_wrap_widget_if_Xft(okay, NHW_MENU);
XtAddCallback(okay, XtNcallback, okay_callback, form);
XtSetArg(args[0], XtNwidth, &owidth);
XtGetValues(okay, args, ONE);
@@ -193,6 +195,7 @@ CreateDialog(Widget parent, String name, XtCallbackProc okay_callback,
XtParseAcceleratorTable(cancel_accelerators)); num_args++;
cancel = XtCreateManagedWidget("cancel", commandWidgetClass, form,
args, num_args);
X11_wrap_widget_if_Xft(cancel, NHW_MENU);
XtAddCallback(cancel, XtNcallback, cancel_callback, form);
XtInstallAccelerators(response, cancel);
XtSetArg(args[0], XtNwidth, &cwidth);
@@ -241,6 +244,7 @@ SetDialogPrompt(Widget w, String newprompt)
label = XtNameToWidget(w, "prompt");
XtSetArg(args[0], nhStr(XtNlabel), newprompt);
XtSetValues(label, args, ONE);
X11_update_label_if_Xft(label);
}
/* get what the user typed; caller must free the response */
+9
View File
@@ -1025,6 +1025,9 @@ X11_select_menu(winid window, int how, menu_item **menu_list)
labelWidgetClass, form,
args, num_args)
: (Widget) 0;
if (label) {
X11_wrap_widget_if_Xft(label, NHW_MENU);
}
all = menu_create_buttons(wp, form, label);
@@ -1194,6 +1197,7 @@ menu_create_buttons(struct xwindow *wp, Widget form, Widget under)
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
ok = XtCreateManagedWidget("OK", commandWidgetClass, form,
args, num_args);
X11_wrap_widget_if_Xft(ok, NHW_MENU);
XtAddCallback(ok, XtNcallback, menu_ok, (XtPointer) wp);
XtSetArg(args[0], XtNwidth, &lblwidth[0]);
XtGetValues(lblwidget[0] = ok, args, ONE);
@@ -1212,6 +1216,7 @@ menu_create_buttons(struct xwindow *wp, Widget form, Widget under)
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
cancel = XtCreateManagedWidget("cancel", commandWidgetClass, form,
args, num_args);
X11_wrap_widget_if_Xft(cancel, NHW_MENU);
XtAddCallback(cancel, XtNcallback, menu_cancel, (XtPointer) wp);
XtSetArg(args[0], XtNwidth, &lblwidth[1]);
XtGetValues(lblwidget[1] = cancel, args, ONE);
@@ -1229,6 +1234,7 @@ menu_create_buttons(struct xwindow *wp, Widget form, Widget under)
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
all = XtCreateManagedWidget("all", commandWidgetClass, form,
args, num_args);
X11_wrap_widget_if_Xft(all, NHW_MENU);
XtAddCallback(all, XtNcallback, menu_all, (XtPointer) wp);
XtSetArg(args[0], XtNwidth, &lblwidth[2]);
XtGetValues(lblwidget[2] = all, args, ONE);
@@ -1245,6 +1251,7 @@ menu_create_buttons(struct xwindow *wp, Widget form, Widget under)
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
none = XtCreateManagedWidget("none", commandWidgetClass, form,
args, num_args);
X11_wrap_widget_if_Xft(none, NHW_MENU);
XtAddCallback(none, XtNcallback, menu_none, (XtPointer) wp);
XtSetArg(args[0], XtNwidth, &lblwidth[3]);
XtGetValues(lblwidget[3] = none, args, ONE);
@@ -1261,6 +1268,7 @@ menu_create_buttons(struct xwindow *wp, Widget form, Widget under)
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
invert = XtCreateManagedWidget("invert", commandWidgetClass, form,
args, num_args);
X11_wrap_widget_if_Xft(invert, NHW_MENU);
XtAddCallback(invert, XtNcallback, menu_invert, (XtPointer) wp);
XtSetArg(args[0], XtNwidth, &lblwidth[4]);
XtGetValues(lblwidget[4] = invert, args, ONE);
@@ -1278,6 +1286,7 @@ menu_create_buttons(struct xwindow *wp, Widget form, Widget under)
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
search = XtCreateManagedWidget("search", commandWidgetClass, form,
args, num_args);
X11_wrap_widget_if_Xft(search, NHW_MENU);
XtAddCallback(search, XtNcallback, menu_search, (XtPointer) wp);
XtSetArg(args[0], XtNwidth, &lblwidth[5]);
XtGetValues(lblwidget[5] = search, args, ONE);
+37 -3
View File
@@ -416,6 +416,7 @@ plsel_set_play_button(boolean state)
XtSetArg(args[0], nhStr(XtNsensitive), !state);
XtSetValues(plsel_btn_play, args, ONE);
X11_update_label_if_Xft(plsel_btn_play);
}
static void
@@ -441,6 +442,7 @@ plsel_set_sensitivities(boolean setcurr)
c = j;
XtSetArg(args[0], nhStr(XtNsensitive), v);
XtSetValues(plsel_role_radios[j], args, ONE);
X11_update_label_if_Xft(plsel_role_radios[j]);
if (valid < 0 && v)
valid = j;
}
@@ -459,6 +461,7 @@ plsel_set_sensitivities(boolean setcurr)
c = j;
XtSetArg(args[0], nhStr(XtNsensitive), v);
XtSetValues(plsel_race_radios[j], args, ONE);
X11_update_label_if_Xft(plsel_race_radios[j]);
if (valid < 0 && v)
valid = j;
}
@@ -566,6 +569,7 @@ X11_player_selection_setupOthers(void)
c = j;
XtSetArg(args[0], nhStr(XtNsensitive), v);
XtSetValues(plsel_gend_radios[j], args, ONE);
X11_update_label_if_Xft(plsel_gend_radios[j]);
if (valid < 0 && v)
valid = j;
}
@@ -583,6 +587,7 @@ X11_player_selection_setupOthers(void)
c = j;
XtSetArg(args[0], nhStr(XtNsensitive), v);
XtSetValues(plsel_align_radios[j], args, ONE);
X11_update_label_if_Xft(plsel_align_radios[j]);
if (valid < 0 && v)
valid = j;
}
@@ -619,6 +624,7 @@ racetoggleCallback(Widget w, XtPointer client, XtPointer call)
c = j;
XtSetArg(args[0], nhStr(XtNsensitive), v);
XtSetValues(plsel_role_radios[j], args, ONE);
X11_update_label_if_Xft(plsel_role_radios[j]);
if (valid < 0 && v)
valid = j;
}
@@ -658,6 +664,7 @@ roletoggleCallback(Widget w, XtPointer client, XtPointer call)
c = j;
XtSetArg(args[0], nhStr(XtNsensitive), v);
XtSetValues(plsel_race_radios[j], args, ONE);
X11_update_label_if_Xft(plsel_race_radios[j]);
if (valid < 0 && v)
valid = j;
}
@@ -688,6 +695,7 @@ gendertoggleCallback(Widget w, XtPointer client, XtPointer call)
XtSetArg(args[0], XtNlabel,
(r < 1) ? roles[i].name.m : roles[i].name.f);
XtSetValues(plsel_role_radios[i], args, ONE);
X11_update_label_if_Xft(plsel_role_radios[i]);
}
}
}
@@ -770,6 +778,7 @@ X11_create_player_selection_name(Widget form)
namelabel = XtCreateManagedWidget("name_label",
labelWidgetClass, name_form,
args, num_args);
X11_wrap_widget_if_Xft(namelabel, NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNfromVert), namelabel); num_args++;
@@ -899,6 +908,7 @@ X11_player_selection_dialog(void)
racelabel = XtCreateManagedWidget("race_label",
labelWidgetClass, race_form,
args, num_args);
X11_wrap_widget_if_Xft(racelabel, NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNtopMargin), 0); num_args++;
@@ -939,6 +949,7 @@ X11_player_selection_dialog(void)
toggleWidgetClass,
race_form2,
args, num_args);
X11_wrap_widget_if_Xft(racewidget, NHW_MENU);
XtAddCallback(racewidget, XtNcallback, racetoggleCallback, i2xtp(i));
tmpwidget = racewidget;
plsel_race_radios[i] = racewidget;
@@ -963,6 +974,7 @@ X11_player_selection_dialog(void)
XtSetArg(args[num_args], nhStr(XtNlabel), "Role"); num_args++;
rolelabel = XtCreateManagedWidget("role_label", labelWidgetClass,
role_form, args, num_args);
X11_wrap_widget_if_Xft(rolelabel, NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNtopMargin), 0); num_args++;
@@ -998,9 +1010,11 @@ X11_player_selection_dialog(void)
plsel_role_radios[0]); num_args++;
}
XtSetArg(args[num_args], nhStr(XtNradioData), (i + 1)); num_args++;
XtSetArg(args[num_args], nhStr(XtNresizable), True); num_args++;
rolewidget = XtCreateManagedWidget(roles[i].name.m, toggleWidgetClass,
role_form2, args, num_args);
X11_wrap_widget_if_Xft(rolewidget, NHW_MENU);
XtAddCallback(rolewidget, XtNcallback, roletoggleCallback, i2xtp(i));
tmpwidget = rolewidget;
plsel_role_radios[i] = rolewidget;
@@ -1027,6 +1041,7 @@ X11_player_selection_dialog(void)
XtSetArg(args[num_args], nhStr(XtNlabel), "Gender"); num_args++;
gendlabel = XtCreateManagedWidget("gender_label", labelWidgetClass,
gend_form, args, num_args);
X11_wrap_widget_if_Xft(gendlabel, NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNtopMargin), 0); num_args++;
@@ -1048,6 +1063,7 @@ X11_player_selection_dialog(void)
plsel_gend_radios[0] = gend_radio_m
= XtCreateManagedWidget("Male", toggleWidgetClass,
gend_form2, args, num_args);
X11_wrap_widget_if_Xft(plsel_gend_radios[0], NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNfromVert), gend_radio_m); num_args++;
XtSetArg(args[num_args], XtNwidth, cwid); num_args++;
@@ -1057,6 +1073,7 @@ X11_player_selection_dialog(void)
plsel_gend_radios[1] = gend_radio_f
= XtCreateManagedWidget("Female", toggleWidgetClass,
gend_form2, args, num_args);
X11_wrap_widget_if_Xft(plsel_gend_radios[1], NHW_MENU);
XawToggleUnsetCurrent(plsel_gend_radios[0]);
@@ -1086,6 +1103,7 @@ X11_player_selection_dialog(void)
XtSetArg(args[num_args], nhStr(XtNlabel), "Alignment"); num_args++;
alignlabel = XtCreateManagedWidget("align_label", labelWidgetClass,
align_form, args, num_args);
X11_wrap_widget_if_Xft(alignlabel, NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNtopMargin), 0); num_args++;
@@ -1106,6 +1124,7 @@ X11_player_selection_dialog(void)
plsel_align_radios[0] = align_radio_l
= XtCreateManagedWidget("Lawful", toggleWidgetClass,
align_form2, args, num_args);
X11_wrap_widget_if_Xft(plsel_align_radios[0], NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNfromVert), align_radio_l); num_args++;
XtSetArg(args[num_args], XtNwidth, cwid); num_args++;
@@ -1115,6 +1134,7 @@ X11_player_selection_dialog(void)
plsel_align_radios[1] = align_radio_n
= XtCreateManagedWidget("Neutral", toggleWidgetClass,
align_form2, args, num_args);
X11_wrap_widget_if_Xft(plsel_align_radios[1], NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], nhStr(XtNfromVert), align_radio_n); num_args++;
XtSetArg(args[num_args], XtNwidth, cwid); num_args++;
@@ -1124,6 +1144,7 @@ X11_player_selection_dialog(void)
plsel_align_radios[2] = align_radio_c
= XtCreateManagedWidget("Chaotic", toggleWidgetClass,
align_form2, args, num_args);
X11_wrap_widget_if_Xft(plsel_align_radios[2], NHW_MENU);
XawToggleUnsetCurrent(plsel_align_radios[0]);
@@ -1159,10 +1180,13 @@ X11_player_selection_dialog(void)
XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop); num_args++;
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
XtSetArg(args[num_args], nhStr(XtNright), XtChainRight); num_args++;
XtSetArg(args[num_args], XtNwidth, cwid); num_args++;
XtSetArg(args[num_args], nhStr(XtNlabel), "Random"); num_args++;
random_btn = XtCreateManagedWidget("random", commandWidgetClass, btn_form,
args, num_args);
X11_wrap_widget_if_Xft(random_btn, NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], XtNwidth, cwid); num_args++;
XtSetValues(random_btn, args, num_args);
XtAddCallback(random_btn, XtNcallback, plsel_random_btn_callback, form);
/* "Play" button */
@@ -1171,11 +1195,14 @@ X11_player_selection_dialog(void)
XtSetArg(args[num_args], nhStr(XtNfromVert), random_btn); num_args++;
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
XtSetArg(args[num_args], nhStr(XtNright), XtChainRight); num_args++;
XtSetArg(args[num_args], XtNwidth, cwid); num_args++;
XtSetArg(args[num_args], nhStr(XtNlabel), "Play"); num_args++;
plsel_btn_play = play_btn
= XtCreateManagedWidget("play", commandWidgetClass, btn_form,
args, num_args);
X11_wrap_widget_if_Xft(play_btn, NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], XtNwidth, cwid); num_args++;
XtSetValues(play_btn, args, num_args);
XtAddCallback(play_btn, XtNcallback, plsel_play_btn_callback, form);
/* "Quit" button */
@@ -1185,10 +1212,13 @@ X11_player_selection_dialog(void)
XtSetArg(args[num_args], nhStr(XtNbottom), XtChainBottom); num_args++;
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
XtSetArg(args[num_args], nhStr(XtNright), XtChainRight); num_args++;
XtSetArg(args[num_args], XtNwidth, cwid); num_args++;
XtSetArg(args[num_args], nhStr(XtNlabel), "Quit"); num_args++;
quit_btn = XtCreateManagedWidget("quit", commandWidgetClass, btn_form,
args, num_args);
X11_wrap_widget_if_Xft(quit_btn, NHW_MENU);
num_args = 0;
XtSetArg(args[num_args], XtNwidth, cwid); num_args++;
XtSetValues(quit_btn, args, num_args);
XtAddCallback(quit_btn, XtNcallback, plsel_quit_btn_callback, form);
/********************************************/
@@ -2039,6 +2069,7 @@ make_menu(const char *popup_name, const char *popup_label,
XtSetArg(args[num_args], XtNborderWidth, 0); num_args++;
label = XtCreateManagedWidget(popup_label, labelWidgetClass, form, args,
num_args);
X11_wrap_widget_if_Xft(label, NHW_MENU);
cumulative_height = 0;
XtSetArg(args[0], XtNheight, &height);
@@ -2058,6 +2089,7 @@ make_menu(const char *popup_name, const char *popup_label,
Sprintf(btnname, "btn_%s", left_name);
left = XtCreateManagedWidget(btnname, commandWidgetClass, form, args,
num_args);
X11_wrap_widget_if_Xft(left, NHW_MENU);
XtAddCallback(left, XtNcallback, left_callback, (XtPointer) 0);
skip = (distance < 4) ? 8 : 2 * distance;
@@ -2081,6 +2113,7 @@ make_menu(const char *popup_name, const char *popup_label,
Sprintf(btnname, "btn_%s", right_name);
right = XtCreateManagedWidget(btnname, commandWidgetClass, form, args,
num_args);
X11_wrap_widget_if_Xft(right, NHW_MENU);
XtAddCallback(right, XtNcallback, right_callback, (XtPointer) 0);
XtInstallAccelerators(form, left);
@@ -2106,6 +2139,7 @@ make_menu(const char *popup_name, const char *popup_label,
*curr = XtCreateManagedWidget(widget_names[i], commandWidgetClass,
form, args, num_args);
X11_wrap_widget_if_Xft(*curr, NHW_MENU);
XtAddCallback(*curr, XtNcallback, name_callback,
(XtPointer) (ptrdiff_t) i);
above = *curr++;