This patch makes it compile (and probably breaks qt), but xforms fails brutally upon start up.
IMHO there are too many different changes in the younes branch now.
Index: src/frontends/WorkArea.h =================================================================== --- src/frontends/WorkArea.h (revision 14200) +++ src/frontends/WorkArea.h (working copy) @@ -66,7 +66,7 @@ void greyOut(); /// paint the cursor and store the background - virtual void showCursor(int x, int y, int h, Cursor_Shape shape) = 0; + virtual void showCursor(int x, int y, int h, CursorShape shape) = 0; /// hide the cursor virtual void removeCursor() = 0; Index: src/frontends/qt3/QtView.C =================================================================== Index: src/frontends/GuiCursor.h =================================================================== --- src/frontends/GuiCursor.h (revision 14200) +++ src/frontends/GuiCursor.h (working copy) @@ -11,6 +11,22 @@ * Full author contact details are available in file CREDITS. */ +// X11 use a define called CursorShape, and we really want to use +// that name our selves. Therefore we do something similar to what is done +// in kde/fixx11h.h: +namespace X { +#ifdef CursorShape +#ifndef FIXX11H_CursorShape +#define FIXX11H_CursorShape +int const XCursorShape = CursorShape; +#undef CursorShape +int const CursorShape = CursorShape; +#endif +#undef CursorShape +#endif + +} // namespace X + #ifndef GUI_CURSOR_H #define GUI_CURSOR_H @@ -26,7 +42,7 @@ class WorkArea; /// types of cursor in work area -enum Cursor_Shape { +enum CursorShape { /// normal I-beam BAR_SHAPE, /// L-shape for locked insets of a different language Index: src/frontends/Gui.h =================================================================== --- src/frontends/Gui.h (revision 14200) +++ src/frontends/Gui.h (working copy) @@ -18,6 +18,8 @@ #include <boost/shared_ptr.hpp> +#include <map> + class LyXView; namespace lyx { Index: src/frontends/xforms/XFormsView.C =================================================================== --- src/frontends/xforms/XFormsView.C (revision 14200) +++ src/frontends/xforms/XFormsView.C (working copy) @@ -74,7 +74,7 @@ XFormsView::XFormsView(Gui & owner, int width, int height) : LyXView(owner), window_(Box(width, height)), - icon_pixmap_(0), icon_mask_(0), frontend_(*this) + icon_pixmap_(0), icon_mask_(0) { int const air = 2; @@ -108,7 +108,6 @@ menubar_.reset(new XFormsMenubar(this, menubackend)); getToolbars().init(); - bufferview_.reset(new BufferView(this, width, height)); minibuffer_.reset(new XMiniBuffer(*this, *controlcommand_)); // Assign an icon to the main form. Index: src/frontends/xforms/xscreen.C =================================================================== --- src/frontends/xforms/xscreen.C (revision 14200) +++ src/frontends/xforms/xscreen.C (working copy) @@ -73,7 +73,7 @@ } -void XScreen::showCursor(int x, int y, int h, Cursor_Shape shape) +void XScreen::showCursor(int x, int y, int h, CursorShape shape) { // Update the cursor color. (a little slow doing it like this ??) setCursorColor(); Index: src/frontends/xforms/XFormsView.h =================================================================== --- src/frontends/xforms/XFormsView.h (revision 14200) +++ src/frontends/xforms/XFormsView.h (working copy) @@ -12,7 +12,6 @@ #ifndef LyXView_H #define LyXView_H -#include "GuiImplementation.h" #include "LayoutEngine.h" #include "forms_fwd.h" Index: src/frontends/xforms/GuiImplementation.C =================================================================== --- src/frontends/xforms/GuiImplementation.C (revision 0) +++ src/frontends/xforms/GuiImplementation.C (revision 0) @@ -0,0 +1,50 @@ +// -*- C++ -*- +/** + * \file xforms/GuiImplementation.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Abdelrazak Younes + * + * Full author contact details are available in file CREDITS. + */ + +#include "GuiImplementation.h" + +namespace lyx { +namespace frontend { + +int GuiImplementation::newView(unsigned int w, unsigned int h) +{ + view_.reset(new XFormsView(*this, w, h)); + return 0; +} + + + int GuiImplementation::newWorkArea(unsigned int w, unsigned int h, int /*view_id*/) +{ + old_work_area_.reset(new XWorkArea(*view_.get(), w, h)); + old_screen_.reset(new XScreen(*boost::static_pointer_cast<XWorkArea>(old_work_area_))); + work_area_.reset(new GuiWorkArea(boost::static_pointer_cast<XScreen>(old_screen_).get(), + boost::static_pointer_cast<XWorkArea>(old_work_area_).get())); + clipboard_.reset(new GuiClipboard(boost::static_pointer_cast<XWorkArea>(old_work_area_).get())); + guiCursor().connect(work_area_.get()); + + // FIXME BufferView creation should be independant of WorkArea creation + buffer_views_[0].reset(new BufferView(view_.get(), work_area_.get())); + work_area_->setBufferView(buffer_views_[0].get()); + view_->setBufferView(buffer_views_[0].get()); + return 0; +} + + +void GuiImplementation::destroyWorkArea(int /*id*/) +{ + clipboard_.reset(); + work_area_.reset(); + old_work_area_.reset(); + old_screen_.reset(); +} + +} // namespace frontend +} // namespace lyx Property changes on: src/frontends/xforms/GuiImplementation.C ___________________________________________________________________ Name: svn:eol-style + native Index: src/frontends/xforms/xscreen.h =================================================================== --- src/frontends/xforms/xscreen.h (revision 14200) +++ src/frontends/xforms/xscreen.h (working copy) @@ -13,10 +13,10 @@ #ifndef XSCREEN_H #define XSCREEN_H -#include "frontends/GuiCursor.h" - #include <X11/Xlib.h> // for Pixmap, GC +#include "frontends/GuiCursor.h" + class WorkArea; namespace lyx { @@ -44,7 +44,7 @@ virtual void expose(int x, int y, int w, int h); /// paint the cursor and store the background - virtual void showCursor(int x, int y, int h, Cursor_Shape shape); + virtual void showCursor(int x, int y, int h, CursorShape shape); /// hide the cursor virtual void removeCursor(); Index: src/frontends/xforms/GuiImplementation.h =================================================================== --- src/frontends/xforms/GuiImplementation.h (revision 14200) +++ src/frontends/xforms/GuiImplementation.h (working copy) @@ -17,10 +17,13 @@ #include "xscreen.h" #include "XWorkArea.h" +#include "XFormsView.h" #include "GuiClipboard.h" #include "GuiWorkArea.h" +#include "BufferView.h" + #include <boost/shared_ptr.hpp> #include <map> @@ -28,10 +32,6 @@ namespace lyx { namespace frontend { -typedef XFormsView FView; -typedef XScreen FScreen; -typedef XWorkArea FWorkArea; - /** * The Gui class is the interface to all XForms components. */ @@ -51,51 +51,28 @@ return *clipboard_; } - int newView(unsigned int w, unsigned int h) - { - view_.reset(new FView(*this, w, h)); - return 0; - } + int newView(unsigned int w, unsigned int h); - LyXView& view(int id) + LyXView & view(int /*id*/) { return *view_; } - void destroyView(int id) + void destroyView(int /*id*/) { view_.reset(); } - int newWorkArea(unsigned int w, unsigned int h, int view_id) - { - old_work_area_.reset(new FWorkArea(*view_.get(), w, h)); - old_screen_.reset(new FScreen(*old_work_area_.get())); - work_area_.reset(new GuiWorkArea(old_screen_.get(), old_work_area_.get())); - clipboard_.reset(new GuiClipboard(old_work_area_.get())); - guiCursor().connect(work_area_.get()); - - // FIXME BufferView creation should be independant of WorkArea creation - buffer_views_[0].reset(new BufferView(view_.get(), work_area_.get())); - work_area_->setBufferView(buffer_views_[0].get()); - view_->setBufferView(buffer_views_[0].get()); - return 0; - } + int newWorkArea(unsigned int w, unsigned int h, int view_id); - lyx::frontend::WorkArea& workArea(int id) + lyx::frontend::WorkArea & workArea(int /*id*/) { return *work_area_; } - void destroyWorkArea(int id) - { - clipboard_.reset(); - work_area_.reset(); - old_work_area_.reset(); - old_screen_.reset(); - } + void destroyWorkArea(int id); private: /// @@ -103,11 +80,11 @@ /// boost::shared_ptr<GuiWorkArea> work_area_; /// - boost::shared_ptr<FView> view_; + boost::shared_ptr<LyXView> view_; /// - boost::shared_ptr<FWorkArea> old_work_area_; + boost::shared_ptr<XWorkArea> old_work_area_; /// - boost::shared_ptr<FScreen> old_screen_; + boost::shared_ptr<XScreen> old_screen_; }; } // namespace frontend Index: src/frontends/xforms/XWorkArea.h =================================================================== --- src/frontends/xforms/XWorkArea.h (revision 14200) +++ src/frontends/xforms/XWorkArea.h (working copy) @@ -31,7 +31,7 @@ /// XWorkArea(LyXView & owner, int width, int height); /// - ~XWorkArea(); + virtual ~XWorkArea(); /// virtual Painter & getPainter() { return painter_; } /// Index: src/frontends/xforms/Makefile.am =================================================================== --- src/frontends/xforms/Makefile.am (revision 14200) +++ src/frontends/xforms/Makefile.am (working copy) @@ -158,6 +158,7 @@ FormWrap.h \ GuiClipboard.h \ GuiImplementation.h \ + GuiImplementation.C \ GuiWorkArea.h \ LayoutEngine.C \ LayoutEngine.h \ Index: src/frontends/xforms/GuiClipboard.h =================================================================== --- src/frontends/xforms/GuiClipboard.h (revision 14200) +++ src/frontends/xforms/GuiClipboard.h (working copy) @@ -19,15 +19,13 @@ namespace lyx { namespace frontend { -typedef XWorkArea FWorkArea; - /** * The XForms version of the Clipboard. */ class GuiClipboard: public lyx::frontend::Clipboard { public: - GuiClipboard(FWorkArea * work_area) + GuiClipboard(XWorkArea * work_area) : old_work_area_(work_area) { } @@ -54,7 +52,7 @@ //@} private: - FWorkArea * old_work_area_; + XWorkArea * old_work_area_; }; } // namespace frontend Index: src/frontends/xforms/GuiWorkArea.h =================================================================== --- src/frontends/xforms/GuiWorkArea.h (revision 14200) +++ src/frontends/xforms/GuiWorkArea.h (working copy) @@ -20,16 +20,13 @@ namespace lyx { namespace frontend { -typedef XScreen FScreen; -typedef XWorkArea FWorkArea; - /** * Temporary wrapper around XWorkArea and XScreen. * Please refer to the Qt4 implementation for a proper cleanup of the API. */ class GuiWorkArea: public lyx::frontend::WorkArea { public: - GuiWorkArea(FScreen * screen, FWorkArea * work_area) + GuiWorkArea(XScreen * screen, XWorkArea * work_area) : old_screen_(screen), old_work_area_(work_area) { } @@ -67,7 +64,7 @@ /// paint the cursor and store the background - virtual void showCursor(int x, int y, int h, Cursor_Shape shape) + virtual void showCursor(int x, int y, int h, CursorShape shape) { old_screen_->showCursor(x, y, h, shape); } @@ -86,8 +83,8 @@ } private: - FScreen * old_screen_; - FWorkArea * old_work_area_; + XScreen * old_screen_; + XWorkArea * old_work_area_; }; } // namespace frontend Index: src/frontends/GuiCursor.C =================================================================== --- src/frontends/GuiCursor.C (revision 14200) +++ src/frontends/GuiCursor.C (working copy) @@ -42,10 +42,6 @@ #include "support/filetools.h" // LibFileSearch -#include <boost/utility.hpp> -#include <boost/bind.hpp> -#include <boost/signals/trackable.hpp> - using lyx::support::libFileSearch; using std::endl; @@ -57,7 +53,7 @@ namespace frontend { GuiCursor::GuiCursor() - : cursor_visible_(false), work_area_(NULL) + : cursor_visible_(false), work_area_(0) { } @@ -80,7 +76,7 @@ if (!bv.available()) return; - Cursor_Shape shape = BAR_SHAPE; + CursorShape shape = BAR_SHAPE; LyXText const & text = *bv.getLyXText(); LyXFont const & realfont = text.real_current_font; Index: src/BufferView.h =================================================================== Index: src/lyx_main.h ===================================================================
-- Lgb