]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insettabular.h
updates to minipage inset
[lyx.git] / src / insets / insettabular.h
index 6a5862f91b318936ec14105b85af7e54a711c41f..58e77c0ec3df927c4213bc1d1f71d50374698cea 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 &);
     ///
@@ -131,7 +135,8 @@ public:
     ///
     void InsetKeyPress(XKeyEvent *);
     ///
-    UpdatableInset::RESULT LocalDispatch(BufferView *, int, string const &);
+    UpdatableInset::RESULT LocalDispatch(BufferView *, kb_action,
+                                        string const &);
     ///
     int Latex(Buffer const *, std::ostream &, bool, bool) const;
     ///
@@ -160,9 +165,9 @@ public:
     ///
     int getMaxWidth(Painter & pain, UpdatableInset const *) const;
     ///
-    Buffer * BufferOwner() const { return buffer; }
+    Buffer * BufferOwner() const { return const_cast<Buffer *>(buffer); }
     ///
-    LyXText * getLyXText(BufferView *) const;
+    LyXText * getLyXText(BufferView const *, bool const recursive = false) const;
     ///
     void resizeLyXText(BufferView *) const;
     ///
@@ -174,6 +179,8 @@ public:
     // Public structures and variables
     ///
     LyXTabular * tabular;
+    ///
+    Signal0<void> hideDialog;
 
 private:
     ///
@@ -196,13 +203,13 @@ private:
     ///
     UpdatableInset::RESULT moveLeft(BufferView *, bool lock = true);
     ///
-    UpdatableInset::RESULT moveUp(BufferView *);
+    UpdatableInset::RESULT moveUp(BufferView *, bool lock = true);
     ///
-    UpdatableInset::RESULT moveDown(BufferView *);
+    UpdatableInset::RESULT moveDown(BufferView *, bool lock = true);
     ///
-    bool moveNextCell(BufferView *);
+    bool moveNextCell(BufferView *, bool lock = false);
     ///
-    bool movePrevCell(BufferView *);
+    bool movePrevCell(BufferView *, bool lock = false);
     ///
     bool Delete();
     ///
@@ -212,45 +219,48 @@ private:
     ///
     void RemoveTabularRow();
     ///
-    bool hasSelection() const { return ((sel_pos_start != sel_pos_end) ||
-                                      (sel_cell_start != sel_cell_end));}
+    bool hasSelection() const {
+       return sel_cell_start != sel_cell_end;
+    }
+    ///
+    void clearSelection() const {
+       sel_cell_start = sel_cell_end = 0;
+    }
     ///
     bool ActivateCellInset(BufferView *, int x = 0, int y = 0, int button = 0,
                           bool behind = false);
     ///
+    bool ActivateCellInsetAbs(BufferView *, int x = 0, int y = 0, int button = 0);
+    ///
     bool InsetHit(BufferView * bv, int x, int y) const;
     ///
     int GetMaxWidthOfCell(Painter &, int cell) const;
     ///
     bool hasPasteBuffer() const;
     ///
-    bool copySelection();
+    bool copySelection(BufferView *);
     ///
     bool pasteSelection(BufferView *);
     ///
     bool cutSelection();
+    ///
+    bool isRightToLeft(BufferView *);
 
     //
     // Private structures and variables
     ///
     InsetText * the_locking_inset;
     ///
-    Buffer * buffer;
-    ///
-    mutable LyXCursor cursor;
+    InsetText * old_locking_inset;
     ///
-    mutable LyXCursor old_cursor;
+    Buffer const * buffer;
     ///
-    mutable int inset_pos;
+    mutable LyXCursor cursor;
     ///
     mutable unsigned int inset_x;
     ///
     mutable unsigned int inset_y;
     ///
-    mutable int sel_pos_start;
-    ///
-    mutable int sel_pos_end;
-    ///
     mutable int sel_cell_start;
     ///
     mutable int sel_cell_end;
@@ -263,12 +273,14 @@ private:
     ///
     mutable int actrow;
     ///
+    mutable int first_visible_cell;
+    ///
     bool no_selection;
     ///
+    bool no_draw;
+    ///
     mutable bool locked;
     ///
     mutable UpdateCodes need_update;
-    ///
-    mutable Dialogs * dialogs_;
 };
 #endif