X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetText.h;h=ccb7301474e953025e62e096d8528bcb35f96388;hb=2c357c1d23b7b83839a9beb8225d4f1ae4f793b4;hp=48c72a85f200e1aa67d7dc0c1c5ce2a8ec832520;hpb=c8d00ed1272cd489041bed2115081008b6a26489;p=lyx.git diff --git a/src/insets/InsetText.h b/src/insets/InsetText.h index 48c72a85f2..ccb7301474 100644 --- a/src/insets/InsetText.h +++ b/src/insets/InsetText.h @@ -13,15 +13,11 @@ #define INSETTEXT_H #include "Inset.h" -#include "RowList_fwd.h" -#include "lyxfont.h" -#include "lyxtext.h" -#include "ParagraphList_fwd.h" -#include "support/types.h" - -#include "frontends/mouse_state.h" +#include "ColorCode.h" +#include "Text.h" +#include "support/types.h" namespace lyx { @@ -30,36 +26,36 @@ class BufferParams; class BufferView; class CursorSlice; class Dimension; -class LColor_color; +class ParagraphList; +class InsetTabular; /** A text inset is like a TeX box to write full text (including styles and other insets) in a given space. */ -class InsetText : public InsetOld { +class InsetText : public Inset { public: /// explicit InsetText(BufferParams const &); /// InsetText(); /// - virtual ~InsetText() {} + InsetText(InsetText const &); + + /// + Dimension const dimension(BufferView const &) const; /// empty inset to empty par void clear(); /// - void read(Buffer const & buf, LyXLex & lex); + void read(Buffer const & buf, Lexer & lex); /// void write(Buffer const & buf, std::ostream & os) const; /// - bool metrics(MetricsInfo & mi, Dimension & dim) const; + void metrics(MetricsInfo & mi, Dimension & dim) const; /// void draw(PainterInfo & pi, int x, int y) const; - /// draw inset selection - void drawSelection(PainterInfo & pi, int x, int y) const; - /// are we inside the area covered by the inset? - virtual bool covers(BufferView const & bv, int x, int y) const; /// virtual docstring const editMessage() const; /// @@ -67,7 +63,9 @@ public: /// bool canTrackChanges() const { return true; } /// - InsetText const * asTextInset() const { return this; } + InsetText * asInsetText() { return this; } + /// + InsetText const * asInsetText() const { return this; } /// int latex(Buffer const &, odocstream &, OutputParams const &) const; /// @@ -81,9 +79,9 @@ public: void cursorPos(BufferView const & bv, CursorSlice const & sl, bool boundary, int & x, int & y) const; /// - Code lyxCode() const { return TEXT_CODE; } + InsetCode lyxCode() const { return TEXT_CODE; } /// - void setText(docstring const &, LyXFont const &, bool trackChanges); + void setText(docstring const &, Font const &, bool trackChanges); /// void setAutoBreakRows(bool); /// @@ -91,17 +89,17 @@ public: /// void setDrawFrame(bool); /// - LColor_color frameColor() const; + ColorCode frameColor() const; /// - void setFrameColor(LColor_color); + void setFrameColor(ColorCode); /// bool showInsetDialog(BufferView *) const; /// - LyXText * getText(int i) const { - return (i == 0) ? const_cast(&text_) : 0; + Text * getText(int i) const { + return (i == 0) ? const_cast(&text_) : 0; } /// - virtual bool getStatus(LCursor & cur, FuncRequest const & cmd, FuncStatus &) const; + virtual bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const; /// set the change for the entire inset void setChange(Change const & change); @@ -117,9 +115,9 @@ public: void addPreview(graphics::PreviewLoader &) const; /// - void edit(LCursor & cur, bool left); + void edit(Cursor & cur, bool front, EntryDirection entry_from); /// - InsetBase * editXY(LCursor & cur, int x, int y); + Inset * editXY(Cursor & cur, int x, int y); /// number of cells in this inset size_t nargs() const { return 1; } @@ -128,45 +126,57 @@ public: /// ParagraphList const & paragraphs() const; /// - bool insetAllowed(Code) const { return true; } + bool insetAllowed(InsetCode) const { return true; } /// bool allowSpellCheck() const { return true; } /// should paragraph indendation be ommitted in any case? bool neverIndent(Buffer const &) const; /// - InsetText(InsetText const &); + virtual bool isMacroScope(Buffer const &) const { return true; } + /// + virtual bool allowMultiPar() const { return true; } + + // Update the counters of this inset and of its contents + virtual void updateLabels(Buffer const &, ParIterator const &); + /// + virtual Inset * clone() const; + /// - virtual bool wide() const { return wide_inset_; } + bool completionSupported(Cursor const &) const; /// - void setWide(bool wide_inset) { wide_inset_ = wide_inset; } + bool inlineCompletionSupported(Cursor const & cur) const; + /// + bool automaticInlineCompletion() const; + /// + bool automaticPopupCompletion() const; + /// + CompletionList const * completionList(Cursor const & cur) const; + /// + docstring completionPrefix(Cursor const & cur) const; + /// + bool insertCompletion(Cursor & cur, docstring const & s, bool finished); + /// + void completionPosAndDim(Cursor const &, int & x, int & y, Dimension & dim) const; protected: /// - virtual void doDispatch(LCursor & cur, FuncRequest & cmd); + virtual void doDispatch(Cursor & cur, FuncRequest & cmd); private: /// - virtual std::auto_ptr doClone() const; - /// - void init(); - + void setParagraphOwner(); /// bool drawFrame_; - /** We store the LColor::color value as an int to get LColor.h out - * of the header file. - */ - int frame_color_; + /// + ColorCode frame_color_; /// mutable pit_type old_pit; /// - bool wide_inset_; + docstring previousWord(Buffer const & buffer, CursorSlice const & sl) const; + public: /// - mutable LyXText text_; - /// - mutable LyXFont font_; - /// - static int border_; + mutable Text text_; }; } // namespace lyx