*
* \author John Levon
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
#ifndef LYX_GUI_H
#define LYX_GUI_H
-#include "LColor.h"
-#include "LString.h"
+#include "FuncStatus.h"
+
+#include <boost/function.hpp>
+
+#include <string>
#include <vector>
class Dialogs;
+class LColor_color;
class LyXFont;
class LyXComm;
+class FuncRequest;
+class LyXView;
+namespace lyx {
+struct RGBColor;
+}
/// GUI interaction
namespace lyx_gui {
-/// parse command line and do basic initialisation
-void parse_init(int & argc, char * argv[]);
+/// are we using the GUI at all
+extern bool use_gui;
/**
- * set up GUI parameters. At this point lyxrc may
- * be used.
+ * Enter the main event loop (\sa LyX::exec2)
*/
-void parse_lyxrc();
+int exec(int & argc, char * argv[]);
/**
- * Start the main event loop, after executing the given
- * batch commands, and loading the given documents
+ * Synchronise all pending events.
*/
-void start(string const & batch, std::vector<string> const & files);
+void sync_events();
/**
- * quit running LyX
+ * Given col, fills r, g, b in the range 0-255.
+ * The function returns true if successful.
+ * It returns false on failure and sets r, g, b to 0.
*/
-void exit();
+bool getRGBColor(LColor_color col, lyx::RGBColor & rgbcol);
/** Eg, passing LColor::black returns "000000",
* passing LColor::white returns "ffffff".
*/
-string const hexname(LColor::color col);
+std::string const hexname(LColor_color col);
/**
* update an altered GUI color
*/
-void update_color(LColor::color col);
-
-/**
- * update the font cache
- */
-void update_fonts();
-
-/**
- * is the given font available ?
- */
-bool font_available(LyXFont const & font);
+void update_color(LColor_color col);
/**
- * add a callback for I/O read notification
+ * add a callback for socket read notification
+ * @param fd socket descriptor (file/socket/etc)
*/
-void set_read_callback(int fd, LyXComm * comm);
+void register_socket_callback(int fd, boost::function<void()> func);
/**
* remove a I/O read callback
- * @param fd file descriptor
+ * @param fd socket descriptor (file/socket/etc)
*/
-void remove_read_callback(int fd);
+void unregister_socket_callback(int fd);
} // namespace lyx_gui