X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetert.h;h=b42fa9e405680cfffd6b7427b6ec8e23a59812b7;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=76bf3179290043ab6f3fed9ca23d4ca6a12aa131;hpb=d6fa7c567c47f1af95f026174a83bf75dde08f84;p=lyx.git diff --git a/src/insets/insetert.h b/src/insets/insetert.h index 76bf317929..b42fa9e405 100644 --- a/src/insets/insetert.h +++ b/src/insets/insetert.h @@ -4,7 +4,7 @@ * * LyX, The Document Processor * - * Copyright (C) 1998 The LyX Team. + * Copyright 1998 The LyX Team. * *====================================================== */ @@ -18,69 +18,129 @@ #pragma interface #endif -#include "insettext.h" +#include "insetcollapsable.h" +#include -class Painter; - -/** A colapsable text inset +/** A collapsable text inset for LaTeX insertions. To write full ert (including styles and other insets) in a given - space. + space. + + Note that collapsed_ encompasses both the inline and collapsed button + versions of this inset. */ -class InsetERT : public InsetText { +class InsetERT : public InsetCollapsable { public: - /// - InsetERT(Buffer *); - /// - // InsetERT(InsetERT const &, Buffer *); - /// - ~InsetERT() {} - /// - InsetERT * Clone() const; - /// - // void Read(LyXLex &); - /// - void Write(ostream &) const; - /// - 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; - /// - //LString EditMessage() const; - /// - void InsetButtonRelease(BufferView *, int, int, int); - /// - void InsetButtonPress(BufferView *, int, int, int); - /// - void InsetMotionNotify(BufferView *, int, int, int); - /// - void Edit(BufferView *, int, int, unsigned int); - /// - void InsetUnlock(BufferView *); - /// - bool InsertInset(Inset *); - /// - void SetFont(LyXFont const &, bool toggleall); - -protected: - /// - int ascent_closed(Painter &, LyXFont const &) const; - /// - int descent_closed(Painter &, LyXFont const &) const; - /// - int width_closed(Painter &, LyXFont const & f) const; - /// - void draw_closed(Painter & pain, const LyXFont &, int , float &) const; + /// + enum ERTStatus { + Open, + Collapsed, + Inlined + }; + /// + InsetERT(bool collapsed=false); + /// + InsetERT(InsetERT const &, bool same_id = false); + /// + Inset * clone(Buffer const &, bool same_id = false) const; + /// + InsetERT(string const & contents, bool collapsed); + /// + ~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; + /// + void insetButtonPress(BufferView *, int x, int y, int button); + /// + bool insetButtonRelease(BufferView * bv, int x, int y, int button); + /// + void insetMotionNotify(BufferView *, int x, int y, int state); + /// + int latex(Buffer const *, std::ostream &, bool fragile, + bool free_spc) const; + /// + int ascii(Buffer const *, + std::ostream &, int linelen = 0) const; + /// + int linuxdoc(Buffer const *, std::ostream &) const; + /// + int docbook(Buffer const *, std::ostream &) const; + /// + void validate(LaTeXFeatures &) const {} + /// + UpdatableInset::RESULT localDispatch(BufferView *, kb_action, + string const &); + /// + bool checkInsertChar(LyXFont &); + /// + // 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 inlined() const { return status_ == Inlined; } + /// + ERTStatus status() const { return status_; } + /// + void open(BufferView *); + /// + void close(BufferView *) const; + /// + bool allowSpellcheck() { return false; } + string const selectNextWordToSpellcheck(BufferView *, float &) const; + /// + int ascent(BufferView *, LyXFont const &) const; + /// + int descent(BufferView *, LyXFont const &) const; + /// + int width(BufferView *, LyXFont const &) const; + /// + void draw(BufferView *, const LyXFont &, int , float &, bool) const; + /// set the status of the inset + void status(BufferView *, ERTStatus const st) const; + /// + bool showInsetDialog(BufferView *) const; + /// + bool forceDefaultParagraphs(Inset const *) const { + return true; + } private: - /// - bool - closed, - nomotion; + /// + void init(); + /// + string const get_new_label() const; + /// + void setButtonLabel() const; + /// + void set_latex_font(BufferView *); + /// update status on button + void updateStatus(BufferView *, bool = false) const; + + /// + mutable ERTStatus status_; }; #endif