]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.C
more changes, read the Changelog
[lyx.git] / src / lyxfunc.C
index 24aaf44d0c349578b272baa0b04dd430548bf6a0..8d2ca3f1ed8556e1b63ffe23413839945580960c 100644 (file)
@@ -32,6 +32,7 @@ using std::istringstream;
 #include "kbmap.h"
 #include "lyxfunc.h"
 #include "bufferlist.h"
+#include "ColorHandler.h"
 #include "lyxserver.h"
 #include "lyx.h"
 #include "intl.h"
@@ -55,7 +56,12 @@ using std::istringstream;
 #include "insets/insetexternal.h"
 #include "insets/insetgraphics.h"
 #include "insets/insetfoot.h"
+#include "insets/insetmarginal.h"
+#include "insets/insetminipage.h"
+#include "insets/insetfloat.h"
+#include "insets/insetlist.h"
 #include "insets/insettabular.h"
+#include "insets/insettheorem.h"
 #include "mathed/formulamacro.h"
 #include "toolbar.h"
 #include "spellchecker.h" // RVDK_PATCH_5
@@ -215,7 +221,7 @@ int LyXFunc::processKeyEvent(XEvent * ev)
                        owner->getMiniBuffer()->Set(CurrentState(owner->view()));
                } else {
                        tli->UnlockInsetInInset(owner->view(),
-                                               tli->GetLockingInset());
+                                               tli->GetLockingInset(),true);
                }
                return 0;
        }
@@ -1995,16 +2001,17 @@ string LyXFunc::Dispatch(int ac,
        
        case LFUN_INSET_TEXT:
        {
-               InsetText * new_inset = new InsetText();
+               InsetText * new_inset = new InsetText;
                if (owner->view()->insertInset(new_inset))
                        new_inset->Edit(owner->view(), 0, 0, 0);
                else
                        delete new_inset;
        }
        break;
+       
        case LFUN_INSET_ERT:
        {
-               InsetERT * new_inset = new InsetERT();
+               InsetERT * new_inset = new InsetERT;
                if (owner->view()->insertInset(new_inset))
                        new_inset->Edit(owner->view(), 0, 0, 0);
                else
@@ -2014,7 +2021,7 @@ string LyXFunc::Dispatch(int ac,
        
        case LFUN_INSET_EXTERNAL:
        {
-               InsetExternal * new_inset = new InsetExternal();
+               InsetExternal * new_inset = new InsetExternal;
                if (owner->view()->insertInset(new_inset))
                        new_inset->Edit(owner->view(), 0, 0, 0);
                else
@@ -2024,7 +2031,57 @@ string LyXFunc::Dispatch(int ac,
        
        case LFUN_INSET_FOOTNOTE:
        {
-               InsetFoot * new_inset = new InsetFoot();
+               InsetFoot * new_inset = new InsetFoot;
+               if (owner->view()->insertInset(new_inset))
+                       new_inset->Edit(owner->view(), 0, 0, 0);
+               else
+                       delete new_inset;
+       }
+       break;
+
+       case LFUN_INSET_MARGINAL:
+       {
+               InsetMarginal * new_inset = new InsetMarginal;
+               if (owner->view()->insertInset(new_inset))
+                       new_inset->Edit(owner->view(), 0, 0, 0);
+               else
+                       delete new_inset;
+       }
+       break;
+
+       case LFUN_INSET_MINIPAGE:
+       {
+               InsetMinipage * new_inset = new InsetMinipage;
+               if (owner->view()->insertInset(new_inset))
+                       new_inset->Edit(owner->view(), 0, 0, 0);
+               else
+                       delete new_inset;
+       }
+       break;
+
+       case LFUN_INSET_FLOAT:
+       {
+               InsetFloat * new_inset = new InsetFloat;
+               if (owner->view()->insertInset(new_inset))
+                       new_inset->Edit(owner->view(), 0, 0, 0);
+               else
+                       delete new_inset;
+       }
+       break;
+
+       case LFUN_INSET_LIST:
+       {
+               InsetList * new_inset = new InsetList;
+               if (owner->view()->insertInset(new_inset))
+                       new_inset->Edit(owner->view(), 0, 0, 0);
+               else
+                       delete new_inset;
+       }
+       break;
+
+       case LFUN_INSET_THEOREM:
+       {
+               InsetTheorem * new_inset = new InsetTheorem;
                if (owner->view()->insertInset(new_inset))
                        new_inset->Edit(owner->view(), 0, 0, 0);
                else
@@ -2601,6 +2658,30 @@ string LyXFunc::Dispatch(int ac,
        }
        break;
 
+       case LFUN_SET_COLOR:
+       {
+               string lyx_name, x11_name;
+               x11_name = split(argument, lyx_name, ' ');
+               if (lyx_name.empty() || x11_name.empty()) {
+                       LyXBell();
+                       setErrorMessage(N_("Syntax: set-color <lyx_name>"
+                                               " <x11_name>"));
+                       break;
+                       }
+
+               if (!lcolor.setColor(lyx_name, x11_name)) {
+                       static string err1 (N_("Set-color \""));
+                       static string err2 (N_("\" failed - color is undefined "
+                                               "or may not be redefined"));
+                       LyXBell();
+                       setErrorMessage(err1 + lyx_name + err2);
+                       break;
+               }
+               lyxColorHandler->updateColor(lcolor.getFromLyXName(lyx_name));
+               owner->view()->redraw();
+               break;
+       }
+
        case LFUN_UNKNOWN_ACTION:
        {
                if(!owner->buffer()) {