]> git.lyx.org Git - lyx.git/blob - src/insets/InsetLabel.h
Amend 6c3447c8: FindAdv: sometimes a space is added on some math symbols
[lyx.git] / src / insets / InsetLabel.h
1 // -*- C++ -*-
2 /**
3  * \file InsetLabel.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Lars Gullik Bjønnes
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #ifndef INSET_LABEL_H
13 #define INSET_LABEL_H
14
15 #include "InsetCommand.h"
16
17
18 namespace lyx {
19
20 class InsetLabel : public InsetCommand
21 {
22 public:
23         ///
24         InsetLabel(Buffer * buf, InsetCommandParams const &);
25
26         ///
27         docstring const & activeCounter() const { return active_counter_; }
28         ///
29         docstring const & counterValue() const { return counter_value_; }
30         ///
31         docstring const & prettyCounter() const { return pretty_counter_; }
32         ///
33         docstring const & formattedCounter() const { return formatted_counter_; }
34         ///
35         void setCounterValue(docstring cv) { counter_value_ = cv; }
36         ///
37         void setPrettyCounter(docstring pc) { pretty_counter_ = pc; }
38         ///
39         void setFormattedCounter(docstring fc) { formatted_counter_ = fc; }
40         ///
41         int rowFlags() const override { return CanBreakBefore | CanBreakAfter; }
42         /// Updates only the label string, doesn't handle undo nor references.
43         void updateLabel(docstring const & new_label, bool const active = true);
44         /// Updates the label and the references to it.
45         /// Will also handle undo/redo if \p cursor is passed.
46         void updateLabelAndRefs(docstring const & new_label, Cursor * cursor = 0);
47
48         /// \name Public functions inherited from Inset class
49         //@{
50         /// verify label and update references.
51         void initView() override;
52         ///
53         bool isLabeled() const override { return true; }
54         ///
55         bool hasSettings() const override { return true; }
56         ///
57         InsetCode lyxCode() const override { return LABEL_CODE; }
58         ///
59         void latex(otexstream & os, OutputParams const & runparams_in) const override;
60         ///
61         int plaintext(odocstringstream & ods, OutputParams const & op,
62                       size_t max_length = INT_MAX) const override;
63         ///
64         void docbook(XMLStream &, OutputParams const &) const override;
65         ///
66         docstring xhtml(XMLStream &, OutputParams const &) const override;
67         ///
68         void updateBuffer(ParIterator const & it, UpdateType, bool const deleted = false) override;
69         ///
70         void addToToc(DocIterator const & di, bool output_active,
71                                   UpdateType utype, TocBackend & backend) const override;
72         /// Is the content of this inset part of the immediate (visible) text sequence?
73         bool isPartOfTextSequence() const override { return false; }
74         ///
75         bool inheritFont() const override { return false; }
76         //@}
77
78         /// \name Static public methods obligated for InsetCommand derived classes
79         //@{
80         ///
81         static ParamInfo const & findInfo(std::string const &);
82         ///
83         static std::string defaultCommand() { return "label"; }
84         ///
85         static bool isCompatibleCommand(std::string const & s)
86                 { return s == "label"; }
87         //@}
88
89         //FIXME: private
90         /// \name Private functions inherited from InsetCommand class
91         //@{
92         ///
93         docstring screenLabel() const override;
94         //@}
95
96 private:
97         /// \name Private functions inherited from Inset class
98         //@{
99         ///
100         Inset * clone() const override { return new InsetLabel(*this); }
101         ///
102         bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus & status) const override;
103         ///
104         void doDispatch(Cursor & cur, FuncRequest & cmd) override;
105         //@}
106
107         ///
108         void uniqueLabel(docstring & label) const;
109         ///
110         void updateReferences(docstring const & old_label,
111                 docstring const & new_label, bool const changes);
112         ///
113         docstring screen_label_;
114         ///
115         docstring active_counter_;
116         ///
117         docstring counter_value_;
118         ///
119         docstring pretty_counter_;
120         ///
121         docstring formatted_counter_;
122 };
123
124
125 } // namespace lyx
126
127 #endif