X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetcollapsable.h;h=2880a32027d68186e0189bd50894f561504e5307;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=a0e24f8aa43142f2db08def59f895a723bcd3388;hpb=7521b5d20f42102cf444e3fd8718a088a60d0098;p=lyx.git diff --git a/src/insets/insetcollapsable.h b/src/insets/insetcollapsable.h index a0e24f8aa4..2880a32027 100644 --- a/src/insets/insetcollapsable.h +++ b/src/insets/insetcollapsable.h @@ -27,7 +27,7 @@ class LyXText; class Paragraph; class LyXCursor; -/** A colapsable text inset +/** A collapsable text inset */ class InsetCollapsable : public UpdatableInset { @@ -41,8 +41,10 @@ public: static int const TEXT_TO_TOP_OFFSET = 2; /// static int const TEXT_TO_BOTTOM_OFFSET = 2; + /// inset is initially collapsed if bool = true + InsetCollapsable(bool = false); /// - InsetCollapsable(); + InsetCollapsable(InsetCollapsable const & in, bool same_id = false); /// void read(Buffer const *, LyXLex &); /// @@ -52,7 +54,7 @@ public: /// int descent(BufferView *, LyXFont const &) const; /// - int width(BufferView *, LyXFont const & f) const; + int width(BufferView *, LyXFont const &) const; /// void draw(BufferView *, const LyXFont &, int , float &, bool) const; /// @@ -60,28 +62,34 @@ public: /// void edit(BufferView *, int, int, unsigned int); /// + void edit(BufferView *, bool front = true); + /// EDITABLE editable() const; /// bool insertInset(BufferView *, Inset * inset); /// + virtual bool insetAllowed(Inset::Code code) const { + return inset.insetAllowed(code); + } + /// bool isTextInset() const { return true; } /// bool doClearArea() const; /// void insetUnlock(BufferView *); /// - bool needFullRow() const { return !collapsed; } + bool needFullRow() const { return isOpen(); } /// bool lockInsetInInset(BufferView *, UpdatableInset *); /// bool unlockInsetInInset(BufferView *, UpdatableInset *, - bool lr = false); + bool lr = false); /// bool updateInsetInInset(BufferView *, Inset *); /// unsigned int insetInInsetY(); /// - void insetButtonRelease(BufferView *, int, int, int); + bool insetButtonRelease(BufferView *, int, int, int); /// void insetButtonPress(BufferView *, int, int, int); /// @@ -90,16 +98,16 @@ public: void insetKeyPress(XKeyEvent *); /// UpdatableInset::RESULT localDispatch(BufferView *, kb_action, - string const &); + string const &); /// int latex(Buffer const *, std::ostream &, bool fragile, bool free_spc) const; /// - int ascii(Buffer const *, std::ostream &, int) const { return 0; } + int ascii(Buffer const *, std::ostream &, int) const; /// - int linuxdoc(Buffer const *, std::ostream &) const { return 0; } + int linuxdoc(Buffer const *, std::ostream &) const; /// - int docBook(Buffer const *, std::ostream &) const { return 0; } + int docbook(Buffer const *, std::ostream &) const; /// void validate(LaTeXFeatures & features) const; /// @@ -107,20 +115,31 @@ public: /// void toggleInsetCursor(BufferView *); /// - UpdatableInset * getLockingInset(); + void showInsetCursor(BufferView *, bool show = true); + /// + void hideInsetCursor(BufferView *); + /// + void fitInsetCursor(BufferView * bv) const { + inset.fitInsetCursor(bv); + } + UpdatableInset * getLockingInset() const; /// UpdatableInset * getFirstLockingInsetOfType(Inset::Code); /// void setFont(BufferView *, LyXFont const &, bool toggleall = false, bool selectall = false); /// - void setLabel(string const & l) { label = l; } + void setLabel(string const & l) const; /// void setLabelFont(LyXFont & f) { labelfont = f; } +#if 0 /// void setAutoCollapse(bool f) { autocollapse = f; } +#endif +#if 0 /// int getMaxWidth(BufferView *, UpdatableInset const *) const; +#endif /// LyXText * getLyXText(BufferView const *, bool const recursive) const; /// @@ -148,29 +167,52 @@ public: /// Paragraph * firstParagraph() const; /// + Paragraph * getFirstParagraph(int) const; + /// LyXCursor const & cursor(BufferView *) const; + /// + bool isOpen() const { return !collapsed_; } + /// + void open(BufferView *); + /// + void close(BufferView *) const; + /// + bool allowSpellcheck() { return inset.allowSpellcheck(); } + string const selectNextWordToSpellcheck(BufferView *, float &) const; + + void selectSelectedWord(BufferView * bv) { + inset.selectSelectedWord(bv); + } + void toggleSelection(BufferView * bv, bool kill_selection) { + inset.toggleSelection(bv, kill_selection); + } + /// + bool searchForward(BufferView * bv, string const & str, + bool = true, bool = false); + bool searchBackward(BufferView * bv, string const & str, + bool = true, bool = false); protected: /// - int ascent_collapsed(Painter &, LyXFont const &) const; + int ascent_collapsed() const; /// - int descent_collapsed(Painter &, LyXFont const &) const; + int descent_collapsed() const; /// - int width_collapsed(Painter &, LyXFont const & f) const; + int width_collapsed() const; /// - void draw_collapsed(Painter & pain, const LyXFont &, int , float &) const; + void draw_collapsed(Painter & pain, int , float &) const; /// int getMaxTextWidth(Painter & pain, UpdatableInset const *) const; /// - bool collapsed; + mutable bool collapsed_; /// LColor::color framecolor; /// LyXFont labelfont; public: /// - InsetText inset; + mutable InsetText inset; protected: /// mutable int button_length; @@ -178,19 +220,24 @@ protected: mutable int button_top_y; /// mutable int button_bottom_y; + /// + mutable int topx; + mutable int topbaseline; + mutable UpdateCodes need_update; + private: /// - string label; + mutable string label; +#if 0 /// bool autocollapse; - /// - int widthCollapsed; +#endif /// mutable int oldWidth; /// - mutable int topx; - mutable int topbaseline; - mutable UpdateCodes need_update; + bool in_update; + /// + mutable bool first_after_edit; }; #endif