#ifndef LyXView_H
#define LyXView_H
-
+#include "LayoutEngine.h"
#include "forms_fwd.h"
#include "frontends/LyXView.h"
#include <X11/Xlib.h> // for Pixmap
+#include <boost/signal.hpp>
+
+#include <map>
+
+namespace lyx {
+namespace frontend {
+
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<Box> getBox(Position pos) const;
+
/**
* show - display the top-level window
* @param xpos requested x position (or 0)
/// clear back to normal status message
virtual void clearMessage();
+ ///
+ void updateMetrics(bool resize_form = false);
+ ///
+ boost::signal<void()> metricsUpdated;
+
+ // returns true if this view has the focus.
+ virtual bool hasFocus() const;
+
private:
/**
* setWindowTitle - set title of window
/// 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<Position, boost::shared_ptr<Box> > BoxMap;
+
+ // Accessors to the various Boxes.
+ BoxMap box_map_;
+
/// the minibuffer
boost::scoped_ptr<XMiniBuffer> minibuffer_;
///
///
Pixmap icon_mask_;
};
+
+} // namespace frontend
+} // namespace lyx
+
#endif