X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetcollapsable.h;h=2880a32027d68186e0189bd50894f561504e5307;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=5b89661942708c4becd8c7732c131fd2a729fed1;hpb=ceeb10f1b04eaaea9a51f2ba435316638b1e6889;p=lyx.git diff --git a/src/insets/insetcollapsable.h b/src/insets/insetcollapsable.h index 5b89661942..2880a32027 100644 --- a/src/insets/insetcollapsable.h +++ b/src/insets/insetcollapsable.h @@ -4,7 +4,7 @@ * * LyX, The Document Processor * - * Copyright 2000 The LyX Team. + * Copyright 2000-2001 The LyX Team. * *====================================================== */ @@ -17,18 +17,17 @@ #pragma interface #endif -#include "lyxinset.h" +#include "inset.h" #include "insettext.h" #include "lyxfont.h" #include "LColor.h" -#if 1 // NEW_INSETS -#include "lyxparagraph.h" -#endif class Painter; class LyXText; +class Paragraph; +class LyXCursor; -/** A colapsable text inset +/** A collapsable text inset */ class InsetCollapsable : public UpdatableInset { @@ -42,129 +41,178 @@ 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(); - /// - //Inset * Clone(Buffer const &) const; + InsetCollapsable(InsetCollapsable const & in, bool same_id = false); /// - 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; /// 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; /// void update(BufferView *, LyXFont const &, bool =false); /// - void Edit(BufferView *, int, int, unsigned int); + void edit(BufferView *, int, int, unsigned int); + /// + void edit(BufferView *, bool front = true); /// - EDITABLE Editable() const; + EDITABLE editable() const; /// - bool InsertInset(BufferView *, Inset * inset); + bool insertInset(BufferView *, Inset * inset); + /// + virtual bool insetAllowed(Inset::Code code) const { + return inset.insetAllowed(code); + } /// - bool IsTextInset() const { return true; } + bool isTextInset() const { return true; } /// bool doClearArea() const; /// - void InsetUnlock(BufferView *); + void insetUnlock(BufferView *); /// - bool needFullRow() const { return !collapsed; } + bool needFullRow() const { return isOpen(); } /// - bool LockInsetInInset(BufferView *, UpdatableInset *); + bool lockInsetInInset(BufferView *, UpdatableInset *); /// - bool UnlockInsetInInset(BufferView *, UpdatableInset *, - bool lr = false); + bool unlockInsetInInset(BufferView *, UpdatableInset *, + bool lr = false); /// - bool UpdateInsetInInset(BufferView *, Inset *); + bool updateInsetInInset(BufferView *, Inset *); /// - unsigned int InsetInInsetY(); + unsigned int insetInInsetY(); /// - 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, - string const &); + UpdatableInset::RESULT localDispatch(BufferView *, kb_action, + string const &); /// - int Latex(Buffer const *, std::ostream &, + 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; + void validate(LaTeXFeatures & features) const; /// - void GetCursorPos(BufferView *, int & x, int & y) const; + void getCursorPos(BufferView *, int & x, int & y) const; /// - void ToggleInsetCursor(BufferView *); + void toggleInsetCursor(BufferView *); /// - UpdatableInset * GetLockingInset(); + void showInsetCursor(BufferView *, bool show = true); /// - UpdatableInset * GetFirstLockingInsetOfType(Inset::Code); + void hideInsetCursor(BufferView *); /// - void SetFont(BufferView *, LyXFont const &, bool toggleall = false); + void fitInsetCursor(BufferView * bv) const { + inset.fitInsetCursor(bv); + } + UpdatableInset * getLockingInset() const; + /// + UpdatableInset * getFirstLockingInsetOfType(Inset::Code); /// - void setLabel(string const & l) { label = l; } + void setFont(BufferView *, LyXFont const &, bool toggleall = false, + bool selectall = false); + /// + 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; /// void deleteLyXText(BufferView *, bool recursive=true) const; /// - void resizeLyXText(BufferView *) const; + void resizeLyXText(BufferView *, bool force = false) const; /// std::vector const getLabelList() const; /// 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 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; -#ifdef NEW_INSETS public: -#endif /// - InsetText inset; + mutable InsetText inset; protected: /// mutable int button_length; @@ -172,20 +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