]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetbibitem.C
insetcharstyle drawing cosmetics
[lyx.git] / src / insets / insetbibitem.C
index 98c1d7ad2153fd4182dc3cee50ab5abb5cd87cb8..2e74ad680349874207d70066b11cfc98ce041f06 100644 (file)
@@ -7,74 +7,72 @@
  *
  * Full author contact details are available in file CREDITS.
  */
+
 #include <config.h>
 
 #include "insetbibitem.h"
 
 #include "buffer.h"
 #include "BufferView.h"
+#include "dispatchresult.h"
 #include "funcrequest.h"
+#include "lyxfont.h"
 #include "lyxlex.h"
 #include "paragraph.h"
+#include "ParagraphList_fwd.h"
 
 #include "frontends/font_metrics.h"
 
 #include "support/lstrings.h"
+#include "support/std_ostream.h"
 #include "support/tostr.h"
 
-using namespace lyx::support;
+using lyx::support::prefixIs;
+using lyx::support::strToInt;
 
 using std::max;
+using std::string;
 using std::auto_ptr;
-
+using std::ostream;
 
 int InsetBibitem::key_counter = 0;
 string const key_prefix = "key-";
 
 
 InsetBibitem::InsetBibitem(InsetCommandParams const & p)
-       : InsetCommand(p), counter(1)
+       : InsetCommand(p, "bibitem"), counter(1)
 {
        if (getContents().empty())
                setContents(key_prefix + tostr(++key_counter));
 }
 
 
-InsetBibitem::~InsetBibitem()
-{
-       InsetCommandMailer("bibitem", *this).hideDialog();
-}
-
-
 auto_ptr<InsetBase> InsetBibitem::clone() const
 {
-       InsetBibitem * b = new InsetBibitem(params());
+       auto_ptr<InsetBibitem> b(new InsetBibitem(params()));
        b->setCounter(counter);
        return auto_ptr<InsetBase>(b);
 }
 
 
-dispatch_result InsetBibitem::localDispatch(FuncRequest const & cmd)
+void InsetBibitem::priv_dispatch(LCursor & cur, FuncRequest & cmd)
 {
        switch (cmd.action) {
 
-       case LFUN_INSET_EDIT:
-               InsetCommandMailer("bibitem", *this).showDialog(cmd.view());
-               return DISPATCHED;
-
        case LFUN_INSET_MODIFY: {
                InsetCommandParams p;
-               InsetCommandMailer::string2params(cmd.argument, p);
+               InsetCommandMailer::string2params("bibitem", cmd.argument, p);
                if (p.getCmdName().empty())
-                       return DISPATCHED;
+                       break;
                setParams(p);
-               cmd.view()->updateInset(this);
-               cmd.view()->fitCursor();
-               return DISPATCHED;
+               cur.bv().update();
+               cur.bv().fitCursor();
+               break;
        }
 
        default:
-               return InsetCommand::localDispatch(cmd);
+               InsetCommand::priv_dispatch(cur, cmd);
+               break;
        }
 }
 
@@ -126,6 +124,12 @@ string const InsetBibitem::getScreenLabel(Buffer const &) const
        return getContents() + " [" + getBibLabel() + ']';
 }
 
+int InsetBibitem::plaintext(Buffer const &, ostream & os,
+                           OutputParams const &) const
+{
+       os << '[' << getCounter() << "] ";
+       return 0;
+}
 
 // ale070405 This function maybe shouldn't be here. We'll fix this at 0.13.
 int bibitemMaxWidth(BufferView * bv, LyXFont const &)
@@ -133,11 +137,13 @@ int bibitemMaxWidth(BufferView * bv, LyXFont const &)
        int w = 0;
        // Ha, now we are mainly at 1.2.0 and it is still here (Jug)
        // Does look like a hack? It is! (but will change at 0.13)
-       ParagraphList::iterator it = bv->buffer()->paragraphs.begin();
-       ParagraphList::iterator end = bv->buffer()->paragraphs.end();
+       ParagraphList::iterator it = bv->buffer()->paragraphs().begin();
+       ParagraphList::iterator end = bv->buffer()->paragraphs().end();
        for (; it != end; ++it) {
                if (it->bibitem()) {
+#ifdef WITH_WARNINGS
 #warning metrics broken!
+#endif
                        int const wx = it->bibitem()->width();
                        if (wx > w)
                                w = wx;
@@ -156,8 +162,8 @@ string const bibitemWidest(Buffer const & buffer)
        InsetBibitem const * bitem = 0;
        LyXFont font;
 
-       ParagraphList::const_iterator it = buffer.paragraphs.begin();
-       ParagraphList::const_iterator end = buffer.paragraphs.end();
+       ParagraphList::const_iterator it = buffer.paragraphs().begin();
+       ParagraphList::const_iterator end = buffer.paragraphs().end();
 
        for (; it != end; ++it) {
                if (it->bibitem()) {