X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsettext.h;h=d89bb3413e4aee9d0ec14c8dfea50240d7d174c1;hb=5603df4a5b7e511b31026c9a4f8f55b2b10fde57;hp=8085e615e3182e094e60df8af6edb48bdc12c554;hpb=4b2c271e23b97a863e748a270ba8f912134ac014;p=lyx.git diff --git a/src/insets/insettext.h b/src/insets/insettext.h index 8085e615e3..d89bb3413e 100644 --- a/src/insets/insettext.h +++ b/src/insets/insettext.h @@ -13,29 +13,28 @@ #define INSETTEXT_H #include "updatableinset.h" -#include "ParagraphList_fwd.h" #include "RowList_fwd.h" +#include "lyxfont.h" #include "lyxtext.h" #include "support/types.h" #include "frontends/mouse_state.h" - class Buffer; class BufferParams; class BufferView; class Dimension; class LColor_color; -class LyXCursor; +class CursorSlice; class Painter; -class Paragraph; +class ParagraphList; class Row; + /** 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: @@ -51,6 +50,8 @@ public: /// explicit InsetText(BufferParams const &); /// + explicit InsetText(); + /// InsetText(InsetText const &); /// virtual std::auto_ptr clone() const; @@ -66,6 +67,8 @@ public: void metrics(MetricsInfo & mi, Dimension & dim) const; /// void draw(PainterInfo & pi, int x, int y) const; + /// draw inset selection + void drawSelection(PainterInfo & pi, int x, int y) const; /// std::string const editMessage() const; /// @@ -78,27 +81,21 @@ public: OutputParams const &) const; /// int linuxdoc(Buffer const &, std::ostream &, - OutputParams const &) const ; + OutputParams const &) const; /// int docbook(Buffer const &, std::ostream &, - OutputParams const &) const ; + OutputParams const &) const; /// void validate(LaTeXFeatures & features) const; /// InsetOld::Code lyxCode() const { return InsetOld::TEXT_CODE; } /// FIXME, document - void getCursorPos(int & x, int & y) const; - /// - bool insertInset(BufferView *, InsetOld *); - /// - bool insetAllowed(InsetOld::Code) const; + void getCursorPos(LCursor const & cur, int & x, int & y) const; /// void setFont(BufferView *, LyXFont const &, bool toggleall = false, bool selectall = false); /// - void writeParagraphData(Buffer const &, std::ostream &) const; - /// void setText(std::string const &, LyXFont const &); /// void setAutoBreakRows(bool); @@ -117,22 +114,12 @@ public: /// Appends \c list with all labels found within this inset. void getLabelList(Buffer const &, std::vector & list) const; /// - int scroll(bool recursive = true) const; - /// - void scroll(BufferView * bv, float sx) const { - UpdatableInset::scroll(bv, sx); - } - /// - void scroll(BufferView * bv, int offset) const { - UpdatableInset::scroll(bv, offset); - } - /// - ParagraphList * getParagraphs(int) const; - /// LyXText * getText(int) const; + /// + bool getStatus(LCursor & cur, FuncRequest const & cmd, FuncStatus &) const; /// mark as erased for change tracking - void markErased() { clear(true); }; + void markErased() { clear(true); } /** * Mark as new. Used when pasting in tabular, and adding rows * or columns. Note that pasting will ensure that tracking already @@ -142,8 +129,6 @@ public: */ void markNew(bool track_changes = false); - /// - void getDrawFont(LyXFont &) const; /// append text onto the existing text void appendParagraphs(Buffer * bp, ParagraphList &); @@ -151,38 +136,41 @@ public: void addPreview(lyx::graphics::PreviewLoader &) const; /// - void edit(BufferView *, bool); + void edit(LCursor & cur, bool left); /// - void edit(BufferView *, int, int); + InsetBase * editXY(LCursor & cur, int x, int y); + /// number of cells in this inset + size_t nargs() const { return 1; } + /// + ParagraphList & paragraphs(); /// - int numParagraphs() const { return 1; } + ParagraphList const & paragraphs() const; /// - ParagraphList & paragraphs() const; + bool insetAllowed(Code) const { return true; } + /// + bool allowSpellCheck() const { return true; } -private: +protected: /// - DispatchResult - priv_dispatch(FuncRequest const &, idx_type &, pos_type &); + void priv_dispatch(LCursor & cur, FuncRequest & cmd); +private: /// - void updateLocal(BufferView *); + void updateLocal(LCursor &); /// void init(); // If the inset is empty set the language of the current font to the // language to the surronding text (if different). - void sanitizeEmptyText(BufferView *); + void sanitizeEmptyText(BufferView &); /// void setCharFont(Buffer const &, int pos, LyXFont const & font); /// void removeNewlines(); /// - void drawFrame(Painter &, int x) const; + void drawFrame(Painter &, int x, int y) const; /// void clearInset(Painter &, int x, int y) const; - /// - void collapseParagraphs(BufferView *); - /* Private structures and variables */ /// bool autoBreakRows_; /// @@ -192,14 +180,11 @@ private: */ int frame_color_; /// - mutable lyx::paroffset_type old_par; - - /** to remember old painted frame dimensions to clear it on - * the right spot! - */ - mutable bool in_insetAllowed; + mutable lyx::par_type old_par; public: /// mutable LyXText text_; + /// + mutable LyXFont font_; }; #endif