X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsettext.h;h=a2dd9f98a993545f27db2a944adb93e8df52160f;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=0914da33a2d3518f3144a345fccb1211d35a88fe;hpb=52a2eb2c52bd990b44c35927338341fb6aefa4b0;p=lyx.git diff --git a/src/insets/insettext.h b/src/insets/insettext.h index 0914da33a2..a2dd9f98a9 100644 --- a/src/insets/insettext.h +++ b/src/insets/insettext.h @@ -16,18 +16,21 @@ #include "RowList_fwd.h" #include "lyxfont.h" #include "lyxtext.h" +#include "ParagraphList_fwd.h" #include "support/types.h" #include "frontends/mouse_state.h" + +namespace lyx { + class Buffer; class BufferParams; class BufferView; class CursorSlice; class Dimension; class LColor_color; -class ParagraphList; /** @@ -47,42 +50,37 @@ public: /// void write(Buffer const & buf, std::ostream & os) const; /// - void metrics(MetricsInfo & mi, Dimension & dim) const; + bool 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; + /// are we inside the area covered by the inset? + virtual bool covers(BufferView const & bv, int x, int y) const; /// - std::string const editMessage() const; + virtual docstring const editMessage() const; /// EDITABLE editable() const { return HIGHLY_EDITABLE; } /// - bool isTextInset() const { return true; } + bool canTrackChanges() const { return true; } /// - int latex(Buffer const &, std::ostream &, - OutputParams const &) const; + InsetText const * asTextInset() const { return this; } /// - int plaintext(Buffer const &, std::ostream &, - OutputParams const &) const; + int latex(Buffer const &, odocstream &, OutputParams const &) const; /// - int linuxdoc(Buffer const &, std::ostream &, - OutputParams const &) const; + int plaintext(Buffer const &, odocstream &, OutputParams const &) const; /// - int docbook(Buffer const &, std::ostream &, - OutputParams const &) const; + int docbook(Buffer const &, odocstream &, OutputParams const &) const; /// void validate(LaTeXFeatures & features) const; /// return x,y of given position relative to the inset's baseline - void cursorPos(CursorSlice const & sl, bool boundary, int & x, int & y) const; + void cursorPos(BufferView const & bv, CursorSlice const & sl, + bool boundary, int & x, int & y) const; /// Code lyxCode() const { return TEXT_CODE; } /// - void setFont(BufferView *, LyXFont const &, - bool toggleall = false, - bool selectall = false); - /// - void setText(std::string const &, LyXFont const &); + void setText(docstring const &, LyXFont const &, bool trackChanges); /// void setAutoBreakRows(bool); /// @@ -94,11 +92,7 @@ public: /// void setFrameColor(LColor_color); /// - void setViewCache(BufferView const * bv) const; - /// bool showInsetDialog(BufferView *) const; - /// Appends \c list with all labels found within this inset. - void getLabelList(Buffer const &, std::vector & list) const; /// LyXText * getText(int i) const { return (i == 0) ? const_cast(&text_) : 0; @@ -106,23 +100,18 @@ public: /// bool getStatus(LCursor & cur, FuncRequest const & cmd, FuncStatus &) const; - /// mark as erased for change tracking - void markErased(bool erased); - - /** - * Mark as new. Used when pasting in tabular, and adding rows - * or columns. Note that pasting will ensure that tracking already - * happens, and this just resets the changes for the copied text, - * whereas for row/col add, we need to start tracking changes - * for the (empty) paragraph contained. - */ - void markNew(bool track_changes = false); + /// set the change for the entire inset + void setChange(Change const & change); + /// accept the changes within the inset + void acceptChanges(); + /// reject the changes within the inset + void rejectChanges(); /// append text onto the existing text void appendParagraphs(Buffer * bp, ParagraphList &); /// - void addPreview(lyx::graphics::PreviewLoader &) const; + void addPreview(graphics::PreviewLoader &) const; /// void edit(LCursor & cur, bool left); @@ -139,8 +128,14 @@ public: bool insetAllowed(Code) const { return true; } /// bool allowSpellCheck() const { return true; } + /// should paragraph indendation be ommitted in any case? + bool neverIndent(Buffer const &) const; /// InsetText(InsetText const &); + /// + bool wide() const { return wide_inset_; } + /// + void setWide(bool wide_inset) { wide_inset_ = wide_inset; } protected: /// @@ -159,13 +154,18 @@ private: */ int frame_color_; /// - mutable lyx::pit_type old_pit; + mutable pit_type old_pit; /// static int border_; + /// + bool wide_inset_; public: /// mutable LyXText text_; /// mutable LyXFont font_; }; + +} // namespace lyx + #endif