class CursorSlice;
-class InsetTabular : public UpdatableInset {
+class InsetTabular : public InsetOld {
public:
///
InsetTabular(Buffer const &, row_type rows = 1,
///
std::string const editMessage() const;
///
+ EDITABLE editable() const { return HIGHLY_EDITABLE; }
+ ///
bool insetAllowed(InsetBase::Code) const { return true; }
///
bool isTextInset() const { return true; }
///
Code lyxCode() const { return InsetBase::TABULAR_CODE; }
/// get offset of this cursor slice relative to our upper left corner
- void getCursorPos(CursorSlice const & sl, int & x, int & y) const;
+ void cursorPos(CursorSlice const & sl, bool boundary, int & x, int & y) const;
///
bool tabularFeatures(LCursor & cur, std::string const & what);
///
/// Appends \c list with all labels found within this inset.
void getLabelList(Buffer const &, std::vector<std::string> & list) const;
/// number of cells
- size_t nargs() const;
+ size_t nargs() const { return tabular.getNumberOfCells(); }
///
boost::shared_ptr<InsetText const> cell(idx_type) const;
///
LyXText * getText(int) const;
///
- void markErased();
+ void markErased(bool);
- // this should return true if we have a "normal" cell, otherwise true.
+ // this should return true if we have a "normal" cell, otherwise false.
// "normal" means without width set!
- bool forceDefaultParagraphs(InsetBase const * in) const;
+ /// should all paragraphs be output with "Standard" layout?
+ bool forceDefaultParagraphs(idx_type cell = 0) const;
///
void addPreview(lyx::graphics::PreviewLoader &) const;
/// lock cell with given index
void edit(LCursor & cur, bool left);
///
- InsetBase * editXY(LCursor & cur, int x, int y) const;
+ InsetBase * editXY(LCursor & cur, int x, int y);
/// can we go further down on mouse click?
bool descendable() const { return true; }
mutable LyXTabular tabular;
protected:
+ ///
InsetTabular(InsetTabular const &);
-
+ ///
virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
-
///
bool getStatus(LCursor & cur, FuncRequest const & cmd, FuncStatus &) const;
+ ///
+ int scroll() const { return scx_; }
+
private:
virtual std::auto_ptr<InsetBase> doClone() const;
///
void drawCellLines(Painter &, int x, int y, row_type row,
- idx_type cell) const;
+ idx_type cell, bool erased) const;
///
void setCursorFromCoordinates(LCursor & cur, int x, int y) const;
/// are we operating on several cells?
bool tablemode(LCursor & cur) const;
+ /// return the "Manhattan distance" to nearest corner
+ int dist(idx_type cell, int x, int y) const;
/// return the cell nearest to x, y
idx_type getNearestCell(int x, int y) const;
///
Buffer const * buffer_;
///
- mutable int cursorx_;
- ///
mutable idx_type first_visible_cell;
+ ///
+ mutable int scx_;
};