X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finset.C;h=6f7fc7d1c73236e198b85b15ba312e182b8a902c;hb=c5c7a9e56854dea886977f8e11cbfe31d8a7464f;hp=a8dce4e1b83fd59aa38e0babd3b87896483c255c;hpb=def72111a5ac739cf8c5377a67adeee64c37e1ab;p=lyx.git diff --git a/src/insets/inset.C b/src/insets/inset.C index a8dce4e1b8..6f7fc7d1c7 100644 --- a/src/insets/inset.C +++ b/src/insets/inset.C @@ -1,156 +1,174 @@ -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-1999 The LyX Team. +/** + * \file inset.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * ====================================================== */ + * \author Alejandro Aguilar Sierra + * \author Jürgen Vigna + * \author Lars Gullik Bjønnes + * \author Matthias Ettrich + * + * Full author contact details are available in file CREDITS. + */ #include -#ifdef __GNUG__ -#pragma implementation "lyxinset.h" -#endif +#include "inset.h" +#include "updatableinset.h" -#include "lyxinset.h" -#include "debug.h" #include "BufferView.h" -#include "support/lstrings.h" +#include "gettext.h" + + +// Initialization of the counter for the inset id's, +unsigned int InsetOld::inset_id = 0; + +InsetOld::InsetOld() + : InsetBase(), + top_x(0), top_baseline(0), scx(0), + id_(inset_id++), owner_(0), + background_color_(LColor::inherit) +{} + -/* Insets default methods */ +InsetOld::InsetOld(InsetOld const & in) + : InsetBase(), + top_x(0), top_baseline(0), scx(0), + id_(in.id_), owner_(0), + name_(in.name_), background_color_(in.background_color_) +{} -bool Inset::Deletable() const + +bool InsetOld::directWrite() const { - return true; + return false; } -bool Inset::DirectWrite() const +InsetOld::EDITABLE InsetOld::editable() const { - return false; + return NOT_EDITABLE; } -unsigned char Inset::Editable() const +bool InsetOld::autoDelete() const { - return 0; + return false; } -void Inset::Validate(LaTeXFeatures &) const +#if 0 +LyXFont const InsetOld::convertFont(LyXFont const & font) const { +#if 1 + return font; +#else + return LyXFont(font); +#endif } +#endif -bool Inset::AutoDelete() const +string const InsetOld::editMessage() const { - return false; + return _("Opened inset"); } -void Inset::Edit(BufferView *, int, int, unsigned int) +LyXText * InsetOld::getLyXText(BufferView const * bv, bool /*recursive*/) const { + if (owner()) + return owner()->getLyXText(bv, false); + else + return bv->text; } -LyXFont Inset::ConvertFont(LyXFont font) +void InsetOld::setBackgroundColor(LColor::color color) { - return font; + background_color_ = color; } - /* some stuff for inset locking */ - -void UpdatableInset::InsetButtonPress(BufferView *, int x, int y, int button) +LColor::color InsetOld::backgroundColor() const { - lyxerr.debug() << "Inset Button Press x=" << x - << ", y=" << y << ", button=" << button << endl; + if (background_color_ == LColor::inherit) { + if (owner()) + return owner()->backgroundColor(); + else + return LColor::background; + } else + return background_color_; } -void UpdatableInset::InsetButtonRelease(BufferView *, int x, int y, int button) +int InsetOld::id() const { - lyxerr.debug() << "Inset Button Release x=" << x - << ", y=" << y << ", button=" << button << endl; + return id_; } - -void UpdatableInset::InsetKeyPress(XKeyEvent *) +void InsetOld::id(int id_arg) { - lyxerr.debug() << "Inset Keypress" << endl; + id_ = id_arg; } +void InsetOld::setFont(BufferView *, LyXFont const &, bool, bool) +{} + -void UpdatableInset::InsetMotionNotify(BufferView *, int x, int y, int state) +bool InsetOld::forceDefaultParagraphs(InsetOld const * inset) const { - lyxerr.debug() << "Inset Motion Notify x=" << x - << ", y=" << y << ", state=" << state << endl; + if (owner()) + return owner()->forceDefaultParagraphs(inset); + return false; } - -void UpdatableInset::InsetUnlock(BufferView *) +int InsetOld::latexTextWidth(BufferView * bv) const { - lyxerr.debug() << "Inset Unlock" << endl; + if (owner()) + return (owner()->latexTextWidth(bv)); + return bv->workWidth(); } -// An updatable inset is highly editable by definition -unsigned char UpdatableInset::Editable() const +int InsetOld::ascent() const { - return 2; // and what does "2" siginify? (Lgb) + return dim_.asc; } -void UpdatableInset::ToggleInsetCursor(BufferView *) +int InsetOld::descent() const { + return dim_.des; } -void UpdatableInset::Edit(BufferView * bv, int, int, unsigned int) +int InsetOld::width() const { - LyXFont font; + return dim_.wid; +} - scx = 0; - mx_scx=abs((width(bv->getPainter(), font) - bv->paperWidth()) / 2); +bool InsetOld::insetAllowed(InsetOld * in) const +{ + return insetAllowed(in->lyxCode()); } -void UpdatableInset::draw(Painter &, LyXFont const &, - int baseline, float & x) const +bool InsetOld::checkInsertChar(LyXFont &) { - if (scx) x += float(scx); - top_x = int(x); - top_baseline = baseline; + return false; } -void UpdatableInset::SetFont(BufferView *, LyXFont const &, bool ) +bool isEditableInset(InsetOld const * i) { + return i && i->editable(); } -/// An updatable inset could handle lyx editing commands -#ifdef SCROLL_INSET -UpdatableInset::RESULT -UpdatableInset::LocalDispatch(BufferView *, - int action, string const & arg) -#else -UpdatableInset::RESULT -UpdatableInset::LocalDispatch(BufferView *, int, string const &) -#endif +bool isHighlyEditableInset(InsetOld const * i) { -#ifdef SCROLL_INSET - if (action==LFUN_SCROLL_INSET) - { - float xx; - sscanf(arg.c_str(), "%f", &xx); - scroll(xx); - - return DISPATCHED; - } -#endif - return UNDISPATCHED; + return i && i->editable() == InsetOld::HIGHLY_EDITABLE; } +