]> git.lyx.org Git - lyx.git/blob - src/frontends/controllers/ControlCharacter.C
do not include language.h and gettext.h in lyxfont.h and lyxparagraph.h
[lyx.git] / src / frontends / controllers / ControlCharacter.C
1 /**
2  * \file ControlCharacter.C
3  * Copyright 2001 The LyX Team.
4  * See the file COPYING.
5  *
6  * \author Angus Leeming, a.leeming@.ac.uk
7  */
8
9 #include <vector>
10
11 #ifdef __GNUG__
12 #pragma implementation
13 #endif
14
15 #include <config.h>
16
17 #include "ControlCharacter.h"
18 #include "buffer.h"
19 #include "Dialogs.h"
20 #include "Liason.h"
21 #include "LyXView.h"
22 #include "bufferview_funcs.h" // ToggleAndShow
23 #include "gettext.h"
24 #include "language.h"
25
26 using Liason::setMinibuffer;
27 using SigC::slot;
28 using std::vector;
29
30 ControlCharacter::ControlCharacter(LyXView & lv, Dialogs & d)
31         : ControlDialog<ControlConnectBD>(lv, d),
32           font_(0), toggleall_(false)
33 {
34         d_.showLayoutCharacter.connect(slot(this, &ControlCharacter::show));
35         d_.setUserFreeFont.connect(slot(this, &ControlCharacter::apply));
36 }
37
38
39 void ControlCharacter::setParams()
40 {
41         if (font_) delete font_;
42         font_ = new LyXFont(LyXFont::ALL_IGNORE);
43 }
44
45
46 void ControlCharacter::clearParams()
47 {
48         if (font_) {
49                 delete font_;
50                 font_ = 0;
51         }
52 }
53
54
55 void ControlCharacter::apply()
56 {
57         if (!lv_.view()->available())
58                 return;
59    
60         view().apply();
61
62         ToggleAndShow(lv_.view(), *font_, toggleall_);
63         lv_.view()->setState();
64         lv_.buffer()->markDirty();
65         setMinibuffer(&lv_, _("Character set"));
66 }
67
68
69 void ControlCharacter::setFamily(LyXFont::FONT_FAMILY val)
70 {
71         font_->setFamily(val);
72 }
73
74 void ControlCharacter::setSeries(LyXFont::FONT_SERIES val)
75 {
76         font_->setSeries(val);
77 }
78
79 void ControlCharacter::setShape(LyXFont::FONT_SHAPE val)
80 {
81         font_->setShape(val);
82 }
83
84 void ControlCharacter::setSize(LyXFont::FONT_SIZE val)
85 {
86         font_->setSize(val);
87 }
88
89 void ControlCharacter::setBar(character::FONT_STATE val)
90 {
91         switch (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);
97                 break;
98
99         case character::EMPH_TOGGLE:
100                 font_->setEmph(LyXFont::TOGGLE);
101                 break;
102
103         case character::UNDERBAR_TOGGLE:
104                 font_->setUnderbar(LyXFont::TOGGLE);
105                 break;
106
107         case character::NOUN_TOGGLE:
108                 font_->setNoun(LyXFont::TOGGLE);
109                 break;
110
111         case character::LATEX_TOGGLE:
112                 font_->setLatex(LyXFont::TOGGLE);
113                 break;
114
115         case character::INHERIT:
116                 font_->setEmph(LyXFont::INHERIT);
117                 font_->setUnderbar(LyXFont::INHERIT);
118                 font_->setNoun(LyXFont::INHERIT);
119                 font_->setLatex(LyXFont::INHERIT);
120                 break;
121         }
122 }
123
124 void ControlCharacter::setColor(LColor::color val)
125 {
126         switch (val) {
127         case LColor::ignore:
128         case LColor::none:
129         case LColor::black:
130         case LColor::white:
131         case LColor::red:
132         case LColor::green:
133         case LColor::blue:
134         case LColor::cyan:
135         case LColor::magenta:
136         case LColor::yellow:
137         case LColor::inherit:
138                 font_->setColor(val);
139                 break;
140
141         default:
142                 break;
143         }
144 }
145
146         
147 void ControlCharacter::setLanguage(string const & val)
148 {
149         if (val == _("No change"))
150                 font_->setLanguage(ignore_language);
151
152         else if ( val == _("Reset"))
153                 font_->setLanguage(lv_.buffer()->params.language);
154
155         else
156                 font_->setLanguage(languages.getLanguage(val));
157 }
158
159 void ControlCharacter::setToggleAll(bool t)
160 {
161         toggleall_ = t;
162 }