ginebra2/ContentViews/WindowsView.h
changeset 16 3c88a81ff781
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/ContentViews/WindowsView.h	Fri Oct 15 17:30:59 2010 -0400
@@ -0,0 +1,60 @@
+/*
+ * WindowsView.h
+ *
+ *  Created on: Jun 11, 2010
+ *      Author: lewontin
+ */
+
+#ifndef WINDOWSVIEW_H
+#define WINDOWSVIEW_H_
+
+#include "controllableviewimpl.h"
+#include <QMenu>
+
+namespace WRT {
+  class WrtBrowserContainer;
+}
+
+namespace GVA {
+
+class BrowserWindow;
+class ChromeWidget;
+class GWebContentView;
+
+class WindowsView : public ControllableViewBase
+{
+  Q_OBJECT
+      
+  public:
+    WindowsView(ChromeWidget * chrome, QObject * parent = 0, const QString &objectName = QString::null);
+    virtual ~WindowsView();
+    //Reimplement ControllableViewBase methods
+    static QString Type() { return "windowView"; }
+    virtual QString type() const { return Type(); }
+    QGraphicsWidget* widget() const { return 0; }
+    virtual QList<QAction*> getContext(){ return QList<QAction*>(); }
+    virtual void show(){;}
+    virtual void hide(){;}
+    virtual void activate(BrowserWindow * window);
+    virtual void deactivate(BrowserWindow * window);
+    //WindowView methods
+    BrowserWindow * addWindow(WRT::WrtBrowserContainer * page);
+    BrowserWindow * currentWindow(){ return m_current; }
+    void addPage();
+    void handlePageEvents(bool handle);
+    void setMenu(QMenu * menu);
+    void setMenuEnabled(bool enabled);
+    bool isMenuEnabled() const;
+    GWebContentView * contentView();
+  public slots:
+    void onPageCreated(WRT::WrtBrowserContainer * page);
+    void onPageDeleted(WRT::WrtBrowserContainer * page);
+    void onWindowAction(); //Handle menu add window action
+  private:
+    QMap<WRT::WrtBrowserContainer*, BrowserWindow*>  m_windows;
+    BrowserWindow * m_current;
+    ChromeWidget * m_chrome;
+    QMenu * m_menu; //Shared menu, not owned
+};
+}
+#endif /* WINDOWSVIEW_H_ */