X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FXFormsView.h;h=45e58ff870d738c9bfbc83f22508aeaa5068b01d;hb=d5443737342903de489d527802cd2cdd38987d74;hp=8d35bcef54de7d4eb7b29cc1f5971ca61b8f53cb;hpb=91bcdf564a791d3d017355f9966e4fdaa4e64145;p=lyx.git diff --git a/src/frontends/xforms/XFormsView.h b/src/frontends/xforms/XFormsView.h index 8d35bcef54..45e58ff870 100644 --- a/src/frontends/xforms/XFormsView.h +++ b/src/frontends/xforms/XFormsView.h @@ -1,26 +1,31 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor +/** + * \file XFormsView.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2001 The LyX Team. + * \author unknown * - * ====================================================== */ + * Full author contact details are available in file CREDITS. + */ #ifndef LyXView_H #define LyXView_H -#ifdef __GNUG__ -#pragma interface -#endif - +#include "LayoutEngine.h" #include "forms_fwd.h" #include "frontends/LyXView.h" +#include // for Pixmap + +#include + +#include -class Dialogs; +namespace lyx { +namespace frontend { + +class XMiniBuffer; /** * XFormsView - xforms implementation of LyXView @@ -29,30 +34,53 @@ class Dialogs; */ class XFormsView : public LyXView { public: + enum Position { + Top, + Bottom, + Left, + Right, + Center + }; + /// create a main window of the given dimensions XFormsView(int w, int h); ~XFormsView(); + /// Accessor to the appropriate layout Box. + boost::shared_ptr getBox(Position pos) const; + /** * show - display the top-level window * @param xpos requested x position (or 0) * @param xpos requested y position (or 0) * @param title window title */ - void show(int xpos, int ypos, string const & t = string("LyX")); + void show(int xpos, int ypos, std::string const & t = std::string("LyX")); /// get the xforms main form FL_FORM * getForm() const; /// redraw the main form. virtual void redraw(); + /// show busy cursor + virtual void busy(bool) const; + + /// callback for close event from window manager + int atCloseMainFormCB(); + + /// display a status message + virtual void message(std::string const & str); + + /// clear back to normal status message + virtual void clearMessage(); + /// - virtual void prohibitInput() const; + void updateMetrics(bool resize_form = false); /// - virtual void allowInput() const; + boost::signal metricsUpdated; - /// callback for close event from window manager - static int atCloseMainFormCB(FL_FORM *, void *); + // returns true if this view has the focus. + virtual bool hasFocus() const; private: /** @@ -60,14 +88,37 @@ private: * @param t main window title * @param it iconified (short) title */ - virtual void setWindowTitle(string const & t, string const & it); + virtual void setWindowTitle(std::string const & t, std::string const & it); /// update the minibuffer state message - void update_view_state(); + void show_view_state(); + + /// The top-most box of the layout engine containing all other boxes. + Box window_; + + typedef std::map > BoxMap; + + // Accessors to the various Boxes. + BoxMap box_map_; + + /// the minibuffer + boost::scoped_ptr minibuffer_; + /// + boost::signals::connection view_state_con; + /// + boost::signals::connection focus_con; + /// + boost::signals::connection redraw_con; - /// makes the main form. - void create_form_form_main(Dialogs & d, int width, int height); /// the main form. FL_FORM * form_; + /// Passed to the window manager to give a pretty little symbol ;-) + Pixmap icon_pixmap_; + /// + Pixmap icon_mask_; }; + +} // namespace frontend +} // namespace lyx + #endif