From 63ad5449fb99abae131dec98fe508322a2a31320 Mon Sep 17 00:00:00 2001 From: Abdelrazak Younes Date: Tue, 3 Oct 2006 10:34:10 +0000 Subject: [PATCH] This commit creates a new "frontends/lyx_gui.C" that contains all functions that are not frontend dependent any more. It also creates 3 new pure virtual methods in Application: virtual std::string const romanFontName() = 0; virtual std::string const sansFontName() = 0; virtual std::string const typewriterFontName() = 0; My goal is to transfer all of "frontends/*/lyx_gui.C" to "frontends/lyx_gui.C". When this is done, "frontends/lyx_gui.C" can go altogether as its functions will then be replaced with direct calls to theApp->XXX(). * frontends/lyx_gui.C: new file with code transfered from [qt3,qt4,gtk]/lyx_gui.C * frontends/Application: 3 new font related pure virtual methods * [qt3,qt4,gtk]/GuiApplication: implement the above method with code transfered from lyx_gui.C git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15208 a592a061-630c-0410-9148-cb99ea01b6c8 --- development/scons/scons_manifest.py | 1 + src/frontends/Application.h | 9 +++ src/frontends/Makefile.am | 1 + src/frontends/gtk/GuiApplication.C | 18 ++++++ src/frontends/gtk/GuiApplication.h | 5 ++ src/frontends/gtk/lyx_gui.C | 54 ------------------ src/frontends/lyx_gui.C | 88 +++++++++++++++++++++++++++++ src/frontends/qt3/GuiApplication.C | 30 ++++++++++ src/frontends/qt3/GuiApplication.h | 5 ++ src/frontends/qt3/lyx_gui.C | 75 ------------------------ src/frontends/qt4/GuiApplication.C | 28 +++++++++ src/frontends/qt4/GuiApplication.h | 5 ++ src/frontends/qt4/lyx_gui.C | 76 ------------------------- 13 files changed, 190 insertions(+), 205 deletions(-) create mode 100644 src/frontends/lyx_gui.C diff --git a/development/scons/scons_manifest.py b/development/scons/scons_manifest.py index e7aaf9671f..f4af24b581 100644 --- a/development/scons/scons_manifest.py +++ b/development/scons/scons_manifest.py @@ -461,6 +461,7 @@ src_frontends_files = Split(''' Toolbars.C WorkArea.C guiapi.C + lyx_gui.C nullpainter.C ''') diff --git a/src/frontends/Application.h b/src/frontends/Application.h index 50dd994a0b..a141bf54d4 100644 --- a/src/frontends/Application.h +++ b/src/frontends/Application.h @@ -59,6 +59,15 @@ public: /// virtual Selection & selection() = 0; + /// return a suitable serif font name. + virtual std::string const romanFontName() = 0; + + /// return a suitable sans serif font name. + virtual std::string const sansFontName() = 0; + + /// return a suitable monospaced font name. + virtual std::string const typewriterFontName() = 0; + /// LyXFunc & lyxFunc(); LyXFunc const & lyxFunc() const; diff --git a/src/frontends/Makefile.am b/src/frontends/Makefile.am index fd9d691e93..4ca77284f3 100644 --- a/src/frontends/Makefile.am +++ b/src/frontends/Makefile.am @@ -41,6 +41,7 @@ libfrontends_la_SOURCES = \ guiapi.h \ guiapi.C \ key_state.h \ + lyx_gui.C \ lyx_gui.h \ mouse_state.h \ nullpainter.C \ diff --git a/src/frontends/gtk/GuiApplication.C b/src/frontends/gtk/GuiApplication.C index 5877d15ef3..431fec9491 100644 --- a/src/frontends/gtk/GuiApplication.C +++ b/src/frontends/gtk/GuiApplication.C @@ -104,5 +104,23 @@ void GuiApplication::exit(int /*status*/) } +string const GuiApplication::romanFontName() +{ + return "times"; +} + + +string const GuiApplication::sansFontName() +{ + return "helvetica"; +} + + +string const GuiApplication::typewriterFontName() +{ + return "courier"; +} + + } // namespace frontend } // namespace lyx diff --git a/src/frontends/gtk/GuiApplication.h b/src/frontends/gtk/GuiApplication.h index 606ed23324..6526729786 100644 --- a/src/frontends/gtk/GuiApplication.h +++ b/src/frontends/gtk/GuiApplication.h @@ -43,6 +43,8 @@ class GuiApplication : public Gtk::Main, public Application { public: GuiApplication(int & argc, char ** argv); + /// + virtual ~GuiApplication() {} /// Method inherited from \c Application class //@{ @@ -51,6 +53,9 @@ public: virtual int const exec(); virtual Gui & gui() { return gui_; } virtual void exit(int status); + virtual std::string const romanFontName(); + virtual std::string const sansFontName(); + virtual std::string const typewriterFontName(); //@} /// diff --git a/src/frontends/gtk/lyx_gui.C b/src/frontends/gtk/lyx_gui.C index 23d3de2c87..3de8d1872a 100644 --- a/src/frontends/gtk/lyx_gui.C +++ b/src/frontends/gtk/lyx_gui.C @@ -79,8 +79,6 @@ using lyx::frontend::GuiImplementation; using lyx::frontend::GView; -bool lyx_gui::use_gui = true; - namespace { /// estimate DPI from X server @@ -94,7 +92,6 @@ int getDPI() } // namespace anon -lyx::frontend::Application * theApp; GuiApplication * guiApp; int lyx_gui::exec(int & argc, char * argv[]) @@ -106,45 +103,12 @@ int lyx_gui::exec(int & argc, char * argv[]) } -void lyx_gui::parse_lyxrc() -{ -} - - -LyXView * lyx_gui::create_view(unsigned int width, unsigned int height, - int posx, int posy, bool maximize) -{ - return &guiApp->createView(width, height, posx, posy, maximize); -} - - -int lyx_gui::start(LyXView *, string const & batch) -{ - return guiApp->start(batch); -} - - void lyx_gui::exit(int status) { guiApp->exit(status); } -FuncStatus lyx_gui::getStatus(FuncRequest const & ev) -{ - FuncStatus flag; - switch (ev.action) { - case LFUN_TOOLTIPS_TOGGLE: - flag.unknown(true); - break; - default: - break; - } - - return flag; -} - - bool lyx_gui::getRGBColor(LColor_color col, lyx::RGBColor & rgbcol) { Gdk::Color gdkColor; @@ -226,24 +190,6 @@ void lyx_gui::unregister_socket_callback(int fd) } -string const lyx_gui::roman_font_name() -{ - return "times"; -} - - -string const lyx_gui::sans_font_name() -{ - return "helvetica"; -} - - -string const lyx_gui::typewriter_font_name() -{ - return "courier"; -} - - void lyx_gui::sync_events() { // FIXME diff --git a/src/frontends/lyx_gui.C b/src/frontends/lyx_gui.C new file mode 100644 index 0000000000..9dd95c0e8d --- /dev/null +++ b/src/frontends/lyx_gui.C @@ -0,0 +1,88 @@ +/** + * \file frontends/lyx_gui.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author John Levon + * \author Abdelrazak Younes + * + * Full author contact details are available in file CREDITS. + */ + +#include + +#include "lyx_gui.h" + +#include "LyXView.h" +#include "Application.h" + +#include "funcrequest.h" + +using std::string; + +lyx::frontend::Application * theApp; + + +namespace lyx_gui { + +bool use_gui = true; + +void parse_lyxrc() +{} + + +LyXView * create_view(unsigned int width, unsigned int height, int posx, int posy, + bool maximize) +{ + return &theApp->createView(width, height, posx, posy, maximize); +} + + +int start(LyXView * view, string const & batch) +{ + return theApp->start(batch); +} + + +FuncStatus getStatus(FuncRequest const & ev) +{ + FuncStatus flag; + switch (ev.action) { + case LFUN_TOOLTIPS_TOGGLE: + flag.unknown(true); + break; + default: + break; + } + + return flag; +} + + +string const roman_font_name() +{ + if (!use_gui) + return "serif"; + + return theApp->romanFontName(); +} + + +string const sans_font_name() +{ + if (!use_gui) + return "sans"; + + return theApp->sansFontName(); +} + + +string const typewriter_font_name() +{ + if (!use_gui) + return "monospace"; + + return theApp->typewriterFontName(); +} + +}; // namespace lyx_gui diff --git a/src/frontends/qt3/GuiApplication.C b/src/frontends/qt3/GuiApplication.C index 0c99d68930..0b4e13fc47 100644 --- a/src/frontends/qt3/GuiApplication.C +++ b/src/frontends/qt3/GuiApplication.C @@ -161,6 +161,36 @@ void GuiApplication::exit(int status) } +string const GuiApplication::romanFontName() +{ + QFont font; + font.setStyleHint(QFont::Serif); + font.setFamily("serif"); + + return fromqstr(QFontInfo(font).family()); +} + + +string const GuiApplication::sansFontName() +{ + QFont font; + font.setStyleHint(QFont::SansSerif); + font.setFamily("sans"); + + return fromqstr(QFontInfo(font).family()); +} + + +string const GuiApplication::typewriterFontName() +{ + QFont font; + font.setStyleHint(QFont::TypeWriter); + font.setFamily("monospace"); + + return fromqstr(QFontInfo(font).family()); +} + + //////////////////////////////////////////////////////////////////////// // X11 specific stuff goes here... #ifdef Q_WS_X11 diff --git a/src/frontends/qt3/GuiApplication.h b/src/frontends/qt3/GuiApplication.h index 066d45c2c9..d56e057c5d 100644 --- a/src/frontends/qt3/GuiApplication.h +++ b/src/frontends/qt3/GuiApplication.h @@ -49,6 +49,8 @@ class GuiApplication : public QApplication, public Application { public: GuiApplication(int & argc, char ** argv); + /// + virtual ~GuiApplication() {} /// Method inherited from \c Application class //@{ @@ -57,6 +59,9 @@ public: virtual int const exec(); virtual Gui & gui() { return gui_; } virtual void exit(int status); + virtual std::string const romanFontName(); + virtual std::string const sansFontName(); + virtual std::string const typewriterFontName(); //@} /// diff --git a/src/frontends/qt3/lyx_gui.C b/src/frontends/qt3/lyx_gui.C index 4be85e78e3..0bf68e8be5 100644 --- a/src/frontends/qt3/lyx_gui.C +++ b/src/frontends/qt3/lyx_gui.C @@ -85,14 +85,10 @@ map > socket_callbacks; } // namespace anon -lyx::frontend::Application * theApp; GuiApplication * guiApp; namespace lyx_gui { -bool use_gui = true; - - int exec(int & argc, char * argv[]) { GuiApplication app(argc, argv); @@ -104,23 +100,6 @@ int exec(int & argc, char * argv[]) } -void parse_lyxrc() -{} - - -LyXView* create_view(unsigned int width, unsigned int height, int posx, int posy, - bool maximize) -{ - return &guiApp->createView(width, height, posx, posy, maximize); -} - - -int start(LyXView *, string const & batch) -{ - return theApp->start(batch); -} - - void sync_events() { // This is the ONLY place where processEvents may be called. @@ -139,21 +118,6 @@ void exit(int status) } -FuncStatus getStatus(FuncRequest const & ev) -{ - FuncStatus flag; - switch (ev.action) { - case LFUN_TOOLTIPS_TOGGLE: - flag.unknown(true); - break; - default: - break; - } - - return flag; -} - - bool getRGBColor(LColor_color col, lyx::RGBColor & rgbcol) { QColor const & qcol = lcolorcache.get(col); @@ -206,43 +170,4 @@ void unregister_socket_callback(int fd) socket_callbacks.erase(fd); } - -string const roman_font_name() -{ - if (!use_gui) - return "serif"; - - QFont font; - font.setStyleHint(QFont::Serif); - font.setFamily("serif"); - - return fromqstr(QFontInfo(font).family()); -} - - -string const sans_font_name() -{ - if (!use_gui) - return "sans"; - - QFont font; - font.setStyleHint(QFont::SansSerif); - font.setFamily("sans"); - - return fromqstr(QFontInfo(font).family()); -} - - -string const typewriter_font_name() -{ - if (!use_gui) - return "monospace"; - - QFont font; - font.setStyleHint(QFont::TypeWriter); - font.setFamily("monospace"); - - return fromqstr(QFontInfo(font).family()); -} - }; // namespace lyx_gui diff --git a/src/frontends/qt4/GuiApplication.C b/src/frontends/qt4/GuiApplication.C index f9da2648fd..147238249f 100644 --- a/src/frontends/qt4/GuiApplication.C +++ b/src/frontends/qt4/GuiApplication.C @@ -159,6 +159,34 @@ void GuiApplication::exit(int status) } +string const GuiApplication::romanFontName() +{ + QFont font; + font.setStyleHint(QFont::Serif); + font.setFamily("serif"); + + return fromqstr(QFontInfo(font).family()); +} + + +string const GuiApplication::sansFontName() +{ + QFont font; + font.setStyleHint(QFont::SansSerif); + font.setFamily("sans"); + + return fromqstr(QFontInfo(font).family()); +} + + +string const GuiApplication::typewriterFontName() +{ + QFont font; + font.setStyleHint(QFont::TypeWriter); + font.setFamily("monospace"); + + return fromqstr(QFontInfo(font).family()); +} //////////////////////////////////////////////////////////////////////// diff --git a/src/frontends/qt4/GuiApplication.h b/src/frontends/qt4/GuiApplication.h index 8bc3b97815..82334a8d13 100644 --- a/src/frontends/qt4/GuiApplication.h +++ b/src/frontends/qt4/GuiApplication.h @@ -50,6 +50,8 @@ class GuiApplication : public QApplication, public Application { public: GuiApplication(int & argc, char ** argv); + /// + virtual ~GuiApplication() {} /// Method inherited from \c Application class //@{ @@ -58,6 +60,9 @@ public: virtual int const exec(); virtual Gui & gui() { return gui_; } virtual void exit(int status); + virtual std::string const romanFontName(); + virtual std::string const sansFontName(); + virtual std::string const typewriterFontName(); //@} /// diff --git a/src/frontends/qt4/lyx_gui.C b/src/frontends/qt4/lyx_gui.C index 8192332dd3..838bea46f1 100644 --- a/src/frontends/qt4/lyx_gui.C +++ b/src/frontends/qt4/lyx_gui.C @@ -26,7 +26,6 @@ #include "support/lstrings.h" - #include "GuiView.h" #include "QLImage.h" #include "qt_helpers.h" @@ -61,8 +60,6 @@ using std::vector; using std::string; lyx::frontend::GuiApplication * guiApp; -lyx::frontend::Application * theApp; - namespace { @@ -72,8 +69,6 @@ map > socket_callbacks; namespace lyx_gui { -bool use_gui = true; - int exec(int & argc, char * argv[]) { /* @@ -110,23 +105,6 @@ int exec(int & argc, char * argv[]) } -void parse_lyxrc() -{} - - -LyXView * create_view(unsigned int width, unsigned int height, int posx, int posy, - bool maximize) -{ - return &guiApp->createView(width, height, posx, posy, maximize); -} - - -int start(LyXView * view, string const & batch) -{ - return theApp->start(batch); -} - - void sync_events() { // This is the ONLY place where processEvents may be called. @@ -143,21 +121,6 @@ void exit(int status) } -FuncStatus getStatus(FuncRequest const & ev) -{ - FuncStatus flag; - switch (ev.action) { - case LFUN_TOOLTIPS_TOGGLE: - flag.unknown(true); - break; - default: - break; - } - - return flag; -} - - bool getRGBColor(LColor_color col, lyx::RGBColor & rgbcol) { QColor const & qcol = guiApp->colorCache().get(col); @@ -210,43 +173,4 @@ void unregister_socket_callback(int fd) socket_callbacks.erase(fd); } - -string const roman_font_name() -{ - if (!use_gui) - return "serif"; - - QFont font; - font.setStyleHint(QFont::Serif); - font.setFamily("serif"); - - return fromqstr(QFontInfo(font).family()); -} - - -string const sans_font_name() -{ - if (!use_gui) - return "sans"; - - QFont font; - font.setStyleHint(QFont::SansSerif); - font.setFamily("sans"); - - return fromqstr(QFontInfo(font).family()); -} - - -string const typewriter_font_name() -{ - if (!use_gui) - return "monospace"; - - QFont font; - font.setStyleHint(QFont::TypeWriter); - font.setFamily("monospace"); - - return fromqstr(QFontInfo(font).family()); -} - }; // namespace lyx_gui -- 2.39.2