X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsettext.h;h=d89bb3413e4aee9d0ec14c8dfea50240d7d174c1;hb=5603df4a5b7e511b31026c9a4f8f55b2b10fde57;hp=752ecf3669a8e42b4619f7bb098cd5fa4d168b7a;hpb=7803b6341b9e9bfcacdb1928f3d90b72e65f7c35;p=lyx.git diff --git a/src/insets/insettext.h b/src/insets/insettext.h index 752ecf3669..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; @@ -59,15 +60,15 @@ public: /// empty inset to empty par, or just mark as erased void clear(bool just_mark_erased); /// - void read(Buffer const &, LyXLex &); + void read(Buffer const & buf, LyXLex & lex); /// - void write(Buffer const &, std::ostream &) const; + void write(Buffer const & buf, std::ostream & os) const; /// - void metrics(MetricsInfo &, Dimension &) const; - /// - int textWidth() const; + 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; /// @@ -80,31 +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(BufferView *, int & x, int & y) const; - /// - int insetInInsetY() const; - /// - void fitInsetCursor(BufferView *) 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); @@ -119,30 +110,16 @@ public: /// void setViewCache(BufferView const * bv) const; /// - void deleteLyXText(BufferView *) const; - /// bool showInsetDialog(BufferView *) const; /// 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); - } - /// - void clearSelection(BufferView * bv); - /// - 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 @@ -152,10 +129,6 @@ public: */ void markNew(bool track_changes = false); - /// - bool checkInsertChar(LyXFont &); - /// - void getDrawFont(LyXFont &) const; /// append text onto the existing text void appendParagraphs(Buffer * bp, ParagraphList &); @@ -163,77 +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; } /// - int numParagraphs() const { return 1; } + ParagraphList & paragraphs(); /// - mutable ParagraphList paragraphs; -protected: + ParagraphList const & paragraphs() const; /// - DispatchResult - priv_dispatch(FuncRequest const &, idx_type &, pos_type &); + bool insetAllowed(Code) const { return true; } /// - void updateLocal(BufferView *, bool mark_dirty); + bool allowSpellCheck() const { return true; } -private: - /// - void init(); +protected: /// - void lfunMousePress(FuncRequest const &); + void priv_dispatch(LCursor & cur, FuncRequest & cmd); +private: /// - void lfunMouseMotion(FuncRequest const &); + void updateLocal(LCursor &); /// - void lfunMouseRelease(FuncRequest const &); + 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 *); - - /// - DispatchResult moveRight(BufferView *); - /// - DispatchResult moveLeft(BufferView *); - /// - DispatchResult moveRightIntern(BufferView *, bool front, - bool activate_inset = true, - bool selecting = false); - /// - DispatchResult moveLeftIntern(BufferView *, bool front, - bool activate_inset = true, - bool selecting = false); - - /// - DispatchResult moveUp(BufferView *); - /// - DispatchResult moveDown(BufferView *); + void sanitizeEmptyText(BufferView &); /// void setCharFont(Buffer const &, int pos, LyXFont const & font); /// - bool checkAndActivateInset(BufferView * bv, bool front); - /// - bool checkAndActivateInset(BufferView * bv, int x = 0, int y = 0); - /// void removeNewlines(); /// - int cx() const; - /// - int cy() const; + void drawFrame(Painter &, int x, int y) const; /// - lyx::pos_type cpos() const; - /// - ParagraphList::iterator cpar() const; - /// - RowList::iterator crow() const; - /// - void drawFrame(Painter &, int x) const; - /// - void clearInset(BufferView *, int start_x, int baseline) const; - /// - void collapseParagraphs(BufferView *); + void clearInset(Painter &, int x, int y) const; - /* Private structures and variables */ /// bool autoBreakRows_; /// @@ -243,23 +180,11 @@ private: */ int frame_color_; /// - bool no_selection; - /// - mutable lyx::paroffset_type old_par; - - /// - // to remember old painted frame dimensions to clear it on the right spot! - /// - mutable bool in_insetAllowed; - /// - // these are used to check for mouse movement in Motion selection code - /// - int mouse_x; - int mouse_y; + mutable lyx::par_type old_par; public: /// mutable LyXText text_; /// - mutable int textwidth_; + mutable LyXFont font_; }; #endif