ginebra2/ContentViews/BrowserWindow.h
changeset 16 3c88a81ff781
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/ContentViews/BrowserWindow.h	Fri Oct 15 17:30:59 2010 -0400
@@ -0,0 +1,86 @@
+/*
+ * BrowserWindow.h
+ *
+ */
+
+#ifndef BROWSERWINDOW_H
+#define BROWSERWINDOW_H_
+
+#include <QMainWindow>
+#include "wrtbrowsercontainer.h"
+
+class QGraphicsWidget;
+class QGraphicsScene;
+class QGraphicsItem;
+
+class ControllableViewBase;
+
+namespace GVA {
+
+class ChromeLayout;
+class ChromeWidget;
+class ChromeView;
+class WindowsView;
+class ViewController;
+
+class BrowserWindow : public QMainWindow
+{      
+
+ Q_OBJECT
+
+ enum {
+   blocked = 1,
+   active = 2,
+   menuEnabled = 4
+ };
+
+ public:
+  BrowserWindow(ChromeWidget * chrome, WindowsView * windows, QWidget * parent = 0, Qt::WindowFlags flags = 0 );
+  virtual ~BrowserWindow() { ; }
+  void setPage(WRT::WrtBrowserContainer * page);
+  void closeWindow();
+  void toggleDecoration(); 
+  void showDecoration();
+  void hideDecoration();
+  const QString & view() { return m_viewName; }
+  void setView(const QString & view) { m_viewName = view; }
+  void setMenuEnabled(bool enabled);
+  void setTitle(const QString &title);
+ protected slots:
+  void onViewChanged(ControllableViewBase *newView);
+  void onPageTitleChanged(const QString &title);
+  void toggleNormalFullScreen();
+ protected:
+  ViewController *viewController();
+  virtual bool event(QEvent * event);
+  virtual void changeEvent(QEvent * event);
+  void connectPageTitleChanged();
+  void disconnectPageTitleChanged();
+  void fixupWindowTitle();
+  void slideViewIfRequired(int value); // hide or show UrlSearchBar if required
+  void handleWindowActivate();
+  void handleWindowDeactivate();
+  
+  #ifdef Q_WS_MAEMO_5
+  void grabZoomKeys(bool grab);
+  virtual void keyPressEvent(QKeyEvent* event);
+	#endif
+	
+ private:
+  WRT::WrtBrowserContainer * m_page; //Not owned
+  WRT::WrtBrowserContainer * m_specialPage;
+  bool m_decorated;
+  ChromeWidget * m_chrome; //Shared, not owned
+  ChromeView * m_view;
+  QGraphicsScene * m_scene;
+  QGraphicsItem * m_snapshot;
+  WindowsView * m_windows;
+  int m_state;
+  QString m_viewName;  
+  static bool m_preventDisconnectPageTitleChanged;
+  static bool m_preventConnectPageTitleChanged;
+  bool m_slidedUp;
+  bool m_changingMode;
+};
+}
+#endif /* BROWSERWINDOW_H_ */