X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finset.C;h=c07a0f384cb3fc9ebdb6d92aa8c88893e660df59;hb=3c8aba3b556871fb1100a2f98cd93d5d4e3f70c9;hp=e924c636ff4ea8ac9122ad7dc6f4c7e7fc0452b4;hpb=c52895023e231587208b5c9257ae7825dc493ef0;p=lyx.git diff --git a/src/insets/inset.C b/src/insets/inset.C index e924c636ff..c07a0f384c 100644 --- a/src/insets/inset.C +++ b/src/insets/inset.C @@ -4,7 +4,7 @@ * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich - * Copyright 1995-1999 The LyX Team. + * Copyright 1995-2000 The LyX Team. * * ====================================================== */ @@ -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(BufferView *, int, int) +void Inset::Edit(BufferView *, int, int, unsigned int) { } @@ -60,6 +71,11 @@ LyXFont Inset::ConvertFont(LyXFont font) } +char const * Inset::EditMessage() const +{ + return _("Opened inset"); +} + /* some stuff for inset locking */ void UpdatableInset::InsetButtonPress(BufferView *, int x, int y, int button) @@ -96,12 +112,76 @@ void UpdatableInset::InsetUnlock(BufferView *) // An updatable inset is highly editable by definition -unsigned char UpdatableInset::Editable() const +Inset::EDITABLE UpdatableInset::Editable() const { - return 2; // and what does "2" siginify? (Lgb) + return HIGHLY_EDITABLE; } void UpdatableInset::ToggleInsetCursor(BufferView *) { } + +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; +} + +int UpdatableInset::getMaxWidth(Painter & pain, UpdatableInset const *inset) const +{ + if (owner()) + return static_cast(owner())->getMaxWidth(pain, inset); + return pain.paperWidth(); +}