]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.C
Look for mathed xpms. Doesn't do anything yet due to lack of workable XPMs
[lyx.git] / src / lyxfunc.C
index 549018fddafd19070275ac5af4c063c56996ab30..6a22b5531e29df4328798807a9eb31e00b447d83 100644 (file)
@@ -332,6 +332,10 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
        case LFUN_REDO:
                disable = buf->redostack.empty();
                break;
+       case LFUN_CUT:
+       case LFUN_COPY:
+               disable = !mathcursor && !view()->getLyXText()->selection.set();
+               break;
 #ifndef HAVE_LIBAIKSAURUS
        case LFUN_THESAURUS_ENTRY:
                disable = true;
@@ -361,8 +365,52 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
                break;
        }
 
+       case LFUN_INSET_OPTARG:
+               disable = (TEXT(false)->cursor.par()->layout()->optionalargs == 0);
+               break;
+
        case LFUN_TABULAR_FEATURE:
-               disable = true;
+               if (mathcursor) {
+#if 0
+                       // FIXME: check temporarily disabled
+                       // valign code
+                       char align = mathcursor->valign();
+                       if (align == '\0') {
+                               disable = true;
+                               break;
+                       }
+                       if (ev.argument.empty()) {
+                               flag.clear();
+                               break;
+                       }
+                       if (!contains("tcb", ev.argument[0])) {
+                               disable = true;
+                               break;
+                       }
+                       flag.setOnOff(ev.argument[0] == align);
+               } else
+                       disable = true;
+
+                       char align = mathcursor->halign();
+                       if (align == '\0') {
+                               disable = true;
+                               break;
+                       }
+                       if (ev.argument.empty()) {
+                               flag.clear();
+                               break;
+                       }
+                       if (!contains("lcr", ev.argument[0])) {
+                               disable = true;
+                               break;
+                       }
+                       flag.setOnOff(ev.argument[0] == align);
+#endif
+
+                       disable = !mathcursor->halign();
+                       break;
+               }
+
                if (tli) {
                        FuncStatus ret;
                        //ret.disabled(true);
@@ -416,49 +464,11 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
        case LFUN_LATEX_LOG:
                disable = !IsFileReadable(buf->getLogName().second);
                break;
-       case LFUN_MATH_VALIGN:
-               if (mathcursor && mathcursor->formula()->hullType() != "simple") {
-                       char align = mathcursor->valign();
-                       if (align == '\0') {
-                               disable = true;
-                               break;
-                       }
-                       if (ev.argument.empty()) {
-                               flag.clear();
-                               break;
-                       }
-                       if (!contains("tcb", ev.argument[0])) {
-                               disable = true;
-                               break;
-                       }
-                       flag.setOnOff(ev.argument[0] == align);
-               } else
-                       disable = true;
-               break;
-
-       case LFUN_MATH_HALIGN:
-               if (mathcursor && mathcursor->formula()->hullType() != "simple") {
-                       char align = mathcursor->halign();
-                       if (align == '\0') {
-                               disable = true;
-                               break;
-                       }
-                       if (ev.argument.empty()) {
-                               flag.clear();
-                               break;
-                       }
-                       if (!contains("lcr", ev.argument[0])) {
-                               disable = true;
-                               break;
-                       }
-                       flag.setOnOff(ev.argument[0] == align);
-               } else
-                       disable = true;
-               break;
 
        case LFUN_MATH_MUTATE:
-               if (tli && (tli->lyxCode() == Inset::MATH_CODE))
-                       flag.setOnOff(mathcursor->formula()->hullType() == ev.argument);
+               if (mathcursor)
+                       //flag.setOnOff(mathcursor->formula()->hullType() == ev.argument);
+                       flag.setOnOff(false);
                else
                        disable = true;
                break;
@@ -469,19 +479,10 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
        case LFUN_MATH_LIMITS:
        case LFUN_MATH_NONUMBER:
        case LFUN_MATH_NUMBER:
+       case LFUN_MATH_EXTERN:
                disable = !mathcursor;
                break;
 
-       // we need to be math mode and a math array for that
-       // Hack: halign produces non-zero result iff we are in a math array
-       case LFUN_MATH_ROW_INSERT:
-       case LFUN_MATH_ROW_DELETE:
-       case LFUN_MATH_COLUMN_INSERT:
-       case LFUN_MATH_COLUMN_DELETE:
-               disable = !mathcursor || !mathcursor->halign() ||
-                       mathcursor->formula()->hullType() == "simple";
-               break;
-
        default:
                break;
        }
@@ -534,6 +535,9 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
        case LFUN_INSERT_LABEL:
                code = Inset::LABEL_CODE;
                break;
+       case LFUN_INSET_OPTARG:
+               code = Inset::OPTARG_CODE;
+               break;
        case LFUN_REF_INSERT:
                code = Inset::REF_CODE;
                break;
@@ -584,9 +588,8 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
        default:
                break;
        }
-       if (code != Inset::NO_CODE && tli && !tli->insetAllowed(code)) {
+       if (code != Inset::NO_CODE && tli && !tli->insetAllowed(code))
                disable = true;
-       }
 
        if (disable)
                flag.disabled(true);
@@ -735,7 +738,7 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose)
        }
 
        if (view()->available() && view()->theLockingInset()) {
-               UpdatableInset::RESULT result;
+               Inset::RESULT result;
                if ((action > 1) || ((action == LFUN_UNKNOWN_ACTION) &&
                                     (!keyseq.deleted())))
                {