X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInset.cpp;h=40f33d9fd11d540d405ec1dc525abbd4610f0a3f;hb=d6f1915684328c6e3fe61c6eef8846b5cabec334;hp=b82f264874319cce97d63cbaccb1b46f616b38f9;hpb=72b0b23590d119ec8dd4156dab2fe3f04cab7bd4;p=lyx.git diff --git a/src/insets/Inset.cpp b/src/insets/Inset.cpp index b82f264874..40f33d9fd1 100644 --- a/src/insets/Inset.cpp +++ b/src/insets/Inset.cpp @@ -16,7 +16,9 @@ #include "Inset.h" +#include "buffer_funcs.h" #include "Buffer.h" +#include "BufferList.h" #include "BufferParams.h" #include "BufferView.h" #include "CoordCache.h" @@ -29,14 +31,15 @@ #include "Text.h" #include "TextClass.h" -#include "frontends/Painter.h" #include "frontends/Application.h" +#include "frontends/Painter.h" #include "support/convert.h" #include "support/debug.h" #include "support/docstream.h" #include "support/ExceptionMessage.h" #include "support/gettext.h" +#include "support/lassert.h" #include @@ -91,19 +94,19 @@ static TranslatorMap const build_translator() InsetName("index_print", INDEX_PRINT_CODE), InsetName("nomencl_print", NOMENCL_PRINT_CODE), InsetName("optarg", OPTARG_CODE), - InsetName("environment", ENVIRONMENT_CODE), - InsetName("hfill", HFILL_CODE), InsetName("newline", NEWLINE_CODE), InsetName("line", LINE_CODE), InsetName("branch", BRANCH_CODE), InsetName("box", BOX_CODE), InsetName("flex", FLEX_CODE), + InsetName("space", SPACE_CODE), InsetName("vspace", VSPACE_CODE), InsetName("mathmacroarg", MATHMACROARG_CODE), InsetName("listings", LISTINGS_CODE), InsetName("info", INFO_CODE), InsetName("collapsable", COLLAPSABLE_CODE), InsetName("newpage", NEWPAGE_CODE), + InsetName("tablecell", CELL_CODE) }; size_t const insetnames_size = @@ -129,7 +132,9 @@ Buffer & Inset::buffer() { if (!buffer_) { odocstringstream s; + lyxerr << "LyX Code: " << lyxCode() << " name: " << name() << std::endl; s << "LyX Code: " << lyxCode() << " name: " << name(); + LASSERT(false, /**/); throw ExceptionMessage(BufferException, from_ascii("Inset::buffer_ member not initialized!"), s.str()); } @@ -143,12 +148,25 @@ Buffer const & Inset::buffer() const } +bool Inset::isBufferValid() const +{ + return buffer_ && theBufferList().isLoaded(buffer_); +} + + docstring Inset::name() const { return from_ascii("unknown"); } +void Inset::initView() +{ + if (isLabeled()) + lyx::updateLabels(buffer()); +} + + docstring Inset::toolTip(BufferView const &, int, int) const { return docstring(); @@ -198,10 +216,18 @@ void Inset::dispatch(Cursor & cur, FuncRequest & cmd) } -void Inset::doDispatch(Cursor & cur, FuncRequest &) +void Inset::doDispatch(Cursor & cur, FuncRequest &cmd) { - cur.noUpdate(); - cur.undispatched(); + switch (cmd.action) { + case LFUN_INSET_TOGGLE: + edit(cur, true); + cur.dispatched(); + break; + default: + cur.noUpdate(); + cur.undispatched(); + break; + } } @@ -221,19 +247,25 @@ bool Inset::getStatus(Cursor &, FuncRequest const & cmd, // Allow modification of our data. // This needs to be handled in the doDispatch method of our // instantiatable children. - flag.enabled(true); + flag.setEnabled(true); return true; case LFUN_INSET_INSERT: // Don't allow insertion of new insets. // Every inset that wants to allow new insets from open // dialogs needs to override this. - flag.enabled(false); + flag.setEnabled(false); + return true; + + case LFUN_INSET_TOGGLE: + // remove this if we dissociate toggle from edit. + flag.setEnabled(editable() == IS_EDITABLE); return true; default: - return false; + break; } + return false; } @@ -398,7 +430,7 @@ void Inset::dump() const ColorCode Inset::backgroundColor() const { - return Color_background; + return Color_none; } @@ -420,4 +452,10 @@ Buffer const * Inset::updateFrontend() const return theApp() ? theApp()->updateInset(this) : 0; } + +docstring Inset::completionPrefix(Cursor const &) const +{ + return docstring(); +} + } // namespace lyx