summaryrefslogtreecommitdiff
path: root/src/ui/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/util.c')
-rw-r--r--src/ui/util.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/ui/util.c b/src/ui/util.c
index 31907721..8e71dcec 100644
--- a/src/ui/util.c
+++ b/src/ui/util.c
@@ -3451,6 +3451,54 @@ iWidget *makeTranslation_Widget(iWidget *parent) {
3451 return dlg; 3451 return dlg;
3452} 3452}
3453 3453
3454iWidget *makeGlyphFinder_Widget(void) {
3455 iString msg;
3456 iString command;
3457 init_String(&msg);
3458 initCStr_String(&command, "!font.find chars:");
3459 for (size_t i = 0; ; i++) {
3460 iChar ch = missing_Text(i);
3461 if (!ch) break;
3462 appendFormat_String(&msg, " U+%04X", ch);
3463 appendChar_String(&command, ch);
3464 }
3465 iArray items;
3466 init_Array(&items, sizeof(iMenuItem));
3467 if (!isEmpty_String(&msg)) {
3468 prependCStr_String(&msg, "${dlg.glyphfinder.missing} ");
3469 appendCStr_String(&msg, "\n\n${dlg.glyphfinder.help}");
3470 pushBackN_Array(
3471 &items,
3472 (iMenuItem[]){
3473 { "${menu.fonts}", 0, 0, "!open newtab:1 url:about:fonts" },
3474 { "${dlg.glyphfinder.disable}", 0, 0, "prefs.font.warnmissing.changed arg:0" },
3475 { "---" },
3476 { uiTextCaution_ColorEscape magnifyingGlass_Icon " ${dlg.glyphfinder.search}",
3477 0,
3478 0,
3479 cstr_String(&command) },
3480 { "${close}", 0, 0, "cancel" } },
3481 5);
3482 }
3483 else {
3484 setCStr_String(&msg, "${dlg.glyphfinder.help.empty}");
3485 pushBackN_Array(&items,
3486 (iMenuItem[]){ { "${menu.reload}", 0, 0, "navigate.reload" },
3487 { "${close}", 0, 0, "cancel" } },
3488 2);
3489 }
3490 iWidget *dlg = makeQuestion_Widget("${heading.glyphfinder}", cstr_String(&msg),
3491 constData_Array(&items),
3492 size_Array(&items));
3493 arrange_Widget(dlg);
3494 deinit_Array(&items);
3495 deinit_String(&command);
3496 deinit_String(&msg);
3497 return dlg;
3498}
3499
3500/*----------------------------------------------------------------------------------------------*/
3501
3454void init_PerfTimer(iPerfTimer *d) { 3502void init_PerfTimer(iPerfTimer *d) {
3455 d->ticks = SDL_GetPerformanceCounter(); 3503 d->ticks = SDL_GetPerformanceCounter();
3456} 3504}