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
18 #include "ButtonControllerBase.h"
19 #include "ControlCharacter.h"
24 #include "bufferview_funcs.h" // ToggleAndShow
28 using Liason::setMinibuffer;
32 ControlCharacter::ControlCharacter(LyXView & lv, Dialogs & d)
33 : ControlDialog<ControlConnectBD>(lv, d),
34 font_(0), toggleall_(false)
36 d_.showLayoutCharacter.connect(slot(this, &ControlCharacter::show));
37 d_.setUserFreeFont.connect(slot(this, &ControlCharacter::apply));
41 void ControlCharacter::setParams()
43 if (font_) delete font_;
44 font_ = new LyXFont(LyXFont::ALL_IGNORE);
48 void ControlCharacter::clearParams()
57 void ControlCharacter::apply()
59 if (!(font_ && lv_.view()->available()))
64 ToggleAndShow(lv_.view(), *font_, toggleall_);
65 lv_.view()->setState();
66 lv_.buffer()->markDirty();
67 setMinibuffer(&lv_, _("Character set"));
71 void ControlCharacter::setFamily(LyXFont::FONT_FAMILY val)
73 font_->setFamily(val);
76 void ControlCharacter::setSeries(LyXFont::FONT_SERIES val)
78 font_->setSeries(val);
81 void ControlCharacter::setShape(LyXFont::FONT_SHAPE val)
86 void ControlCharacter::setSize(LyXFont::FONT_SIZE val)
91 void ControlCharacter::setBar(character::FONT_STATE val)
94 case character::IGNORE:
95 font_->setEmph(LyXFont::IGNORE);
96 font_->setUnderbar(LyXFont::IGNORE);
97 font_->setNoun(LyXFont::IGNORE);
98 font_->setLatex(LyXFont::IGNORE);
101 case character::EMPH_TOGGLE:
102 font_->setEmph(LyXFont::TOGGLE);
105 case character::UNDERBAR_TOGGLE:
106 font_->setUnderbar(LyXFont::TOGGLE);
109 case character::NOUN_TOGGLE:
110 font_->setNoun(LyXFont::TOGGLE);
113 case character::LATEX_TOGGLE:
114 font_->setLatex(LyXFont::TOGGLE);
117 case character::INHERIT:
118 font_->setEmph(LyXFont::INHERIT);
119 font_->setUnderbar(LyXFont::INHERIT);
120 font_->setNoun(LyXFont::INHERIT);
121 font_->setLatex(LyXFont::INHERIT);
126 void ControlCharacter::setColor(LColor::color val)
137 case LColor::magenta:
139 case LColor::inherit:
140 font_->setColor(val);
149 void ControlCharacter::setLanguage(string const & val)
151 if (val == _("No change"))
152 font_->setLanguage(ignore_language);
154 else if ( val == _("Reset"))
155 font_->setLanguage(lv_.buffer()->params.language);
158 font_->setLanguage(languages.getLanguage(val));
161 void ControlCharacter::setToggleAll(bool t)