X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsettext.h;h=a2dd9f98a993545f27db2a944adb93e8df52160f;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=95c282a5587886c6d7846bee06ba0f66a448caf2;hpb=023fb5433c3028ec87042d9f2a7d2d4ed4d70eee;p=lyx.git diff --git a/src/insets/insettext.h b/src/insets/insettext.h index 95c282a558..a2dd9f98a9 100644 --- a/src/insets/insettext.h +++ b/src/insets/insettext.h @@ -22,6 +22,9 @@ #include "frontends/mouse_state.h" + +namespace lyx { + class Buffer; class BufferParams; class BufferView; @@ -47,13 +50,15 @@ 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; /// - virtual lyx::docstring const editMessage() const; + virtual docstring const editMessage() const; /// EDITABLE editable() const { return HIGHLY_EDITABLE; } /// @@ -61,23 +66,21 @@ public: /// InsetText const * asTextInset() const { return this; } /// - int latex(Buffer const &, std::ostream &, - OutputParams const &) const; + int latex(Buffer const &, odocstream &, OutputParams const &) const; /// - int plaintext(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 setText(lyx::docstring const &, LyXFont const &); + void setText(docstring const &, LyXFont const &, bool trackChanges); /// void setAutoBreakRows(bool); /// @@ -89,8 +92,6 @@ public: /// void setFrameColor(LColor_color); /// - void setViewCache(BufferView const * bv) const; - /// bool showInsetDialog(BufferView *) const; /// LyXText * getText(int i) const { @@ -99,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); @@ -133,11 +129,13 @@ public: /// bool allowSpellCheck() const { return true; } /// should paragraph indendation be ommitted in any case? - bool neverIndent() const; + bool neverIndent(Buffer const &) const; /// InsetText(InsetText const &); /// - bool & Wide() const { return wide_inset_; } + bool wide() const { return wide_inset_; } + /// + void setWide(bool wide_inset) { wide_inset_ = wide_inset; } protected: /// @@ -156,15 +154,18 @@ private: */ int frame_color_; /// - mutable lyx::pit_type old_pit; + mutable pit_type old_pit; /// static int border_; /// - mutable bool wide_inset_; + bool wide_inset_; public: /// mutable LyXText text_; /// mutable LyXFont font_; }; + +} // namespace lyx + #endif