X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetcollapsable.h;h=2880a32027d68186e0189bd50894f561504e5307;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=73f892c962aa52816385837a84b1c60a5f8b33bb;hpb=900113569441c58f82dd5418803d3c1579f6007f;p=lyx.git diff --git a/src/insets/insetcollapsable.h b/src/insets/insetcollapsable.h index 73f892c962..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,15 +62,14 @@ public: /// void edit(BufferView *, int, int, unsigned int); /// + void edit(BufferView *, bool front = true); + /// EDITABLE editable() const; /// bool insertInset(BufferView *, Inset * inset); /// - bool insertInsetAllowed(Inset * in) const { - return inset.insertInsetAllowed(in); - } - bool insertInsetAllowed(Inset::Code code) const { - return inset.insertInsetAllowed(code); + virtual bool insetAllowed(Inset::Code code) const { + return inset.insetAllowed(code); } /// bool isTextInset() const { return true; } @@ -77,18 +78,18 @@ public: /// 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); /// @@ -97,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; /// @@ -114,6 +115,13 @@ public: /// void toggleInsetCursor(BufferView *); /// + void showInsetCursor(BufferView *, bool show = true); + /// + void hideInsetCursor(BufferView *); + /// + void fitInsetCursor(BufferView * bv) const { + inset.fitInsetCursor(bv); + } UpdatableInset * getLockingInset() const; /// UpdatableInset * getFirstLockingInsetOfType(Inset::Code); @@ -121,13 +129,17 @@ public: 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; /// @@ -155,43 +167,52 @@ public: /// Paragraph * firstParagraph() const; /// + Paragraph * getFirstParagraph(int) const; + /// LyXCursor const & cursor(BufferView *) const; /// - bool isCollapsable() const { return true; } - bool collapsed() const { return collapsed_; } - void collapsed(BufferView *, bool); + bool isOpen() const { return !collapsed_; } /// - string selectNextWord(BufferView * bv, float & value) const { - return inset.selectNextWord(bv, value); - } + 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; @@ -199,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