#include "frontends/Dialogs.h"
#include "frontends/LyXView.h"
#include "frontends/Gui.h"
-#include "frontends/WorkArea.h"
#include "insets/insetcommand.h" // ChangeRefs
#include "insets/insettext.h"
extern BufferList bufferlist;
-BufferView::BufferView(LyXView * owner, lyx::frontend::WorkArea * workArea)
- : pimpl_(new Pimpl(*this, owner, workArea))
+BufferView::BufferView(LyXView * owner)
+ : pimpl_(new Pimpl(*this, owner))
{}
namespace lyx {
namespace frontend {
class Painter;
-class WorkArea;
}
}
* Create a view with the given owner main window,
* of the given dimensions.
*/
- BufferView(LyXView * owner, lyx::frontend::WorkArea * workArea);
+ BufferView(LyXView * owner);
~BufferView();
} // anon namespace
-BufferView::Pimpl::Pimpl(BufferView & bv, LyXView * owner, WorkArea * workArea)
- : bv_(&bv), owner_(owner), buffer_(0), wh_(0), cursor_timeout(400),
- using_xterm_cursor(false), workArea_(workArea), cursor_(bv),
+BufferView::Pimpl::Pimpl(BufferView & bv, LyXView * owner)
+ : bv_(&bv), owner_(owner), buffer_(0), wh_(0), cursor_timeout(400),
+ using_xterm_cursor(false), cursor_(bv),
multiparsel_cache_(false), anchor_ref_(0), offset_ref_(0)
{
xsel_cache_.set = false;
.connect(boost::bind(&BufferView::Pimpl::cursorToggle, this));
cursor_timeout.start();
-
+
saved_positions.resize(saved_positions_num);
// load saved bookmarks
lyx::Session::BookmarkList & bmList = LyX::ref().session().loadBookmarks();
lyx::frontend::Painter & BufferView::Pimpl::painter() const
{
- return workArea_->getPainter();
+ return owner_->workArea()->getPainter();
}
}
if (forceupdate) {
// Second drawing step
- workArea_->redraw(*bv_, vi);
+ owner_->workArea()->redraw(*bv_, vi);
} else {
// Abort updating of the coord
// cache - just restore the old one
std::swap(theCoords, backup);
}
} else
- workArea_->greyOut();
+ owner_->workArea()->greyOut();
owner_->view_state_changed();
}
case LFUN_OUTLINE_IN:
lyx::toc::outline(lyx::toc::In, cursor_);
updateLabels(*buffer_);
- break;
+ break;
case LFUN_OUTLINE_OUT:
lyx::toc::outline(lyx::toc::Out, cursor_);
updateLabels(*buffer_);
namespace lyx {
namespace frontend {
class Gui;
-class WorkArea;
class Painter;
}
}
class BufferView::Pimpl : public boost::signals::trackable {
public:
///
- Pimpl(BufferView & bv, LyXView * owner, lyx::frontend::WorkArea * workArea);
+ Pimpl(BufferView & bv, LyXView * owner);
///
lyx::frontend::Painter & painter() const;
///
///
void menuInsertLyXFile(std::string const & filen);
- lyx::frontend::WorkArea * workArea_;
-
/// this is used to handle XSelection events in the right manner
struct {
CursorSlice cursor;
#include "Timeout.h"
#include "Toolbars.h"
#include "Menubar.h"
+#include "WorkArea.h"
#include "buffer.h"
#include "bufferparams.h"
#endif
using lyx::frontend::Gui;
+using lyx::frontend::WorkArea;
using lyx::support::makeDisplayPath;
using lyx::support::onlyFilename;
return owner_;
}
+
LyXView::LyXView(Gui & owner)
: owner_(owner),
toolbars_(new Toolbars(*this)),
lyxfunc_(new LyXFunc(this)),
dialogs_(new Dialogs(*this)),
controlcommand_(new ControlCommandBuffer(*this)),
- bufferview_(0)
+ work_area_(0)
{
lyxerr[Debug::INIT] << "Initializing LyXFunc" << endl;
}
-void LyXView::setBufferView(BufferView * buffer_view)
+
+void LyXView::setWorkArea(WorkArea * work_area)
{
- bufferview_ = buffer_view;
+ work_area_ = work_area;
}
Buffer * LyXView::buffer() const
{
- return bufferview_->buffer();
+ return work_area_->bufferView().buffer();
}
BufferView * LyXView::view() const
{
- return bufferview_;
+ return &work_area_->bufferView();
}
void LyXView::updateToolbars()
{
- bool const math = bufferview_->cursor().inMathed();
+ bool const math = work_area_->bufferView().cursor().inMathed();
bool const table =
getLyXFunc().getStatus(FuncRequest(LFUN_LAYOUT_TABULAR)).enabled();
toolbars_->update(math, table);
current_layout = buffer()->params().getLyXTextClass().defaultLayoutName();
}
- if (bufferview_->cursor().inMathed())
+ if (work_area_->bufferView().cursor().inMathed())
return;
string const & layout =
- bufferview_->cursor().paragraph().layout()->name();
+ work_area_->bufferView().cursor().paragraph().layout()->name();
if (layout != current_layout) {
toolbars_->setLayout(layout);
{
Buffer const * buffer_ptr = 0;
if (inset) {
- buffer_ptr = bufferview_->buffer();
+ buffer_ptr = work_area_->bufferView().buffer();
// No FitCursor:
- bufferview_->update(Update::Force);
+ work_area_->bufferView().update(Update::Force);
}
return buffer_ptr;
}
namespace lyx {
namespace frontend {
class Gui;
+class WorkArea;
class ControlCommandBuffer;
} // namespace frontend
virtual ~LyXView();
- void setBufferView(BufferView * buffer_view);
-
+ void setWorkArea(lyx::frontend::WorkArea * work_area);
/**
* This is called after the concrete view has been created.
* We have to have the toolbar and the other stuff created
///
virtual lyx::frontend::Gui & gui();
+ lyx::frontend::WorkArea * workArea() const { return work_area_; }
protected:
- /// current bufferview (view of a buffer).
+ /// current work area (screen view of a BufferView).
/**
- \todo FIXME: this should be moved out of LyXView.
+ \todo FIXME: there is only one workArea per LyXView for now.
*/
- BufferView * bufferview_;
+ lyx::frontend::WorkArea * work_area_;
/// view's menubar
boost::scoped_ptr<Menubar> menubar_;
}
+BufferView & WorkArea::bufferView()
+{
+ return *buffer_view_;
+}
+
+
+BufferView const & WorkArea::bufferView() const
+{
+ return *buffer_view_;
+}
+
+
void WorkArea::checkAndGreyOut()
{
if (greyed_out_)
void setBufferView(BufferView * buffer_view);
+ ///
+ BufferView & bufferView();
+ ///
+ BufferView const & bufferView() const;
+
/// return the painter object for this work area
virtual Painter & getPainter() = 0;
work_area_.reset(new GuiWorkArea(old_screen_.get(), old_work_area_.get()));
clipboard_.reset(new GuiClipboard(old_work_area_.get()));
guiCursor().connect(work_area_.get());
-
+
// FIXME BufferView creation should be independant of WorkArea creation
- buffer_views_[0].reset(new BufferView(view_.get(), work_area_.get()));
+ buffer_views_[0].reset(new BufferView(view_.get()));
work_area_->setBufferView(buffer_views_[0].get());
- view_->setBufferView(buffer_views_[0].get());
+ view_->setWorkArea(work_area_.get());
return 0;
}
guiCursor().connect(work_area_.get());
// FIXME BufferView creation should be independant of WorkArea creation
- buffer_views_[0].reset(new BufferView(view_.get(), work_area_.get()));
+ buffer_views_[0].reset(new BufferView(view_.get()));
work_area_->setBufferView(buffer_views_[0].get());
- view_->setBufferView(buffer_views_[0].get());
+ view_->setWorkArea(work_area_.get());
return 0;
}
work_areas_[id].reset(new GuiWorkArea(w, h, view));
// FIXME BufferView creation should be independant of WorkArea creation
- buffer_views_[id].reset(new BufferView(view, work_areas_[id].get()));
+ buffer_views_[id].reset(new BufferView(view));
work_areas_[id]->setBufferView(buffer_views_[id].get());
- view->setBufferView(buffer_views_[id].get());
+ view->setWorkArea(work_areas_[id].get());
view->mainWidget()->setCentralWidget(work_areas_[id].get());