X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FXFormsView.h;h=45e58ff870d738c9bfbc83f22508aeaa5068b01d;hb=d5443737342903de489d527802cd2cdd38987d74;hp=19aa954542a7312f63236c33a6a5b6f191e2aecd;hpb=0be0fcfd5907d448cd51addf83ed7032719a0692;p=lyx.git diff --git a/src/frontends/xforms/XFormsView.h b/src/frontends/xforms/XFormsView.h index 19aa954542..45e58ff870 100644 --- a/src/frontends/xforms/XFormsView.h +++ b/src/frontends/xforms/XFormsView.h @@ -12,12 +12,19 @@ #ifndef LyXView_H #define LyXView_H - +#include "LayoutEngine.h" #include "forms_fwd.h" #include "frontends/LyXView.h" #include // for Pixmap +#include + +#include + +namespace lyx { +namespace frontend { + class XMiniBuffer; /** @@ -27,18 +34,29 @@ class XMiniBuffer; */ 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; @@ -48,27 +66,41 @@ public: virtual void busy(bool) const; /// callback for close event from window manager - static int atCloseMainFormCB(FL_FORM *, void *); + int atCloseMainFormCB(); /// display a status message - virtual void message(string const & str); + virtual void message(std::string const & str); /// clear back to normal status message virtual void clearMessage(); + /// + void updateMetrics(bool resize_form = false); + /// + boost::signal metricsUpdated; + + // returns true if this view has the focus. + virtual bool hasFocus() const; + private: /** * setWindowTitle - set title of window * @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 show_view_state(); - /// makes the main form. - void create_form_form_main(int width, int height); + /// 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_; /// @@ -85,4 +117,8 @@ private: /// Pixmap icon_mask_; }; + +} // namespace frontend +} // namespace lyx + #endif