This is just a proposal, but going on the "pointers are evil" philosophy, I 
think that the following Inset classes can be altered.

Angus

class Inset {
public:
        /* called only from BufferView_pimpl.C and from
           text.C (SetHeightOfRow, GetVisibleRow). BufferView always exists.
        virtual int ascent(BufferView *, LyXFont const &) const = 0; */
        virtual int ascent(BufferView &, LyXFont const &) const = 0;
        /* ditto
        virtual int descent(BufferView *, LyXFont const &) const = 0; */
        virtual int descent(BufferView &, LyXFont const &) const = 0;
        /* ditto
        virtual int width(BufferView *, LyXFont const &) const = 0; */
        virtual int width(BufferView &, LyXFont const &) const = 0;
        /* ditto
        virtual void draw(BufferView *, LyXFont const &, */
        virtual void draw(BufferView &, LyXFont const &,
                          int baseline, float & x, bool cleared) const = 0;
        /* ditto
        virtual void update(BufferView *, LyXFont const &, bool = false) {} */
        virtual void update(BufferView &, LyXFont const &, bool = false) {}
        /* ditto
        virtual void Edit(BufferView *, int x, int y, unsigned int button); */
        virtual void Edit(BufferView &, int x, int y, unsigned int button);
        /* ditto
        virtual void InsetButtonPress(BufferView *, int, int, int) {} */
        virtual void InsetButtonPress(BufferView &, int, int, int) {}
        /* ditto
        virtual void InsetButtonRelease(BufferView *, int, int, int) {} */
        virtual void InsetButtonRelease(BufferView &, int, int, int) {}
        /* ditto
        virtual void InsetMotionNotify(BufferView *, int , int , int) {} */
        virtual void InsetMotionNotify(BufferView &, int , int , int) {}
        /* ditto
        virtual void Write(Buffer const *, std::ostream &) const = 0; */
        virtual void Write(Buffer const &, std::ostream &) const = 0;
        /* ditto
        virtual void Read(Buffer const *, LyXLex & lex) = 0; */
        virtual void Read(Buffer const &, LyXLex & lex) = 0;
        /* ditto
        virtual int Latex(Buffer const *, std::ostream &, bool fragile, */
        virtual int Latex(Buffer const &, std::ostream &, bool fragile,
                          bool free_spc) const = 0;
        /* ditto
        virtual int Ascii(Buffer const *, */
        virtual int Ascii(Buffer const &,
                          std::ostream &, int linelen = 0) const = 0;
        /* ditto
        virtual int Linuxdoc(Buffer const *, std::ostream &) const = 0; */
        virtual int Linuxdoc(Buffer const &, std::ostream &) const = 0;
        /* ditto
        virtual int DocBook(Buffer const *, std::ostream &) const = 0; */
        virtual int DocBook(Buffer const &, std::ostream &) const = 0;
};

Reply via email to