X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finset.C;h=c07a0f384cb3fc9ebdb6d92aa8c88893e660df59;hb=3c8aba3b556871fb1100a2f98cd93d5d4e3f70c9;hp=cad6369463ee645e9cdd3388e77297ded29448ba;hpb=dfe1bc44b44903faf77ef454c98c4c3e56c1d5e3;p=lyx.git diff --git a/src/insets/inset.C b/src/insets/inset.C index cad6369463..c07a0f384c 100644 --- a/src/insets/inset.C +++ b/src/insets/inset.C @@ -1,12 +1,12 @@ /* This file is part of - * ====================================================== + * ====================================================== * * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich - * Copyright 1995-1999 The LyX Team. + * Copyright 1995-2000 The LyX Team. * - * ======================================================*/ + * ====================================================== */ #include @@ -16,7 +16,11 @@ #include "lyxinset.h" #include "debug.h" +#include "BufferView.h" #include "support/lstrings.h" +#include "Painter.h" + +using std::endl; /* Insets default methods */ @@ -32,11 +36,18 @@ bool Inset::DirectWrite() const } -unsigned char Inset::Editable() const +Inset::EDITABLE Inset::Editable() const { - return 0; + return NOT_EDITABLE; } +bool Inset::IsTextInset() const +{ + return ((LyxCode() == TEXT_CODE) || + (LyxCode() == ERT_CODE) || + (LyxCode() == FOOT_CODE) || + (LyxCode() == MARGIN_CODE)); +} void Inset::Validate(LaTeXFeatures &) const { @@ -49,7 +60,7 @@ bool Inset::AutoDelete() const } -void Inset::Edit(int, int) +void Inset::Edit(BufferView *, int, int, unsigned int) { } @@ -60,16 +71,21 @@ LyXFont Inset::ConvertFont(LyXFont font) } +char const * Inset::EditMessage() const +{ + return _("Opened inset"); +} + /* some stuff for inset locking */ -void UpdatableInset::InsetButtonPress(int x, int y, int button) +void UpdatableInset::InsetButtonPress(BufferView *, int x, int y, int button) { lyxerr.debug() << "Inset Button Press x=" << x << ", y=" << y << ", button=" << button << endl; } -void UpdatableInset::InsetButtonRelease(int x, int y, int button) +void UpdatableInset::InsetButtonRelease(BufferView *, int x, int y, int button) { lyxerr.debug() << "Inset Button Release x=" << x << ", y=" << y << ", button=" << button << endl; @@ -82,26 +98,90 @@ void UpdatableInset::InsetKeyPress(XKeyEvent *) } -void UpdatableInset::InsetMotionNotify(int x, int y, int state) +void UpdatableInset::InsetMotionNotify(BufferView *, int x, int y, int state) { lyxerr.debug() << "Inset Motion Notify x=" << x << ", y=" << y << ", state=" << state << endl; } -void UpdatableInset::InsetUnlock() +void UpdatableInset::InsetUnlock(BufferView *) { lyxerr.debug() << "Inset Unlock" << endl; } // An updatable inset is highly editable by definition -unsigned char UpdatableInset::Editable() const +Inset::EDITABLE UpdatableInset::Editable() const +{ + return HIGHLY_EDITABLE; +} + + +void UpdatableInset::ToggleInsetCursor(BufferView *) { - return 2; // and what does "2" siginify? (Lgb) } +void UpdatableInset::ShowInsetCursor(BufferView *) +{ +} + +void UpdatableInset::HideInsetCursor(BufferView *) +{ +} + + +void UpdatableInset::Edit(BufferView * bv, int, int, unsigned int) +{ + LyXFont font; + + scx = 0; + + mx_scx = abs((width(bv->painter(), font) - bv->paperWidth()) / 2); +} + + +void UpdatableInset::draw(Painter &, LyXFont const &, + int /* baseline */, float & x) const +{ + if (scx) x += float(scx); +// ATTENTION: this is not good doing here +// top_x = int(x); +// top_baseline = baseline; +} + + +void UpdatableInset::SetFont(BufferView *, LyXFont const &, bool ) +{ +} + + +/// 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 +{ +#ifdef SCROLL_INSET + if (action==LFUN_SCROLL_INSET) + { + float xx; + sscanf(arg.c_str(), "%f", &xx); + scroll(xx); + + return DISPATCHED; + } +#endif + return UNDISPATCHED; +} -void UpdatableInset::ToggleInsetCursor() +int UpdatableInset::getMaxWidth(Painter & pain, UpdatableInset const *inset) const { + if (owner()) + return static_cast(owner())->getMaxWidth(pain, inset); + return pain.paperWidth(); }