]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insettabular.h
prepare for 1.1.6pre2
[lyx.git] / src / insets / insettabular.h
index 46e0ed4b19188c9ece5eb0b3ca4eb1cba335c9f6..f9d8396978d1e247f87babad3462af72dc0c0b95 100644 (file)
 #include "LString.h"
 #include "lyxcursor.h"
 #include "lyxfunc.h"
+#include <sigc++/signal_system.h>
+
+#ifdef SIGC_CXX_NAMESPACES
+using SigC::Signal0;
+#endif
 
 class LyXLex;
 class Painter;
 class BufferView;
 class Buffer;
-class Dialogs;
 
 class InsetTabular : public UpdatableInset {
 public:
     ///
     enum UpdateCodes {
        NONE = 0,
-       INIT,
-       FULL,
-       CELL,
-       CURSOR,
-       SELECTION
+       CURSOR = 1,
+       CELL = 2,
+       SELECTION = 3,
+       FULL = 4,
+       INIT = 5
     };
     ///
-    InsetTabular(Buffer *, int rows = 1, int columns = 1);
+    InsetTabular(Buffer const &, int rows = 1, int columns = 1);
     ///
-    InsetTabular(InsetTabular const &, Buffer *);
+    InsetTabular(InsetTabular const &, Buffer const &);
     ///
     ~InsetTabular();
     ///
-    Inset * Clone() const;
+    Inset * Clone(Buffer const &) const;
     ///
     void Read(Buffer const *, LyXLex &);
     ///
@@ -111,7 +115,7 @@ public:
     ///
     bool UpdateInsetInInset(BufferView *, Inset *);
     ///
-    int InsetInInsetY();
+    unsigned int InsetInInsetY();
     ///
     UpdatableInset * GetLockingInset();
     ///
@@ -135,7 +139,7 @@ public:
     ///
     int Latex(Buffer const *, std::ostream &, bool, bool) const;
     ///
-    int Ascii(Buffer const *, std::ostream &) const;
+    int Ascii(Buffer const *, std::ostream &, int linelen) const;
     ///
     int Linuxdoc(Buffer const *, std::ostream &) const;
     ///
@@ -149,32 +153,38 @@ public:
     ///
     void ToggleInsetCursor(BufferView *);
     ///
-    bool TabularFeatures(BufferView * bv, string what);
+    bool TabularFeatures(BufferView * bv, string const & what);
     ///
-    void TabularFeatures(BufferView * bv, int feature, string val = string());
+    void TabularFeatures(BufferView * bv, LyXTabular::Feature feature,
+                        string const & val = string());
     ///
-    int GetActCell() { return actcell; }
+    int GetActCell() const { return actcell; }
     ///
     void SetFont(BufferView *, LyXFont const &, bool toggleall = false);
     ///
     int getMaxWidth(Painter & pain, UpdatableInset const *) const;
     ///
-    Buffer * BufferOwner() const { return buffer; }
+    Buffer * BufferOwner() const { return const_cast<Buffer *>(buffer); }
     ///
     LyXText * getLyXText(BufferView *) const;
+    ///
     void resizeLyXText(BufferView *) const;
+    ///
     void OpenLayoutDialog(BufferView *) const;
-    LyXFunc::func_status getStatus(string argument) const;
+    ///
+    LyXFunc::func_status getStatus(string const & argument) const;
 
     //
     // Public structures and variables
     ///
     LyXTabular * tabular;
+       ///
+       Signal0<void> hideDialog;
 
 private:
     ///
     bool calculate_dimensions_of_cells(BufferView *, LyXFont const &,
-                                      bool =false) const;
+                                      bool = false) const;
     ///
     void DrawCellLines(Painter &, int x, int baseline,
                       int row, int cell) const;
@@ -182,7 +192,7 @@ private:
     void DrawCellSelection(Painter &, int x, int baseline,
                           int row, int column, int cell) const;
     ///
-    void ShowInsetCursor(BufferView *);
+    void ShowInsetCursor(BufferView *, bool show=true);
     ///
     void HideInsetCursor(BufferView *);
     ///
@@ -208,9 +218,13 @@ private:
     ///
     void RemoveTabularRow();
     ///
-    bool hasSelection() const {return ((sel_pos_start != sel_pos_end) ||
+    bool hasSelection() const { return ((sel_pos_start != sel_pos_end) ||
                                       (sel_cell_start != sel_cell_end));}
     ///
+    void clearSelection() const {
+       sel_pos_start = sel_pos_end = sel_cell_start = sel_cell_end = 0;
+    }
+    ///
     bool ActivateCellInset(BufferView *, int x = 0, int y = 0, int button = 0,
                           bool behind = false);
     ///
@@ -218,9 +232,9 @@ private:
     ///
     int GetMaxWidthOfCell(Painter &, int cell) const;
     ///
-    bool hasPasteBuffer() const { return (paste_tabular != 0); }
+    bool hasPasteBuffer() const;
     ///
-    bool copySelection();
+    bool copySelection(BufferView *);
     ///
     bool pasteSelection(BufferView *);
     ///
@@ -231,21 +245,21 @@ private:
     ///
     InsetText * the_locking_inset;
     ///
-    Buffer * buffer;
+    Buffer const * buffer;
     ///
     mutable LyXCursor cursor;
     ///
     mutable LyXCursor old_cursor;
     ///
-    mutable int inset_pos;
+    mutable LyXParagraph::size_type inset_pos;
     ///
-    mutable int inset_x;
+    mutable unsigned int inset_x;
     ///
-    mutable int inset_y;
+    mutable unsigned int inset_y;
     ///
-    mutable int sel_pos_start;
+    mutable LyXParagraph::size_type sel_pos_start;
     ///
-    mutable int sel_pos_end;
+    mutable LyXParagraph::size_type sel_pos_end;
     ///
     mutable int sel_cell_start;
     ///
@@ -264,9 +278,5 @@ private:
     mutable bool locked;
     ///
     mutable UpdateCodes need_update;
-    ///
-    mutable Dialogs * dialogs_;
-    ///
-    LyXTabular * paste_tabular;
 };
 #endif