lyx_mirror/src/insets/inset.h
André Pönitz 0d43ba149a the stuff from the sneak preview:
For one, it still contains a few things that are already in CVS (the
'brown paperbag' changes).

Secondly, this changes the ParagraphList to a std::vector but does not
yet take full advantage of it except removing LyXText::parOffset() and
similar.

I had an extensive talk with my profiler and we are happy nevertheless.

This also moves almost all Cut&Paste specific stuff from text.C to
CutAndPaste.C. Much smaller interface now... Namespace CutAndPaste is
now  lyx::cap::. Was inconsistent with the rest....

Make ParagraphList a proper class. We'll need this later for a
specialized erase/insert.

Remove some unneeded prototypes and function declarations

Use ParameterStruct directly instead of ShareContainer<ParameterStruct>

Inline a few accesses to CursorSlice members as suggested by the profiler.

Fix commandline conversion crash reported by Kayvan.

Replace PosIterator by DocumentIterator. The latter can also iterate
through math and nested text in math...

Remove math specific hack from Documentiterator

Derive InsetCollapsable from InsetText instead of using an InsetText
member. This give us the opportunity to get rid of the InsetOld::owner_
backpointer.

Cosmetics in CutAndPaste.C and cursor.C. Fix nasty crash (popping slices
off an empty selection anchor). Add a few asserts.

Remove all 'manual' update calls. We do now one per user interaction which
is completely sufficient.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8527 a592a061-630c-0410-9148-cb99ea01b6c8
2004-03-25 09:16:36 +00:00

96 lines
1.8 KiB
C++

// -*- C++ -*-
/**
* \file inset.h
* 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.
*/
#ifndef INSETOLD_H
#define INSETOLD_H
#include "insetbase.h"
#include "dimension.h"
class LColor_color;
class UpdatableInset;
/// Insets
class InsetOld : public InsetBase {
public:
///
enum {
///
TEXT_TO_INSET_OFFSET = 2
};
///
InsetOld();
///
InsetOld(InsetOld const & in);
///
int ascent() const;
///
int descent() const;
///
int width() const;
///
void setInsetName(std::string const & s) { name_ = s; }
///
std::string const & getInsetName() const { return name_; }
///
virtual void setBackgroundColor(LColor_color);
///
LColor_color backgroundColor() const;
/// set x/y drawing position cache
void setPosCache(PainterInfo const &, int, int) const;
///
int xo() const { return xo_; }
///
int yo() const { return yo_; }
/// returns the actual scroll-value
virtual int scroll(bool recursive = true) const;
///
bool forceDefaultParagraphs(InsetBase const * inset) const;
protected:
///
mutable int xo_;
///
mutable int yo_;
///
mutable int scx;
///
mutable Dimension dim_;
private:
///
std::string name_;
/** We store the LColor::color value as an int to get LColor.h out
* of the header file.
*/
int background_color_;
};
/** \c InsetOld_code is a wrapper for InsetOld::Code.
* It can be forward-declared and passed as a function argument without
* having to expose inset.h.
*/
class InsetOld_code {
InsetOld::Code val_;
public:
InsetOld_code(InsetOld::Code val) : val_(val) {}
operator InsetOld::Code() const { return val_; }
};
#endif