X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FXFormsView.h;h=45e58ff870d738c9bfbc83f22508aeaa5068b01d;hb=d5443737342903de489d527802cd2cdd38987d74;hp=762bb32c4b2b47c5d9a079f3a255d69a8e4e0ea2;hpb=435d527581277fab8b1aa67888f17d8439d07693;p=lyx.git diff --git a/src/frontends/xforms/XFormsView.h b/src/frontends/xforms/XFormsView.h index 762bb32c4b..45e58ff870 100644 --- a/src/frontends/xforms/XFormsView.h +++ b/src/frontends/xforms/XFormsView.h @@ -1,59 +1,124 @@ // -*- 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 FORMS_H_LOCATION +#include "LayoutEngine.h" +#include "forms_fwd.h" #include "frontends/LyXView.h" +#include // for Pixmap + +#include + +#include + +namespace lyx { +namespace frontend { + +class XMiniBuffer; /** - This class is the form containing the view of the buffer. The actual buffer - view is supposed (at least IMHO) to be another class, that shows its output - in one or more LyXView's. + * XFormsView - xforms implementation of LyXView + * + * xforms-private implementation of the main LyX window. */ class XFormsView : public LyXView { public: - /// constructor + enum Position { + Top, + Bottom, + Left, + Right, + Center + }; + + /// create a main window of the given dimensions XFormsView(int w, int h); - /// destructor + ~XFormsView(); - /// Where to place the form. - virtual void setPosition(int, int); - /// Show the main form. - virtual void show(int, int, string const & t = string("LyX")); - /// init (should probably be removed later) (Lgb) - virtual void init(); - /// Redraw the main form. - virtual void redraw(); - /// returns a pointer to the form. + + /// 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, 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; - /** This callback is run when a close event is sent from the - window manager. */ - static int atCloseMainFormCB(FL_FORM *, void *); + boost::signal metricsUpdated; + + // returns true if this view has the focus. + virtual bool hasFocus() const; + private: - /// pass the title, and the iconified title - virtual void setWindowTitle(string const &, string const &); - /// makes the main form. - void create_form_form_main(int width, int height); - /// A pointer to the form. + /** + * setWindowTitle - set title of window + * @param t main window title + * @param it iconified (short) title + */ + virtual void setWindowTitle(std::string const & t, std::string const & it); + + /// update the minibuffer state message + 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; + + /// 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