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.
7 * \author Abdelrazak Younes
9 * Full author contact details are available in file CREDITS.
12 #ifndef GUI_IMPLEMENTATION_H
13 #define GUI_IMPLEMENTATION_H
15 #include "frontends/Gui.h"
16 #include "frontends/LyXView.h"
19 #include "GWorkArea.h"
21 #include "GuiClipboard.h"
22 #include "GuiSelection.h"
23 #include "GuiWorkArea.h"
25 #include <boost/shared_ptr.hpp>
31 * The Gui class is the interface to all GTK components.
33 class GuiImplementation: public lyx::frontend::Gui
40 virtual ~GuiImplementation()
44 lyx::frontend::Clipboard & clipboard()
49 lyx::frontend::Selection & selection()
54 int newView(unsigned int w, unsigned int h);
56 LyXView & view(int /*id*/)
61 void destroyView(int /*id*/)
66 int newWorkArea(unsigned int w, unsigned int h, int /*view_id*/);
68 lyx::frontend::WorkArea & workArea(int /*id*/)
73 void destroyWorkArea(int /*id*/);
77 GuiClipboard clipboard_;
79 boost::shared_ptr<GuiSelection> selection_;
81 boost::shared_ptr<GuiWorkArea> work_area_;
83 boost::shared_ptr<LyXView> view_;
85 boost::shared_ptr<GWorkArea> old_work_area_;
87 boost::shared_ptr<GScreen> old_screen_;
90 } // namespace frontend
93 #endif // GUI_IMPLEMENTATION_H