*
* Copyright 1998 The LyX Team.
*
+ *
*======================================================
*/
// The pristine updatable inset: Text
class LyXScreen;
/**
- * A text inset is like a TeX box to write full text
- * (including styles and other insets) in a given space.
+ A text inset is like a TeX box to write full text
+ (including styles and other insets) in a given space.
+ @author: Jürgen Vigna
*/
class InsetText : public UpdatableInset {
public:
///
enum UpdateCodes {
+ ///
NONE = 0,
+ ///
INIT,
+ ///
FULL,
+ ///
CURSOR_PAR,
+ ///
CURSOR,
+ ///
SELECTION,
+ ///
DRAW_FRAME,
+ ///
CLEAR_FRAME
};
///
enum DrawFrame {
+ ///
NEVER = 0,
+ ///
LOCKED,
+ ///
ALWAYS
};
///
///
~InsetText();
///
- Inset * Clone() const;
+ Inset * Clone(Buffer const &) const;
///
- InsetText & operator= (InsetText const & it);
+ InsetText & operator=(InsetText const & it);
///
- void clear() const { par->clearContents(); }
+ void clear();
///
void Read(Buffer const *, LyXLex &);
///
///
void update(BufferView *, LyXFont const &, bool =false);
///
- char const * EditMessage() const;
+ string const EditMessage() const;
///
void Edit(BufferView *, int, int, unsigned int);
///
///
UpdatableInset::RESULT LocalDispatch(BufferView *, int, string const &);
///
- int Latex(Buffer const *, std::ostream &, bool fragile, bool free_spc) const;
+ int Latex(Buffer const *, std::ostream &,
+ bool fragile, bool free_spc) const;
///
- int Ascii(Buffer const *, std::ostream &) const { return 0; }
+ int Ascii(Buffer const *, std::ostream &, int linelen) const;
///
int Linuxdoc(Buffer const *, std::ostream &) const { return 0; }
///
- int DocBook(Buffer const *, std::ostream &) const { return 0; }
+ int DocBook(Buffer const *, std::ostream &) const ;
///
void Validate(LaTeXFeatures & features) const;
///
///
void GetCursorPos(BufferView *, int & x, int & y) const;
///
- int InsetInInsetY();
+ unsigned int InsetInInsetY();
///
void ToggleInsetCursor(BufferView *);
///
///
void SetFrameColor(BufferView *, LColor::color);
///
-// LyXFont GetDrawFont(BufferView *, LyXParagraph *, int pos) const;
- ///
LyXText * getLyXText(BufferView *) const;
- void deleteLyXText(BufferView *) const;
-
+ ///
+ void deleteLyXText(BufferView *, bool recursive=true) const;
+ ///
+ void resizeLyXText(BufferView *) const;
+ ///
LyXParagraph * par;
///
mutable UpdateCodes need_update;
protected:
///
void UpdateLocal(BufferView *, UpdateCodes, bool mark_dirty);
-
+ ///
mutable int drawTextXOffset;
+ ///
mutable int drawTextYOffset;
///
bool autoBreakRows;
+ ///
DrawFrame drawFrame;
///
LColor::color frame_color;
///
int BeginningOfMainBody(Buffer const *, LyXParagraph * par) const;
///
- void ShowInsetCursor(BufferView *);
+ void ShowInsetCursor(BufferView *, bool show=true);
///
void HideInsetCursor(BufferView *);
///
- UpdatableInset::RESULT moveRight(BufferView *, bool activate_inset = true);
+ UpdatableInset::RESULT moveRight(BufferView *, bool activate_inset = true,
+ bool selecting = false);
///
- UpdatableInset::RESULT moveLeft(BufferView *, bool activate_inset = true);
+ UpdatableInset::RESULT moveLeft(BufferView *, bool activate_inset = true,
+ bool selecting = false);
///
UpdatableInset::RESULT moveUp(BufferView *);
///
///
void SetCharFont(Buffer const *, int pos, LyXFont const & font);
///
- string getText(int);
+ string const getText(int);
///
bool checkAndActivateInset(BufferView * bv, bool behind);
+ ///
bool checkAndActivateInset(BufferView * bv, int x = 0, int y = 0,
int button = 0);
+ void removeNewlines();
+
///
int cx(BufferView *) const;
+ ///
int cy(BufferView *) const;
- int cpos(BufferView *) const;
+ ///
+ LyXParagraph::size_type cpos(BufferView *) const;
+ ///
LyXParagraph * cpar(BufferView *) const;
+ ///
Row * crow(BufferView *) const;
/// This instead of a macro
mutable bool locked;
///
mutable int insetAscent;
+ ///
mutable int insetDescent;
+ ///
mutable int insetWidth;
+ ///
mutable int last_width;
+ ///
mutable int last_height;
+ ///
mutable int top_y;
///
LyXParagraph * inset_par;
///
- int inset_pos;
+ LyXParagraph::size_type inset_pos;
///
mutable int inset_x;
///