]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insettext.h
* src/LyXAction.C: mark goto-clear-bookmark as working without buffer
[lyx.git] / src / insets / insettext.h
index 23f054e93b06d555ee3092a54a1249f11823e56e..a2dd9f98a993545f27db2a944adb93e8df52160f 100644 (file)
@@ -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 &, lyx::odocstream &,
-                 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