]> git.lyx.org Git - lyx.git/blob - src/frontends/gtk/GuiImplementation.C
Extracted from r14281
[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 <config.h>
13
14 #include "GuiImplementation.h"
15
16 #include "GView.h"
17 #include "BufferView.h"
18
19 namespace lyx {
20 namespace frontend {
21
22 int GuiImplementation::newView(unsigned int /*w*/, unsigned int /*h*/)
23 {
24         view_.reset(new GView(*this));
25         return 0;
26 }
27
28
29 int GuiImplementation::newWorkArea(unsigned int w, unsigned int h, int /*view_id*/)
30 {
31         old_work_area_.reset(new GWorkArea(*view_.get(), w, h));
32         old_screen_.reset(new GScreen(*old_work_area_.get()));
33         work_area_.reset(new GuiWorkArea(old_screen_.get(), old_work_area_.get()));
34         clipboard_.reset(new GuiClipboard(old_work_area_.get()));
35
36         // FIXME BufferView creation should be independant of WorkArea creation
37         buffer_views_[0].reset(new BufferView(view_.get()));
38         work_area_->setBufferView(buffer_views_[0].get());
39         view_->setWorkArea(work_area_.get());
40         return 0;
41 }
42
43
44 void GuiImplementation::destroyWorkArea(int /*id*/)
45 {
46         clipboard_.reset();
47         work_area_.reset();
48         old_work_area_.reset();
49         old_screen_.reset();
50 }
51
52 } // namespace frontend
53 } // namespace lyx