]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetbibitem.C
insetcharstyle drawing cosmetics
[lyx.git] / src / insets / insetbibitem.C
index 3b18f098546527befba9f237da965e874af46e2b..2e74ad680349874207d70066b11cfc98ce041f06 100644 (file)
 #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 lyx::support::prefixIs;
@@ -31,26 +33,20 @@ 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
 {
        auto_ptr<InsetBibitem> b(new InsetBibitem(params()));
@@ -59,29 +55,24 @@ auto_ptr<InsetBase> InsetBibitem::clone() const
 }
 
 
-DispatchResult
-InsetBibitem::priv_dispatch(FuncRequest const & cmd,
-                           idx_type & idx, pos_type & pos)
+void InsetBibitem::priv_dispatch(LCursor & cur, FuncRequest & cmd)
 {
        switch (cmd.action) {
 
-       case LFUN_MOUSE_PRESS:
-               InsetCommandMailer("bibitem", *this).showDialog(cmd.view());
-               return DispatchResult(true, true);
-
        case LFUN_INSET_MODIFY: {
                InsetCommandParams p;
-               InsetCommandMailer::string2params(cmd.argument, p);
+               InsetCommandMailer::string2params("bibitem", cmd.argument, p);
                if (p.getCmdName().empty())
-                       return DispatchResult(true, true);
+                       break;
                setParams(p);
-               cmd.view()->update();
-               cmd.view()->fitCursor();
-               return DispatchResult(true, true);
+               cur.bv().update();
+               cur.bv().fitCursor();
+               break;
        }
 
        default:
-               return InsetCommand::priv_dispatch(cmd, idx, pos);
+               InsetCommand::priv_dispatch(cur, cmd);
+               break;
        }
 }
 
@@ -133,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 &)
@@ -144,7 +141,9 @@ int bibitemMaxWidth(BufferView * bv, LyXFont const &)
        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;