2 * \file ControlCharacter.C
3 * Copyright 2001 The LyX Team.
4 * See the file COPYING.
6 * \author Angus Leeming, a.leeming@.ac.uk
12 #pragma implementation
17 #include "ControlCharacter.h"
22 #include "bufferview_funcs.h" // ToggleAndShow
26 using Liason::setMinibuffer;
30 ControlCharacter::ControlCharacter(LyXView & lv, Dialogs & d)
31 : ControlDialog<ControlConnectBD>(lv, d),
32 font_(0), toggleall_(false)
34 d_.showLayoutCharacter.connect(slot(this, &ControlCharacter::show));
35 d_.setUserFreeFont.connect(slot(this, &ControlCharacter::apply));
39 void ControlCharacter::setParams()
41 if (font_) delete font_;
42 font_ = new LyXFont(LyXFont::ALL_IGNORE);
46 void ControlCharacter::clearParams()
55 void ControlCharacter::apply()
57 if (!lv_.view()->available())
62 ToggleAndShow(lv_.view(), *font_, toggleall_);
63 lv_.view()->setState();
64 lv_.buffer()->markDirty();
65 setMinibuffer(&lv_, _("Character set"));
69 void ControlCharacter::setFamily(LyXFont::FONT_FAMILY val)
71 font_->setFamily(val);
74 void ControlCharacter::setSeries(LyXFont::FONT_SERIES val)
76 font_->setSeries(val);
79 void ControlCharacter::setShape(LyXFont::FONT_SHAPE val)
84 void ControlCharacter::setSize(LyXFont::FONT_SIZE val)
89 void ControlCharacter::setBar(character::FONT_STATE val)
92 case character::IGNORE:
93 font_->setEmph(LyXFont::IGNORE);
94 font_->setUnderbar(LyXFont::IGNORE);
95 font_->setNoun(LyXFont::IGNORE);
96 font_->setLatex(LyXFont::IGNORE);
99 case character::EMPH_TOGGLE:
100 font_->setEmph(LyXFont::TOGGLE);
103 case character::UNDERBAR_TOGGLE:
104 font_->setUnderbar(LyXFont::TOGGLE);
107 case character::NOUN_TOGGLE:
108 font_->setNoun(LyXFont::TOGGLE);
111 case character::LATEX_TOGGLE:
112 font_->setLatex(LyXFont::TOGGLE);
115 case character::INHERIT:
116 font_->setEmph(LyXFont::INHERIT);
117 font_->setUnderbar(LyXFont::INHERIT);
118 font_->setNoun(LyXFont::INHERIT);
119 font_->setLatex(LyXFont::INHERIT);
124 void ControlCharacter::setColor(LColor::color val)
135 case LColor::magenta:
137 case LColor::inherit:
138 font_->setColor(val);
147 void ControlCharacter::setLanguage(string const & val)
149 if (val == _("No change"))
150 font_->setLanguage(ignore_language);
152 else if ( val == _("Reset"))
153 font_->setLanguage(lv_.buffer()->params.language);
156 font_->setLanguage(languages.getLanguage(val));
159 void ControlCharacter::setToggleAll(bool t)