X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsettabular.h;h=1d358d53d468c297091d8e1f2ecdf827ed708a08;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=1cbc9f8c6d693811f252e9227d00052975e45cc8;hpb=85a5ea7bfc80e179a61a99f2955455e84d3384cc;p=lyx.git diff --git a/src/insets/insettabular.h b/src/insets/insettabular.h index 1cbc9f8c6d..1d358d53d4 100644 --- a/src/insets/insettabular.h +++ b/src/insets/insettabular.h @@ -56,12 +56,13 @@ #include "tabular.h" #include "LString.h" #include "lyxcursor.h" -#include "func_status.h" +#include "FuncStatus.h" class LyXLex; class Painter; class BufferView; class Buffer; +class Paragraph; class InsetTabular : public UpdatableInset { public: @@ -77,11 +78,11 @@ public: /// InsetTabular(Buffer const &, int rows = 1, int columns = 1); /// - InsetTabular(InsetTabular const &, Buffer const &); + InsetTabular(InsetTabular const &, Buffer const &, bool same_id = false); /// ~InsetTabular(); /// - Inset * clone(Buffer const &) const; + Inset * clone(Buffer const &, bool same_id = false) const; /// void read(Buffer const *, LyXLex &); /// @@ -101,6 +102,8 @@ public: /// void edit(BufferView *, int x, int y, unsigned int); /// + void edit(BufferView * bv, bool front = true); + /// bool doClearArea() const; /// void insetUnlock(BufferView *); @@ -116,17 +119,19 @@ public: /// unsigned int insetInInsetY(); /// - UpdatableInset * getLockingInset(); + UpdatableInset * getLockingInset() const; /// UpdatableInset * getFirstLockingInsetOfType(Inset::Code); /// bool insertInset(BufferView *, Inset *); /// + bool insetAllowed(Inset::Code code) const; + /// bool isTextInset() const { return true; } /// bool display() const { return tabular->IsLongTabular(); } /// - void insetButtonRelease(BufferView *, int, int, int); + bool insetButtonRelease(BufferView *, int, int, int); /// void insetButtonPress(BufferView *, int, int, int); /// @@ -143,7 +148,7 @@ public: /// int linuxdoc(Buffer const *, std::ostream &) const; /// - int docBook(Buffer const *, std::ostream &) const; + int docbook(Buffer const *, std::ostream &) const; /// void validate(LaTeXFeatures & features) const; /// @@ -178,11 +183,11 @@ public: /// bool showInsetDialog(BufferView *) const; /// - func_status::value_type getStatus(string const & argument) const; + FuncStatus getStatus(string const & argument) const; /// std::vector const getLabelList() const; /// - void nodraw(bool b) { + void nodraw(bool b) const { UpdatableInset::nodraw(b); } bool nodraw() const; @@ -196,7 +201,31 @@ public: void scroll(BufferView *bv, int offset) const { UpdatableInset::scroll(bv, offset); } + /// + Paragraph * getParFromID(int id) const; + /// + Inset * getInsetFromID(int id) const; + /// + Paragraph * firstParagraph() const; + /// + Paragraph * getFirstParagraph(int) const; + /// + LyXCursor const & cursor(BufferView *) const; + /// + bool allowSpellcheck() { return true; } + string const selectNextWordToSpellcheck(BufferView *, float & value) const; + void selectSelectedWord(BufferView *); + void toggleSelection(BufferView *, bool kill_selection); + /// + bool searchForward(BufferView *, string const &, + bool = true, bool = false); + bool searchBackward(BufferView *, string const &, + bool = true, bool = false); + // this should return true if we have a "normal" cell, otherwise true. + // "normal" means without width set! + bool forceDefaultParagraphs(Inset const * in) const; + // // Public structures and variables /// @@ -219,6 +248,8 @@ private: /// void hideInsetCursor(BufferView *); /// + void fitInsetCursor(BufferView *) const; + /// void setPos(BufferView *, int x, int y) const; /// UpdatableInset::RESULT moveRight(BufferView *, bool lock = true); @@ -232,8 +263,8 @@ private: bool moveNextCell(BufferView *, bool lock = false); /// bool movePrevCell(BufferView *, bool lock = false); - /// Delete what? - bool Delete(); + /// + bool deletable() const; /// int getCellXPos(int cell) const; /// @@ -242,11 +273,17 @@ private: void removeTabularRow(); /// bool hasSelection() const { - return sel_cell_start != sel_cell_end; + return has_selection; } /// void clearSelection() const { - sel_cell_start = sel_cell_end = 0; + sel_cell_start = sel_cell_end = 0; + has_selection = false; + } + void setSelection(int start, int end) const { + sel_cell_start = start; + sel_cell_end = end; + has_selection = true; } /// bool activateCellInset(BufferView *, int x = 0, int y = 0, @@ -270,7 +307,10 @@ private: /// bool isRightToLeft(BufferView *); /// - void getSelection(int & scol, int & ecol, int & srow, int & erow) const; + void getSelection(int & scol, int & ecol, + int & srow, int & erow) const; + /// + string selectNextWordInt(BufferView *, float & value) const; // // Private structures and variables @@ -281,14 +321,16 @@ private: /// Buffer const * buffer; /// - mutable LyXCursor cursor; + mutable LyXCursor cursor_; /// mutable unsigned int inset_x; /// mutable unsigned int inset_y; - /// + /// true if a set of cells are selected + mutable bool has_selection; + /// the starting cell selection nr mutable int sel_cell_start; - /// + /// the ending cell selection nr mutable int sel_cell_end; /// mutable int actcell; @@ -306,5 +348,9 @@ private: mutable bool locked; /// mutable UpdateCodes need_update; + /// + bool in_update; + /// + mutable bool in_reset_pos; }; #endif