#ifndef INSETTEXT_H
#define INSETTEXT_H
-
#include "updatableinset.h"
#include "LString.h"
#include "LColor.h"
#include "ParagraphList.h"
#include "RowList.h"
+#include "dimension.h"
+#include "frontends/mouse_state.h"
#include "support/types.h"
#include <boost/shared_ptr.hpp>
+#include <map>
class Painter;
class BufferView;
InsetText(BufferParams const &);
///
explicit
- InsetText(InsetText const &, bool same_id = false);
+ InsetText(InsetText const &);
///
~InsetText();
///
- Inset * clone(Buffer const &, bool same_id = false) const;
+ Inset * clone() const;
///
InsetText & operator=(InsetText const & it);
/// empty inset to empty par, or just mark as erased
///
void write(Buffer const *, std::ostream &) const;
///
- int ascent(BufferView *, LyXFont const &) const;
- ///
- int descent(BufferView *, LyXFont const &) const;
- ///
- int width(BufferView *, LyXFont const & f) const;
+ void metrics(MetricsInfo &, Dimension &) const;
///
int textWidth(BufferView *, bool fordraw = false) const;
///
- void draw(BufferView *, LyXFont const &, int , float &) const;
+ void draw(PainterInfo & pi, int x, int y) const;
///
void update(BufferView *, bool = false);
///
///
string const editMessage() const;
///
- void edit(BufferView *, int, int, mouse_button::state);
- ///
- void edit(BufferView *, bool front = true);
- ///
bool isTextInset() const { return true; }
///
void insetUnlock(BufferView *);
RESULT localDispatch(FuncRequest const &);
///
int latex(Buffer const *, std::ostream &,
- bool fragile, bool free_spc) const;
+ LatexRunParams const &) const;
///
int ascii(Buffer const *, std::ostream &, int linelen) const;
///
void validate(LaTeXFeatures & features) const;
///
Inset::Code lyxCode() const { return Inset::TEXT_CODE; }
- ///
+ /// FIXME, document
void getCursorPos(BufferView *, int & x, int & y) const;
+ /// Get the absolute document x,y of the cursor
+ virtual void getCursor(BufferView &, int &, int &) const;
///
int insetInInsetY() const;
///
- void toggleInsetCursor(BufferView *);
- ///
- void showInsetCursor(BufferView *, bool show = true);
- ///
- void hideInsetCursor(BufferView *);
- ///
void fitInsetCursor(BufferView *) const;
///
bool insertInset(BufferView *, Inset *);
///
int getMaxWidth(BufferView *, UpdatableInset const *) const;
///
- void init(InsetText const * ins = 0, bool same_id = false);
+ void init(InsetText const * ins);
///
void writeParagraphData(Buffer const *, std::ostream &) const;
///
- void setParagraphData(ParagraphList const &, bool same_id = false);
+ void setParagraphData(ParagraphList const &);
///
void setText(string const &, LyXFont const &);
///
///
Inset * getInsetFromID(int id) const;
///
- Paragraph * firstParagraph() const;
- ///
- Paragraph * getFirstParagraph(int) const;
+ ParagraphList * getParagraphs(int) const;
///
LyXCursor const & cursor(BufferView *) const;
///
- void paragraph(Paragraph *);
- ///
bool allowSpellcheck() const { return true; }
///
WordLangTuple const
///
mutable bool locked;
///
- mutable int insetAscent;
- ///
- mutable int insetDescent;
- ///
- mutable int insetWidth;
+ mutable Dimension dim_;
///
mutable int top_y;
///
mutable boost::shared_ptr<LyXText> cached_text;
///
struct save_state {
- Paragraph * lpar;
- Paragraph * selstartpar;
- Paragraph * selendpar;
+ ParagraphList::iterator lpar;
+ ParagraphList::iterator selstartpar;
+ ParagraphList::iterator selendpar;
lyx::pos_type pos;
lyx::pos_type selstartpos;
lyx::pos_type selendpos;