]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetcollapsable.h
reformatting and remove using delc
[lyx.git] / src / insets / insetcollapsable.h
index 1dedc0f65298c27acc12dd5c3746fed47f7c967a..d89bf92481a0b383aa28b9c9bd2f2b2dea77b0f1 100644 (file)
@@ -4,7 +4,7 @@
  * 
  *           LyX, The Document Processor
  *
- *           Copyright (C) 2000 The LyX Team.
+ *           Copyright 2000 The LyX Team.
  *
  *======================================================
  */
 #pragma interface
 #endif
 
+#include "lyxinset.h"
 #include "insettext.h"
 #include "lyxfont.h"
 #include "LColor.h"
-
+#if 1 // NEW_INSETS
+#include "lyxparagraph.h"
+#endif
 
 class Painter;
+class LyXText;
 
 /** A colapsable text inset
   
 */
-class InsetCollapsable : public InsetText {
+class InsetCollapsable : public UpdatableInset {
 public:
-    ///
-    static int const TEXT_TO_TOP_OFFSET = 2;
-    ///
-    static int const TEXT_TO_BOTTOM_OFFSET = 2;
-    ///
-    InsetCollapsable(Buffer *);
-    ///
-    ~InsetCollapsable() {}
-    ///
-    Inset * Clone();
-    ///
-    int ascent(Painter &, LyXFont const &) const;
-    ///
-    int descent(Painter &, LyXFont const &) const;
-    ///
-    int width(Painter &, LyXFont const & f) const;
-    ///
-    void draw(Painter & pain, const LyXFont &, int , float &) const;
-    ///
-    void Edit(BufferView *, int, int, unsigned int);
-    ///
-    EDITABLE Editable() const;
-    ///
-    void InsetUnlock(BufferView *);
-    ///
-    bool display() const { return (!collapsed); }
-    ///
-    void InsetButtonRelease(BufferView *, int, int, int);
-    ///
-    void InsetButtonPress(BufferView *, int, int, int);
-    ///
-    void InsetMotionNotify(BufferView *, int, int, int);
-    ///
-    void setLabel(string const & l) { label = l; }
-    ///
-    void setLabelFont(LyXFont & f) { labelfont = f; }
-    ///
-    void setAutoCollapse(bool f) { autocolapse = f; }
+       ///
+       enum UpdateCodes {
+               NONE = 0,
+               FULL
+       };
+       ///
+       static int const TEXT_TO_TOP_OFFSET = 2;
+       ///
+       static int const TEXT_TO_BOTTOM_OFFSET = 2;
+       ///
+       InsetCollapsable();
+       ///
+       //Inset * Clone(Buffer const &) const;
+       ///
+       void Read(Buffer const *, LyXLex &);
+       ///
+       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;
+       ///
+       void draw(BufferView *, const LyXFont &, int , float &, bool) const;
+       ///
+       void update(BufferView *, LyXFont const &, bool =false); 
+       ///
+       void Edit(BufferView *, int, int, unsigned int);
+       ///
+       EDITABLE Editable() const;
+       ///
+       bool InsertInset(BufferView *, Inset * inset);
+       ///
+       bool IsTextInset() const { return true; }
+       ///
+       bool doClearArea() const;
+       ///
+       void InsetUnlock(BufferView *);
+       ///
+       bool needFullRow() const { return !collapsed; }
+       ///
+       bool LockInsetInInset(BufferView *, UpdatableInset *);
+       ///
+       bool UnlockInsetInInset(BufferView *, UpdatableInset *,
+                               bool lr = false);
+       ///
+       bool UpdateInsetInInset(BufferView *, Inset *);
+       ///
+       unsigned int InsetInInsetY();
+       ///
+       void InsetButtonRelease(BufferView *, int, int, int);
+       ///
+       void InsetButtonPress(BufferView *, int, int, int);
+       ///
+       void InsetMotionNotify(BufferView *, int, int, int);
+       ///
+       void InsetKeyPress(XKeyEvent *);
+       ///
+       UpdatableInset::RESULT LocalDispatch(BufferView *, kb_action,
+                                            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 Linuxdoc(Buffer const *, std::ostream &) const { return 0; }
+       ///
+       int DocBook(Buffer const *, std::ostream &) const { return 0; }
+       ///
+       void Validate(LaTeXFeatures & features) const;
+       ///
+       void GetCursorPos(BufferView *, int & x, int & y) const;
+       ///
+       void ToggleInsetCursor(BufferView *);
+       ///
+       UpdatableInset * GetLockingInset();
+       ///
+       UpdatableInset * GetFirstLockingInsetOfType(Inset::Code);
+       ///
+       void SetFont(BufferView *, LyXFont const &, bool toggleall = false);
+       ///
+       void setLabel(string const & l) { label = l; }
+       ///
+       void setLabelFont(LyXFont & f) { labelfont = f; }
+       ///
+       void setAutoCollapse(bool f) { autocollapse = f; }
+       ///
+       int getMaxWidth(BufferView *, UpdatableInset const *) const;
+       ///
+       LyXText * getLyXText(BufferView const *, bool const recursive) const;
+       ///
+       void deleteLyXText(BufferView *, bool recursive=true) const;
+       ///
+       void resizeLyXText(BufferView *) const;
 
 protected:
-    ///
-    int ascent_collapsed(Painter &, LyXFont const &) const;
-    ///
-    int descent_collapsed(Painter &, LyXFont const &) const;
-    ///
-    int width_collapsed(Painter &, LyXFont const & f) const;
-    ///
-    void draw_collapsed(Painter & pain, const LyXFont &, int , float &) const;
-    ///
-    void UpdateLocal(BufferView *, bool);
-    
-    ///
-    bool collapsed;
-    ///
-    LColor::color framecolor;
+       ///
+       int ascent_collapsed(Painter &, LyXFont const &) const;
+       ///
+       int descent_collapsed(Painter &, LyXFont const &) const;
+       ///
+       int width_collapsed(Painter &, LyXFont const & f) const;
+       ///
+       void draw_collapsed(Painter & pain, const LyXFont &, int , float &) const;
+       ///
+       int getMaxTextWidth(Painter & pain, UpdatableInset const *) const;
+       
+       ///
+       bool collapsed;
+       ///
+       LColor::color framecolor;
+       ///
+       LyXFont labelfont;
+#ifdef NEW_INSETS
+public:
+#endif
+       ///
+       InsetText inset;
+protected:
+       ///
+       mutable int button_length;
+       ///
+       mutable int button_top_y;
+       ///
+       mutable int button_bottom_y;
 
 private:
-    ///
-    string label;
-    ///
-    LyXFont labelfont;
-    ///
-    bool autocolapse;
-    ///
-    mutable int
-        top_baseline, top_x,
-       button_x;
+       ///
+       string label;
+       ///
+       bool autocollapse;
+       ///
+       int widthCollapsed;
+       ///
+       mutable int oldWidth;
+       ///
+       mutable int topx;
+       mutable int topbaseline;
+       mutable UpdateCodes need_update;
 };
 
 #endif