]> git.lyx.org Git - lyx.git/blob - src/insets/InsetCaptionable.h
Request buffer update rather than do it.
[lyx.git] / src / insets / InsetCaptionable.h
1 // -*- C++ -*-
2 /**
3  * \file InsetCaptionable.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Alejandro Aguilar Sierra
8  * \author Jürgen Vigna
9  * \author Lars Gullik Bjønnes
10  * \author Guillaume Munch
11  *
12  * Full author contact details are available in file CREDITS.
13  */
14
15 #ifndef INSET_CAPTIONABLE_H
16 #define INSET_CAPTIONABLE_H
17
18 #include "InsetCollapsible.h"
19
20
21 namespace lyx {
22
23 class InsetCaptionable : public InsetCollapsible
24 {
25 public:
26         InsetCaptionable(Buffer * buffer, std::string const & type = "senseless")
27                 : InsetCollapsible(buffer), caption_type_(type) {}
28         ///
29         std::string const & captionType() const { return caption_type_; }
30         ///
31         docstring floatName(std::string const & type) const;
32         ///
33 protected:
34         ///
35         InsetCaption const * getCaptionInset() const;
36         ///
37         docstring getCaptionText(OutputParams const &) const;
38         ///
39         docstring getCaptionHTML(OutputParams const &) const;
40         ///
41         virtual void setCaptionType(std::string const & type);
42         /// are our captions subcaptions?
43         virtual bool hasSubCaptions(ParIterator const &) const { return false; }
44         ///
45         void addToToc(DocIterator const & di, bool output_active,
46                                   UpdateType utype, TocBackend & backend) const;
47         /// Update the counters of this inset and of its contents
48         void updateBuffer(ParIterator const &, UpdateType);
49         ///
50         bool insetAllowed(InsetCode) const;
51 private:
52         ///
53         std::string caption_type_;
54 };
55
56
57 } // namespace lyx
58
59 #endif // INSET_CAPTIONABLE_H