]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetInclude.h
* src/paragraph_funcs.cpp (breakParagraph): change parameter 'flag' to
[lyx.git] / src / insets / InsetInclude.h
index 93fa887e14625cce795a9b8c5d43709c7fb24eae..dcdcb82f6ce2d01536e8c99340786ab50f4bfbcb 100644 (file)
 #ifndef INSET_INCLUDE_H
 #define INSET_INCLUDE_H
 
+#include "BiblioInfo.h"
 #include "Inset.h"
 #include "InsetCommandParams.h"
 #include "RenderButton.h"
 #include "MailInset.h"
+#include "Counters.h"
+#include "EmbeddedFiles.h"
 
 #include "support/FileName.h"
 
@@ -30,24 +33,24 @@ class RenderMonitoredPreview;
 
 
 /// for including tex/lyx files
-class InsetInclude : public InsetOld {
+class InsetInclude : public Inset {
 public:
        ///
        InsetInclude(InsetCommandParams const &);
        ~InsetInclude();
 
        /// Override these InsetButton methods if Previewing
-       bool metrics(MetricsInfo & mi, Dimension & dim) const;
+       void metrics(MetricsInfo & mi, Dimension & dim) const;
        ///
        void draw(PainterInfo & pi, int x, int y) const;
        ///
-       virtual bool display() const;
+       virtual DisplayType display() const;
 
        /// get the parameters
        InsetCommandParams const & params() const;
 
        ///
-       InsetBase::Code lyxCode() const { return InsetBase::INCLUDE_CODE; }
+       Inset::Code lyxCode() const { return Inset::INCLUDE_CODE; }
        /** Fills \c list
         *  \param buffer the Buffer containing this inset.
         *  \param list the list of labels in the child buffer.
@@ -57,9 +60,11 @@ public:
        /** Fills \c keys
         *  \param buffer the Buffer containing this inset.
         *  \param keys the list of bibkeys in the child buffer.
+        *  \param it not used here
         */
-       void fillWithBibKeys(Buffer const & buffer,
-               std::vector<std::pair<std::string, docstring> > & keys) const;
+       virtual void fillWithBibKeys(Buffer const & buffer,
+               BiblioInfo & keys, InsetIterator const & it) const;
+       
        /** Update the cache with all bibfiles in use of the child buffer
         *  (including bibfiles of grandchild documents).
         *  Does nothing if the child document is not loaded to prevent
@@ -79,32 +84,34 @@ public:
        ///
        void write(Buffer const &, std::ostream &) const;
        ///
-       void read(Buffer const &, LyXLex &);
+       void read(Buffer const &, Lexer &);
        ///
        int latex(Buffer const &, odocstream &,
-                 OutputParams const &) const;
+                 OutputParams const &) const;
        ///
        int plaintext(Buffer const &, odocstream &,
-                     OutputParams const &) const;
+                     OutputParams const &) const;
        ///
        int docbook(Buffer const &, odocstream &,
-                   OutputParams const &) const;
+                   OutputParams const &) const;
        ///
        void validate(LaTeXFeatures &) const;
        ///
        void addPreview(graphics::PreviewLoader &) const;
        ///
-       void addToToc(TocList &, Buffer const &) const;
+       void addToToc(TocList &, Buffer const &, ParConstIterator const &) const;
        ///
-       void updateLabels(Buffer const & buffer) const;
+       bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
        ///
-       bool getStatus(LCursor &, FuncRequest const &, FuncStatus &) const;
+       void updateLabels(Buffer const & buffer, ParIterator const &);
+       /// child document can be embedded
+       void registerEmbeddedFiles(Buffer const &, EmbeddedFiles &) const;
 protected:
        InsetInclude(InsetInclude const &);
        ///
-       virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
+       virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
 private:
-       virtual std::auto_ptr<InsetBase> doClone() const;
+       virtual Inset * clone() const;
 
        /** Slot receiving a signal that the external file has changed
         *  and the preview should be regenerated.
@@ -120,7 +127,7 @@ private:
        ///
        void write(std::ostream &) const;
        ///
-       void read(LyXLex &);
+       void read(Lexer &);
 
        /// the parameters
        InsetCommandParams params_;
@@ -133,6 +140,7 @@ private:
        /// cache
        mutable bool set_label_;
        mutable RenderButton button_;
+       mutable docstring listings_label_;
 };
 
 
@@ -141,7 +149,7 @@ public:
        ///
        InsetIncludeMailer(InsetInclude & inset);
        ///
-       virtual InsetBase & inset() const { return inset_; }
+       virtual Inset & inset() const { return inset_; }
        ///
        virtual std::string const & name() const { return name_; }
        ///
@@ -157,6 +165,8 @@ private:
        InsetInclude & inset_;
 };
 
+/// return loaded Buffer or zero if the file loading did not proceed.
+Buffer * loadIfNeeded(Buffer const & parent, InsetCommandParams const & params);
 
 } // namespace lyx