fixed a few issues with the vocabulary ui

This commit is contained in:
Martin Dvořák 2026-09-11 20:23:57 +02:00
commit 8f72a8e1bf

View file

@ -1261,12 +1261,9 @@ static void translate_check(GtkButton *button, gpointer data) {
} }
GtkWidget *build_translate(UnitCtx *unit) { GtkWidget *build_translate(UnitCtx *unit) {
GtkWidget *body, *feedback, *check; GtkWidget *page = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
GtkWidget *page = ex_page_shell(unit->page, "Vokabeltraining", GtkWidget *wrap, *card, *bottom, *feedback, *check;
"sub_translate", "check",
&body, &feedback, &check);
TransCtx *ctx = g_new0(TransCtx, 1); TransCtx *ctx = g_new0(TransCtx, 1);
GtkWidget *wrap, *card;
int total = 0; int total = 0;
int k = 0; int k = 0;
@ -1275,8 +1272,6 @@ GtkWidget *build_translate(UnitCtx *unit) {
ctx->unit = unit; ctx->unit = unit;
ctx->ex_num = unit->branch_ex; ctx->ex_num = unit->branch_ex;
ctx->feedback = feedback;
ctx->check = check;
ctx->total = total; ctx->total = total;
ctx->qn = total; ctx->qn = total;
ctx->qs = g_new0(TypedQ, total); ctx->qs = g_new0(TypedQ, total);
@ -1293,16 +1288,24 @@ GtkWidget *build_translate(UnitCtx *unit) {
} }
} }
wrap = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_hexpand(page, TRUE);
gtk_widget_set_vexpand(page, TRUE);
gtk_widget_set_margin_start(page, 32);
gtk_widget_set_margin_end(page, 32);
gtk_widget_set_margin_top(page, 24);
gtk_widget_set_margin_bottom(page, 24);
gtk_box_append(GTK_BOX(page),
top_bar(unit->page, "Vokabeltraining", "sub_translate"));
wrap = gtk_center_box_new();
gtk_widget_set_hexpand(wrap, TRUE);
gtk_widget_set_vexpand(wrap, TRUE); gtk_widget_set_vexpand(wrap, TRUE);
gtk_box_append(GTK_BOX(body), wrap); gtk_box_append(GTK_BOX(page), wrap);
card = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8); card = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8);
gtk_widget_add_css_class(card, "notes-card");
gtk_widget_set_halign(card, GTK_ALIGN_CENTER);
gtk_widget_set_valign(card, GTK_ALIGN_CENTER);
gtk_widget_set_size_request(card, 380, -1); gtk_widget_set_size_request(card, 380, -1);
gtk_box_append(GTK_BOX(wrap), card); gtk_widget_set_valign(card, GTK_ALIGN_CENTER);
gtk_center_box_set_center_widget(GTK_CENTER_BOX(wrap), card);
ctx->header = gtk_label_new(NULL); ctx->header = gtk_label_new(NULL);
gtk_widget_set_halign(ctx->header, GTK_ALIGN_CENTER); gtk_widget_set_halign(ctx->header, GTK_ALIGN_CENTER);
@ -1328,6 +1331,24 @@ GtkWidget *build_translate(UnitCtx *unit) {
gtk_widget_set_halign(ctx->entry, GTK_ALIGN_FILL); gtk_widget_set_halign(ctx->entry, GTK_ALIGN_FILL);
gtk_box_append(GTK_BOX(card), ctx->entry); gtk_box_append(GTK_BOX(card), ctx->entry);
bottom = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12);
gtk_widget_set_margin_top(bottom, 4);
gtk_box_append(GTK_BOX(page), bottom);
feedback = gtk_label_new("");
gtk_widget_set_halign(feedback, GTK_ALIGN_START);
gtk_widget_set_valign(feedback, GTK_ALIGN_CENTER);
gtk_widget_set_hexpand(feedback, TRUE);
gtk_box_append(GTK_BOX(bottom), feedback);
ctx->feedback = feedback;
check = gtk_button_new();
i18n_bind(check, "check", 1);
gtk_widget_add_css_class(check, "btn-primary");
gtk_widget_set_valign(check, GTK_ALIGN_CENTER);
gtk_box_append(GTK_BOX(bottom), check);
ctx->check = check;
g_signal_connect(check, "clicked", G_CALLBACK(translate_check), ctx); g_signal_connect(check, "clicked", G_CALLBACK(translate_check), ctx);
g_signal_connect(ctx->entry, "activate", G_CALLBACK(translate_check), ctx); g_signal_connect(ctx->entry, "activate", G_CALLBACK(translate_check), ctx);
g_signal_connect(page, "map", G_CALLBACK(trans_on_map), ctx); g_signal_connect(page, "map", G_CALLBACK(trans_on_map), ctx);