]> git.lyx.org Git - lyx.git/blob - src/frontends/Application.C
hopefully fix tex2lyx linking.
[lyx.git] / src / frontends / Application.C
1 /**
2  * \file frontend/Application.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Abdelrazak Younes
7  *
8  * Full author contact details are available in file CREDITS.
9  */
10
11 #include <config.h>
12
13 #include "frontends/Application.h"
14
15 #include "frontends/NoGuiFontLoader.h"
16 #include "frontends/NoGuiFontMetrics.h"
17 #include "frontends/FontLoader.h"
18 #include "frontends/FontMetrics.h"
19 #include "frontends/Gui.h"
20 #include "frontends/LyXView.h"
21 #include "frontends/WorkArea.h"
22
23 #include "funcrequest.h"
24 #include "FuncStatus.h"
25 #include "lyx_main.h"
26 #include "lyxfont.h"
27 #include "lyxfunc.h"
28 #include "lyxrc.h"
29
30 #include "support/lstrings.h"
31 #include "support/os.h"
32
33 #include <boost/scoped_ptr.hpp>
34 #include <boost/shared_ptr.hpp>
35
36
37 namespace lyx {
38 namespace frontend {
39
40
41 Application::Application(int &, char **)
42 {
43         // FIXME: please confirm: with unicode, I think initEncoding()
44         // is not needed anymore!
45         
46         // this can't be done before because it needs the Languages object
47         //initEncodings();
48 }
49
50
51 LyXView & Application::createView(unsigned int width,
52                                                                   unsigned int height,
53                                                                   int posx, int posy,
54                                                                   bool maximize)
55 {
56         int view_id = gui().newView();
57         LyXView & view = gui().view(view_id);
58
59         theLyXFunc().setLyXView(&view);
60
61         /*int workArea_id_ =*/ gui().newWorkArea(width, height, view_id);
62
63         view.init();
64         view.setGeometry(width, height, posx, posy, maximize);
65
66         setCurrentView(view);
67
68         return view;
69 }
70
71
72 LyXView const & Application::currentView() const
73 {
74         return *current_view_;
75 }
76
77
78 LyXView & Application::currentView()
79 {
80         return *current_view_;
81 }
82
83
84 void Application::setCurrentView(LyXView & current_view)
85 {
86         current_view_ = &current_view;
87 }
88
89
90 int Application::start(std::string const & /*batch*/)
91 {
92         return exec();
93 }
94
95
96 } // namespace frontend
97
98
99
100 frontend::FontLoader & theFontLoader()
101 {
102         static frontend::NoGuiFontLoader no_gui_font_loader;
103
104         if (!use_gui)
105                 return no_gui_font_loader;
106
107         BOOST_ASSERT(theApp);
108         return theApp->fontLoader();
109 }
110
111
112 frontend::FontMetrics const & theFontMetrics(LyXFont const & f)
113 {
114         static frontend::NoGuiFontMetrics no_gui_font_metrics;
115
116         if (!use_gui)
117                 return no_gui_font_metrics;
118
119         BOOST_ASSERT(theApp);
120         return theApp->fontLoader().metrics(f);
121 }
122
123
124 frontend::Clipboard & theClipboard()
125 {
126         BOOST_ASSERT(theApp);
127         return theApp->clipboard();
128 }
129
130
131 frontend::Selection & theSelection()
132 {
133         BOOST_ASSERT(theApp);
134         return theApp->selection();
135 }
136
137
138 } // namespace lyx