/*
* File: math_atom.C
- * Purpose: Wrapper for MathInset *
+ * Purpose: Wrapper for MathInset *
* Author: André Pönitz
* Created: July 2001
*
#include <config.h>
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
#include "math_atom.h"
#include "math_inset.h"
-#include "support/LAssert.h"
+#include "insets/insetbase.h"
#include <utility>
+
MathAtom::MathAtom()
: nucleus_(0)
{}
-MathAtom::MathAtom(MathInset * p)
- : nucleus_(p)
+MathAtom::MathAtom(InsetBase * p)
+ : nucleus_(static_cast<MathInset *>(p))
{}
-MathAtom::MathAtom(MathAtom const & p)
- : nucleus_(p.nucleus_ ? p.nucleus_->clone() : 0)
-{}
+MathAtom::MathAtom(MathAtom const & at)
+ : nucleus_(0)
+{
+ if (at.nucleus_)
+ nucleus_ = static_cast<MathInset*>(at.nucleus_->clone().release());
+}
-void MathAtom::operator=(MathAtom const & p)
+void MathAtom::operator=(MathAtom const & at)
{
- if (&p == this)
+ if (&at == this)
return;
- MathAtom tmp(p);
+ MathAtom tmp(at);
std::swap(tmp.nucleus_, nucleus_);
}
{
delete nucleus_;
}
-
-
-void MathAtom::reset(MathInset * p)
-{
- if (p == nucleus_)
- return;
- delete nucleus_;
- nucleus_ = p;
-}
-
-
-MathInset * MathAtom::nucleus() const
-{
- lyx::Assert(nucleus_);
- return nucleus_;
-}
-
-
-MathInset * MathAtom::operator->() const
-{
- return nucleus();
-}