X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetbase.C;h=29d5448f96ffbc88e8ea3e83aa342e2528f643d4;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=4d4ab1565e797c920b6c5aad1a8d8db9a1977481;hpb=7a23f39975b0d5cc611725ccfc7e3de90e1128c7;p=lyx.git diff --git a/src/insets/insetbase.C b/src/insets/insetbase.C index 4d4ab1565e..29d5448f96 100644 --- a/src/insets/insetbase.C +++ b/src/insets/insetbase.C @@ -28,11 +28,13 @@ #include "frontends/Painter.h" +#include + #include #include -namespace { +namespace lyx { class InsetName { public: @@ -46,7 +48,7 @@ public: typedef std::map TranslatorMap; -TranslatorMap const build_translator() +static TranslatorMap const build_translator() { InsetName const insetnames[] = { InsetName("toc", InsetBase::TOC_CODE), @@ -61,6 +63,7 @@ TranslatorMap const build_translator() InsetName("accent", InsetBase::ACCENT_CODE), InsetName("math", InsetBase::MATH_CODE), InsetName("index", InsetBase::INDEX_CODE), + InsetName("nomenclature", InsetBase::NOMENCL_CODE), InsetName("include", InsetBase::INCLUDE_CODE), InsetName("graphics", InsetBase::GRAPHICS_CODE), InsetName("bibitem", InsetBase::BIBITEM_CODE), @@ -76,10 +79,10 @@ TranslatorMap const build_translator() InsetName("external", InsetBase::EXTERNAL_CODE), InsetName("caption", InsetBase::CAPTION_CODE), InsetName("mathmacro", InsetBase::MATHMACRO_CODE), - InsetName("error", InsetBase::ERROR_CODE), InsetName("cite", InsetBase::CITE_CODE), InsetName("float_list", InsetBase::FLOAT_LIST_CODE), InsetName("index_print", InsetBase::INDEX_PRINT_CODE), + InsetName("nomencl_print", InsetBase::NOMENCL_PRINT_CODE), InsetName("optarg", InsetBase::OPTARG_CODE), InsetName("environment", InsetBase::ENVIRONMENT_CODE), InsetName("hfill", InsetBase::HFILL_CODE), @@ -104,16 +107,6 @@ TranslatorMap const build_translator() return data; } -} // namespace anon - - -InsetBase::InsetBase() -{} - - -InsetBase::InsetBase(InsetBase const &) -{} - std::auto_ptr InsetBase::clone() const { @@ -134,7 +127,7 @@ InsetBase::Code InsetBase::translate(std::string const & name) void InsetBase::dispatch(LCursor & cur, FuncRequest & cmd) { - cur.needsUpdate(); + cur.updateFlags(Update::Force | Update::FitCursor); cur.dispatched(); doDispatch(cur, cmd); } @@ -182,15 +175,15 @@ bool InsetBase::getStatus(LCursor &, FuncRequest const & cmd, void InsetBase::edit(LCursor &, bool) { lyxerr[Debug::INSETS] << BOOST_CURRENT_FUNCTION - << ": edit left/right" << std::endl; + << ": edit left/right" << std::endl; } InsetBase * InsetBase::editXY(LCursor &, int x, int y) { lyxerr[Debug::INSETS] << BOOST_CURRENT_FUNCTION - << ": x=" << x << " y= " << y - << std::endl; + << ": x=" << x << " y= " << y + << std::endl; return this; } @@ -199,10 +192,10 @@ InsetBase::idx_type InsetBase::index(row_type row, col_type col) const { if (row != 0) lyxerr << BOOST_CURRENT_FUNCTION - << ": illegal row: " << row << std::endl; + << ": illegal row: " << row << std::endl; if (col != 0) lyxerr << BOOST_CURRENT_FUNCTION - << ": illegal col: " << col << std::endl; + << ": illegal col: " << col << std::endl; return 0; } @@ -220,21 +213,14 @@ bool InsetBase::idxUpDown(LCursor &, bool) const int InsetBase::plaintext(Buffer const &, - std::ostream &, OutputParams const &) const -{ - return 0; -} - - -int InsetBase::linuxdoc(Buffer const &, - std::ostream &, OutputParams const &) const + odocstream &, OutputParams const &) const { return 0; } int InsetBase::docbook(Buffer const &, - std::ostream &, OutputParams const &) const + odocstream &, OutputParams const &) const { return 0; } @@ -258,24 +244,21 @@ bool InsetBase::autoDelete() const } -std::string const InsetBase::editMessage() const +docstring const InsetBase::editMessage() const { return _("Opened inset"); } -std::string const & InsetBase::getInsetName() const +docstring const & InsetBase::getInsetName() const { - static std::string const name = "unknown"; + static docstring const name = from_ascii("unknown"); return name; } -void InsetBase::markErased() -{} - - -void InsetBase::cursorPos(CursorSlice const &, bool, int & x, int & y) const +void InsetBase::cursorPos(BufferView const & /*bv*/, CursorSlice const &, + bool, int & x, int & y) const { lyxerr << "InsetBase::cursorPos called directly" << std::endl; x = 100; @@ -300,29 +283,31 @@ void InsetBase::metricsMarkers2(Dimension & dim, int framesize) const void InsetBase::drawMarkers(PainterInfo & pi, int x, int y) const { - if (!editing(pi.base.bv)) - return; + LColor::color pen_color = editing(pi.base.bv)? + LColor::mathframe : LColor::background; + int const t = x + width() - 1; int const d = y + descent(); - pi.pain.line(x, d - 3, x, d, LColor::mathframe); - pi.pain.line(t, d - 3, t, d, LColor::mathframe); - pi.pain.line(x, d, x + 3, d, LColor::mathframe); - pi.pain.line(t - 3, d, t, d, LColor::mathframe); + pi.pain.line(x, d - 3, x, d, pen_color); + pi.pain.line(t, d - 3, t, d, pen_color); + pi.pain.line(x, d, x + 3, d, pen_color); + pi.pain.line(t - 3, d, t, d, pen_color); setPosCache(pi, x, y); } void InsetBase::drawMarkers2(PainterInfo & pi, int x, int y) const { - if (!editing(pi.base.bv)) - return; + LColor::color pen_color = editing(pi.base.bv)? + LColor::mathframe : LColor::background; + drawMarkers(pi, x, y); int const t = x + width() - 1; int const a = y - ascent(); - pi.pain.line(x, a + 3, x, a, LColor::mathframe); - pi.pain.line(t, a + 3, t, a, LColor::mathframe); - pi.pain.line(x, a, x + 3, a, LColor::mathframe); - pi.pain.line(t - 3, a, t, a, LColor::mathframe); + pi.pain.line(x, a + 3, x, a, pen_color); + pi.pain.line(t, a + 3, t, a, pen_color); + pi.pain.line(x, a, x + 3, a, pen_color); + pi.pain.line(t - 3, a, t, a, pen_color); setPosCache(pi, x, y); } @@ -333,30 +318,30 @@ bool InsetBase::editing(BufferView * bv) const } -int InsetBase::xo() const +int InsetBase::xo(BufferView const & bv) const { - return theCoords.getInsets().x(this); + return bv.coordCache().getInsets().x(this); } -int InsetBase::yo() const +int InsetBase::yo(BufferView const & bv) const { - return theCoords.getInsets().y(this); + return bv.coordCache().getInsets().y(this); } -bool InsetBase::covers(int x, int y) const +bool InsetBase::covers(BufferView const & bv, int x, int y) const { //lyxerr << "InsetBase::covers, x: " << x << " y: " << y - // << " xo: " << xo() << " yo: " << yo() - // << " x1: " << xo() << " x2: " << xo() + width() - // << " y1: " << yo() - ascent() << " y2: " << yo() + descent() + // << " xo: " << xo(bv) << " yo: " << yo() + // << " x1: " << xo(bv) << " x2: " << xo() + width() + // << " y1: " << yo(bv) - ascent() << " y2: " << yo() + descent() // << std::endl; - return theCoords.getInsets().has(this) - && x >= xo() - && x <= xo() + width() - && y >= yo() - ascent() - && y <= yo() + descent(); + return bv.coordCache().getInsets().has(this) + && x >= xo(bv) + && x <= xo(bv) + width() + && y >= yo(bv) - ascent() + && y <= yo(bv) + descent(); } @@ -379,3 +364,6 @@ bool isHighlyEditableInset(InsetBase const * inset) { return inset && inset->editable() == InsetBase::HIGHLY_EDITABLE; } + + +} // namespace lyx