]> git.lyx.org Git - lyx.git/blob - src/frontends/lyx_gui.h
Fix Qt4 resize bug.
[lyx.git] / src / frontends / lyx_gui.h
1 // -*- C++ -*-
2 /**
3  * \file lyx_gui.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author John Levon
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #ifndef LYX_GUI_H
13 #define LYX_GUI_H
14
15
16 #include "FuncStatus.h"
17
18 #include <boost/function.hpp>
19
20 #include <string>
21 #include <vector>
22
23 class Dialogs;
24 class LColor_color;
25 class LyXFont;
26 class LyXComm;
27 class LyXDataSocket;
28 class LyXServerSocket;
29 class FuncRequest;
30 namespace lyx {
31 struct RGBColor;
32 }
33
34 /// GUI interaction
35 namespace lyx_gui {
36
37 /// are we using the GUI at all
38 extern bool use_gui;
39
40 /// return a suitable serif font name (called from non-gui context too !)
41 std::string const roman_font_name();
42
43 /// return a suitable sans serif font name (called from non-gui context too !)
44 std::string const sans_font_name();
45
46 /// return a suitable monospaced font name (called from non-gui context too !)
47 std::string const typewriter_font_name();
48
49 /**
50  * set up GUI parameters. At this point lyxrc may
51  * be used.
52  */
53 void parse_lyxrc();
54
55 /**
56  * Start the main event loop, after executing the given
57  * batch commands, and loading the given documents
58  */
59 void start(std::string const & batch, std::vector<std::string> const & files,
60            unsigned int width, unsigned int height, int posx, int posy, bool maximize);
61
62 /**
63  * Enter the main event loop (\sa LyX::exec2)
64  */
65 void exec(int & argc, char * argv[]);
66
67 /**
68  * Synchronise all pending events.
69  */
70 void sync_events();
71
72 /**
73  * quit running LyX
74  */
75 void exit(int);
76
77 /**
78  * return the status flag for a given action. This can be used to tell
79  * that a given lfun is not implemented by a frontend
80  */
81 FuncStatus getStatus(FuncRequest const & ev);
82
83 /**
84  * Given col, fills r, g, b in the range 0-255.
85  * The function returns true if successful.
86  * It returns false on failure and sets r, g, b to 0.
87  */
88 bool getRGBColor(LColor_color col, lyx::RGBColor & rgbcol);
89
90 /** Eg, passing LColor::black returns "000000",
91  *      passing LColor::white returns "ffffff".
92  */
93 std::string const hexname(LColor_color col);
94
95 /**
96  * update an altered GUI color
97  */
98 void update_color(LColor_color col);
99
100 /**
101  * update the font cache
102  */
103 void update_fonts();
104
105 /**
106  * is the given font available ?
107  */
108 bool font_available(LyXFont const & font);
109
110 /**
111  * add a callback for socket read notification
112  * @param fd socket descriptor (file/socket/etc)
113  */
114 void register_socket_callback(int fd, boost::function<void()> func);
115
116 /**
117  * remove a I/O read callback
118  * @param fd socket descriptor (file/socket/etc)
119  */
120 void unregister_socket_callback(int fd);
121
122 } // namespace lyx_gui
123
124 #endif // LYX_GUI_H