From: André Pönitz Date: Thu, 29 Aug 2002 13:41:58 +0000 (+0000) Subject: BufferView.[Ch]: X-Git-Tag: 1.6.10~18397 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=65e2f0f63d25d66d76d9d162330e9374ed3781b2;p=features.git BufferView.[Ch]: don't provide direct access to WorkArea, use two simple acessors haveSelction() and workHeight() instead [And the ChangeLog entry, which was in the editor but not saved...] git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5173 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/BufferView.C b/src/BufferView.C index 207fc5c7b9..cf61629c17 100644 --- a/src/BufferView.C +++ b/src/BufferView.C @@ -86,12 +86,6 @@ LyXScreen & BufferView::screen() const } -WorkArea & BufferView::workarea() const -{ - return pimpl_->workarea(); -} - - LyXView * BufferView::owner() const { return pimpl_->owner_; @@ -937,3 +931,15 @@ Language const * BufferView::getParentLanguage(Inset * inset) const return text->cursor.par()->getFontSettings(buffer()->params, text->cursor.pos()).language(); } + + +void BufferView::haveSelection(bool sel) +{ + pimpl_->workarea().haveSelection(sel); +} + + +int BufferView::workHeight() const +{ + return pimpl_->workarea().workHeight(); +} diff --git a/src/BufferView.h b/src/BufferView.h index b775e4b434..1bec27f90a 100644 --- a/src/BufferView.h +++ b/src/BufferView.h @@ -30,7 +30,6 @@ class Language; class Painter; class UpdatableInset; class WordLangTuple; -class WorkArea; /// class BufferView : boost::noncopyable { @@ -57,8 +56,6 @@ public: Painter & painter() const; /// LyXScreen & screen() const; - /// return the work area for this bview - WorkArea & workarea() const; /// void buffer(Buffer * b); /// @@ -192,6 +189,10 @@ public: bool dispatch(FuncRequest const & argument); /// height of a normal line in pixels (zoom factor considered) int defaultHeight() const; + /// + void haveSelection(bool sel); + /// + int workHeight() const; private: /// diff --git a/src/BufferView_pimpl.C b/src/BufferView_pimpl.C index 8edfc62a31..163629c76a 100644 --- a/src/BufferView_pimpl.C +++ b/src/BufferView_pimpl.C @@ -1067,18 +1067,6 @@ bool BufferView::Pimpl::dispatch(FuncRequest const & ev) } break; - case LFUN_HTMLURL: - case LFUN_URL: - { - InsetCommandParams p; - if (ev.action == LFUN_HTMLURL) - p.setCmdName("htmlurl"); - else - p.setCmdName("url"); - owner_->getDialogs().createUrl(p.getAsString()); - } - break; - // --- accented characters --------------------------- case LFUN_UMLAUT: diff --git a/src/BufferView_pimpl.h b/src/BufferView_pimpl.h index 15f320bf8f..c967821ad6 100644 --- a/src/BufferView_pimpl.h +++ b/src/BufferView_pimpl.h @@ -35,8 +35,6 @@ struct BufferView::Pimpl : public boost::signals::trackable { int xpos, int ypos, int width, int height); /// Painter & painter() const; - /// return the work area for this bview - WorkArea & workarea() const; /// return the screen for this bview LyXScreen & screen() const; /// @@ -142,5 +140,7 @@ private: Inset * getInsetByCode(Inset::Code code); /// void MenuInsertLyXFile(string const & filen); + /// our workarea + WorkArea & Pimpl::workarea() const; }; #endif // BUFFERVIEW_PIMPL_H diff --git a/src/ChangeLog b/src/ChangeLog index 8b3d1f0508..a5a1db6fe4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -4,6 +4,20 @@ * lyxtext.h: * text2.C: remove unused member number_of_rows + * Makefile.am: + * BufferView2.C: remove file, move contents to... + * BufferView.C: ... here + + * BufferView_pimpl.C: + * factory.C: move more inset creation to factory + + * vspace.C: avoid direct usage of LyXText, ws changes + + * BufferView.[Ch]: + don't provide direct access to WorkArea, use two simple + acessors haveSelction() and workHeight() instead + + 2002-08-29 John Levon * BufferView_pimpl.C (dispatch): do not continue when diff --git a/src/text3.C b/src/text3.C index 1815fbefa4..b620c11e71 100644 --- a/src/text3.C +++ b/src/text3.C @@ -28,7 +28,7 @@ #include "support/lstrings.h" #include "frontends/LyXView.h" #include "frontends/screen.h" -#include "frontends/WorkArea.h" +#include "frontends/Dialogs.h" #include "insets/insetspecialchar.h" #include "insets/insettext.h" #include "insets/insetbib.h" @@ -75,7 +75,7 @@ namespace { } if (!lt->selection.set()) - bv->workarea().haveSelection(false); + bv->haveSelection(false); bv->switchKeyMap(); } @@ -240,7 +240,7 @@ void LyXText::cursorPrevious(BufferView * bv) { if (!cursor.row()->previous()) { if (first_y > 0) { - int new_y = bv->text->first_y - bv->workarea().workHeight(); + int new_y = bv->text->first_y - bv->workHeight(); bv->screen().draw(bv->text, bv, new_y < 0 ? 0 : new_y); bv->updateScrollbar(); } @@ -260,18 +260,18 @@ void LyXText::cursorPrevious(BufferView * bv) // as we move the cursor or do something while inside the row (it may // span several workarea-heights) we'll move to the top again, but this // is better than just jump down and only display part of the row. - new_y = bv->text->first_y - bv->workarea().workHeight(); + new_y = bv->text->first_y - bv->workHeight(); } else { if (inset_owner) { new_y = bv->text->cursor.iy() + bv->theLockingInset()->insetInInsetY() + y + cursor.row()->height() - - bv->workarea().workHeight() + 1; + - bv->workHeight() + 1; } else { new_y = cursor.y() - cursor.row()->baseline() + cursor.row()->height() - - bv->workarea().workHeight() + 1; + - bv->workHeight() + 1; } } bv->screen().draw(bv->text, bv, new_y < 0 ? 0 : new_y); @@ -292,15 +292,15 @@ void LyXText::cursorNext(BufferView * bv) if (!cursor.row()->next()) { int y = cursor.y() - cursor.row()->baseline() + cursor.row()->height(); - if (y > int(first_y + bv->workarea().workHeight())) { + if (y > int(first_y + bv->workHeight())) { bv->screen().draw(bv->text, bv, - bv->text->first_y + bv->workarea().workHeight()); + bv->text->first_y + bv->workHeight()); bv->updateScrollbar(); } return; } - int y = first_y + bv->workarea().workHeight(); + int y = first_y + bv->workHeight(); if (inset_owner && !first_y) { y -= (bv->text->cursor.iy() - bv->text->first_y @@ -311,7 +311,7 @@ void LyXText::cursorNext(BufferView * bv) Row * cursorrow = cursor.row(); setCursorFromCoordinates(bv, cursor.x_fix(), y); - // + workarea().workHeight()); + // + bv->workHeight()); finishUndo(); int new_y; @@ -321,7 +321,7 @@ void LyXText::cursorNext(BufferView * bv) // as we move the cursor or do something while inside the row (it may // span several workarea-heights) we'll move to the top again, but this // is better than just jump down and only display part of the row. - new_y = bv->text->first_y + bv->workarea().workHeight(); + new_y = bv->text->first_y + bv->workHeight(); } else { if (inset_owner) { new_y = bv->text->cursor.iy() @@ -336,7 +336,7 @@ void LyXText::cursorNext(BufferView * bv) LyXCursor cur; setCursor(bv, cur, cursor.row()->next()->par(), cursor.row()->next()->pos(), false); - if (cur.y() < int(first_y + bv->workarea().workHeight())) { + if (cur.y() < int(first_y + bv->workHeight())) { cursorDown(bv, true); } } @@ -1111,7 +1111,7 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd) // this was originally a beforeChange(bv->text), i.e // the outermost LyXText! bv->beforeChange(this); - string const clip = bv->workarea().getClipboard(); + string const clip = bv->getClipboard(); if (!clip.empty()) { if (cmd.argument == "paragraph") insertStringAsParagraphs(bv, clip); @@ -1201,7 +1201,7 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd) if (bv_owner) bv->screen().toggleSelection(this, bv, false); update(bv, false); - bv->workarea().haveSelection(selection.set()); + bv->haveSelection(selection.set()); } break; @@ -1220,7 +1220,7 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd) selectWord(bv, LyXText::WHOLE_WORD_STRICT); } update(bv, false); - bv->workarea().haveSelection(selection.set()); + bv->haveSelection(selection.set()); } break; @@ -1273,7 +1273,7 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd) #endif // This is to allow jumping over large insets if (cursorrow == bv->text->cursor.row()) { - if (cmd.y >= int(bv->workarea().workHeight())) + if (cmd.y >= int(bv->workHeight())) bv->text->cursorDown(bv, false); else if (cmd.y < 0) bv->text->cursorUp(bv, false); @@ -1430,7 +1430,7 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd) // finish selection if (cmd.button() == mouse_button::button1) - bv->workarea().haveSelection(selection.set()); + bv->haveSelection(selection.set()); bv->switchKeyMap(); bv->owner()->view_state_changed(); @@ -1524,7 +1524,7 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd) cutSelection(bv, false, false); update(bv); } - bv->workarea().haveSelection(false); + bv->haveSelection(false); } bv->beforeChange(this); @@ -1547,6 +1547,19 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd) break; } + case LFUN_HTMLURL: { + InsetCommandParams p("htmlurl"); + bv->owner()->getDialogs().createUrl(p.getAsString()); + break; + } + + case LFUN_URL: { + InsetCommandParams p("url"); + bv->owner()->getDialogs().createUrl(p.getAsString()); + break; + } + + #if 0 case LFUN_INSET_LIST: case LFUN_INSET_THEOREM: