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
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();
}
-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);
///
void setSize(LyXFont::FONT_SIZE);
///
- void setBar(character::FONT_STATE);
+ void setBar(frnt::FONT_STATE);
///
void setColor(LColor::color);
///
///
LyXFont::FONT_SIZE getSize() const;
///
- character::FONT_STATE getBar() const;
+ frnt::FONT_STATE getBar() const;
///
LColor::color getColor() const;
///
biblio.h \
character.C \
character.h \
+ frnt_lang.C \
+ frnt_lang.h \
ButtonController.h \
ButtonControllerBase.C \
ButtonControllerBase.h \
#include "gettext.h"
#include "character.h"
-#include "language.h"
using std::vector;
-namespace character {
+namespace frnt {
vector<FamilyPair> const getFamilyData()
{
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
#include "LColor.h"
/** Functions of use to the character GUI controller and view */
-namespace character {
+namespace frnt {
///
enum FONT_STATE {
///
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();
std::vector<BarPair> const getBarData();
///
std::vector<ColorPair> const getColorData();
- ///
- std::vector<LanguagePair> const getLanguageData();
-} // namespace character
+} // namespace frnt
#endif // CHARACTERHELPERS
--- /dev/null
+/*
+ * \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
--- /dev/null
+// -*- 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
* 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
#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;
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);
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.
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);
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);
///
std::vector<LyXFont::FONT_SIZE> size_;
///
- std::vector<character::FONT_STATE> bar_;
+ std::vector<frnt::FONT_STATE> bar_;
///
std::vector<LColor::color> color_;
///
#include "vspace.h"
#include "bmtable.h"
#include "language.h"
+#include "frnt_lang.h"
#include "LyXView.h"
#include "lyxfunc.h"
#include "lyxrc.h"
"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);
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'' |"
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;
}
+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);
boost::scoped_ptr<Combox> combo_doc_class;
/// The ButtonController
ButtonController<NoRepeatedApplyReadOnlyPolicy, xformsBC> bc_;
+ ///
+ std::vector<string> lang_;
};