]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetbase.h
ws changes only
[lyx.git] / src / insets / insetbase.h
index d52f770e15455c1f15070419c5636f85f65808fc..f261618f9b2888024269bfd5c34ead4624e09182 100644 (file)
@@ -6,16 +6,17 @@
  *
  * \author none
  *
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
  */
 
 #ifndef INSETBASE_H
 #define INSETBASE_H
 
-#include "LString.h"
-
+#include <string>
 #include <vector>
+#include <memory>
 
+class Buffer;
 class BufferView;
 class FuncRequest;
 class MetricsInfo;
@@ -49,6 +50,18 @@ enum dispatch_result {
        DISPATCHED_POP
 };
 
+/** \c DispatchResult is a wrapper for dispatch_result.
+ *  It can be forward-declared and passed as a function argument without
+ *  having to expose insetbase.h.
+ */
+class DispatchResult {
+       dispatch_result val_;
+public:
+       DispatchResult(dispatch_result val) : val_(val) {}
+       operator dispatch_result() const{ return val_; }
+};
+
+
 
 /// Common base class to all insets
 class InsetBase {
@@ -69,7 +82,7 @@ public:
        /// virtual base class destructor
        virtual ~InsetBase() {}
        /// replicate ourselves
-       virtual InsetBase * clone() const = 0;
+       virtual std::auto_ptr<InsetBase> clone() const = 0;
 
        // the real dispatcher
        virtual dispatch_result dispatch
@@ -82,14 +95,11 @@ public:
        /// draw inset and update (xo, yo)-cache
        virtual void draw(PainterInfo & pi, int x, int y) const = 0;
 
-       /// Methods to cache and retrieve a cached BufferView.
-       virtual void cache(BufferView *) const {}
-       ///
-       virtual BufferView * view() const { return 0; }
        /// request "external features"
        virtual void validate(LaTeXFeatures &) const {}
-       /// fill in all labels in the inset
-       virtual void getLabelList(std::vector<string> &) const {}
+       /// Appends \c list with all labels found within this inset.
+       virtual void getLabelList(Buffer const &,
+                                 std::vector<std::string> & /* list */) const {}
 };
 
 #endif