X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsettabular.h;h=1d358d53d468c297091d8e1f2ecdf827ed708a08;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=211a191ec3d0179d7879b8b2b90f4ce28245e360;hpb=76ef051b1cb1fb51c3ffd8ccc9105be4471e74d4;p=lyx.git diff --git a/src/insets/insettabular.h b/src/insets/insettabular.h index 211a191ec3..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,15 +78,15 @@ 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 &); + void read(Buffer const *, LyXLex &); /// - void Write(Buffer const *, std::ostream &) const; + void write(Buffer const *, std::ostream &) const; /// int ascent(BufferView *, LyXFont const &) const; /// @@ -97,75 +98,79 @@ public: /// void update(BufferView *, LyXFont const &, bool = false); /// - string const EditMessage() const; + string const editMessage() const; /// - void Edit(BufferView *, int x, int y, unsigned int); + void edit(BufferView *, int x, int y, unsigned int); + /// + void edit(BufferView * bv, bool front = true); /// bool doClearArea() const; /// - void InsetUnlock(BufferView *); + void insetUnlock(BufferView *); /// - void UpdateLocal(BufferView *, UpdateCodes, bool mark_dirty) const; + void updateLocal(BufferView *, UpdateCodes, bool mark_dirty) const; /// - bool LockInsetInInset(BufferView *, UpdatableInset *); + bool lockInsetInInset(BufferView *, UpdatableInset *); /// - bool UnlockInsetInInset(BufferView *, UpdatableInset *, + bool unlockInsetInInset(BufferView *, UpdatableInset *, bool lr = false); /// - bool UpdateInsetInInset(BufferView *, Inset *); + bool updateInsetInInset(BufferView *, Inset *); + /// + unsigned int insetInInsetY(); /// - unsigned int InsetInInsetY(); + UpdatableInset * getLockingInset() const; /// - UpdatableInset * GetLockingInset(); + UpdatableInset * getFirstLockingInsetOfType(Inset::Code); /// - UpdatableInset * GetFirstLockingInsetOfType(Inset::Code); + bool insertInset(BufferView *, Inset *); /// - bool InsertInset(BufferView *, Inset *); + bool insetAllowed(Inset::Code code) const; /// - bool IsTextInset() const { return true; } + 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); + void insetButtonPress(BufferView *, int, int, int); /// - void InsetMotionNotify(BufferView *, int, int, int); + void insetMotionNotify(BufferView *, int, int, int); /// - void InsetKeyPress(XKeyEvent *); + void insetKeyPress(XKeyEvent *); /// - UpdatableInset::RESULT LocalDispatch(BufferView *, kb_action, + UpdatableInset::RESULT localDispatch(BufferView *, kb_action, string const &); /// - int Latex(Buffer const *, std::ostream &, bool, bool) const; + int latex(Buffer const *, std::ostream &, bool, bool) const; /// - int Ascii(Buffer const *, std::ostream &, int linelen) const; + int ascii(Buffer const *, std::ostream &, int linelen) const; /// - int Linuxdoc(Buffer const *, std::ostream &) const; + 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; + void validate(LaTeXFeatures & features) const; /// - Inset::Code LyxCode() const { return Inset::TABULAR_CODE; } + Inset::Code lyxCode() const { return Inset::TABULAR_CODE; } /// - void GetCursorPos(BufferView *, int & x, int & y) const; + void getCursorPos(BufferView *, int & x, int & y) const; /// - void ToggleInsetCursor(BufferView *); + void toggleInsetCursor(BufferView *); /// - bool TabularFeatures(BufferView * bv, string const & what); + bool tabularFeatures(BufferView * bv, string const & what); /// - void TabularFeatures(BufferView * bv, LyXTabular::Feature feature, + void tabularFeatures(BufferView * bv, LyXTabular::Feature feature, string const & val = string()); /// - int GetActCell() const { return actcell; } + int getActCell() const { return actcell; } /// - void SetFont(BufferView *, LyXFont const &, bool toggleall = false, + void setFont(BufferView *, LyXFont const &, bool toggleall = false, bool selectall = false); /// int getMaxWidth(BufferView *, UpdatableInset const *) const; /// - Buffer * BufferOwner() const { return const_cast(buffer); } + Buffer * bufferOwner() const { return const_cast(buffer); } /// LyXText * getLyXText(BufferView const *, bool const recursive = false) const; @@ -174,31 +179,56 @@ public: /// void resizeLyXText(BufferView *, bool force = false) const; /// - void OpenLayoutDialog(BufferView *) const; + void openLayoutDialog(BufferView *) const; /// - bool ShowInsetDialog(BufferView *) const; + 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; /// int scroll(bool recursive=true) const; + /// void scroll(BufferView *bv, float sx) const { UpdatableInset::scroll(bv, sx); } + /// 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 /// - //LyXTabular * tabular; boost::scoped_ptr tabular; /// SigC::Signal0 hideDialog; @@ -208,15 +238,17 @@ private: bool calculate_dimensions_of_cells(BufferView *, LyXFont const &, bool = false) const; /// - void DrawCellLines(Painter &, int x, int baseline, + void drawCellLines(Painter &, int x, int baseline, int row, int cell) const; /// - void DrawCellSelection(Painter &, int x, int baseline, + void drawCellSelection(Painter &, int x, int baseline, int row, int column, int cell) const; /// - void ShowInsetCursor(BufferView *, bool show=true); + void showInsetCursor(BufferView *, bool show=true); + /// + void hideInsetCursor(BufferView *); /// - void HideInsetCursor(BufferView *); + void fitInsetCursor(BufferView *) const; /// void setPos(BufferView *, int x, int y) const; /// @@ -232,32 +264,38 @@ private: /// bool movePrevCell(BufferView *, bool lock = false); /// - bool Delete(); + bool deletable() const; /// int getCellXPos(int cell) const; /// void resetPos(BufferView *) const; /// - void RemoveTabularRow(); + 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, + bool activateCellInset(BufferView *, int x = 0, int y = 0, int button = 0, bool behind = false); /// - bool ActivateCellInsetAbs(BufferView *, int x = 0, int y = 0, + bool activateCellInsetAbs(BufferView *, int x = 0, int y = 0, int button = 0); /// - bool InsetHit(BufferView * bv, int x, int y) const; + bool insetHit(BufferView * bv, int x, int y) const; /// - int GetMaxWidthOfCell(BufferView * bv, int cell) const; + int getMaxWidthOfCell(BufferView * bv, int cell) const; /// bool hasPasteBuffer() const; /// @@ -269,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 @@ -280,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; @@ -305,5 +348,9 @@ private: mutable bool locked; /// mutable UpdateCodes need_update; + /// + bool in_update; + /// + mutable bool in_reset_pos; }; #endif