]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetFoot.cpp
Move isMultiCell() to Cursor, and use it.
[lyx.git] / src / insets / InsetFoot.cpp
index 68ab63daf54b2478081016b3beb2d69e923747f7..bace67f593a15583867e321df81a94615bd35ab4 100644 (file)
@@ -16,7 +16,6 @@
 #include "Buffer.h"
 #include "BufferParams.h"
 #include "Counters.h"
-#include "support/gettext.h"
 #include "Layout.h"
 // FIXME: the following is needed just to get the layout of the enclosing
 // paragraph. This seems a bit too much to me (JMarc)
 #include "TocBackend.h"
 
 #include "support/debug.h"
+#include "support/docstream.h"
+#include "support/gettext.h"
 #include "support/lstrings.h"
 
-#include <ostream>
-
 using namespace std;
 
 namespace lyx {
 
 
-InsetFoot::InsetFoot(BufferParams const & bp)
-       : InsetFootlike(bp)
+InsetFoot::InsetFoot(Buffer const & buf)
+       : InsetFootlike(buf)
 {}
 
 
-InsetFoot::InsetFoot(InsetFoot const & in)
-       : InsetFootlike(in)
-{}
-
-
-Inset * InsetFoot::clone() const
-{
-       return new InsetFoot(*this);
-}
-
-
 docstring InsetFoot::editMessage() const
 {
        return _("Opened Footnote Inset");
@@ -59,32 +47,43 @@ docstring InsetFoot::editMessage() const
 
 void InsetFoot::updateLabels(ParIterator const & it)
 {
-       TextClass const & tclass = buffer().params().textClass();
+       DocumentClass const & tclass = buffer().params().documentClass();
        Counters & cnts = tclass.counters();
        docstring const foot = from_ascii("footnote");
        Paragraph const & outer =  it.paragraph();
-       if (!outer.layout()->intitle && cnts.hasCounter(foot)) {
+       if (!outer.layout().intitle && cnts.hasCounter(foot)) {
                cnts.step(foot);
                // FIXME: the counter should format itself.
-               setLabel(support::bformat(from_ascii("%1$s %2$s"), 
-                                         getLayout(buffer().params()).labelstring(), 
-                                         cnts.theCounter(foot)));
+               custom_label_= support::bformat(from_utf8("%1$s %2$s"),
+                                         translateIfPossible(getLayout(buffer().params()).labelstring()),
+                                         cnts.theCounter(foot));
+               setLabel(custom_label_);
        
        }
        InsetCollapsable::updateLabels(it);
 }
 
 
-void InsetFoot::addToToc(ParConstIterator const & cpit) const
+void InsetFoot::addToToc(DocIterator const & cpit)
 {
-       ParConstIterator pit = cpit;
-       pit.push_back(*this);
+       DocIterator pit = cpit;
+       pit.push_back(CursorSlice(*this));
 
        Toc & toc = buffer().tocBackend().toc("footnote");
-       // FIXME: we probably want the footnote number too.
        docstring str;
-       str = getNewLabel(str);
+       str = custom_label_ + ": " + getNewLabel(str);
        toc.push_back(TocItem(pit, 0, str));
+       // Proceed with the rest of the inset.
+       InsetFootlike::addToToc(cpit);
+}
+
+
+docstring InsetFoot::toolTip(BufferView const & bv, int x, int y) const
+{
+       docstring default_tip = InsetCollapsable::toolTip(bv, x, y);
+       if (!isOpen())
+               return custom_label_ + ": " + default_tip;
+       return default_tip;
 }