]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetFlex.cpp
Cocoa based Qt-4.6 needs to paint every character separately to match metrics computa...
[lyx.git] / src / insets / InsetFlex.cpp
index 378705eb684fd2c60fe4c98efcf1059357658aaf..44651cc026816ac99ac1807d68e88c9fdd76d810 100644 (file)
@@ -20,6 +20,7 @@
 #include "FuncRequest.h"
 #include "FuncStatus.h"
 #include "Lexer.h"
+#include "TextClass.h"
 
 #include "support/gettext.h"
 
@@ -30,7 +31,7 @@ using namespace std;
 namespace lyx {
 
 
-InsetFlex::InsetFlex(Buffer const & buf, string const & layoutName)
+InsetFlex::InsetFlex(Buffer * buf, string const & layoutName)
        : InsetCollapsable(buf), name_(layoutName)
 {
        status_= Collapsed;
@@ -42,6 +43,27 @@ InsetFlex::InsetFlex(InsetFlex const & in)
 {}
 
 
+InsetLayout const & InsetFlex::getLayout() const
+{
+       if (!buffer_)
+               return DocumentClass::plainInsetLayout();
+
+       DocumentClass const & dc = buffer().params().documentClass();
+       docstring const dname = from_utf8(name_); 
+       if (dc.hasInsetLayout(dname))
+               return dc.insetLayout(dname);
+       return dc.insetLayout(from_utf8("Flex:" + name_));
+}
+
+
+bool InsetFlex::resetFontEdit() const
+{
+       if (getLayout().resetsFont())
+               return true;
+       return InsetCollapsable::resetFontEdit();
+}
+
+
 InsetLayout::InsetDecoration InsetFlex::decoration() const
 {
        InsetLayout::InsetDecoration const dec = getLayout().decoration();
@@ -60,7 +82,7 @@ void InsetFlex::write(ostream & os) const
 bool InsetFlex::getStatus(Cursor & cur, FuncRequest const & cmd,
                FuncStatus & flag) const
 {
-       switch (cmd.action) {
+       switch (cmd.action()) {
        case LFUN_INSET_DISSOLVE:
                if (!cmd.argument().empty()) {
                        InsetLayout const & il = getLayout();
@@ -81,7 +103,7 @@ bool InsetFlex::getStatus(Cursor & cur, FuncRequest const & cmd,
 
 void InsetFlex::doDispatch(Cursor & cur, FuncRequest & cmd)
 {
-       switch (cmd.action) {
+       switch (cmd.action()) {
        case LFUN_INSET_DISSOLVE:
                if (!cmd.argument().empty()) {
                        InsetLayout const & il = getLayout();