]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlCharacter.C
The reference dialog now disconnects from the inset on Apply. Its behaviour
[lyx.git] / src / frontends / controllers / ControlCharacter.C
index 7725a1a4faaa805e7689eb8294adbddea73e9698..e9514593587fe0112f635e20bb189339b3975b30 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright 2001 The LyX Team.
  * See the file COPYING.
  *
- * \author Angus Leeming, a.leeming@.ac.uk
+ * \author Angus Leeming, a.leeming@ic.ac.uk
  */
 
 #include <vector>
@@ -30,6 +30,7 @@ using Liason::setMinibuffer;
 using SigC::slot;
 using std::vector;
 
+
 ControlCharacter::ControlCharacter(LyXView & lv, Dialogs & d)
        : ControlDialog<ControlConnectBD>(lv, d),
          font_(0), toggleall_(false)
@@ -68,7 +69,7 @@ void ControlCharacter::apply()
        if (lv_.view()->available())
                view().apply();
 
-       ToggleAndShow(lv_.view(), *(font_.get()), toggleall_);
+       toggleAndShow(lv_.view(), *(font_.get()), toggleall_);
        lv_.view()->setState();
        lv_.buffer()->markDirty();
        setMinibuffer(&lv_, _("Character set"));
@@ -77,70 +78,83 @@ void ControlCharacter::apply()
 
 LyXFont::FONT_FAMILY ControlCharacter::getFamily() const
 {
-       if (font_.get())
-               return font_->family();
-       return LyXFont::IGNORE_FAMILY;
+       if (!font_.get())
+               return LyXFont::IGNORE_FAMILY;
+       return font_->family();
 }
 
+
 void ControlCharacter::setFamily(LyXFont::FONT_FAMILY val)
 {
        font_->setFamily(val);
 }
 
+
 LyXFont::FONT_SERIES ControlCharacter::getSeries() const
 {
-       if (font_.get())
-               return font_->series();
-       return LyXFont::IGNORE_SERIES;
+       if (!font_.get())
+               return LyXFont::IGNORE_SERIES;
+       return font_->series();
 }
 
+
 void ControlCharacter::setSeries(LyXFont::FONT_SERIES val)
 {
        font_->setSeries(val);
 }
 
+
 LyXFont::FONT_SHAPE ControlCharacter::getShape() const
 {
-       if (font_.get())
-               return font_->shape();
-       return LyXFont::IGNORE_SHAPE;
+       if (!font_.get())
+               return LyXFont::IGNORE_SHAPE;
+       return font_->shape();
 }
 
+
 void ControlCharacter::setShape(LyXFont::FONT_SHAPE val)
 {
        font_->setShape(val);
 }
 
+
 LyXFont::FONT_SIZE ControlCharacter::getSize() const
 {
-       if (font_.get())
-               return font_->size();
-       return LyXFont::IGNORE_SIZE;
+       if (!font_.get())
+               return LyXFont::IGNORE_SIZE;
+       return font_->size();
 }
 
+
 void ControlCharacter::setSize(LyXFont::FONT_SIZE val)
 {
        font_->setSize(val);
 }
 
+
 character::FONT_STATE ControlCharacter::getBar() const
 {
-       if (font_.get()) {
-               if (font_->emph() != LyXFont::IGNORE)
-                       return character::EMPH_TOGGLE;
+       if (!font_.get())
+               return character::IGNORE;
 
-               else if (font_->underbar() != LyXFont::IGNORE)
-                       return character::UNDERBAR_TOGGLE;
+       if (font_->emph() == LyXFont::TOGGLE)
+               return character::EMPH_TOGGLE;
 
-               else if (font_->noun() != LyXFont::IGNORE)
-                       return character::NOUN_TOGGLE;
+       if (font_->underbar() == LyXFont::TOGGLE)
+               return character::UNDERBAR_TOGGLE;
 
-               else if (font_->latex() != LyXFont::IGNORE)
-                       return character::LATEX_TOGGLE;
-       }
-       return character::IGNORE;
+       if (font_->noun() == LyXFont::TOGGLE)
+               return character::NOUN_TOGGLE;
+
+       if (font_->emph() == LyXFont::IGNORE &&
+           font_->underbar() == LyXFont::IGNORE &&
+           font_->noun() == LyXFont::IGNORE)
+               return character::IGNORE;
+
+       return character::INHERIT;
 }
 
+
 void ControlCharacter::setBar(character::FONT_STATE val)
 {
        switch (val) {
@@ -148,7 +162,6 @@ void ControlCharacter::setBar(character::FONT_STATE val)
                font_->setEmph(LyXFont::IGNORE);
                font_->setUnderbar(LyXFont::IGNORE);
                font_->setNoun(LyXFont::IGNORE);
-               font_->setLatex(LyXFont::IGNORE);
                break;
 
        case character::EMPH_TOGGLE:
@@ -163,46 +176,24 @@ void ControlCharacter::setBar(character::FONT_STATE val)
                font_->setNoun(LyXFont::TOGGLE);
                break;
 
-       case character::LATEX_TOGGLE:
-               font_->setLatex(LyXFont::TOGGLE);
-               break;
-
        case character::INHERIT:
                font_->setEmph(LyXFont::INHERIT);
                font_->setUnderbar(LyXFont::INHERIT);
                font_->setNoun(LyXFont::INHERIT);
-               font_->setLatex(LyXFont::INHERIT);
                break;
        }
 }
 
+
 LColor::color ControlCharacter::getColor() const
 {
-       LColor::color col = LColor::ignore;
-    
-       if (font_.get()) {
-               switch (font_->color()) {
-               case LColor::ignore:
-               case LColor::none:
-               case LColor::black:
-               case LColor::white:
-               case LColor::red:
-               case LColor::green:
-               case LColor::blue:
-               case LColor::cyan:
-               case LColor::magenta:
-               case LColor::yellow:
-               case LColor::inherit:
-                       break;
-               default:
-                       col = font_->color();
-                       break;
-               }
-       }
+       if (!font_.get())
+               return LColor::ignore;
 
-       return col;
+       return font_->color();
 }
 
+
 void ControlCharacter::setColor(LColor::color val)
 {
        switch (val) {
@@ -251,6 +242,7 @@ bool ControlCharacter::getToggleAll() const
        return toggleall_;
 }
 
+
 void ControlCharacter::setToggleAll(bool t)
 {
        toggleall_ = t;