X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Flyx_gui.h;h=f3829b2af3a18c9b1a68ecac259cd4a5cd943a16;hb=e7fc677261bd14fdf159e594fcf422e985c72664;hp=4da6f3dc390c5af2c05e7e5b4cee364869bbddf4;hpb=c17851a1d5a20f13f9b48c6f5afc3f7a89117833;p=lyx.git diff --git a/src/frontends/lyx_gui.h b/src/frontends/lyx_gui.h index 4da6f3dc39..f3829b2af3 100644 --- a/src/frontends/lyx_gui.h +++ b/src/frontends/lyx_gui.h @@ -1,62 +1,121 @@ // -*- C++ -*- /** * \file lyx_gui.h - * Copyright 2002 the LyX Team - * 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. */ #ifndef LYX_GUI_H #define LYX_GUI_H - -#include "LColor.h" -#include "LString.h" + + +#include "FuncStatus.h" + +#include + +#include #include 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 files); - - /// initialise graphics - void init_graphics(); - - /** 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); -} +/// 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 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 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