From 3459e43ca830959d2b4ca71796a34ae7b21a819e Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Fri, 27 Jun 2025 14:34:49 +0200 Subject: FLUID: Move i18n settings into its own class --- fluid/nodes/Menu_Node.cxx | 28 ++++++++++++++-------------- fluid/nodes/Widget_Node.cxx | 16 ++++++++-------- fluid/nodes/Window_Node.cxx | 6 +++--- 3 files changed, 25 insertions(+), 25 deletions(-) (limited to 'fluid/nodes') diff --git a/fluid/nodes/Menu_Node.cxx b/fluid/nodes/Menu_Node.cxx index a4434a4dd..f5555644c 100644 --- a/fluid/nodes/Menu_Node.cxx +++ b/fluid/nodes/Menu_Node.cxx @@ -485,10 +485,10 @@ void Menu_Item_Node::write_item(fld::io::Code_Writer& f) { write_comment_inline_c(f, " "); f.write_c(" {"); if (label() && label()[0]) - switch (Fluid.proj.i18n_type) { + switch (Fluid.proj.i18n.type) { case fld::I18n_Type::GNU: // we will call i18n when the menu is instantiated for the first time - f.write_c("%s(", Fluid.proj.i18n_gnu_static_function.c_str()); + f.write_c("%s(", Fluid.proj.i18n.gnu_static_function.c_str()); f.write_cstring(label()); f.write_c(")"); break; @@ -591,16 +591,16 @@ void Menu_Item_Node::write_code1(fld::io::Code_Writer& f) { f.write_c("%sml->labela = (char*)", f.indent()); image->write_inline(f); f.write_c(";\n"); - if (Fluid.proj.i18n_type==fld::I18n_Type::NONE) { + if (Fluid.proj.i18n.type==fld::I18n_Type::NONE) { f.write_c("%sml->labelb = o->label();\n", f.indent()); - } else if (Fluid.proj.i18n_type==fld::I18n_Type::GNU) { + } else if (Fluid.proj.i18n.type==fld::I18n_Type::GNU) { f.write_c("%sml->labelb = %s(o->label());\n", - f.indent(), Fluid.proj.i18n_gnu_function.c_str()); - } else if (Fluid.proj.i18n_type==fld::I18n_Type::POSIX) { + f.indent(), Fluid.proj.i18n.gnu_function.c_str()); + } else if (Fluid.proj.i18n.type==fld::I18n_Type::POSIX) { f.write_c("%sml->labelb = catgets(%s,%s,i+%d,o->label());\n", f.indent(), - Fluid.proj.i18n_pos_file.empty() ? "_catalog" : Fluid.proj.i18n_pos_file.c_str(), - Fluid.proj.i18n_pos_set.c_str(), msgnum()); + Fluid.proj.i18n.posix_file.empty() ? "_catalog" : Fluid.proj.i18n.posix_file.c_str(), + Fluid.proj.i18n.posix_set.c_str(), msgnum()); } f.write_c("%sml->typea = FL_IMAGE_LABEL;\n", f.indent()); f.write_c("%sml->typeb = FL_NORMAL_LABEL;\n", f.indent()); @@ -609,21 +609,21 @@ void Menu_Item_Node::write_code1(fld::io::Code_Writer& f) { image->write_code(f, 0, "o"); } } - if ((Fluid.proj.i18n_type != fld::I18n_Type::NONE) && label() && label()[0]) { + if ((Fluid.proj.i18n.type != fld::I18n_Type::NONE) && label() && label()[0]) { Fl_Labeltype t = o->labeltype(); if (image) { // label was already copied a few lines up } else if ( t==FL_NORMAL_LABEL || t==FL_SHADOW_LABEL || t==FL_ENGRAVED_LABEL || t==FL_EMBOSSED_LABEL) { start_menu_initialiser(f, menuItemInitialized, mname, i); - if (Fluid.proj.i18n_type==fld::I18n_Type::GNU) { + if (Fluid.proj.i18n.type==fld::I18n_Type::GNU) { f.write_c("%so->label(%s(o->label()));\n", - f.indent(), Fluid.proj.i18n_gnu_function.c_str()); - } else if (Fluid.proj.i18n_type==fld::I18n_Type::POSIX) { + f.indent(), Fluid.proj.i18n.gnu_function.c_str()); + } else if (Fluid.proj.i18n.type==fld::I18n_Type::POSIX) { f.write_c("%so->label(catgets(%s,%s,i+%d,o->label()));\n", f.indent(), - Fluid.proj.i18n_pos_file.empty() ? "_catalog" : Fluid.proj.i18n_pos_file.c_str(), - Fluid.proj.i18n_pos_set.c_str(), msgnum()); + Fluid.proj.i18n.posix_file.empty() ? "_catalog" : Fluid.proj.i18n.posix_file.c_str(), + Fluid.proj.i18n.posix_set.c_str(), msgnum()); } } } diff --git a/fluid/nodes/Widget_Node.cxx b/fluid/nodes/Widget_Node.cxx index 95be9493d..2082941ce 100644 --- a/fluid/nodes/Widget_Node.cxx +++ b/fluid/nodes/Widget_Node.cxx @@ -1601,19 +1601,19 @@ void Widget_Node::write_code1(fld::io::Code_Writer& f) { } if (label() && *label()) { f.write_c(", "); - switch (Fluid.proj.i18n_type) { + switch (Fluid.proj.i18n.type) { case fld::I18n_Type::NONE : /* None */ f.write_cstring(label()); break; case fld::I18n_Type::GNU : /* GNU gettext */ - f.write_c("%s(", Fluid.proj.i18n_gnu_function.c_str()); + f.write_c("%s(", Fluid.proj.i18n.gnu_function.c_str()); f.write_cstring(label()); f.write_c(")"); break; case fld::I18n_Type::POSIX : /* POSIX catgets */ f.write_c("catgets(%s,%s,%d,", - Fluid.proj.i18n_pos_file.empty() ? "_catalog" : Fluid.proj.i18n_pos_file.c_str(), - Fluid.proj.i18n_pos_set.c_str(), msgnum()); + Fluid.proj.i18n.posix_file.empty() ? "_catalog" : Fluid.proj.i18n.posix_file.c_str(), + Fluid.proj.i18n.posix_set.c_str(), msgnum()); f.write_cstring(label()); f.write_c(")"); break; @@ -1675,19 +1675,19 @@ void Widget_Node::write_widget_code(fld::io::Code_Writer& f) { if (tooltip() && *tooltip()) { f.write_c("%s%s->tooltip(",f.indent(), var); - switch (Fluid.proj.i18n_type) { + switch (Fluid.proj.i18n.type) { case fld::I18n_Type::NONE : /* None */ f.write_cstring(tooltip()); break; case fld::I18n_Type::GNU : /* GNU gettext */ - f.write_c("%s(", Fluid.proj.i18n_gnu_function.c_str()); + f.write_c("%s(", Fluid.proj.i18n.gnu_function.c_str()); f.write_cstring(tooltip()); f.write_c(")"); break; case fld::I18n_Type::POSIX : /* POSIX catgets */ f.write_c("catgets(%s,%s,%d,", - Fluid.proj.i18n_pos_file.empty() ? "_catalog" : Fluid.proj.i18n_pos_file.c_str(), - Fluid.proj.i18n_pos_set.c_str(), + Fluid.proj.i18n.posix_file.empty() ? "_catalog" : Fluid.proj.i18n.posix_file.c_str(), + Fluid.proj.i18n.posix_set.c_str(), msgnum() + 1); f.write_cstring(tooltip()); f.write_c(")"); diff --git a/fluid/nodes/Window_Node.cxx b/fluid/nodes/Window_Node.cxx index d6cbe80e6..5cc02a356 100644 --- a/fluid/nodes/Window_Node.cxx +++ b/fluid/nodes/Window_Node.cxx @@ -74,13 +74,13 @@ static void update_xywh() { void i18n_type_cb(Fl_Choice *c, void *v) { if (v == LOAD) { - c->value(static_cast(Fluid.proj.i18n_type)); + c->value(static_cast(Fluid.proj.i18n.type)); } else { Fluid.proj.undo.checkpoint(); - Fluid.proj.i18n_type = static_cast(c->value()); + Fluid.proj.i18n.type = static_cast(c->value()); Fluid.proj.set_modflag(1); } - switch (Fluid.proj.i18n_type) { + switch (Fluid.proj.i18n.type) { case fld::I18n_Type::NONE : /* None */ i18n_gnu_group->hide(); i18n_posix_group->hide(); -- cgit v1.2.3