]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetCollapsable.cpp
This should be the last of the commits refactoring the InsetLayout code.
[lyx.git] / src / insets / InsetCollapsable.cpp
index 97783d564321769782a461632d091ea17ea33118..6135a63545e69494301a66ba7928e58729a98007 100644 (file)
@@ -22,6 +22,7 @@
 #include "DispatchResult.h"
 #include "FloatList.h"
 #include "FuncStatus.h"
+#include "InsetLayout.h"
 #include "Language.h"
 #include "LaTeXFeatures.h"
 #include "Lexer.h"
@@ -51,7 +52,7 @@ InsetCollapsable::CollapseStatus InsetCollapsable::status() const
 InsetCollapsable::Geometry InsetCollapsable::geometry() const
 {
        switch (decoration()) {
-       case Classic:
+       case Deco_Classic:
                if (status() == Open) {
                        if (openinlined_)
                                return LeftButton;
@@ -60,11 +61,14 @@ InsetCollapsable::Geometry InsetCollapsable::geometry() const
                } else
                        return ButtonOnly;
 
-       case Minimalistic:
+       case Deco_Minimalistic:
                return status() == Open ? NoButton : ButtonOnly ;
 
-       case Conglomerate:
+       case Deco_Conglomerate:
                return status() == Open ? SubLabel : Corners ;
+
+       case Deco_Default:
+               break; // this shouldn't happen
        }
 
        // dummy return value to shut down a warning,
@@ -532,7 +536,7 @@ void InsetCollapsable::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_MOUSE_RELEASE:
                if (cmd.button() == mouse_button::button3) {
                        // There is no button to right click:
-                       if (decoration() == Minimalistic ||
+                       if (decoration() == Deco_Minimalistic ||
                            geometry() == Corners ||
                            geometry() == SubLabel ||
                            geometry() == NoButton
@@ -797,18 +801,23 @@ docstring InsetCollapsable::floatName(string const & type, BufferParams const &
 }
 
 
-InsetCollapsable::Decoration InsetCollapsable::decoration() const
+InsetDecoration InsetCollapsable::decoration() const
 {
-       if (!layout_ || layout_->decoration() == "classic")
-               return Classic;
-       if (layout_->decoration() == "minimalistic")
-               return Minimalistic;
-       if (layout_->decoration() == "conglomerate")
-               return Conglomerate;
+       if (!layout_)
+               return Deco_Classic;
+       InsetDecoration const dec = layout_->decoration();
+       switch (dec) {
+       case Deco_Classic:
+       case Deco_Minimalistic:
+       case Deco_Conglomerate:
+               return dec;
+       case Deco_Default:
+               break;
+       }
        if (lyxCode() == FLEX_CODE)
                // FIXME: Is this really necessary?
-               return Conglomerate;
-       return Classic;
+               return Deco_Conglomerate;
+       return Deco_Classic;
 }
 
 
@@ -880,14 +889,14 @@ void InsetCollapsable::validate(LaTeXFeatures & features) const
                return;
 
        // Force inclusion of preamble snippet in layout file
-       features.require(layout_->name());
+       features.require(to_utf8(layout_->name()));
        InsetText::validate(features);
 }
 
 
 bool InsetCollapsable::undefined() const
 {
-       std::string const & n = getLayout().name();
+       docstring const & n = getLayout().name();
        return n.empty() || n == TextClass::emptyInsetLayout().name();
 }