X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetert.h;h=77f81aef220a049bcaf6f5d780c4770c5c28c2d8;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=fbd1f4896a93f85ebc68608fdd4040e56e3dfb32;hpb=82cc1af962f3e00502d9e994f6da45dc5ec06688;p=lyx.git diff --git a/src/insets/insetert.h b/src/insets/insetert.h index fbd1f4896a..77f81aef22 100644 --- a/src/insets/insetert.h +++ b/src/insets/insetert.h @@ -1,33 +1,31 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor +/** + * \file insetert.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * Copyright 1998 The LyX Team. + * \author Jürgen Vigna + * \author Lars Gullik Bjønnes * - *====================================================== + * Full author contact details are available in file CREDITS. */ -// The pristine updatable inset: Text - #ifndef INSETERT_H #define INSETERT_H -#ifdef __GNUG__ -#pragma interface -#endif - #include "insetcollapsable.h" -#include +#include "mailinset.h" + + +namespace lyx { /** A collapsable text inset for LaTeX insertions. - + To write full ert (including styles and other insets) in a given space. Note that collapsed_ encompasses both the inline and collapsed button - versions of this inset. + versions of this inset. */ class Language; @@ -35,120 +33,87 @@ class Language; class InsetERT : public InsetCollapsable { public: /// - enum ERTStatus { - Open, - Collapsed, - Inlined - }; - /// - InsetERT(BufferParams const &, bool collapsed = false); - /// - InsetERT(InsetERT const &, bool same_id = false); - /// - Inset * clone(Buffer const &, bool same_id = false) const; + InsetERT(BufferParams const &, CollapseStatus status = Open); +#if 0 /// InsetERT(BufferParams const &, - Language const *, string const & contents, bool collapsed); + Language const *, std::string const & contents, CollapseStatus status); +#endif /// ~InsetERT(); /// - Inset::Code lyxCode() const { return Inset::ERT_CODE; } - /// - void read(Buffer const * buf, LyXLex & lex); - /// - void write(Buffer const * buf, std::ostream & os) const; - /// - string const editMessage() const; - /// - bool insertInset(BufferView *, Inset *); - /// - bool insetAllowed(Inset::Code) const { return false; } - /// - void setFont(BufferView *, LyXFont const &, - bool toggleall = false, bool selectall = false); - /// - void edit(BufferView *, int, int, unsigned int); - /// - void edit(BufferView * bv, bool front = true); - /// - EDITABLE editable() const; - /// - SigC::Signal0 hideDialog; + InsetBase::Code lyxCode() const { return InsetBase::ERT_CODE; } /// - void insetButtonPress(BufferView *, int x, int y, int button); + void write(Buffer const & buf, std::ostream & os) const; /// - bool insetButtonRelease(BufferView * bv, int x, int y, int button); + void read(Buffer const & buf, LyXLex & lex); /// - void insetMotionNotify(BufferView *, int x, int y, int state); + virtual docstring const editMessage() const; /// - int latex(Buffer const *, std::ostream &, bool fragile, - bool free_spc) const; + bool insetAllowed(InsetBase::Code code) const; /// - int ascii(Buffer const *, - std::ostream &, int linelen = 0) const; + int latex(Buffer const &, odocstream &, + OutputParams const &) const; /// - int linuxdoc(Buffer const *, std::ostream &) const; + int plaintext(Buffer const &, odocstream &, + OutputParams const & runparams) const; /// - int docbook(Buffer const *, std::ostream &) const; + int docbook(Buffer const &, odocstream &, + OutputParams const & runparams) const; /// void validate(LaTeXFeatures &) const {} /// - UpdatableInset::RESULT localDispatch(BufferView *, kb_action, - string const &); + bool metrics(MetricsInfo &, Dimension &) const; /// - bool checkInsertChar(LyXFont &); + void draw(PainterInfo & pi, int x, int y) const; /// - // this are needed here because of the label/inlined functionallity - /// - bool needFullRow() const { return status_ == Open; } - /// - bool isOpen() const { return status_ == Open || status_ == Inlined; } + bool showInsetDialog(BufferView *) const; /// - bool inlined() const { return status_ == Inlined; } + void getDrawFont(LyXFont &) const; /// - ERTStatus status() const { return status_; } + bool forceDefaultParagraphs(idx_type) const { return true; } + /// should paragraph indendation be ommitted in any case? + bool neverIndent(Buffer const &) const { return true; } +protected: + InsetERT(InsetERT const &); /// - void open(BufferView *); + virtual void doDispatch(LCursor & cur, FuncRequest & cmd); /// - void close(BufferView *) const; + bool getStatus(LCursor & cur, FuncRequest const & cmd, FuncStatus &) const; +private: + virtual std::auto_ptr doClone() const; /// - bool allowSpellcheck() { return false; } - string const selectNextWordToSpellcheck(BufferView *, float &) const; + void init(); /// - int ascent(BufferView *, LyXFont const &) const; + void setButtonLabel(); /// - int descent(BufferView *, LyXFont const &) const; + bool allowSpellCheck() const { return false; } +}; + + +class InsetERTMailer : public MailInset { +public: /// - int width(BufferView *, LyXFont const &) const; + InsetERTMailer(InsetERT & inset); /// - void draw(BufferView *, const LyXFont &, int , float &, bool) const; - /// set the status of the inset - void status(BufferView *, ERTStatus const st) const; + virtual InsetBase & inset() const { return inset_; } /// - bool showInsetDialog(BufferView *) const; + virtual std::string const & name() const { return name_; } /// - void getDrawFont(LyXFont &) const; + virtual std::string const inset2string(Buffer const &) const; /// - bool forceDefaultParagraphs(Inset const *) const { - return true; - } + static void string2params(std::string const &, + InsetCollapsable::CollapseStatus &); /// - int getMaxWidth(BufferView *, UpdatableInset const *) const; - + static std::string const params2string(InsetCollapsable::CollapseStatus); private: /// - void init(); - /// - string const get_new_label() const; + static std::string const name_; /// - void setButtonLabel() const; - /// - void set_latex_font(BufferView *); - /// update status on button - void updateStatus(BufferView *, bool = false) const; - - /// - mutable ERTStatus status_; + InsetERT & inset_; }; + +} // namespace lyx + #endif