1 // -*- C++ -*- 2 /** 3 * \file InsetPhantom.h 4 * This file is part of LyX, the document processor. 5 * Licence details can be found in the file COPYING. 6 * 7 * \author Uwe Stöhr 8 * 9 * Full author contact details are available in file CREDITS. 10 */ 11 12 #ifndef INSET_PHANTOM_H 13 #define INSET_PHANTOM_H 14 15 #include "InsetCollapsible.h" 16 17 18 namespace lyx { 19 20 class InsetPhantomParams 21 { 22 public: 23 enum Type { 24 Phantom, 25 HPhantom, 26 VPhantom 27 }; 28 /// \c type defaults to Phantom 29 InsetPhantomParams(); 30 /// 31 void write(std::ostream & os) const; 32 /// 33 void read(Lexer & lex); 34 /// 35 Type type; 36 }; 37 38 39 ///////////////////////////////////////////////////////////////////////// 40 // 41 // InsetPhantom 42 // 43 ///////////////////////////////////////////////////////////////////////// 44 45 /// The phantom inset 46 class InsetPhantom : public InsetCollapsible 47 { 48 public: 49 /// 50 InsetPhantom(Buffer *, std::string const &); 51 /// 52 ~InsetPhantom(); 53 /// 54 static std::string params2string(InsetPhantomParams const &); 55 /// 56 static void string2params(std::string const &, InsetPhantomParams &); 57 /// params()58 InsetPhantomParams const & params() const { return params_; } 59 private: 60 /// lyxCode()61 InsetCode lyxCode() const { return PHANTOM_CODE; } 62 /// 63 docstring layoutName() const; 64 /// 65 void draw(PainterInfo & pi, int x, int y) const; 66 /// 67 void write(std::ostream &) const; 68 /// 69 void read(Lexer & lex); 70 /// 71 void setButtonLabel(); 72 /// show the phantom dialog 73 bool showInsetDialog(BufferView * bv) const; 74 /// neverIndent()75 bool neverIndent() const { return true; } 76 /// 77 void latex(otexstream &, OutputParams const &) const; 78 /// 79 int plaintext(odocstringstream & ods, OutputParams const & op, 80 size_t max_length = INT_MAX) const; 81 /// 82 int docbook(odocstream &, OutputParams const &) const; 83 /// Makes no sense fof XHTML. 84 docstring xhtml(XHTMLStream &, OutputParams const &) const; 85 /// 86 bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const; 87 /// 88 void doDispatch(Cursor & cur, FuncRequest & cmd); 89 /// 90 docstring toolTip(BufferView const & bv, int x, int y) const; 91 /// clone()92 Inset * clone() const { return new InsetPhantom(*this); } 93 /// used by the constructors 94 void init(); 95 /// 96 std::string contextMenuName() const; 97 /// 98 friend class InsetPhantomParams; 99 100 /// 101 InsetPhantomParams params_; 102 }; 103 104 105 } // namespace lyx 106 107 #endif // INSET_PHANTOM_H 108