X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Flyxinset.h;h=401884e6d71ab6e91603e3bdb7ca79aacfcc244b;hb=3c8aba3b556871fb1100a2f98cd93d5d4e3f70c9;hp=840ca4b62f57b40886935fa6cdf5de8e0d848358;hpb=132fe5e1322fbc86a32692df51eba78d6b4e479c;p=lyx.git diff --git a/src/insets/lyxinset.h b/src/insets/lyxinset.h index 840ca4b62f..401884e6d7 100644 --- a/src/insets/lyxinset.h +++ b/src/insets/lyxinset.h @@ -4,8 +4,7 @@ * * LyX, The Document Processor * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-1999 the LyX Team. + * Copyright 1995-2000 the LyX Team. * * ====================================================== */ @@ -16,6 +15,8 @@ #pragma interface #endif +#include + #include "gettext.h" #include "lyxfont.h" #include "lyxlex.h" @@ -26,7 +27,7 @@ class BufferView; struct LaTeXFeatures; -#define USE_OSTREAM_ONLY 1 + /// Insets class Inset { @@ -82,11 +83,15 @@ public: /// TEXT_CODE, /// + ERT_CODE, + /// FOOT_CODE, /// MARGIN_CODE, /// - SPECIALCHAR_CODE + SPECIALCHAR_CODE, + /// + TABULAR_CODE }; enum EDITABLE { @@ -95,6 +100,8 @@ public: HIGHLY_EDITABLE }; + /// + Inset() { owner_ = 0; } /// virtual ~Inset() {} /// @@ -109,45 +116,46 @@ public: /// virtual LyXFont ConvertFont(LyXFont font); /// what appears in the minibuffer when opening - virtual const char * EditMessage() const {return _("Opened inset");} + virtual const char * EditMessage() const; /// virtual void Edit(BufferView *, int x, int y, unsigned int button); /// virtual EDITABLE Editable() const; /// + virtual void InsetButtonPress(BufferView *, int, int, int) {} + /// + virtual void InsetButtonRelease(BufferView *, int, int, int) {} + /// + virtual void InsetMotionNotify(BufferView *, int , int , int) {} + /// + bool IsTextInset() const; + /// virtual bool AutoDelete() const; /// - virtual void Write(ostream &) const = 0; + virtual void Write(std::ostream &) const = 0; /// virtual void Read(LyXLex & lex) = 0; /** returns the number of rows (\n's) of generated tex code. - fragile != 0 means, that the inset should take care about + fragile == true means, that the inset should take care about fragile commands by adding a \protect before. - If the freee_spc (freespacing) variable is set, then this inset + If the free_spc (freespacing) variable is set, then this inset is in a free-spacing paragraph. */ - virtual int Latex(ostream &, signed char fragile, bool free_spc) const = 0; - -#ifndef USE_OSTREAM_ONLY - /// - virtual int Latex(string & file, signed char fragile, bool free_spc) const = 0; - /// - virtual int Linuxdoc(string & /*file*/) const = 0; + virtual int Latex(std::ostream &, bool fragile, + bool free_spc) const = 0; /// - virtual int DocBook(string & /*file*/) const = 0; -#else + virtual int Ascii(std::ostream &) const = 0; /// - virtual int Linuxdoc(ostream &) const = 0; + virtual int Linuxdoc(std::ostream &) const = 0; /// - virtual int DocBook(ostream &) const = 0; -#endif + virtual int DocBook(std::ostream &) const = 0; /// Updates needed features for this inset. virtual void Validate(LaTeXFeatures & features) const; /// virtual bool Deletable() const; /// returns LyX code associated with the inset. Used for TOC, ...) - virtual Inset::Code LyxCode() const = 0; + virtual Inset::Code LyxCode() const { return NO_CODE; } /// Get the label that appears at screen virtual string getLabel(int) const { @@ -169,8 +177,21 @@ public: return 0; } /// - virtual void init(BufferView *) {} - + virtual bool InsertInsetAllowed(Inset *) const { return false; } + /// + virtual void setInsetName(const char * s) { name = s; } + /// + virtual string getInsetName() const { return name; } + /// + virtual void setOwner(Inset * inset) { owner_ = inset; } + /// + virtual Inset * owner() const { return owner_; } + /// +private: + /// + Inset * owner_; + /// + string name; }; @@ -208,6 +229,8 @@ public: are not enough. DISPATCHED = the inset catched the action + DISPATCHED_NOUPDATE = the inset catched the action and no update + is needed here to redraw the inset FINISHED = the inset must be unlocked as a result of the action UNDISPATCHED = the action was not catched, it should be @@ -216,6 +239,7 @@ public: enum RESULT { UNDISPATCHED = 0, DISPATCHED, + DISPATCHED_NOUPDATE, FINISHED }; @@ -225,10 +249,7 @@ public: } /// - UpdatableInset() { - scx = mx_scx = 0; - owner_ = 0; - } + UpdatableInset() { scx = mx_scx = 0; } /// //virtual ~UpdatableInset() {} /// @@ -237,6 +258,10 @@ public: /// may call ToggleLockedInsetCursor virtual void ToggleInsetCursor(BufferView *); /// + virtual void ShowInsetCursor(BufferView *); + /// + virtual void HideInsetCursor(BufferView *); + /// virtual void GetCursorPos(int &, int &) const {} /// virtual void InsetButtonPress(BufferView *, int x, int y, int button); @@ -260,6 +285,8 @@ public: /// virtual bool InsertInset(BufferView *, Inset *) { return false; } /// + virtual bool InsertInsetAllowed(Inset *) const { return true; } + /// virtual UpdatableInset * GetLockingInset() { return this; } /// virtual int InsetInInsetY() { return 0; } @@ -267,7 +294,10 @@ public: virtual bool UpdateInsetInInset(BufferView *, Inset *) { return false; } /// - virtual bool UnlockInsetInInset(BufferView *, Inset *, + virtual bool LockInsetInInset(BufferView *, UpdatableInset *) + { return false; } + /// + virtual bool UnlockInsetInInset(BufferView *, UpdatableInset *, bool /*lr*/ = false) { return false; } /// An updatable inset could handle lyx editing commands @@ -275,11 +305,7 @@ public: /// virtual bool isCursorVisible() const { return cursor_visible; } /// - virtual int getMaxWidth(Painter & pain) const; - /// - virtual void setOwner(UpdatableInset * inset) { owner_ = inset; } - /// - virtual UpdatableInset * owner() { return owner_; } + virtual int getMaxWidth(Painter & pain, UpdatableInset const *) const; protected: /// @@ -293,8 +319,5 @@ private: /// int mx_scx; mutable int scx; - /// - UpdatableInset * owner_; - }; #endif