]> git.lyx.org Git - features.git/commitdiff
* Split out getLanguageData from character.[Ch] into its own files,
authorAngus Leeming <leeming@lyx.org>
Mon, 29 Apr 2002 15:56:36 +0000 (15:56 +0000)
committerAngus Leeming <leeming@lyx.org>
Mon, 29 Apr 2002 15:56:36 +0000 (15:56 +0000)
frnt_lang.[Ch]. Move all these functions into namespace frnt as
namespace charcter doesn't make much sense anymore.
* Associated changes to ControlCharacter and to FormCharacter.
* Use the same approach to internationalise the language names in the document
dialog.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4087 a592a061-630c-0410-9148-cb99ea01b6c8

13 files changed:
src/frontends/controllers/ChangeLog
src/frontends/controllers/ControlCharacter.C
src/frontends/controllers/ControlCharacter.h
src/frontends/controllers/Makefile.am
src/frontends/controllers/character.C
src/frontends/controllers/character.h
src/frontends/controllers/frnt_lang.C [new file with mode: 0644]
src/frontends/controllers/frnt_lang.h [new file with mode: 0644]
src/frontends/xforms/ChangeLog
src/frontends/xforms/FormCharacter.C
src/frontends/xforms/FormCharacter.h
src/frontends/xforms/FormDocument.C
src/frontends/xforms/FormDocument.h

index 5b545e189384ddeb8dfe1e74741c7922887db27e..a7ef60a16e6d25be961440a963b41c950d92bff0 100644 (file)
@@ -1,12 +1,17 @@
 2002-04-29  Angus Leeming  <a.leeming@ic.ac.uk>
 
-       * character.[Ch] (getLanguageData): returns a vector<LanguagePair>
-       where LanguagePair is a display string and an identifying string.
-       The display string is internationalised.
+       * character.[Ch]: rename namespace character as namespace frnt.
+
+       * frnt_lang.[Ch]: new file. Move getLanguageData from character.[Ch]
+       as several dialogs will use this info. The function now returns a
+       vector<LanguagePair> where LanguagePair is a display string and an
+       identifying string. The display string is internationalised.
 
        * ControlCharacter.C (getLanguage, setLanguage): Do not internationalise
        the identifying strings, "No change" and "Reset".
 
+       * Makefile.am: add frnt_lang.[Ch].
+
 2002-04-25  Herbert Voss  <voss@lyx.org>
 
        * ControlSendto.C (allFormats): don't add the graphics extensions to the
index 2f249c4fd2f3ca17aa989d079716f5e7c9fae29c..b291a5bad94989e45e7b867326f7af41140f0609 100644 (file)
@@ -52,7 +52,7 @@ void ControlCharacter::setParams()
            getSeries()   != LyXFont::IGNORE_SERIES ||
            getShape()    != LyXFont::IGNORE_SHAPE  ||
            getSize()     != LyXFont::IGNORE_SIZE ||
-           getBar()      != character::IGNORE ||
+           getBar()      != frnt::IGNORE ||
            getColor()    != LColor::ignore ||
            font_->language() != ignore_language)
                bc().valid();
@@ -132,51 +132,51 @@ void ControlCharacter::setSize(LyXFont::FONT_SIZE val)
 }
 
 
-character::FONT_STATE ControlCharacter::getBar() const
+frnt::FONT_STATE ControlCharacter::getBar() const
 {
        if (!font_.get())
-               return character::IGNORE;
+               return frnt::IGNORE;
 
        if (font_->emph() == LyXFont::TOGGLE)
-               return character::EMPH_TOGGLE;
+               return frnt::EMPH_TOGGLE;
 
        if (font_->underbar() == LyXFont::TOGGLE)
-               return character::UNDERBAR_TOGGLE;
+               return frnt::UNDERBAR_TOGGLE;
 
        if (font_->noun() == LyXFont::TOGGLE)
-               return character::NOUN_TOGGLE;
+               return frnt::NOUN_TOGGLE;
 
        if (font_->emph() == LyXFont::IGNORE &&
            font_->underbar() == LyXFont::IGNORE &&
            font_->noun() == LyXFont::IGNORE)
-               return character::IGNORE;
+               return frnt::IGNORE;
 
-       return character::INHERIT;
+       return frnt::INHERIT;
 }
 
 
