]> git.lyx.org Git - lyx.git/blob - src/frontends/gtk/GuiImplementation.C
GUI API Cleanup step 2: merge of the "younes" branch.
[lyx.git] / src / frontends / gtk / GuiImplementation.C
1 // -*- C++ -*-
2 /**
3  * \file gtk/GuiImplementation.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Abdelrazak Younes
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #include "GuiImplementation.h"
13
14 #include "GView.h"
15 #include "BufferView.h"
16
17 namespace lyx {
18 namespace frontend {
19
20 int GuiImplementation::newView(unsigned int /*w*/, unsigned int /*h*/)
21 {
22         view_.reset(new GView(*this));
23         return 0;
24 }
25
26
27 int GuiImplementation::newWorkArea(unsigned int w, unsigned int h, int /*view_id*/)
28 {
29         old_work_area_.reset(new GWorkArea(*view_.get(), w, h));
30         old_screen_.reset(new GScreen(*old_work_area_.get()));
31         work_area_.reset(new GuiWorkArea(old_screen_.get(), old_work_area_.get()));
32         clipboard_.reset(new GuiClipboard(old_work_area_.get()));
33         guiCursor().connect(work_area_.get());
34         
35         // FIXME BufferView creation should be independant of WorkArea creation
36         buffer_views_[0].reset(new BufferView(view_.get(), work_area_.get()));
37         work_area_->setBufferView(buffer_views_[0].get());
38         view_->setBufferView(buffer_views_[0].get());
39         return 0;
40 }
41
42
43 void GuiImplementation::destroyWorkArea(int /*id*/)
44 {
45         clipboard_.reset();
46         work_area_.reset();
47         old_work_area_.reset();
48         old_screen_.reset();
49 }
50
51 } // namespace frontend
52 } // namespace lyx