X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fintl.C;h=371d44da9ba1fde56cee4df3f82b56e4354055e1;hb=f676dacf9c69d8c906653f54d00342c01de6facf;hp=868500ca676caf75006e9120fc2fb78cb1193e07;hpb=1c9a8d27a26b5f76562914f0e81aa98334f8c06a;p=lyx.git diff --git a/src/intl.C b/src/intl.C index 868500ca67..371d44da9b 100644 --- a/src/intl.C +++ b/src/intl.C @@ -4,7 +4,7 @@ * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich - * Copyright 1995-1999 The LyX Team. + * Copyright 1995-2000 The LyX Team. * * ====================================================== */ @@ -29,7 +29,13 @@ #include "trans_mgr.h" #include "support/lstrings.h" #include "language.h" +#include "frontends/Dialogs.h" // redrawGUI +#ifdef SIGC_CXX_NAMESPACES +using SigC::slot; +#endif + +using std::endl; // a wrapper around the callback static member. extern "C" void C_Intl_DispatchCallback(FL_OBJECT * ob, long code); @@ -45,6 +51,20 @@ Intl::Intl() primarykeymap = false; curkeymap = 0; otherkeymap = 0; + r_ = Dialogs::redrawGUI.connect(slot(this, &Intl::redraw)); +} + +Intl::~Intl() +{ + r_.disconnect(); + delete trans; +} + + +void Intl::redraw() +{ + if (fd_form_keymap && fd_form_keymap->KeyMap->visible) + fl_redraw_form(fd_form_keymap->KeyMap); } @@ -129,12 +149,8 @@ void Intl::KeyMapPrim() fl_set_button(fd_form_keymap->KeyOnBtn2, 0); /* read text from choice */ - int i = Language->get(); + int const i = Language->get(); -#if 0 - if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "Table: " << tex_babel[i-1] << endl; -#endif string p; if (i == otherkeymap) p = fl_get_input(fd_form_keymap->OtherKeymap); @@ -164,12 +180,8 @@ void Intl::KeyMapSec() fl_set_button(fd_form_keymap->KeyOnBtn2, 1); /* read text from choice */ - int i = Language2->get(); + int const i = Language2->get(); -#if 0 - if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "Table: " << tex_babel[i-1] << endl; -#endif string p; if (i == otherkeymap) p = fl_get_input(fd_form_keymap->OtherKeymap2); @@ -190,23 +202,16 @@ void Intl::KeyMapSec() } } - -void Intl::LCombo(int, void * v) -{ - Intl * itl = static_cast(v); - itl->Keymap(23); - return; -} - - -void Intl::LCombo2(int, void * v) +void Intl::LCombo(int, void * v, Combox * combox) { Intl * itl = static_cast(v); - itl->Keymap(43); + if (combox == itl->Language) + itl->Keymap(23); + else if (combox == itl->Language2) + itl->Keymap(43); return; } - void Intl::DispatchCallback(FL_OBJECT * ob, long code) { if (ob && (code == 0)) { @@ -241,7 +246,7 @@ void Intl::InitKeyMapper(bool on) Language = new Combox(FL_COMBOX_DROPLIST); Language2 = new Combox(FL_COMBOX_DROPLIST); Language->setcallback(LCombo, this); - Language2->setcallback(LCombo2, this); + Language2->setcallback(LCombo, this); fd_form_keymap = create_form_KeyMap(); @@ -282,39 +287,31 @@ void Intl::InitKeyMapper(bool on) Language2->add(120, 110, 160, 30, 300); // Secondary fl_end_form(); -#if 0 int n = 0; - while (true) - if (!strlen(tex_babel[n])) - break; - else { - Language->addto(tex_babel[n]); - Language2->addto(tex_babel[n]); - ++n; - } -#else - int n = 1; // Default is not in the language map +#ifdef DO_USE_DEFAULT_LANGUAGE Language->addto("default"); Language2->addto("default"); + ++n; +#endif for (Languages::const_iterator cit = languages.begin(); cit != languages.end(); ++cit) { - Language->addto((*cit).second.lang.c_str()); - Language2->addto((*cit).second.lang.c_str()); + Language->addto((*cit).second.lang()); + Language2->addto((*cit).second.lang()); ++n; } -#endif + Language->addto(_("other...")); Language2->addto(_("other...")); otherkeymap = n + 1; - if (!Language->select_text(prim_lang.c_str())) { - Language->select(n+1); + if (!Language->select_text(prim_lang)) { + Language->select(n + 1); fl_set_input(fd_form_keymap->OtherKeymap, prim_lang.c_str()); } else trans->SetPrimary(prim_lang); - if (!Language2->select_text(sec_lang.c_str())) { + if (!Language2->select_text(sec_lang)) { Language2->select(n + 1); fl_set_input(fd_form_keymap->OtherKeymap2, sec_lang.c_str()); } @@ -325,7 +322,7 @@ void Intl::InitKeyMapper(bool on) if (keymapon) Keymap(23); // turn primary on - trans->setCharset(lyxrc.font_norm.c_str()); + trans->setCharset(lyxrc.font_norm); } @@ -374,6 +371,7 @@ void Intl::MenuKeymap() { if (fd_form_keymap->KeyMap->visible) { fl_raise_form(fd_form_keymap->KeyMap); - } else fl_show_form(fd_form_keymap->KeyMap, FL_PLACE_MOUSE, - FL_FULLBORDER, _("Key Mappings")); + } else fl_show_form(fd_form_keymap->KeyMap, + FL_PLACE_MOUSE | FL_FREE_SIZE, FL_TRANSIENT, + _("Key Mappings")); }