-void ControlCharacter::setBar(character::FONT_STATE val)
+void ControlCharacter::setBar(frnt::FONT_STATE val)
 {
        switch (val) {
-       case character::IGNORE:
+       case frnt::IGNORE:
                font_->setEmph(LyXFont::IGNORE);
                font_->setUnderbar(LyXFont::IGNORE);
                font_->setNoun(LyXFont::IGNORE);
                break;
 
-       case character::EMPH_TOGGLE:
+       case frnt::EMPH_TOGGLE:
                font_->setEmph(LyXFont::TOGGLE);
                break;
 
-       case character::UNDERBAR_TOGGLE:
+       case frnt::UNDERBAR_TOGGLE:
                font_->setUnderbar(LyXFont::TOGGLE);
                break;
 
-       case character::NOUN_TOGGLE:
+       case frnt::NOUN_TOGGLE:
                font_->setNoun(LyXFont::TOGGLE);
                break;
 
-       case character::INHERIT:
+       case frnt::INHERIT:
                font_->setEmph(LyXFont::INHERIT);
                font_->setUnderbar(LyXFont::INHERIT);
                font_->setNoun(LyXFont::INHERIT);
index 2c653b2807d4528ab741164e402d4d83b379882f..f6fc945db51e4134bde9588e4fdecb7b21dd95e1 100644 (file)
@@ -36,7 +36,7 @@ public:
        ///
        void setSize(LyXFont::FONT_SIZE);
        ///
-       void setBar(character::FONT_STATE);
+       void setBar(frnt::FONT_STATE);
        ///
        void setColor(LColor::color);
        ///
@@ -53,7 +53,7 @@ public:
        ///
        LyXFont::FONT_SIZE getSize() const;
        ///
-       character::FONT_STATE getBar() const;
+       frnt::FONT_STATE getBar() const;
        ///
        LColor::color getColor() const;
        ///
index 72cf929f7d6641d056c518059e2a29cf25e431b9..a5bb38d003ba0877a1205a7c49259decf187d567 100644 (file)
@@ -13,6 +13,8 @@ libcontrollers_la_SOURCES= \
        biblio.h \
        character.C \
        character.h \
+       frnt_lang.C \
+       frnt_lang.h \
        ButtonController.h \
        ButtonControllerBase.C \
        ButtonControllerBase.h \
index 812669099bbe179cb94c443b4a7652564114ce89..a6d29fa71efa6aa1cc1b0725dbe422e52cb722ee 100644 (file)
 
 #include "gettext.h"
 #include "character.h"
-#include "language.h"
 
 using std::vector;
 
-namespace character {
+namespace frnt {
 
 vector<FamilyPair> const getFamilyData()
 {
@@ -175,23 +174,4 @@ vector<ColorPair> const getColorData()
        return color;
 }
 
-
-vector<LanguagePair> const getLanguageData()
-{
-       vector<LanguagePair> langs(languages.size() + 2);
-
-       langs[0].first = N_("No change"); langs[0].second = "No change";
-       langs[1].first = N_("Reset");     langs[1].second = "Reset";
-
-       vector<string>::size_type i = 2;
-       for (Languages::const_iterator cit = languages.begin();
-            cit != languages.end(); ++cit) {
-               langs[i].first  = cit->second.display();
-               langs[i].second = cit->second.lang();
-               ++i;
-       }
-
-       return langs;
-}
-
-} // namespace character
+} // namespace frnt
index 32185ea29bd72f3e876105727105ee6244c84863..10c7530c4462be520eb82e311fc4d3c10553a85a 100644 (file)
@@ -23,7 +23,7 @@
 #include "LColor.h"
 
 /** Functions of use to the character GUI controller and view */
-namespace character {
+namespace frnt {
        ///
        enum FONT_STATE {
                ///
@@ -50,8 +50,6 @@ namespace character {
        typedef std::pair<string, FONT_STATE> BarPair;
        ///
        typedef std::pair<string, LColor::color> ColorPair;
-       ///
-       typedef std::pair<string, string> LanguagePair;
 
        ///
        std::vector<FamilyPair>   const getFamilyData();
@@ -65,9 +63,7 @@ namespace character {
        std::vector<BarPair>      const getBarData();
        ///
        std::vector<ColorPair>    const getColorData();
-       ///
-       std::vector<LanguagePair> const getLanguageData();
 
-} // namespace character
+} // namespace frnt
 
 #endif // CHARACTERHELPERS
diff --git a/src/frontends/controllers/frnt_lang.C b/src/frontends/controllers/frnt_lang.C
new file mode 100644 (file)
index 0000000..dfb9c90
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * \file frnt_lang.C
+ * Copyright 2002 the LyX Team
+ * Read the file COPYING
+ *
+ * \author Angus Leeming, a.leeming@ic.ac.uk
+ */
+
+#include <config.h>
+
+#ifdef __GNUG__
+#pragma implementation
+#endif
+
+#include "frnt_lang.h"
+#include "gettext.h"
+#include "language.h"
+
+using std::vector;
+
+namespace frnt {
+
+vector<LanguagePair> const getLanguageData()
+{
+       vector<LanguagePair> langs(languages.size() + 2);
+
+       langs[0].first = N_("No change"); langs[0].second = "No change";
+       langs[1].first = N_("Reset");     langs[1].second = "Reset";
+
+       vector<string>::size_type i = 2;
+       for (Languages::const_iterator cit = languages.begin();
+            cit != languages.end(); ++cit) {
+               langs[i].first  = cit->second.display();
+               langs[i].second = cit->second.lang();
+               ++i;
+       }
+
+       return langs;
+}
+
+} // namespace frnt
diff --git a/src/frontends/controllers/frnt_lang.h b/src/frontends/controllers/frnt_lang.h
new file mode 100644 (file)
index 0000000..5a636d4
--- /dev/null
@@ -0,0 +1,31 @@
+// -*- C++ -*-
+/*
+ * \file frnt_lang.h
+ * Copyright 2002 the LyX Team
+ * Read the file COPYING
+ *
+ * \author Angus Leeming, a.leeming@ic.ac.uk
+ */
+
+#ifndef FRNT_LANG_H
+#define FRNT_LANG_H
+
+#ifdef __GNUG__
+#pragma interface
+#endif
+
+#include "LString.h"
+#include <utility>
+#include <vector>
+
+/** Ease the use of internationalised language strings in the dialogs.
+ */
+namespace frnt {
+       ///
+       typedef std::pair<string, string> LanguagePair;
+       ///
+       std::vector<LanguagePair> const getLanguageData();
+
+} // namespace frnt
+
+#endif // FRNT_LANG_H
index ba716c2c7175684575e2a787acc72b317cd5c137..39cba9510448a6eb21552b5b40ba2e3eb889b627 100644 (file)
@@ -2,9 +2,13 @@
 
        * FormCharacter.h: store a vector<string> lang_ of language identifiers.
 
-       * FormCharacter.C: changes associated with character::getLanguageData
+       * FormCharacter.C: changes associated with frnt::getLanguageData
        returning a vector<LanguagePair> rather than a vector<string>.
 
+       * FormDocument.h: store a vector<string> lang_ of language identifiers.
+
+       * FormDocument.C: internationalise the languages on display.
+
 2002-04-26  John Levon  <moz@compsoc.man.ac.uk>
 
        * FormMathsPanel.C: translate Close
index d132b333556b8d235ee92c51a6ebaf0982ef78aa..5ac61c59a3d05823197e671d22e35aded7e36f22 100644 (file)
 #include "gettext.h"
 #include "combox.h"
 #include "helper_funcs.h"
+#include "frnt_lang.h"
 
 #include "support/lstrings.h"
 
 using std::vector;
 using std::find;
 
-using namespace character;
+using namespace frnt;
 
 typedef FormCB<ControlCharacter, FormDB<FD_form_character> > base_class;
 
@@ -53,7 +54,7 @@ void FormCharacter::build()
        vector<SizePair>     const size     = getSizeData();
        vector<BarPair>      const bar      = getBarData();
        vector<ColorPair>    const color    = getColorData();
-       vector<LanguagePair> const language = getLanguageData();
+       vector<LanguagePair> const langs = getLanguageData();
 
        // Store the identifiers for later
        family_ = getSecond(family);
@@ -62,7 +63,7 @@ void FormCharacter::build()
        size_   = getSecond(size);
        bar_    = getSecond(bar);
        color_  = getSecond(color);
-       lang_   = getSecond(language);
+       lang_   = getSecond(langs);
 
        // create a string of entries " entry1 | entry2 | entry3 | entry4 "
        // with which to initialise the xforms choice object.
@@ -99,9 +100,10 @@ void FormCharacter::build()
        fl_end_form();
 
        // build up the combox entries
-       for (vector<LanguagePair>::const_iterator cit = language.begin();
-            cit != language.end(); ++cit) {
-               combo_language2_->addto(_(cit->first));
+       vector<LanguagePair>::const_iterator it  = langs.begin();
+       vector<LanguagePair>::const_iterator end = langs.end();
+       for (; it != end; ++it) {
+               combo_language2_->addto(_(it->first));
        }
        combo_language2_->select(1);
 
@@ -205,7 +207,7 @@ ButtonPolicy::SMInput FormCharacter::input(FL_OBJECT *, long)
                activate = ButtonPolicy::SMI_VALID;
 
        pos = fl_get_choice(dialog_->choice_bar);
-       if (bar_[pos-1] != character::IGNORE)
+       if (bar_[pos-1] != frnt::IGNORE)
                activate = ButtonPolicy::SMI_VALID;
 
        pos = fl_get_choice(dialog_->choice_color);
index 9eb42c84b25220179ee3efce7fdbf23dca0e5af1..715e28dd11ce753eb058664fe58dc6367024a6f4 100644 (file)
@@ -68,7 +68,7 @@ private:
        ///
        std::vector<LyXFont::FONT_SIZE>    size_;
        ///
-       std::vector<character::FONT_STATE> bar_;
+       std::vector<frnt::FONT_STATE>      bar_;
        ///
        std::vector<LColor::color>         color_;
        ///
index b7f5065f98b512309e6ff492bc64c328bf4d9db1..dac27f81e8cbb9b231f8429d5168f9199edc05f6 100644 (file)
@@ -26,6 +26,7 @@
 #include "vspace.h"
 #include "bmtable.h"
 #include "language.h"
+#include "frnt_lang.h"
 #include "LyXView.h"
 #include "lyxfunc.h"
 #include "lyxrc.h"
@@ -241,6 +242,10 @@ void FormDocument::build()
                        "default|auto|latin1|latin2|latin3|latin4|latin5|latin9"
                        "|koi8-r|koi8-u|cp866|cp1251|iso88595");
 
+       vector<frnt::LanguagePair> const langs = frnt::getLanguageData();
+       // Store the identifiers for later
+       lang_ = getSecond(langs);
+
        // The language is a combo-box and has to be inserted manually
        obj = language_->choice_language;
        fl_deactivate_object(obj);
@@ -252,10 +257,12 @@ void FormDocument::build()
        combo_language->setcallback(ComboInputCB, this);
        fl_end_form();
 
-       for (Languages::const_iterator cit = languages.begin();
-            cit != languages.end(); ++cit) {
-               combo_language->addto(cit->second.lang());
+       vector<frnt::LanguagePair>::const_iterator lit  = langs.begin();
+       vector<frnt::LanguagePair>::const_iterator lend = langs.end();
+       for (; lit != lend; ++lit) {
+               combo_language->addto(_(lit->first));
        }
+       combo_language->select(1);
 
        fl_addto_choice(language_->choice_quotes_language,
                        _(" ``text'' | ''text'' | ,,text`` | ,,text'' |"
@@ -887,9 +894,9 @@ bool FormDocument::language_apply(BufferParams & params)
        else
                params.quotes_times = InsetQuotes::DoubleQ;
 
+       int const pos = combo_language->get();
        Language const * old_language = params.language;
-       Language const * new_language =
-               languages.getLanguage(combo_language->getline());
+       Language const * new_language = languages.getLanguage(lang_[pos-1]);
        if (!new_language)
                new_language = default_language;
 
@@ -1083,12 +1090,29 @@ void FormDocument::class_update(BufferParams const & params)
 }
 
 
+namespace {
+
+template<class A>
+typename vector<A>::size_type findPos(vector<A> const & vec, A const & val)
+{
+       typename vector<A>::const_iterator it =
+               std::find(vec.begin(), vec.end(), val);
+       if (it == vec.end())
+               return 0;
+       return it - vec.begin();
+}
+
+} // namespace anon
+
+
 void FormDocument::language_update(BufferParams const & params)
 {
        if (!language_.get())
                return;
 
-       combo_language->select(params.language->lang());
+       int const pos = int(findPos(lang_, params.language->lang()));
+       combo_language->select(pos+1);
+
        fl_set_choice_text(language_->choice_inputenc, params.inputenc.c_str());
        fl_set_choice(language_->choice_quotes_language, params.quotes_language + 1);
        fl_set_button(language_->radio_single, 0);
index 6fd278ea7aa4497b20033a33abe99efd244e4358..503b880d438e3b878d6012d4cafb3c5e4235a3da 100644 (file)
@@ -185,6 +185,8 @@ private:
        boost::scoped_ptr<Combox> combo_doc_class;
        /// The ButtonController
        ButtonController<NoRepeatedApplyReadOnlyPolicy, xformsBC> bc_;
+       ///
+       std::vector<string> lang_;
 };