]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/lyx_gui.h
do not define boost::throw_exceptions if we are compiling with exceptions
[lyx.git] / src / frontends / lyx_gui.h
index 35fa1c05eaf71fa82d4fccd9b4084f5ec0a7c2be..f3829b2af3a18c9b1a68ecac259cd4a5cd943a16 100644 (file)
 // -*- C++ -*-
 /**
  * \file lyx_gui.h
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- * \author John Levon 
+ * \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 LyXDataSocket;
+class LyXServerSocket;
+class FuncRequest;
+namespace lyx {
+struct RGBColor;
+}
 
 /// GUI interaction
 namespace lyx_gui {
 
-       /// parse command line and do basic initialisation
-       void parse_init(int & argc, char * argv[]);
-
-       /**
-        * set up GUI parameters. At this point lyxrc may
-        * be used.
-        */
-       void parse_lyxrc();
-
-       /**
-        * Start the main event loop, after executing the given
-        * batch commands, and loading the given documents
-        */
-       void start(string const & batch, std::vector<std::string> files);
-
-       /**
-        * quit running LyX
-        */
-       void exit();
-       /** Eg, passing LColor::black returns "000000",
-        *      passing LColor::white returns "ffffff".
-        */
-       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);
-
-       /**
-        * add a callback for I/O read notification
-        */
-       void set_read_callback(int fd, LyXComm * comm);
-
-       /**
-        * remove a I/O read callback
-        */
-       void remove_read_callback(int fd);
-}
+/// are we using the GUI at all
+extern bool use_gui;
+
+/// return a suitable serif font name (called from non-gui context too !)
+std::string const roman_font_name();
+
+/// return a suitable sans serif font name (called from non-gui context too !)
+std::string const sans_font_name();
+
+/// return a suitable monospaced font name (called from non-gui context too !)
+std::string const typewriter_font_name();
+
+/// parse command line and do basic initialisation
+void parse_init(int & argc, char * argv[]);
+
+/**
+ * set up GUI parameters. At this point lyxrc may
+ * be used.
+ */
+void parse_lyxrc();
+
+/**
+ * Start the main event loop, after executing the given
+ * batch commands, and loading the given documents
+ */
+void start(std::string const & batch, std::vector<std::string> const & files);
+
+/**
+ * Synchronise all pending events.
+ */
+void sync_events();
+
+/**
+ * quit running LyX
+ */
+void exit();
+
+/**
+ * return the status flag for a given action. This can be used to tell
+ * that a given lfun is not implemented by a frontend
+ */
+FuncStatus getStatus(FuncRequest const & ev);
+
+/**
+ * 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.
+ */
+bool getRGBColor(LColor_color col, lyx::RGBColor & rgbcol);
+
+/** Eg, passing LColor::black returns "000000",
+ *      passing LColor::white returns "ffffff".
+ */
+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);
+
+/**
+ * add a callback for socket read notification
+ * @param fd socket descriptor (file/socket/etc)
+ */
+void register_socket_callback(int fd, boost::function<void()> func);
+
+/**
+ * remove a I/O read callback
+ * @param fd socket descriptor (file/socket/etc)
+ */
+void unregister_socket_callback(int fd);
+
+} // namespace lyx_gui
 
 #endif // LYX_GUI_H