IU of clone() and getLabelList()

Some mathed internal renamings to prepare further IU


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7173 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2003-06-16 11:49:38 +00:00
parent 1e909d97f0
commit 2a5ab60ce8
184 changed files with 358 additions and 383 deletions

View File

@ -395,7 +395,8 @@ void BufferView::gotoLabel(string const & label)
{ {
for (Buffer::inset_iterator it = buffer()->inset_iterator_begin(); for (Buffer::inset_iterator it = buffer()->inset_iterator_begin();
it != buffer()->inset_iterator_end(); ++it) { it != buffer()->inset_iterator_end(); ++it) {
vector<string> labels = it->getLabelList(); vector<string> labels;
it->getLabelList(labels);
if (find(labels.begin(),labels.end(),label) if (find(labels.begin(),labels.end(),label)
!= labels.end()) { != labels.end()) {
beforeChange(text); beforeChange(text);
@ -660,7 +661,8 @@ bool BufferView::ChangeInsets(Inset::Code code,
bool BufferView::ChangeRefsIfUnique(string const & from, string const & to) bool BufferView::ChangeRefsIfUnique(string const & from, string const & to)
{ {
// Check if the label 'from' appears more than once // Check if the label 'from' appears more than once
vector<string> labels = buffer()->getLabelList(); vector<string> labels;
buffer()->getLabelList(labels);
if (lyx::count(labels.begin(), labels.end(), from) > 1) if (lyx::count(labels.begin(), labels.end(), from) > 1)
return false; return false;

View File

@ -1,3 +1,11 @@
2003-06-16 André Pönitz <poenitz@gmx.net>
* BufferView.C:
* buffer.C:
* buffer.h:
* paragraph.C:
* tabular.[Ch]: IU of clone() and getLabelList();
2003-06-13 André Pönitz <poenitz@gmx.net> 2003-06-13 André Pönitz <poenitz@gmx.net>
* tabular.h: compactification * tabular.h: compactification

View File

@ -2012,24 +2012,23 @@ void Buffer::validate(LaTeXFeatures & features) const
} }
vector<string> const Buffer::getLabelList() const void Buffer::getLabelList(std::vector<string> & list) const
{ {
/// if this is a child document and the parent is already loaded /// if this is a child document and the parent is already loaded
/// Use the parent's list instead [ale990407] /// Use the parent's list instead [ale990407]
if (!params.parentname.empty() if (!params.parentname.empty()
&& bufferlist.exists(params.parentname)) { && bufferlist.exists(params.parentname)) {
Buffer const * tmp = bufferlist.getBuffer(params.parentname); Buffer const * tmp = bufferlist.getBuffer(params.parentname);
if (tmp) if (tmp) {
return tmp->getLabelList(); tmp->getLabelList(list);
return;
}
} }
vector<string> label_list;
for (inset_iterator it = inset_const_iterator_begin(); for (inset_iterator it = inset_const_iterator_begin();
it != inset_const_iterator_end(); ++it) { it != inset_const_iterator_end(); ++it) {
vector<string> const l = it->getLabelList(); it->getLabelList(list);
label_list.insert(label_list.end(), l.begin(), l.end());
} }
return label_list;
} }

View File

@ -256,7 +256,7 @@ public:
/// return all bibkeys from buffer and its childs /// return all bibkeys from buffer and its childs
void fillWithBibKeys(std::vector<std::pair<string, string> > & keys) const; void fillWithBibKeys(std::vector<std::pair<string, string> > & keys) const;
/// ///
std::vector<string> const getLabelList() const; void getLabelList(std::vector<string> &) const;
/** This will clearly have to change later. Later we can have more /** This will clearly have to change later. Later we can have more
than one user per buffer. */ than one user per buffer. */

View File

@ -34,7 +34,9 @@ vector<string> const ControlRef::getLabelList(string const & name) const
Buffer const * buf = bufferlist.getBuffer(MakeAbsPath(name)); Buffer const * buf = bufferlist.getBuffer(MakeAbsPath(name));
if (!buf) if (!buf)
buf = kernel().buffer(); buf = kernel().buffer();
return buf->getLabelList(); vector<string> list;
buf->getLabelList(list);
return list;
} }

View File

@ -1,4 +1,11 @@
2003-06-16 André Pönitz <poenitz@gmx.net>
* insetbase.h: new virtual base function clone()
* *inset*.[Ch]: IU of clone() and getLabelList (i.e. essentially
Inset * clone() -> InsetBase * clone()
2003-06-13 André Pönitz <poenitz@gmx.net> 2003-06-13 André Pönitz <poenitz@gmx.net>
* insettabular.[Ch]: make tabular a proper member * insettabular.[Ch]: make tabular a proper member

View File

@ -15,7 +15,6 @@
#ifndef INSET_H #ifndef INSET_H
#define INSET_H #define INSET_H
#include "LString.h"
#include "LColor.h" #include "LColor.h"
#include "insetbase.h" #include "insetbase.h"
#include "support/types.h" #include "support/types.h"
@ -194,13 +193,6 @@ public:
/// returns LyX code associated with the inset. Used for TOC, ...) /// returns LyX code associated with the inset. Used for TOC, ...)
virtual Inset::Code lyxCode() const { return NO_CODE; } virtual Inset::Code lyxCode() const { return NO_CODE; }
virtual std::vector<string> const getLabelList() const {
return std::vector<string>();
}
///
virtual Inset * clone() const = 0;
/// returns true to override begin and end inset in file /// returns true to override begin and end inset in file
virtual bool directWrite() const; virtual bool directWrite() const;

View File

@ -12,6 +12,8 @@
#ifndef INSETBASE_H #ifndef INSETBASE_H
#define INSETBASE_H #define INSETBASE_H
#include "LString.h"
#include <vector> #include <vector>
class BufferView; class BufferView;
@ -64,6 +66,11 @@ public:
/// type for column numbers /// type for column numbers
typedef size_t col_type; typedef size_t col_type;
/// virtual base class destructor
virtual ~InsetBase() {}
/// replicate ourselves
virtual InsetBase * clone() const = 0;
// the real dispatcher // the real dispatcher
virtual dispatch_result dispatch virtual dispatch_result dispatch
(FuncRequest const & cmd, idx_type & idx, pos_type & pos); (FuncRequest const & cmd, idx_type & idx, pos_type & pos);
@ -75,15 +82,14 @@ public:
/// draw inset and update (xo, yo)-cache /// draw inset and update (xo, yo)-cache
virtual void draw(PainterInfo & pi, int x, int y) const = 0; virtual void draw(PainterInfo & pi, int x, int y) const = 0;
///
virtual ~InsetBase() {}
/// Methods to cache and retrieve a cached BufferView. /// Methods to cache and retrieve a cached BufferView.
virtual void cache(BufferView *) const {} virtual void cache(BufferView *) const {}
/// ///
virtual BufferView * view() const { return 0; } virtual BufferView * view() const { return 0; }
/// request "external features" /// request "external features"
virtual void validate(LaTeXFeatures &) const {} virtual void validate(LaTeXFeatures &) const {}
/// fill in all labels in the inset
virtual void getLabelList(std::vector<string> &) const {}
}; };
#endif #endif

View File

@ -43,7 +43,7 @@ InsetBibitem::~InsetBibitem()
} }
Inset * InsetBibitem::clone() const InsetBase * InsetBibitem::clone() const
{ {
InsetBibitem * b = new InsetBibitem(params()); InsetBibitem * b = new InsetBibitem(params());
b->setCounter(counter); b->setCounter(counter);

View File

@ -29,7 +29,7 @@ public:
/// ///
~InsetBibitem(); ~InsetBibitem();
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
virtual dispatch_result localDispatch(FuncRequest const & cmd); virtual dispatch_result localDispatch(FuncRequest const & cmd);
/** Currently \bibitem is used as a LyX2.x command, /** Currently \bibitem is used as a LyX2.x command,

View File

@ -27,7 +27,7 @@ public:
/// ///
~InsetBibtex(); ~InsetBibtex();
/// ///
Inset * clone() const { InsetBase * clone() const {
return new InsetBibtex(params()); return new InsetBibtex(params());
} }
/// small wrapper for the time being /// small wrapper for the time being

View File

@ -25,7 +25,7 @@ public:
/// ///
~InsetCitation(); ~InsetCitation();
/// ///
Inset * clone() const { InsetBase * clone() const {
return new InsetCitation(params()); return new InsetCitation(params());
} }
/// ///

View File

@ -481,9 +481,9 @@ void InsetCollapsable::resizeLyXText(BufferView * bv, bool force) const
} }
vector<string> const InsetCollapsable::getLabelList() const void InsetCollapsable::getLabelList(std::vector<string> & list) const
{ {
return inset.getLabelList(); inset.getLabelList(list);
} }

View File

@ -117,7 +117,7 @@ public:
/// ///
void resizeLyXText(BufferView *, bool force = false) const; void resizeLyXText(BufferView *, bool force = false) const;
/// ///
std::vector<string> const getLabelList() const; void getLabelList(std::vector<string> &) const;
/// ///
bool nodraw() const; bool nodraw() const;
/// ///

View File

@ -40,7 +40,7 @@ InsetEnvironment::InsetEnvironment(InsetEnvironment const & in)
{} {}
Inset * InsetEnvironment::clone() const InsetBase * InsetEnvironment::clone() const
{ {
return new InsetEnvironment(*this); return new InsetEnvironment(*this);
} }

View File

@ -26,7 +26,7 @@ public:
/// ///
void read(Buffer const * buf, LyXLex & lex); void read(Buffer const * buf, LyXLex & lex);
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
Inset::Code lyxCode() const { return Inset::ENVIRONMENT_CODE; } Inset::Code lyxCode() const { return Inset::ENVIRONMENT_CODE; }
/// ///

View File

@ -54,7 +54,7 @@ public:
/// ///
EDITABLE editable() const { return IS_EDITABLE; } EDITABLE editable() const { return IS_EDITABLE; }
/// ///
Inset * clone() const { InsetBase * clone() const {
return new InsetError(contents); return new InsetError(contents);
} }
/// ///

View File

@ -70,7 +70,7 @@ InsetERT::InsetERT(InsetERT const & in)
} }
Inset * InsetERT::clone() const InsetBase * InsetERT::clone() const
{ {
return new InsetERT(*this); return new InsetERT(*this);
} }

View File

@ -40,7 +40,7 @@ public:
/// ///
InsetERT(InsetERT const &); InsetERT(InsetERT const &);
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
InsetERT(BufferParams const &, InsetERT(BufferParams const &,
Language const *, string const & contents, bool collapsed); Language const *, string const & contents, bool collapsed);

View File

@ -99,7 +99,7 @@ InsetExternal::InsetExternal(InsetExternal const & other)
} }
Inset * InsetExternal::clone() const InsetBase * InsetExternal::clone() const
{ {
InsetExternal * inset = new InsetExternal(*this); InsetExternal * inset = new InsetExternal(*this);
return inset; return inset;

View File

@ -83,7 +83,7 @@ public:
virtual Inset::Code lyxCode() const { return EXTERNAL_CODE; } virtual Inset::Code lyxCode() const { return EXTERNAL_CODE; }
/// ///
virtual Inset * clone() const; virtual InsetBase * clone() const;
/// Set the inset parameters. /// Set the inset parameters.
virtual void setParams(Params const &, string const & filepath); virtual void setParams(Params const &, string const & filepath);

View File

@ -259,7 +259,7 @@ void InsetFloat::validate(LaTeXFeatures & features) const
} }
Inset * InsetFloat::clone() const InsetBase * InsetFloat::clone() const
{ {
return new InsetFloat(*this); return new InsetFloat(*this);
} }

View File

@ -53,7 +53,7 @@ public:
/// ///
void validate(LaTeXFeatures & features) const; void validate(LaTeXFeatures & features) const;
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
Inset::Code lyxCode() const { return Inset::FLOAT_CODE; } Inset::Code lyxCode() const { return Inset::FLOAT_CODE; }
/// ///

View File

@ -26,7 +26,7 @@ public:
/// ///
~InsetFloatList(); ~InsetFloatList();
/// ///
Inset * clone() const { InsetBase * clone() const {
return new InsetFloatList(getCmdName()); return new InsetFloatList(getCmdName());
} }
/// ///

View File

@ -46,7 +46,7 @@ InsetFoot::InsetFoot(InsetFoot const & in)
} }
Inset * InsetFoot::clone() const InsetBase * InsetFoot::clone() const
{ {
return new InsetFoot(*this); return new InsetFoot(*this);
} }

View File

@ -27,7 +27,7 @@ public:
/// ///
InsetFoot(InsetFoot const &); InsetFoot(InsetFoot const &);
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
Inset::Code lyxCode() const { return Inset::FOOT_CODE; } Inset::Code lyxCode() const { return Inset::FOOT_CODE; }
/// ///

View File

@ -151,7 +151,7 @@ InsetGraphics::InsetGraphics(InsetGraphics const & ig)
} }
Inset * InsetGraphics::clone() const InsetBase * InsetGraphics::clone() const
{ {
return new InsetGraphics(*this); return new InsetGraphics(*this);
} }

View File

@ -68,7 +68,7 @@ public:
Inset::Code lyxCode() const { return Inset::GRAPHICS_CODE; } Inset::Code lyxCode() const { return Inset::GRAPHICS_CODE; }
/// ///
virtual Inset * clone() const; virtual InsetBase * clone() const;
/** Set the inset parameters, used by the GUIndependent dialog. /** Set the inset parameters, used by the GUIndependent dialog.
Return true of new params are different from what was so far. Return true of new params are different from what was so far.

View File

@ -20,7 +20,7 @@ public:
/// ///
InsetHFill(); InsetHFill();
/// ///
virtual Inset * clone() const { virtual InsetBase * clone() const {
return new InsetHFill; return new InsetHFill;
} }
/// ///

View File

@ -203,7 +203,7 @@ void InsetInclude::set(Params const & p)
} }
Inset * InsetInclude::clone() const InsetBase * InsetInclude::clone() const
{ {
//Params p(params_); //Params p(params_);
//p.masterFilename_ = buffer.fileName(); //p.masterFilename_ = buffer.fileName();
@ -489,18 +489,14 @@ void InsetInclude::validate(LaTeXFeatures & features) const
} }
vector<string> const InsetInclude::getLabelList() const void InsetInclude::getLabelList(std::vector<string> & list) const
{ {
vector<string> l;
if (loadIfNeeded()) { if (loadIfNeeded()) {
Buffer * tmp = bufferlist.getBuffer(getFileName()); Buffer * tmp = bufferlist.getBuffer(getFileName());
tmp->setParentName(""); tmp->setParentName("");
l = tmp->getLabelList(); tmp->getLabelList(list);
tmp->setParentName(getMasterFilename()); tmp->setParentName(getMasterFilename());
} }
return l;
} }

View File

@ -74,11 +74,11 @@ public:
void set(Params const & params); void set(Params const & params);
/// ///
virtual Inset * clone() const; virtual InsetBase * clone() const;
/// ///
Inset::Code lyxCode() const { return Inset::INCLUDE_CODE; } Inset::Code lyxCode() const { return Inset::INCLUDE_CODE; }
/// This returns the list of labels on the child buffer /// This returns the list of labels on the child buffer
std::vector<string> const getLabelList() const; void getLabelList(std::vector<string> &) const;
/// This returns the list of bibkeys on the child buffer /// This returns the list of bibkeys on the child buffer
void fillWithBibKeys(std::vector<std::pair<string,string> > & keys) const; void fillWithBibKeys(std::vector<std::pair<string,string> > & keys) const;
/// ///

View File

@ -26,7 +26,7 @@ public:
/// ///
~InsetIndex(); ~InsetIndex();
/// ///
virtual Inset * clone() const { virtual InsetBase * clone() const {
return new InsetIndex(params()); return new InsetIndex(params());
} }
/// ///
@ -49,7 +49,7 @@ public:
/// ///
~InsetPrintIndex(); ~InsetPrintIndex();
/// ///
Inset * clone() const { InsetBase * clone() const {
return new InsetPrintIndex(params()); return new InsetPrintIndex(params());
} }
/// ///

View File

@ -39,14 +39,13 @@ InsetLabel::InsetLabel(InsetCommandParams const & p)
InsetLabel::~InsetLabel() InsetLabel::~InsetLabel()
{ {
InsetCommandMailer mailer("label", *this); InsetCommandMailer("label", *this).hideDialog();
mailer.hideDialog();
} }
vector<string> const InsetLabel::getLabelList() const void InsetLabel::getLabelList(std::vector<string> & list) const
{ {
return vector<string>(1, getContents()); list.push_back(getContents());
} }

View File

@ -22,7 +22,7 @@ public:
/// ///
~InsetLabel(); ~InsetLabel();
/// ///
virtual Inset * clone() const { virtual InsetBase * clone() const {
return new InsetLabel(params()); return new InsetLabel(params());
} }
/// ///
@ -34,7 +34,7 @@ public:
/// ///
Inset::Code lyxCode() const { return Inset::LABEL_CODE; } Inset::Code lyxCode() const { return Inset::LABEL_CODE; }
/// ///
std::vector<string> const getLabelList() const; void getLabelList(std::vector<string> &) const;
/// ///
int latex(Buffer const *, std::ostream &, int latex(Buffer const *, std::ostream &,
LatexRunParams const &) const; LatexRunParams const &) const;

View File

@ -647,7 +647,7 @@ bool InsetLatexAccent::directWrite() const
} }
Inset * InsetLatexAccent::clone() const InsetBase * InsetLatexAccent::clone() const
{ {
return new InsetLatexAccent(contents); return new InsetLatexAccent(contents);
} }

View File

@ -57,7 +57,7 @@ public:
/// ///
bool directWrite() const; bool directWrite() const;
/// ///
virtual Inset * clone() const; virtual InsetBase * clone() const;
/// ///
Inset::Code lyxCode()const; Inset::Code lyxCode()const;
/// ///

View File

@ -41,7 +41,7 @@ InsetMarginal::InsetMarginal(InsetMarginal const & in)
} }
Inset * InsetMarginal::clone() const InsetBase * InsetMarginal::clone() const
{ {
return new InsetMarginal(*this); return new InsetMarginal(*this);
} }

View File

@ -26,7 +26,7 @@ public:
/// ///
InsetMarginal(InsetMarginal const &); InsetMarginal(InsetMarginal const &);
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
Inset::Code lyxCode() const { return Inset::MARGIN_CODE; } Inset::Code lyxCode() const { return Inset::MARGIN_CODE; }
/// ///

View File

@ -93,7 +93,7 @@ InsetMinipage::InsetMinipage(InsetMinipage const & in)
{} {}
Inset * InsetMinipage::clone() const InsetBase * InsetMinipage::clone() const
{ {
return new InsetMinipage(*this); return new InsetMinipage(*this);
} }

View File

@ -66,7 +66,7 @@ public:
/// ///
void read(Buffer const * buf, LyXLex & lex); void read(Buffer const * buf, LyXLex & lex);
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo &, Dimension &) const; void metrics(MetricsInfo &, Dimension &) const;
/// ///

View File

@ -20,7 +20,7 @@ public:
InsetNewline() {} InsetNewline() {}
virtual Inset * clone() const { virtual InsetBase * clone() const {
return new InsetNewline; return new InsetNewline;
} }

View File

@ -53,7 +53,7 @@ InsetNote::InsetNote(InsetNote const & in)
} }
Inset * InsetNote::clone() const InsetBase * InsetNote::clone() const
{ {
return new InsetNote(*this); return new InsetNote(*this);
} }

View File

@ -25,7 +25,7 @@ public:
/// ///
InsetNote(InsetNote const &); InsetNote(InsetNote const &);
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
string const editMessage() const; string const editMessage() const;
/// ///

View File

@ -47,7 +47,7 @@ InsetOptArg::InsetOptArg(InsetOptArg const & in)
} }
Inset * InsetOptArg::clone() const InsetBase * InsetOptArg::clone() const
{ {
return new InsetOptArg(*this); return new InsetOptArg(*this);
} }

View File

@ -27,7 +27,7 @@ public:
InsetOptArg(InsetOptArg const &); InsetOptArg(InsetOptArg const &);
/// make a duplicate of this inset /// make a duplicate of this inset
Inset * clone() const; InsetBase * clone() const;
/// this inset is editable /// this inset is editable
EDITABLE editable() const { return IS_EDITABLE; } EDITABLE editable() const { return IS_EDITABLE; }
/// code of the inset /// code of the inset

View File

@ -351,7 +351,7 @@ void InsetQuotes::validate(LaTeXFeatures & features) const
} }
Inset * InsetQuotes::clone() const InsetBase * InsetQuotes::clone() const
{ {
return new InsetQuotes(language_, side_, times_); return new InsetQuotes(language_, side_, times_);
} }

View File

@ -68,7 +68,7 @@ public:
/// Create the right quote inset after character c /// Create the right quote inset after character c
InsetQuotes(char c, BufferParams const & params); InsetQuotes(char c, BufferParams const & params);
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo &, Dimension &) const; void metrics(MetricsInfo &, Dimension &) const;
/// ///

View File

@ -42,7 +42,7 @@ public:
~InsetRef(); ~InsetRef();
/// ///
virtual Inset * clone() const { virtual InsetBase * clone() const {
return new InsetRef(*this); return new InsetRef(*this);
} }
/// ///

View File

@ -250,7 +250,7 @@ int InsetSpace::docbook(Buffer const *, ostream & os, bool) const
} }
Inset * InsetSpace::clone() const InsetBase * InsetSpace::clone() const
{ {
return new InsetSpace(kind_); return new InsetSpace(kind_);
} }

View File

@ -71,7 +71,7 @@ public:
/// ///
int docbook(Buffer const *, std::ostream &, bool mixcont) const; int docbook(Buffer const *, std::ostream &, bool mixcont) const;
/// ///
virtual Inset * clone() const; virtual InsetBase * clone() const;
/// ///
Inset::Code lyxCode() const { return Inset::SPACE_CODE; } Inset::Code lyxCode() const { return Inset::SPACE_CODE; }
/// We don't need \begin_inset and \end_inset /// We don't need \begin_inset and \end_inset

View File

@ -238,7 +238,7 @@ int InsetSpecialChar::docbook(Buffer const *, ostream & os, bool) const
} }
Inset * InsetSpecialChar::clone() const InsetBase * InsetSpecialChar::clone() const
{ {
return new InsetSpecialChar(kind_); return new InsetSpecialChar(kind_);
} }

View File

@ -63,7 +63,7 @@ public:
/// ///
int docbook(Buffer const *, std::ostream &, bool mixcont) const; int docbook(Buffer const *, std::ostream &, bool mixcont) const;
/// ///
virtual Inset * clone() const; virtual InsetBase * clone() const;
/// ///
Inset::Code lyxCode() const { return Inset::SPECIALCHAR_CODE; } Inset::Code lyxCode() const { return Inset::SPECIALCHAR_CODE; }
/// We don't need \begin_inset and \end_inset /// We don't need \begin_inset and \end_inset

View File

@ -196,7 +196,7 @@ InsetTabular::~InsetTabular()
} }
Inset * InsetTabular::clone() const InsetBase * InsetTabular::clone() const
{ {
return new InsetTabular(*this); return new InsetTabular(*this);
} }
@ -2351,9 +2351,9 @@ FuncStatus InsetTabular::getStatus(string const & what) const
} }
vector<string> const InsetTabular::getLabelList() const void InsetTabular::getLabelList(std::vector<string> & list) const
{ {
return tabular.getLabelList(); tabular.getLabelList(list);
} }

View File

@ -77,7 +77,7 @@ public:
/// ///
~InsetTabular(); ~InsetTabular();
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
void read(Buffer const *, LyXLex &); void read(Buffer const *, LyXLex &);
/// ///
@ -164,7 +164,7 @@ public:
/// ///
FuncStatus getStatus(string const & argument) const; FuncStatus getStatus(string const & argument) const;
/// ///
std::vector<string> const getLabelList() const; void getLabelList(std::vector<string> &) const;
/// ///
void nodraw(bool b) const { void nodraw(bool b) const {
UpdatableInset::nodraw(b); UpdatableInset::nodraw(b);

View File

@ -193,12 +193,6 @@ void InsetText::init(InsetText const * ins)
} }
InsetText::~InsetText()
{
paragraphs.clear();
}
void InsetText::clear(bool just_mark_erased) void InsetText::clear(bool just_mark_erased)
{ {
if (just_mark_erased) { if (just_mark_erased) {
@ -224,7 +218,7 @@ void InsetText::clear(bool just_mark_erased)
} }
Inset * InsetText::clone() const InsetBase * InsetText::clone() const
{ {
return new InsetText(*this); return new InsetText(*this);
} }
@ -1809,21 +1803,16 @@ bool InsetText::showInsetDialog(BufferView * bv) const
} }
vector<string> const InsetText::getLabelList() const void InsetText::getLabelList(std::vector<string> & list) const
{ {
vector<string> label_list;
ParagraphList::const_iterator pit = paragraphs.begin(); ParagraphList::const_iterator pit = paragraphs.begin();
ParagraphList::const_iterator pend = paragraphs.end(); ParagraphList::const_iterator pend = paragraphs.end();
for (; pit != pend; ++pit) { for (; pit != pend; ++pit) {
InsetList::const_iterator beg = pit->insetlist.begin(); InsetList::const_iterator beg = pit->insetlist.begin();
InsetList::const_iterator end = pit->insetlist.end(); InsetList::const_iterator end = pit->insetlist.end();
for (; beg != end; ++beg) { for (; beg != end; ++beg)
vector<string> const l = beg->inset->getLabelList(); beg->inset->getLabelList(list);
label_list.insert(label_list.end(), l.begin(), l.end());
}
} }
return label_list;
} }

View File

@ -72,12 +72,9 @@ public:
/// ///
InsetText(BufferParams const &); InsetText(BufferParams const &);
/// ///
explicit explicit InsetText(InsetText const &);
InsetText(InsetText const &);
/// ///
~InsetText(); InsetBase * clone() const;
///
Inset * clone() const;
/// ///
InsetText & operator=(InsetText const & it); InsetText & operator=(InsetText const & it);
/// empty inset to empty par, or just mark as erased /// empty inset to empty par, or just mark as erased
@ -172,7 +169,7 @@ public:
/// ///
bool showInsetDialog(BufferView *) const; bool showInsetDialog(BufferView *) const;
/// ///
std::vector<string> const getLabelList() const; void getLabelList(std::vector<string> &) const;
/// ///
bool nodraw() const; bool nodraw() const;
/// ///

View File

@ -53,7 +53,7 @@ void InsetTheorem::write(Buffer const * buf, ostream & os) const
} }
Inset * InsetTheorem::clone() const InsetBase * InsetTheorem::clone() const
{ {
#ifdef WITH_WARNINGS #ifdef WITH_WARNINGS
#warning Is this inset used? If YES this is WRONG!!! (Jug) #warning Is this inset used? If YES this is WRONG!!! (Jug)

View File

@ -25,7 +25,7 @@ public:
/// ///
void write(Buffer const * buf, std::ostream & os) const; void write(Buffer const * buf, std::ostream & os) const;
/// ///
virtual Inset * clone() const; virtual InsetBase * clone() const;
/// ///
Inset::Code lyxCode() const { return Inset::THEOREM_CODE; } Inset::Code lyxCode() const { return Inset::THEOREM_CODE; }
/// ///

View File

@ -24,7 +24,7 @@ public:
/// ///
~InsetTOC(); ~InsetTOC();
/// ///
virtual Inset * clone() const { virtual InsetBase * clone() const {
return new InsetTOC(params()); return new InsetTOC(params());
} }
/// ///

View File

@ -27,7 +27,7 @@ public:
/// ///
~InsetUrl(); ~InsetUrl();
/// ///
virtual Inset * clone() const { virtual InsetBase * clone() const {
return new InsetUrl(params()); return new InsetUrl(params());
} }
/// ///

View File

@ -167,7 +167,7 @@ void InsetWrap::validate(LaTeXFeatures & features) const
} }
Inset * InsetWrap::clone() const InsetBase * InsetWrap::clone() const
{ {
return new InsetWrap(*this); return new InsetWrap(*this);
} }

View File

@ -49,7 +49,7 @@ public:
/// ///
void validate(LaTeXFeatures & features) const; void validate(LaTeXFeatures & features) const;
/// ///
Inset * clone() const; InsetBase * clone() const;
/// ///
Inset::Code lyxCode() const { return Inset::WRAP_CODE; } Inset::Code lyxCode() const { return Inset::WRAP_CODE; }
/// ///

View File

@ -1,24 +1,10 @@
2003-06-11 Angus Leeming <leeming@lyx.org>
* button_inset.[Ch]: removed. 2003-06-16 André Pönitz <poenitz@gmx.net>
* Makefile.am: remove button_inset.[Ch].
* command_inset.[Ch]: no longer derived from ButtonInset. * math_*inset.[Ch]: IU of clone()
Instead has a ButtonRenderer member variable.
* ref_inset.[Ch]: associated changes. * math_cursorpos.[Ch]:
* math_cursor.[Ch]: rename MathCursorPos -> CursorPos, par_ -> inset_
2003-06-03 John Levon <levon@movementarian.org>
* formula.[Ch]:
* formulabase.h:
* formulamacro.[Ch]: clone() doesn't take a Buffer anymore
2003-06-02 André Pönitz <poenitz@gmx.net>
* math_*.[Ch]: finish unified two-stage drawing
* math_inset.h: move validate to insetbase.h
2003-05-28 André Pönitz <poenitz@gmx.net> 2003-05-28 André Pönitz <poenitz@gmx.net>

View File

@ -14,7 +14,7 @@ CommandInset::CommandInset(string const & name)
} }
MathInset * CommandInset::clone() const InsetBase * CommandInset::clone() const
{ {
return new CommandInset(*this); return new CommandInset(*this);
} }

View File

@ -25,7 +25,7 @@ public:
/// ///
explicit CommandInset(string const & name); explicit CommandInset(string const & name);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///

View File

@ -122,7 +122,7 @@ void InsetFormulaBase::handleFont
// this whole function is a hack and won't work for incremental font // this whole function is a hack and won't work for incremental font
// changes... // changes...
bv->lockedInsetStoreUndo(Undo::EDIT); bv->lockedInsetStoreUndo(Undo::EDIT);
if (mathcursor->par()->name() == font) if (mathcursor->inset()->name() == font)
mathcursor->handleFont(font); mathcursor->handleFont(font);
else { else {
mathcursor->handleNest(createMathInset(font)); mathcursor->handleNest(createMathInset(font));

View File

@ -18,7 +18,7 @@ MathAMSArrayInset::MathAMSArrayInset(string const & name)
{} {}
MathInset * MathAMSArrayInset::clone() const InsetBase * MathAMSArrayInset::clone() const
{ {
return new MathAMSArrayInset(*this); return new MathAMSArrayInset(*this);
} }

View File

@ -20,7 +20,7 @@ public:
/// ///
MathAMSArrayInset(string const & name); MathAMSArrayInset(string const & name);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///

View File

@ -57,7 +57,7 @@ MathArrayInset::MathArrayInset(string const & name, string const & str)
} }
MathInset * MathArrayInset::clone() const InsetBase * MathArrayInset::clone() const
{ {
return new MathArrayInset(*this); return new MathArrayInset(*this);
} }

View File

@ -25,7 +25,7 @@ public:
/// convienience constructor from whitespace/newline seperated data /// convienience constructor from whitespace/newline seperated data
MathArrayInset(string const &, string const & str); MathArrayInset(string const &, string const & str);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///

View File

@ -14,9 +14,9 @@
#include <config.h> #include <config.h>
#include "math_atom.h" #include "math_atom.h"
#include "math_inset.h" #include "math_inset.h"
#include "insets/insetbase.h"
#include <utility> #include <utility>
@ -26,13 +26,13 @@ MathAtom::MathAtom()
{} {}
MathAtom::MathAtom(MathInset * p) MathAtom::MathAtom(InsetBase * p)
: nucleus_(p) : nucleus_(static_cast<MathInset *>(p))
{} {}
MathAtom::MathAtom(MathAtom const & at) MathAtom::MathAtom(MathAtom const & at)
: nucleus_(at.nucleus_ ? at.nucleus_->clone() : 0) : nucleus_(at.nucleus_ ? static_cast<MathInset *>(at.nucleus_->clone()) : 0)
{} {}

View File

@ -35,6 +35,7 @@ Andre'
*/ */
class InsetBase;
class MathInset; class MathInset;
class MathAtom { class MathAtom {
@ -43,7 +44,7 @@ public:
// std::containers // std::containers
MathAtom(); MathAtom();
/// the "real constructor" /// the "real constructor"
explicit MathAtom(MathInset * p); explicit MathAtom(InsetBase * p);
/// copy constructor, invokes nucleus_->clone() /// copy constructor, invokes nucleus_->clone()
MathAtom(MathAtom const &); MathAtom(MathAtom const &);
/// we really need to clean up /// we really need to clean up

View File

@ -12,7 +12,7 @@ MathBigInset::MathBigInset(string const & name, string const & delim)
{} {}
MathInset * MathBigInset::clone() const InsetBase * MathBigInset::clone() const
{ {
return new MathBigInset(*this); return new MathBigInset(*this);
} }

View File

@ -24,7 +24,7 @@ public:
/// ///
MathBigInset(string const & name, string const & delim); MathBigInset(string const & name, string const & delim);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///

View File

@ -16,7 +16,7 @@ MathBinaryOpInset::MathBinaryOpInset(char op)
{} {}
MathInset * MathBinaryOpInset::clone() const InsetBase * MathBinaryOpInset::clone() const
{ {
return new MathBinaryOpInset(*this); return new MathBinaryOpInset(*this);
} }

View File

@ -16,7 +16,7 @@ public:
/// ///
explicit MathBinaryOpInset(char op); explicit MathBinaryOpInset(char op);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void draw(PainterInfo &, int x, int y) const; void draw(PainterInfo &, int x, int y) const;
/// ///

View File

@ -14,7 +14,7 @@ MathBinomInset::MathBinomInset(bool choose)
{} {}
MathInset * MathBinomInset::clone() const InsetBase * MathBinomInset::clone() const
{ {
return new MathBinomInset(*this); return new MathBinomInset(*this);
} }

View File

@ -13,7 +13,7 @@ public:
/// ///
explicit MathBinomInset(bool choose = false); explicit MathBinomInset(bool choose = false);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void write(WriteStream & os) const; void write(WriteStream & os) const;
/// ///

View File

@ -12,7 +12,7 @@ MathBoxInset::MathBoxInset(string const & name)
{} {}
MathInset * MathBoxInset::clone() const InsetBase * MathBoxInset::clone() const
{ {
return new MathBoxInset(*this); return new MathBoxInset(*this);
} }

View File

@ -15,7 +15,7 @@ public:
/// ///
explicit MathBoxInset(string const & name); explicit MathBoxInset(string const & name);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
mode_type currentMode() const { return TEXT_MODE; } mode_type currentMode() const { return TEXT_MODE; }
/// ///

View File

@ -21,7 +21,7 @@ MathBraceInset::MathBraceInset(MathArray const & ar)
} }
MathInset * MathBraceInset::clone() const InsetBase * MathBraceInset::clone() const
{ {
return new MathBraceInset(*this); return new MathBraceInset(*this);
} }

View File

@ -18,7 +18,7 @@ public:
/// ///
MathBraceInset(MathArray const & ar); MathBraceInset(MathArray const & ar);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// we write extra braces in any case... /// we write extra braces in any case...
bool extraBraces() const { return true; } bool extraBraces() const { return true; }
/// ///

View File

@ -14,7 +14,7 @@ MathCasesInset::MathCasesInset(row_type n)
{} {}
MathInset * MathCasesInset::clone() const InsetBase * MathCasesInset::clone() const
{ {
return new MathCasesInset(*this); return new MathCasesInset(*this);
} }

View File

@ -12,7 +12,7 @@ public:
/// ///
explicit MathCasesInset(row_type rows = 1u); explicit MathCasesInset(row_type rows = 1u);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///

View File

@ -49,7 +49,7 @@ MathCharInset::MathCharInset(char c)
MathInset * MathCharInset::clone() const InsetBase * MathCharInset::clone() const
{ {
return new MathCharInset(*this); return new MathCharInset(*this);
} }

View File

@ -16,7 +16,7 @@ public:
/// ///
explicit MathCharInset(char c); explicit MathCharInset(char c);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///

View File

@ -21,7 +21,7 @@ MathCommentInset::MathCommentInset(string const & str)
} }
MathInset * MathCommentInset::clone() const InsetBase * MathCommentInset::clone() const
{ {
return new MathCommentInset(*this); return new MathCommentInset(*this);
} }

View File

@ -20,7 +20,7 @@ public:
/// ///
explicit MathCommentInset(string const &); explicit MathCommentInset(string const &);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///

View File

@ -80,7 +80,7 @@ MathCursor::~MathCursor()
void MathCursor::push(MathAtom & t) void MathCursor::push(MathAtom & t)
{ {
Cursor_.push_back(MathCursorPos(t.nucleus())); Cursor_.push_back(CursorPos(t.nucleus()));
} }
@ -106,10 +106,10 @@ bool MathCursor::popLeft()
//lyxerr << "Leaving atom to the left\n"; //lyxerr << "Leaving atom to the left\n";
if (depth() <= 1) { if (depth() <= 1) {
if (depth() == 1) if (depth() == 1)
par()->notifyCursorLeaves(idx()); inset()->notifyCursorLeaves(idx());
return false; return false;
} }
par()->notifyCursorLeaves(idx()); inset()->notifyCursorLeaves(idx());
Cursor_.pop_back(); Cursor_.pop_back();
return true; return true;
} }
@ -117,13 +117,13 @@ bool MathCursor::popLeft()
bool MathCursor::popRight() bool MathCursor::popRight()
{ {
//lyxerr << "Leaving atom "; par()->write(cerr, false); cerr << " right\n"; //lyxerr << "Leaving atom "; inset()->write(cerr, false); cerr << " right\n";
if (depth() <= 1) { if (depth() <= 1) {
if (depth() == 1) if (depth() == 1)
par()->notifyCursorLeaves(idx()); inset()->notifyCursorLeaves(idx());
return false; return false;
} }
par()->notifyCursorLeaves(idx()); inset()->notifyCursorLeaves(idx());
Cursor_.pop_back(); Cursor_.pop_back();
posRight(); posRight();
return true; return true;
@ -151,7 +151,7 @@ bool MathCursor::popRight()
bool MathCursor::isInside(MathInset const * p) const bool MathCursor::isInside(MathInset const * p) const
{ {
for (unsigned i = 0; i < depth(); ++i) for (unsigned i = 0; i < depth(); ++i)
if (Cursor_[i].par_ == p) if (Cursor_[i].inset_ == p)
return true; return true;
return false; return false;
} }
@ -169,7 +169,7 @@ bool MathCursor::openable(MathAtom const & t, bool sel) const
// we can't move into anything new during selection // we can't move into anything new during selection
if (depth() == Anchor_.size()) if (depth() == Anchor_.size())
return false; return false;
if (t.operator->() != Anchor_[depth()].par_) if (t.operator->() != Anchor_[depth()].inset_)
return false; return false;
} }
return true; return true;
@ -178,7 +178,7 @@ bool MathCursor::openable(MathAtom const & t, bool sel) const
bool MathCursor::inNucleus() const bool MathCursor::inNucleus() const
{ {
return par()->asScriptInset() && idx() == 2; return inset()->asScriptInset() && idx() == 2;
} }
@ -244,7 +244,7 @@ void MathCursor::first()
{ {
Cursor_.clear(); Cursor_.clear();
push(formula_->par()); push(formula_->par());
par()->idxFirst(idx(), pos()); inset()->idxFirst(idx(), pos());
} }
@ -252,7 +252,7 @@ void MathCursor::last()
{ {
Cursor_.clear(); Cursor_.clear();
push(formula_->par()); push(formula_->par());
par()->idxLast(idx(), pos()); inset()->idxLast(idx(), pos());
} }
@ -265,7 +265,7 @@ bool positionable
// anchor might be deeper, should have same path then // anchor might be deeper, should have same path then
for (MathIterator::size_type i = 0; i < cursor.size(); ++i) for (MathIterator::size_type i = 0; i < cursor.size(); ++i)
if (cursor[i].par_ != anchor[i].par_) if (cursor[i].inset_ != anchor[i].inset_)
return false; return false;
// position should be ok. // position should be ok.
@ -296,7 +296,7 @@ bool MathCursor::home(bool sel)
autocorrect_ = false; autocorrect_ = false;
selHandle(sel); selHandle(sel);
macroModeClose(); macroModeClose();
if (!par()->idxHome(idx(), pos())) if (!inset()->idxHome(idx(), pos()))
return popLeft(); return popLeft();
dump("home 2"); dump("home 2");
targetx_ = -1; // "no target" targetx_ = -1; // "no target"
@ -310,7 +310,7 @@ bool MathCursor::end(bool sel)
autocorrect_ = false; autocorrect_ = false;
selHandle(sel); selHandle(sel);
macroModeClose(); macroModeClose();
if (!par()->idxEnd(idx(), pos())) if (!inset()->idxEnd(idx(), pos()))
return popRight(); return popRight();
dump("end 2"); dump("end 2");
targetx_ = -1; // "no target" targetx_ = -1; // "no target"
@ -430,8 +430,8 @@ bool MathCursor::backspace()
} }
if (pos() == 0) { if (pos() == 0) {
if (par()->ncols() == 1 && if (inset()->ncols() == 1 &&
par()->nrows() == 1 && inset()->nrows() == 1 &&
depth() == 1 && depth() == 1 &&
size() == 0) size() == 0)
return false; return false;
@ -466,15 +466,15 @@ bool MathCursor::erase()
// delete empty cells if possible // delete empty cells if possible
if (array().empty()) if (array().empty())
if (par()->idxDelete(idx())) if (inset()->idxDelete(idx()))
return true; return true;
// old behaviour when in last position of cell // old behaviour when in last position of cell
if (pos() == size()) { if (pos() == size()) {
if (par()->ncols() == 1 && par()->nrows() == 1 && depth() == 1 && size() == 0) if (inset()->ncols() == 1 && inset()->nrows() == 1 && depth() == 1 && size() == 0)
return false; return false;
else{ else{
par()->idxGlue(idx()); inset()->idxGlue(idx());
return true; return true;
} }
} }
@ -623,10 +623,10 @@ void MathCursor::drawSelection(PainterInfo & pi) const
{ {
if (!selection_) if (!selection_)
return; return;
MathCursorPos i1; CursorPos i1;
MathCursorPos i2; CursorPos i2;
getSelection(i1, i2); getSelection(i1, i2);
i1.par_->drawSelection(pi, i1.idx_, i1.pos_, i2.idx_, i2.pos_); i1.inset_->drawSelection(pi, i1.idx_, i1.pos_, i2.idx_, i2.pos_);
} }
@ -641,7 +641,7 @@ void MathCursor::handleNest(MathAtom const & a)
void MathCursor::getPos(int & x, int & y) const void MathCursor::getPos(int & x, int & y) const
{ {
par()->getPos(idx(), pos(), x, y); inset()->getPos(idx(), pos(), x, y);
} }
@ -655,9 +655,9 @@ int MathCursor::targetX() const
} }
MathInset * MathCursor::par() const MathInset * MathCursor::inset() const
{ {
return cursor().par_; return cursor().inset_;
} }
@ -739,7 +739,7 @@ bool MathCursor::selection() const
MathGridInset * MathCursor::enclosingGrid(MathCursor::idx_type & idx) const MathGridInset * MathCursor::enclosingGrid(MathCursor::idx_type & idx) const
{ {
for (MathInset::difference_type i = depth() - 1; i >= 0; --i) { for (MathInset::difference_type i = depth() - 1; i >= 0; --i) {
MathGridInset * p = Cursor_[i].par_->asGridInset(); MathGridInset * p = Cursor_[i].inset_->asGridInset();
if (p) { if (p) {
idx = Cursor_[i].idx_; idx = Cursor_[i].idx_;
return p; return p;
@ -751,21 +751,21 @@ MathGridInset * MathCursor::enclosingGrid(MathCursor::idx_type & idx) const
void MathCursor::popToHere(MathInset const * p) void MathCursor::popToHere(MathInset const * p)
{ {
while (depth() && Cursor_.back().par_ != p) while (depth() && Cursor_.back().inset_ != p)
Cursor_.pop_back(); Cursor_.pop_back();
} }
void MathCursor::popToEnclosingGrid() void MathCursor::popToEnclosingGrid()
{ {
while (depth() && !Cursor_.back().par_->asGridInset()) while (depth() && !Cursor_.back().inset_->asGridInset())
Cursor_.pop_back(); Cursor_.pop_back();
} }
void MathCursor::popToEnclosingHull() void MathCursor::popToEnclosingHull()
{ {
while (depth() && !Cursor_.back().par_->asHullInset()) while (depth() && !Cursor_.back().inset_->asHullInset())
Cursor_.pop_back(); Cursor_.pop_back();
} }
@ -795,20 +795,20 @@ void MathCursor::touch()
void MathCursor::normalize() void MathCursor::normalize()
{ {
if (idx() >= par()->nargs()) { if (idx() >= inset()->nargs()) {
lyxerr << "this should not really happen - 1: " lyxerr << "this should not really happen - 1: "
<< idx() << ' ' << par()->nargs() << idx() << ' ' << inset()->nargs()
<< " in: " << par() << endl; << " in: " << inset() << endl;
dump("error 2"); dump("error 2");
} }
idx() = min(idx(), par()->nargs() - 1); idx() = min(idx(), inset()->nargs() - 1);
if (pos() > size()) { if (pos() > size()) {
lyxerr << "this should not really happen - 2: " lyxerr << "this should not really happen - 2: "
<< pos() << ' ' << size() << " in idx: " << idx() << pos() << ' ' << size() << " in idx: " << idx()
<< " in atom: '"; << " in atom: '";
WriteStream wi(lyxerr, false, true); WriteStream wi(lyxerr, false, true);
par()->write(wi); inset()->write(wi);
lyxerr << endl; lyxerr << endl;
dump("error 4"); dump("error 4");
} }
@ -866,7 +866,7 @@ MathArray & MathCursor::array() const
{ {
static MathArray dummy; static MathArray dummy;
if (idx() >= par()->nargs()) { if (idx() >= inset()->nargs()) {
lyxerr << "############ idx_ " << idx() << " not valid\n"; lyxerr << "############ idx_ " << idx() << " not valid\n";
return dummy; return dummy;
} }
@ -882,13 +882,13 @@ MathArray & MathCursor::array() const
void MathCursor::idxNext() void MathCursor::idxNext()
{ {
par()->idxNext(idx(), pos()); inset()->idxNext(idx(), pos());
} }
void MathCursor::idxPrev() void MathCursor::idxPrev()
{ {
par()->idxPrev(idx(), pos()); inset()->idxPrev(idx(), pos());
} }
@ -908,9 +908,9 @@ char MathCursor::halign() const
} }
void MathCursor::getSelection(MathCursorPos & i1, MathCursorPos & i2) const void MathCursor::getSelection(CursorPos & i1, CursorPos & i2) const
{ {
MathCursorPos anc = normalAnchor(); CursorPos anc = normalAnchor();
if (anc < cursor()) { if (anc < cursor()) {
i1 = anc; i1 = anc;
i2 = cursor(); i2 = cursor();
@ -921,14 +921,14 @@ void MathCursor::getSelection(MathCursorPos & i1, MathCursorPos & i2) const
} }
MathCursorPos & MathCursor::cursor() CursorPos & MathCursor::cursor()
{ {
lyx::Assert(depth()); lyx::Assert(depth());
return Cursor_.back(); return Cursor_.back();
} }
MathCursorPos const & MathCursor::cursor() const CursorPos const & MathCursor::cursor() const
{ {
lyx::Assert(depth()); lyx::Assert(depth());
return Cursor_.back(); return Cursor_.back();
@ -977,7 +977,7 @@ bool MathCursor::goUpDown(bool up)
} }
// try current cell for e.g. text insets // try current cell for e.g. text insets
if (par()->idxUpDown2(idx(), pos(), up, targetx_)) if (inset()->idxUpDown2(idx(), pos(), up, targetx_))
return true; return true;
//xarray().boundingBox(xlow, xhigh, ylow, yhigh); //xarray().boundingBox(xlow, xhigh, ylow, yhigh);
@ -992,9 +992,9 @@ bool MathCursor::goUpDown(bool up)
// try to find an inset that knows better then we // try to find an inset that knows better then we
while (1) { while (1) {
///lyxerr << "updown: We are in " << *par() << " idx: " << idx() << '\n'; ///lyxerr << "updown: We are in " << *inset() << " idx: " << idx() << '\n';
// ask inset first // ask inset first
if (par()->idxUpDown(idx(), pos(), up, targetx_)) { if (inset()->idxUpDown(idx(), pos(), up, targetx_)) {
// try to find best position within this inset // try to find best position within this inset
if (!selection()) if (!selection())
bruteFind2(xo, yo); bruteFind2(xo, yo);
@ -1085,21 +1085,21 @@ void MathCursor::bruteFind2(int x, int y)
bool MathCursor::idxLineLast() bool MathCursor::idxLineLast()
{ {
idx() -= idx() % par()->ncols(); idx() -= idx() % inset()->ncols();
idx() += par()->ncols() - 1; idx() += inset()->ncols() - 1;
pos() = size(); pos() = size();
return true; return true;
} }
bool MathCursor::idxLeft() bool MathCursor::idxLeft()
{ {
return par()->idxLeft(idx(), pos()); return inset()->idxLeft(idx(), pos());
} }
bool MathCursor::idxRight() bool MathCursor::idxRight()
{ {
return par()->idxRight(idx(), pos()); return inset()->idxRight(idx(), pos());
} }
@ -1118,7 +1118,7 @@ bool MathCursor::script(bool up)
string safe = grabAndEraseSelection(); string safe = grabAndEraseSelection();
if (inNucleus()) { if (inNucleus()) {
// we are in a nucleus of a script inset, move to _our_ script // we are in a nucleus of a script inset, move to _our_ script
par()->asScriptInset()->ensure(up); inset()->asScriptInset()->ensure(up);
idx() = up; idx() = up;
pos() = 0; pos() = 0;
} else if (hasPrevAtom() && prevAtom()->asScriptInset()) { } else if (hasPrevAtom() && prevAtom()->asScriptInset()) {
@ -1298,7 +1298,7 @@ string MathCursor::info() const
ostringstream os; ostringstream os;
os << "Math editor mode. "; os << "Math editor mode. ";
for (int i = 0, n = depth(); i < n; ++i) { for (int i = 0, n = depth(); i < n; ++i) {
Cursor_[i].par_->infoize(os); Cursor_[i].inset_->infoize(os);
os << " "; os << " ";
} }
if (hasPrevAtom()) if (hasPrevAtom())
@ -1318,11 +1318,11 @@ unsigned MathCursor::depth() const
namespace { namespace {
void region(MathCursorPos const & i1, MathCursorPos const & i2, void region(CursorPos const & i1, CursorPos const & i2,
MathInset::row_type & r1, MathInset::row_type & r2, MathInset::row_type & r1, MathInset::row_type & r2,
MathInset::col_type & c1, MathInset::col_type & c2) MathInset::col_type & c1, MathInset::col_type & c2)
{ {
MathInset * p = i1.par_; MathInset * p = i1.inset_;
c1 = p->col(i1.idx_); c1 = p->col(i1.idx_);
c2 = p->col(i2.idx_); c2 = p->col(i2.idx_);
if (c1 > c2) if (c1 > c2)
@ -1341,8 +1341,8 @@ string MathCursor::grabSelection() const
if (!selection_) if (!selection_)
return string(); return string();
MathCursorPos i1; CursorPos i1;
MathCursorPos i2; CursorPos i2;
getSelection(i1, i2); getSelection(i1, i2);
if (i1.idx_ == i2.idx_) { if (i1.idx_ == i2.idx_) {
@ -1361,7 +1361,7 @@ string MathCursor::grabSelection() const
for (col_type col = c1; col <= c2; ++col) { for (col_type col = c1; col <= c2; ++col) {
if (col > c1) if (col > c1)
data += '&'; data += '&';
data += asString(i1.par_->cell(i1.par_->index(row, col))); data += asString(i1.inset_->cell(i1.inset_->index(row, col)));
} }
} }
return data; return data;
@ -1370,13 +1370,13 @@ string MathCursor::grabSelection() const
void MathCursor::eraseSelection() void MathCursor::eraseSelection()
{ {
MathCursorPos i1; CursorPos i1;
MathCursorPos i2; CursorPos i2;
getSelection(i1, i2); getSelection(i1, i2);
if (i1.idx_ == i2.idx_) if (i1.idx_ == i2.idx_)
i1.cell().erase(i1.pos_, i2.pos_); i1.cell().erase(i1.pos_, i2.pos_);
else { else {
MathInset * p = i1.par_; MathInset * p = i1.inset_;
row_type r1, r2; row_type r1, r2;
col_type c1, c2; col_type c1, c2;
region(i1, i2, r1, r2, c1, c2); region(i1, i2, r1, r2, c1, c2);
@ -1399,7 +1399,7 @@ string MathCursor::grabAndEraseSelection()
} }
MathCursorPos MathCursor::normalAnchor() const CursorPos MathCursor::normalAnchor() const
{ {
if (Anchor_.size() < depth()) { if (Anchor_.size() < depth()) {
Anchor_ = Cursor_; Anchor_ = Cursor_;
@ -1407,7 +1407,7 @@ MathCursorPos MathCursor::normalAnchor() const
} }
//lyx::Assert(Anchor_.size() >= cursor.depth()); //lyx::Assert(Anchor_.size() >= cursor.depth());
// use Anchor on the same level as Cursor // use Anchor on the same level as Cursor
MathCursorPos normal = Anchor_[depth() - 1]; CursorPos normal = Anchor_[depth() - 1];
if (depth() < Anchor_.size() && !(normal < cursor())) { if (depth() < Anchor_.size() && !(normal < cursor())) {
// anchor is behind cursor -> move anchor behind the inset // anchor is behind cursor -> move anchor behind the inset
++normal.pos_; ++normal.pos_;
@ -1425,7 +1425,7 @@ dispatch_result MathCursor::dispatch(FuncRequest const & cmd)
case LFUN_MOUSE_MOTION: case LFUN_MOUSE_MOTION:
case LFUN_MOUSE_RELEASE: case LFUN_MOUSE_RELEASE:
case LFUN_MOUSE_DOUBLE: { case LFUN_MOUSE_DOUBLE: {
MathCursorPos & pos = Cursor_.back(); CursorPos & pos = Cursor_.back();
dispatch_result res = UNDISPATCHED; dispatch_result res = UNDISPATCHED;
int x = 0, y = 0; int x = 0, y = 0;
getPos(x, y); getPos(x, y);
@ -1445,8 +1445,8 @@ dispatch_result MathCursor::dispatch(FuncRequest const & cmd)
} }
for (int i = Cursor_.size() - 1; i >= 0; --i) { for (int i = Cursor_.size() - 1; i >= 0; --i) {
MathCursorPos & pos = Cursor_[i]; CursorPos & pos = Cursor_[i];
dispatch_result res = pos.par_->dispatch(cmd, pos.idx_, pos.pos_); dispatch_result res = pos.inset_->dispatch(cmd, pos.idx_, pos.pos_);
if (res != UNDISPATCHED) { if (res != UNDISPATCHED) {
if (res == DISPATCHED_POP) { if (res == DISPATCHED_POP) {
Cursor_.shrink(i + 1); Cursor_.shrink(i + 1);
@ -1462,7 +1462,7 @@ dispatch_result MathCursor::dispatch(FuncRequest const & cmd)
MathInset::mode_type MathCursor::currentMode() const MathInset::mode_type MathCursor::currentMode() const
{ {
for (int i = Cursor_.size() - 1; i >= 0; --i) { for (int i = Cursor_.size() - 1; i >= 0; --i) {
MathInset::mode_type res = Cursor_[i].par_->currentMode(); MathInset::mode_type res = Cursor_[i].inset_->currentMode();
if (res != MathInset::UNDECIDED_MODE) if (res != MathInset::UNDECIDED_MODE)
return res; return res;
} }

View File

@ -32,7 +32,7 @@ class MathUnknownInset;
[Have a look at math_inset.h first] [Have a look at math_inset.h first]
The MathCursor is different from the kind of cursor used in the Outer The MathCursor is different from the kind of cursor used in the Outer
World. It contains a stack of MathCursorPos, each of which is made World. It contains a stack of CursorPos, each of which is made
up of a inset pointer, an index and a position offset, marking a path from up of a inset pointer, an index and a position offset, marking a path from
this formula's MathHullInset to the current position. this formula's MathHullInset to the current position.
@ -106,7 +106,7 @@ public:
/// in pixels from left of screen /// in pixels from left of screen
int targetX() const; int targetX() const;
/// current inset /// current inset
MathInset * par() const; MathInset * inset() const;
/// return the next enclosing grid inset and the cursor's index in it /// return the next enclosing grid inset and the cursor's index in it
MathGridInset * enclosingGrid(idx_type & idx) const; MathGridInset * enclosingGrid(idx_type & idx) const;
/// go up to enclosing grid /// go up to enclosing grid
@ -208,14 +208,14 @@ public:
MathAtom & nextAtom(); MathAtom & nextAtom();
/// returns the selection /// returns the selection
void getSelection(MathCursorPos &, MathCursorPos &) const; void getSelection(CursorPos &, CursorPos &) const;
/// returns the normalized anchor of the selection /// returns the normalized anchor of the selection
MathCursorPos normalAnchor() const; CursorPos normalAnchor() const;
/// reference to the last item of the path, i.e. "The Cursor" /// reference to the last item of the path, i.e. "The Cursor"
MathCursorPos & cursor(); CursorPos & cursor();
/// reference to the last item of the path, i.e. "The Cursor" /// reference to the last item of the path, i.e. "The Cursor"
MathCursorPos const & cursor() const; CursorPos const & cursor() const;
/// how deep are we nested? /// how deep are we nested?
unsigned depth() const; unsigned depth() const;

View File

@ -14,7 +14,7 @@ MathDecorationInset::MathDecorationInset(latexkeys const * key)
{} {}
MathInset * MathDecorationInset::clone() const InsetBase * MathDecorationInset::clone() const
{ {
return new MathDecorationInset(*this); return new MathDecorationInset(*this);
} }

View File

@ -19,7 +19,7 @@ public:
/// ///
explicit MathDecorationInset(latexkeys const * key); explicit MathDecorationInset(latexkeys const * key);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void draw(PainterInfo &, int x, int y) const; void draw(PainterInfo &, int x, int y) const;
/// ///

View File

@ -52,7 +52,7 @@ MathDelimInset::MathDelimInset
} }
MathInset * MathDelimInset::clone() const InsetBase * MathDelimInset::clone() const
{ {
return new MathDelimInset(*this); return new MathDelimInset(*this);
} }

View File

@ -19,7 +19,7 @@ public:
/// ///
MathDelimInset(string const & left, string const & right, MathArray const &); MathDelimInset(string const & left, string const & right, MathArray const &);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
MathDelimInset * asDelimInset() { return this; } MathDelimInset * asDelimInset() { return this; }
/// ///

View File

@ -11,7 +11,7 @@ MathDiffInset::MathDiffInset()
{} {}
MathInset * MathDiffInset::clone() const InsetBase * MathDiffInset::clone() const
{ {
return new MathDiffInset(*this); return new MathDiffInset(*this);
} }

View File

@ -13,7 +13,7 @@ public:
/// ///
explicit MathDiffInset(); explicit MathDiffInset();
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void addDer(MathArray const & der); void addDer(MathArray const & der);
/// ///

View File

@ -12,7 +12,7 @@ MathDotsInset::MathDotsInset(latexkeys const * key)
{} {}
MathInset * MathDotsInset::clone() const InsetBase * MathDotsInset::clone() const
{ {
return new MathDotsInset(*this); return new MathDotsInset(*this);
} }

View File

@ -13,7 +13,7 @@ public:
/// ///
explicit MathDotsInset(latexkeys const * l); explicit MathDotsInset(latexkeys const * l);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void metrics(MetricsInfo & mi, Dimension & dim) const; void metrics(MetricsInfo & mi, Dimension & dim) const;
/// ///

View File

@ -11,7 +11,7 @@ MathEnvInset::MathEnvInset(string const & name)
{} {}
MathInset * MathEnvInset::clone() const InsetBase * MathEnvInset::clone() const
{ {
return new MathEnvInset(*this); return new MathEnvInset(*this);
} }

View File

@ -17,7 +17,7 @@ public:
/// ///
MathEnvInset(string const & name_); MathEnvInset(string const & name_);
/// ///
MathInset * clone() const; InsetBase * clone() const;
/// ///
void draw(PainterInfo &, int x, int y) const; void draw(PainterInfo &, int x, int y) const;
/// ///

Some files were not shown because too many files have changed in this diff Show More