From c7f1fcdc65d5d2873ff0446cb658ac1340fc1b82 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Fri, 25 Jul 2003 21:34:45 +0000 Subject: [PATCH] towards saner frontends (?). Part II: the menubar (now it is possible to switch frontend without recompiling GUII code) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7361 a592a061-630c-0410-9148-cb99ea01b6c8 --- config/ChangeLog | 5 ++ config/configure.ac | 5 +- config/configure.in | 7 ++- po/POTFILES.in | 1 + src/frontends/ChangeLog | 10 ++++ src/frontends/Makefile.am | 3 +- src/frontends/Menubar.C | 39 ---------------- src/frontends/Menubar.h | 24 ++-------- src/frontends/qt2/ChangeLog | 10 ++++ src/frontends/qt2/Makefile.am | 2 +- .../qt2/{Menubar_pimpl.C => QLMenubar.C} | 21 ++++----- .../qt2/{Menubar_pimpl.h => QLMenubar.h} | 15 +++--- src/frontends/qt2/QLPopupMenu.C | 5 +- src/frontends/qt2/QLPopupMenu.h | 9 ++-- src/frontends/qt2/QtView.C | 4 +- src/frontends/xforms/ChangeLog | 18 ++++++-- src/frontends/xforms/Makefile.am | 4 +- .../{Menubar_pimpl.C => XFormsMenubar.C} | 46 +++++++++---------- .../{Menubar_pimpl.h => XFormsMenubar.h} | 21 ++++----- src/frontends/xforms/XFormsToolbar.C | 2 +- src/frontends/xforms/XFormsToolbar.h | 2 +- src/frontends/xforms/XFormsView.C | 4 +- 22 files changed, 114 insertions(+), 143 deletions(-) delete mode 100644 src/frontends/Menubar.C rename src/frontends/qt2/{Menubar_pimpl.C => QLMenubar.C} (82%) rename src/frontends/qt2/{Menubar_pimpl.h => QLMenubar.h} (82%) rename src/frontends/xforms/{Menubar_pimpl.C => XFormsMenubar.C} (88%) rename src/frontends/xforms/{Menubar_pimpl.h => XFormsMenubar.h} (79%) diff --git a/config/ChangeLog b/config/ChangeLog index 978a3bfd03..89491f3d38 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,8 @@ +2003-07-25 Jean-Marc Lasgouttes + + * configure.in: + * configure.ac: remove frontend directories from FRONTEND_INCLUDES + 2003-07-22 John Levon * configure.ac: diff --git a/config/configure.ac b/config/configure.ac index 2c134b819e..a0f114b98f 100644 --- a/config/configure.ac +++ b/config/configure.ac @@ -177,7 +177,6 @@ case "$lyx_use_frontend" in RPM_FRONTEND="xforms" RPM_FRONTEND_DEPS='libforms >= 1.0' FRONTEND_GUILIB="frontends/xforms/libxforms.la" - FRONTEND_INCLUDES="-I\$(srcdir)/xforms" FRONTEND_INFO=" libXpm version: ${XPM_VERSION}\n\ libforms version: ${XFORMS_VERSION}\n" ;; @@ -192,7 +191,7 @@ dnl AC_SUBST(GNOME_FRONTEND_LIBS) dnl FRONTEND="xforms gnome" dnl FRONTEND_GUILIB="gnome/*.lo" dnl FRONTEND_LDFLAGS="${GNOME_FRONTEND_LIBS}" -dnl FRONTEND_INCLUDES="-I\${srcdir}/gnome -I\${srcdir}/xforms ${GNOME_FRONTEND_CFLAGS} " +dnl FRONTEND_INCLUDES="${GNOME_FRONTEND_CFLAGS}" dnl FRONTEND_LIBS="@XPM_LIB@ @XFORMS_LIB@ ${GNOME_FRONTEND_LIBS}" dnl ;; qt) @@ -200,7 +199,7 @@ dnl ;; RPM_FRONTEND_DEPS='qt >= 2.2.1' FRONTEND="qt2" FRONTEND_GUILIB="frontends/qt2/libqt2.la" - FRONTEND_INCLUDES="-I\${srcdir}/qt2 \$(QT_INCLUDES)" + FRONTEND_INCLUDES="\$(QT_INCLUDES)" FRONTEND_INFO=" Qt version: ${QT_VERSION}\n" ;; *) diff --git a/config/configure.in b/config/configure.in index 336edfcf71..98d0f458a2 100644 --- a/config/configure.in +++ b/config/configure.in @@ -174,7 +174,6 @@ case "$lyx_use_frontend" in RPM_FRONTEND="xforms" RPM_FRONTEND_DEPS='libforms >= 1.0' FRONTEND_GUILIB="xforms/*.lo xforms/forms/*.lo" - FRONTEND_INCLUDES="-I\$(srcdir)/xforms" FRONTEND_LIBS="@XFORMS_IMAGE_LIB@ @XFORMS_LIB@ @XPM_LIB@" FRONTEND_INFO=" libXpm version: ${XPM_VERSION}\n\ libforms version: ${XFORMS_VERSION}\n" @@ -193,7 +192,7 @@ dnl AC_SUBST(GNOME_FRONTEND_LIBS) dnl FRONTEND="xforms gnome" dnl FRONTEND_GUILIB="gnome/*.lo" dnl FRONTEND_LDFLAGS="${GNOME_FRONTEND_LIBS}" -dnl FRONTEND_INCLUDES="-I\${srcdir}/gnome -I\${srcdir}/xforms ${GNOME_FRONTEND_CFLAGS} " +dnl FRONTEND_INCLUDES="${GNOME_FRONTEND_CFLAGS} " dnl FRONTEND_LIBS="@XPM_LIB@ @XFORMS_LIB@ ${GNOME_FRONTEND_LIBS}";; qt) QT_DO_IT_ALL @@ -201,8 +200,8 @@ dnl FRONTEND_LIBS="@XPM_LIB@ @XFORMS_LIB@ ${GNOME_FRONTEND_LIBS}";; RPM_FRONTEND_DEPS='qt >= 2.2.1' FRONTEND="qt2" FRONTEND_GUILIB="qt2/*.lo qt2/ui/*.lo qt2/moc/*.lo qt2/ui/moc/*.lo" - FRONTEND_LDFLAGS="\$(QT_LDFLAGS)" - FRONTEND_INCLUDES="-I\${srcdir}/qt2 \$(QT_INCLUDES)" + FRONTEND_LDFLAGS='$(QT_LDFLAGS)' + FRONTEND_INCLUDES='$(QT_INCLUDES)' FRONTEND_LIBS="\$(QT_LIB)" FRONTEND_INFO=" Qt version: ${QT_VERSION}\n" ;; diff --git a/po/POTFILES.in b/po/POTFILES.in index 819b1966a7..4fd6289d9a 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -130,6 +130,7 @@ src/frontends/xforms/FormUrl.C src/frontends/xforms/FormVCLog.C src/frontends/xforms/FormWrap.C src/frontends/xforms/Menubar_pimpl.C +src/frontends/xforms/XFormsMenubar.C src/frontends/xforms/XMiniBuffer.C src/frontends/xforms/xformsBC.h src/frontends/xforms/xforms_helpers.C diff --git a/src/frontends/ChangeLog b/src/frontends/ChangeLog index 0331a9a882..76f0356731 100644 --- a/src/frontends/ChangeLog +++ b/src/frontends/ChangeLog @@ -1,3 +1,13 @@ +2003-07-25 Jean-Marc Lasgouttes + + * Menubar.h: do not use a pimpl, but rather an abstract class + + * Menubar.C: removed + +2003-07-25 Jean-Marc Lasgouttes + + * Toolbar.h: do not use a pimpl, but rather an abstract class + 2003-07-21 Angus Leeming * screen.C (c-tor, greyOut): use namespace lyx::graphics diff --git a/src/frontends/Makefile.am b/src/frontends/Makefile.am index f7ba3d4085..803e0f7d0f 100644 --- a/src/frontends/Makefile.am +++ b/src/frontends/Makefile.am @@ -6,7 +6,7 @@ DIST_SUBDIRS = controllers xforms qt2 gnome noinst_LTLIBRARIES = libfrontends.la -INCLUDES = $(FRONTEND_INCLUDES) -I$(srcdir)/.. $(BOOST_INCLUDES) +INCLUDES = -I$(srcdir)/.. $(BOOST_INCLUDES) libfrontends_la_SOURCES = \ Alert.C \ @@ -20,7 +20,6 @@ libfrontends_la_SOURCES = \ LyXScreenFactory.h \ LyXView.C \ LyXView.h \ - Menubar.C \ Menubar.h \ Painter.C \ Painter.h \ diff --git a/src/frontends/Menubar.C b/src/frontends/Menubar.C deleted file mode 100644 index d13d73db4a..0000000000 --- a/src/frontends/Menubar.C +++ /dev/null @@ -1,39 +0,0 @@ -/** - * \file Menubar.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Jean-Marc Lasgouttes - * - * Full author contact details are available in file CREDITS - */ - -#include - - -#include "Menubar.h" -#include "MenuBackend.h" -#include "Menubar_pimpl.h" - -Menubar::Menubar(LyXView * o, MenuBackend const & md) -{ - pimpl_ = new Pimpl(o, md); -} - - -Menubar::~Menubar() -{ - delete pimpl_; -} - - -void Menubar::openByName(string const & name) -{ - pimpl_->openByName(name); -} - - -void Menubar::update() -{ - pimpl_->update(); -} diff --git a/src/frontends/Menubar.h b/src/frontends/Menubar.h index 5bef504b2d..10b734ed5a 100644 --- a/src/frontends/Menubar.h +++ b/src/frontends/Menubar.h @@ -5,6 +5,7 @@ * Licence details can be found in the file COPYING. * * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes * * Full author contact details are available in file CREDITS */ @@ -15,32 +16,17 @@ #include "LString.h" -class LyXView; -class MenuBackend; - /** * The LyX GUI independent menubar class - * The GUI interface is implemented in the corresponding Menubar_pimpl class. + * The GUI interface is implemented in the frontends */ class Menubar { public: /// - Menubar(LyXView * o, MenuBackend const &); - /// - ~Menubar(); + virtual ~Menubar() {} /// Opens a top-level submenu given its name - void openByName(string const &); + virtual void openByName(string const &) = 0; /// update the state of the menuitems - void update(); - - - //I disable this temporarily until I find a nice way to make it work - //with compaq cxx. (Jean-Marc) - // Is this a new comment? (Lgb) - struct Pimpl; - friend struct Pimpl; -private: - /// - Pimpl * pimpl_; + virtual void update() = 0; }; #endif // MENUBAR_H diff --git a/src/frontends/qt2/ChangeLog b/src/frontends/qt2/ChangeLog index 52d3a27f16..3b75a43a45 100644 --- a/src/frontends/qt2/ChangeLog +++ b/src/frontends/qt2/ChangeLog @@ -1,3 +1,13 @@ +2003-07-25 Jean-Marc Lasgouttes + + * QLMenubar.h: + * QLMenubar.C: derives from Menubar (replaces Menubar::Pimpl) + + * Menubar_pimpl.C: + * Menubar_pimpl.h: removed + + * QtView.C: modified because of changes above + 2003-07-25 Jean-Marc Lasgouttes * QLToolbar.h: diff --git a/src/frontends/qt2/Makefile.am b/src/frontends/qt2/Makefile.am index d111884f76..df4aee221b 100644 --- a/src/frontends/qt2/Makefile.am +++ b/src/frontends/qt2/Makefile.am @@ -25,7 +25,7 @@ libqt2_la_SOURCES = \ FileDialog.C \ LyXKeySymFactory.C \ LyXScreenFactory.C \ - Menubar_pimpl.C Menubar_pimpl.h \ + QLMenubar.C QLMenubar.h \ qtTimeout.C qtTimeout.h \ QAbout.C QAbout.h \ QBibitem.C QBibitem.h \ diff --git a/src/frontends/qt2/Menubar_pimpl.C b/src/frontends/qt2/QLMenubar.C similarity index 82% rename from src/frontends/qt2/Menubar_pimpl.C rename to src/frontends/qt2/QLMenubar.C index 5a5ee63689..3c603255d0 100644 --- a/src/frontends/qt2/Menubar_pimpl.C +++ b/src/frontends/qt2/QLMenubar.C @@ -1,17 +1,15 @@ /** - * \file qt2/Menubar_pimpl.C + * \file qt2/QLMenubar.C * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author John Levon * * Full author contact details are available in file CREDITS */ #include - -#include "Menubar_pimpl.h" #include "MenuBackend.h" #include "LyXAction.h" #include "kbmap.h" @@ -24,6 +22,7 @@ #include "debug.h" #include "QtView.h" +#include "QLMenubar.h" #include "QLPopupMenu.h" #include @@ -39,7 +38,7 @@ using std::for_each; using std::pair; -Menubar::Pimpl::Pimpl(LyXView * view, MenuBackend const & mbe) +QLMenubar::QLMenubar(LyXView * view, MenuBackend const & mbe) : owner_(static_cast(view)), menubackend_(mbe) { Menu::const_iterator m = mbe.getMenubar().begin(); @@ -63,11 +62,7 @@ Menubar::Pimpl::Pimpl(LyXView * view, MenuBackend const & mbe) } -Menubar::Pimpl::~Pimpl() -{} - - -void Menubar::Pimpl::openByName(string const & name) +void QLMenubar::openByName(string const & name) { NameMap::const_iterator const cit = name_map_.find(name); if (cit == name_map_.end()) @@ -78,17 +73,17 @@ void Menubar::Pimpl::openByName(string const & name) } -void Menubar::Pimpl::update() +void QLMenubar::update() {} -QtView * Menubar::Pimpl::view() +QtView * QLMenubar::view() { return owner_; } -MenuBackend const & Menubar::Pimpl::backend() +MenuBackend const & QLMenubar::backend() { return menubackend_; } diff --git a/src/frontends/qt2/Menubar_pimpl.h b/src/frontends/qt2/QLMenubar.h similarity index 82% rename from src/frontends/qt2/Menubar_pimpl.h rename to src/frontends/qt2/QLMenubar.h index 20d0fb448b..d92f4e678e 100644 --- a/src/frontends/qt2/Menubar_pimpl.h +++ b/src/frontends/qt2/QLMenubar.h @@ -1,6 +1,6 @@ // -*- C++ -*- /** - * \file qt2/Menubar_pimpl.h + * \file qt2/QLMenubar.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * @@ -11,9 +11,8 @@ */ -#ifndef MENUBAR_PIMPL_H -#define MENUBAR_PIMPL_H - +#ifndef QLMENUBAR_H +#define QLMENUBAR_H #include "frontends/Menubar.h" #include "LString.h" @@ -24,12 +23,10 @@ class QtView; class MenuBackend; class QLPopupMenu; -struct Menubar::Pimpl { +class QLMenubar : public Menubar { public: - Pimpl(LyXView *, MenuBackend const &); + QLMenubar(LyXView *, MenuBackend const &); - ~Pimpl(); - /// opens a top-level submenu given its name void openByName(string const &); @@ -54,4 +51,4 @@ private: NameMap name_map_; }; -#endif // MENUBAR_PIMPL_H +#endif // QLMENUBAR_H diff --git a/src/frontends/qt2/QLPopupMenu.C b/src/frontends/qt2/QLPopupMenu.C index 40b24685e1..676dd9ffd2 100644 --- a/src/frontends/qt2/QLPopupMenu.C +++ b/src/frontends/qt2/QLPopupMenu.C @@ -18,6 +18,7 @@ #include "QtView.h" +#include "QLMenubar.h" #include "QLPopupMenu.h" #include "qt_helpers.h" @@ -58,7 +59,7 @@ string const getLabel(MenuItem const & mi) pair -createMenu(QMenuData * parent, MenuItem const * item, Menubar::Pimpl * owner, +createMenu(QMenuData * parent, MenuItem const * item, QLMenubar * owner, bool is_toplevel) { // FIXME: leaks ?? @@ -68,7 +69,7 @@ createMenu(QMenuData * parent, MenuItem const * item, Menubar::Pimpl * owner, } -QLPopupMenu::QLPopupMenu(Menubar::Pimpl * owner, +QLPopupMenu::QLPopupMenu(QLMenubar * owner, string const & name, bool toplevel) : owner_(owner), name_(name) { diff --git a/src/frontends/qt2/QLPopupMenu.h b/src/frontends/qt2/QLPopupMenu.h index 38fe2984cb..df2368c52e 100644 --- a/src/frontends/qt2/QLPopupMenu.h +++ b/src/frontends/qt2/QLPopupMenu.h @@ -13,8 +13,6 @@ #define QLPOPUPMENU_H -#include "Menubar_pimpl.h" - #include #include "LString.h" @@ -23,18 +21,19 @@ class MenuBackend; class MenuItem; class Menu; class QMenuData; +class QLMenubar; class QLPopupMenu; /// create a sub-menu std::pair createMenu(QMenuData * parent, MenuItem const * item, - Menubar::Pimpl * owner, bool is_toplevel = false); + QLMenubar * owner, bool is_toplevel = false); /// a submenu class QLPopupMenu : public QPopupMenu { Q_OBJECT public: - QLPopupMenu(Menubar::Pimpl * owner, + QLPopupMenu(QLMenubar * owner, string const & name, bool toplevel); /// populate the menu @@ -44,7 +43,7 @@ public slots: void showing(); private: /// our owning menubar - Menubar::Pimpl * owner_; + QLMenubar * owner_; /// the name of this menu string name_; diff --git a/src/frontends/qt2/QtView.C b/src/frontends/qt2/QtView.C index 6e411efc37..e9162aa5c5 100644 --- a/src/frontends/qt2/QtView.C +++ b/src/frontends/qt2/QtView.C @@ -21,7 +21,6 @@ #include "lyxfunc.h" #include "BufferView.h" -#include "frontends/Menubar.h" #include "frontends/Dialogs.h" #include "frontends/Timeout.h" @@ -29,6 +28,7 @@ #include "QtView.h" #include "QLToolbar.h" +#include "QLMenubar.h" #include "qfont_loader.h" #include "QCommandBuffer.h" #include "qt_helpers.h" @@ -61,7 +61,7 @@ QtView::QtView(unsigned int width, unsigned int height) bufferview_.reset(new BufferView(this, 0, 0, width, height)); - menubar_.reset(new Menubar(this, menubackend)); + menubar_.reset(new QLMenubar(this, menubackend)); toolbar_.reset(new QLToolbar(this)); toolbar_->init(); diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index 5048b25a16..c1cd64ac4d 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,10 +1,22 @@ -2003-07-25 Jean-Marc Lasgouttes +2003-07-25 Jean-Marc Lasgouttes - * + * XFormsMenubar.h: + * XFormsMenubar.C: derives from Menubar (replaces Menubar::Pimpl) -2003-07-25 Jean-Marc Lasgouttes + * Menubar_pimpl.C: + * Menubar_pimpl.h: removed + + * XFormsView.C: modified because of changes above + +2003-07-25 Jean-Marc Lasgouttes * XFormsToolbar.h: + * XFormsToolbar.C: derives from Toolbar (replaces Toolbar::Pimpl) + + * Toolbar_pimpl.C: + * Toolbar_pimpl.h: removed + + * XFormsView.C: modified because of changes above 2003-07-23 Angus Leeming diff --git a/src/frontends/xforms/Makefile.am b/src/frontends/xforms/Makefile.am index 988c2f5954..6b826efce8 100644 --- a/src/frontends/xforms/Makefile.am +++ b/src/frontends/xforms/Makefile.am @@ -151,8 +151,8 @@ libxforms_la_SOURCES = \ FormWrap.h \ LyXKeySymFactory.C \ LyXScreenFactory.C \ - Menubar_pimpl.C \ - Menubar_pimpl.h \ + XFormsMenubar.C \ + XFormsMenubar.h \ RadioButtonGroup.C \ RadioButtonGroup.h \ XFormsToolbar.C \ diff --git a/src/frontends/xforms/Menubar_pimpl.C b/src/frontends/xforms/XFormsMenubar.C similarity index 88% rename from src/frontends/xforms/Menubar_pimpl.C rename to src/frontends/xforms/XFormsMenubar.C index ea868c8dd1..c5e2c0ffb8 100644 --- a/src/frontends/xforms/Menubar_pimpl.C +++ b/src/frontends/xforms/XFormsMenubar.C @@ -1,5 +1,5 @@ /** - * \file xforms/Menubar_pimpl.C + * \file XFormsMenubar.C * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * @@ -11,7 +11,7 @@ #include -#include "Menubar_pimpl.h" +#include "XFormsMenubar.h" #include "MenuBackend.h" #include "XFormsView.h" #include "lyxfunc.h" @@ -72,26 +72,26 @@ extern "C" { //Defined later, used in makeMenubar(). static - void C_Menubar_Pimpl_MenuCallback(FL_OBJECT * ob, long button) + void C_XFormsMenubar_MenuCallback(FL_OBJECT * ob, long button) { - Menubar::Pimpl::MenuCallback(ob, button); + XFormsMenubar::MenuCallback(ob, button); } } -Menubar::Pimpl::Pimpl(LyXView * view, MenuBackend const & mb) +XFormsMenubar::XFormsMenubar(LyXView * view, MenuBackend const & mb) : owner_(static_cast(view)), menubackend_(&mb) { makeMenubar(menubackend_->getMenubar()); } -Menubar::Pimpl::~Pimpl() +XFormsMenubar::~XFormsMenubar() {} -void Menubar::Pimpl::makeMenubar(Menu const & menu) +void XFormsMenubar::makeMenubar(Menu const & menu) { FL_FORM * form = owner_->getForm(); int moffset = 0; @@ -108,7 +108,7 @@ void Menubar::Pimpl::makeMenubar(Menu const & menu) for (; i != end; ++i) { FL_OBJECT * obj; if (i->kind() != MenuItem::Submenu) { - lyxerr << "ERROR: Menubar::Pimpl::createMenubar:" + lyxerr << "ERROR: XFormsMenubar::createMenubar:" " only submenus can appear in a menubar" << endl; continue; @@ -130,7 +130,7 @@ void Menubar::Pimpl::makeMenubar(Menu const & menu) NorthWestGravity); moffset += obj->w + air; fl_set_object_shortcut(obj, shortcut.c_str(), 1); - fl_set_object_callback(obj, C_Menubar_Pimpl_MenuCallback, 1); + fl_set_object_callback(obj, C_XFormsMenubar_MenuCallback, 1); boost::shared_ptr iteminfo(new ItemInfo(this, new MenuItem(*i), obj)); @@ -141,13 +141,13 @@ void Menubar::Pimpl::makeMenubar(Menu const & menu) } -void Menubar::Pimpl::update() +void XFormsMenubar::update() { // nothing yet } -void Menubar::Pimpl::openByName(string const & name) +void XFormsMenubar::openByName(string const & name) { for (ButtonList::const_iterator cit = buttonlist_.begin(); cit != buttonlist_.end(); ++cit) { @@ -157,7 +157,7 @@ void Menubar::Pimpl::openByName(string const & name) } } - lyxerr << "Menubar::Pimpl::openByName: menu " + lyxerr << "XFormsMenubar::openByName: menu " << name << " not found" << endl; } @@ -191,11 +191,11 @@ string const fixlabel(string const & str) -int Menubar::Pimpl::create_submenu(Window win, XFormsView * view, +int XFormsMenubar::create_submenu(Window win, XFormsView * view, Menu const & menu, vector & smn) { const int menuid = get_new_submenu(smn, win); - lyxerr[Debug::GUI] << "Menubar::Pimpl::create_submenu: creating " + lyxerr[Debug::GUI] << "XFormsMenubar::create_submenu: creating " << menu.name() << " as menuid=" << menuid << endl; // Compute the size of the largest label (because xforms is @@ -321,7 +321,7 @@ int Menubar::Pimpl::create_submenu(Window win, XFormsView * view, default: - lyxerr << "Menubar::Pimpl::create_submenu: " + lyxerr << "XFormsMenubar::create_submenu: " "this should not happen" << endl; break; } @@ -330,10 +330,10 @@ int Menubar::Pimpl::create_submenu(Window win, XFormsView * view, } -void Menubar::Pimpl::MenuCallback(FL_OBJECT * ob, long button) +void XFormsMenubar::MenuCallback(FL_OBJECT * ob, long button) { ItemInfo * iteminfo = static_cast(ob->u_vdata); - XFormsView * view = iteminfo->pimpl_->owner_; + XFormsView * view = iteminfo->menubar_->owner_; MenuItem const * item = iteminfo->item_.get(); if (button == 1) { @@ -349,12 +349,12 @@ void Menubar::Pimpl::MenuCallback(FL_OBJECT * ob, long button) // set tabstop length fl_set_tabstop(menu_tabstop); - MenuBackend const * menubackend_ = iteminfo->pimpl_->menubackend_; + MenuBackend const * menubackend_ = iteminfo->menubar_->menubackend_; Menu tomenu; Menu const frommenu = menubackend_->getMenu(item->submenuname()); menubackend_->expand(frommenu, tomenu, view); vector submenus; - int menu = iteminfo->pimpl_->create_submenu(FL_ObjWin(ob), view, + int menu = iteminfo->menubar_->create_submenu(FL_ObjWin(ob), view, tomenu, submenus); if (menu != -1) { // place popup @@ -388,13 +388,13 @@ void Menubar::Pimpl::MenuCallback(FL_OBJECT * ob, long button) } -Menubar::Pimpl::ItemInfo::ItemInfo - (Menubar::Pimpl * p, MenuItem const * i, FL_OBJECT * o) - : pimpl_(p), obj_(o) +XFormsMenubar::ItemInfo::ItemInfo + (XFormsMenubar * p, MenuItem const * i, FL_OBJECT * o) + : menubar_(p), obj_(o) { item_.reset(i); } -Menubar::Pimpl::ItemInfo::~ItemInfo() +XFormsMenubar::ItemInfo::~ItemInfo() {} diff --git a/src/frontends/xforms/Menubar_pimpl.h b/src/frontends/xforms/XFormsMenubar.h similarity index 79% rename from src/frontends/xforms/Menubar_pimpl.h rename to src/frontends/xforms/XFormsMenubar.h index 2e04224e37..552738b040 100644 --- a/src/frontends/xforms/Menubar_pimpl.h +++ b/src/frontends/xforms/XFormsMenubar.h @@ -1,6 +1,6 @@ // -*- C++ -*- /** - * \file xforms/Menubar_pimpl.h + * \file XFormsMenubar.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * @@ -9,9 +9,8 @@ * Full author contact details are available in file CREDITS */ -#ifndef MENUBAR_PIMPL_H -#define MENUBAR_PIMPL_H - +#ifndef XFORMSMENUBAR_H +#define XFORMSMENUBAR_H #include "LString.h" #include "frontends/Menubar.h" @@ -28,16 +27,14 @@ class LyXView; class XFormsView; class Menu; class MenuItem; +class MenuBackend; -/** The LyX GUI independent menubar class - The GUI interface is implemented in the corresponding Menubar_pimpl class. - */ -struct Menubar::Pimpl { +class XFormsMenubar : public Menubar { public: /// - Pimpl(LyXView *, MenuBackend const &); + XFormsMenubar(LyXView *, MenuBackend const &); /// - ~Pimpl(); + ~XFormsMenubar(); /// update the state of the menuitems void update(); @@ -69,11 +66,11 @@ private: /// struct ItemInfo { /// - ItemInfo(Menubar::Pimpl * p, MenuItem const * i, + ItemInfo(XFormsMenubar * p, MenuItem const * i, FL_OBJECT * o); ~ItemInfo(); /// - Menubar::Pimpl * pimpl_; + XFormsMenubar * menubar_; /// boost::shared_ptr item_; /// diff --git a/src/frontends/xforms/XFormsToolbar.C b/src/frontends/xforms/XFormsToolbar.C index 2c08f12071..f2e3ebc30a 100644 --- a/src/frontends/xforms/XFormsToolbar.C +++ b/src/frontends/xforms/XFormsToolbar.C @@ -1,5 +1,5 @@ /** - * \file xforms/XFormsToolbar.C + * \file XFormsToolbar.C * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * diff --git a/src/frontends/xforms/XFormsToolbar.h b/src/frontends/xforms/XFormsToolbar.h index 89559a60b8..e8a3f621e9 100644 --- a/src/frontends/xforms/XFormsToolbar.h +++ b/src/frontends/xforms/XFormsToolbar.h @@ -1,6 +1,6 @@ // -*- C++ -*- /** - * \file xforms/XFormsToolbar.h + * \file XFormsToolbar.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * diff --git a/src/frontends/xforms/XFormsView.C b/src/frontends/xforms/XFormsView.C index 948f47f44b..5608ab0ffe 100644 --- a/src/frontends/xforms/XFormsView.C +++ b/src/frontends/xforms/XFormsView.C @@ -15,12 +15,12 @@ #include "lyx_forms.h" #include "XMiniBuffer.h" +#include "XFormsMenubar.h" #include "XFormsToolbar.h" #include "debug.h" #include "intl.h" #include "lyxrc.h" #include "support/filetools.h" // OnlyFilename() -#include "frontends/Menubar.h" #include "frontends/Timeout.h" #include "frontends/Dialogs.h" #include "MenuBackend.h" @@ -140,7 +140,7 @@ void XFormsView::create_form_form_main(int width, int height) int const air = 2; int const bw = abs(fl_get_border_width()); - menubar_.reset(new Menubar(this, menubackend)); + menubar_.reset(new XFormsMenubar(this, menubackend)); toolbar_.reset(new XFormsToolbar(this, air, 30 + air + bw)); toolbar_->init(); -- 2.39.2