summaryrefslogtreecommitdiffstats
path: root/mandoline/ui/desktop_ui/browser_window.h
diff options
context:
space:
mode:
authorben <ben@chromium.org>2015-08-20 22:42:19 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-21 05:43:14 +0000
commit8b6d44905b342fed774df5b43a1774f8007dfb11 (patch)
tree52cbed13e1a0289a11a288eb92e8e3122207a915 /mandoline/ui/desktop_ui/browser_window.h
parent2bd10411624467d8b53e2879719c20816017fb27 (diff)
downloadchromium_src-8b6d44905b342fed774df5b43a1774f8007dfb11.zip
chromium_src-8b6d44905b342fed774df5b43a1774f8007dfb11.tar.gz
chromium_src-8b6d44905b342fed774df5b43a1774f8007dfb11.tar.bz2
Rename mandoline/ui/browser -> mandoline/ui/desktop_ui
DesktopUI class -> BrowserWindow. Remove the BrowserUI interface. BrowserManager now manages BrowserWindows. Much simpler! TBR=sky@chromium.org BUG=none Review URL: https://codereview.chromium.org/1305943003 Cr-Commit-Position: refs/heads/master@{#344687}
Diffstat (limited to 'mandoline/ui/desktop_ui/browser_window.h')
-rw-r--r--mandoline/ui/desktop_ui/browser_window.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/mandoline/ui/desktop_ui/browser_window.h b/mandoline/ui/desktop_ui/browser_window.h
new file mode 100644
index 0000000..6bcf484
--- /dev/null
+++ b/mandoline/ui/desktop_ui/browser_window.h
@@ -0,0 +1,108 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MANDOLINE_UI_DESKTOP_UI_BROWSER_WINDOW_H_
+#define MANDOLINE_UI_DESKTOP_UI_BROWSER_WINDOW_H_
+
+#include "components/view_manager/public/cpp/view_manager.h"
+#include "components/view_manager/public/cpp/view_manager_delegate.h"
+#include "components/view_manager/public/cpp/view_manager_init.h"
+#include "components/view_manager/public/interfaces/view_manager_root.mojom.h"
+#include "mandoline/tab/public/cpp/web_view.h"
+#include "mandoline/tab/public/interfaces/web_view.mojom.h"
+#include "mandoline/ui/aura/aura_init.h"
+#include "mandoline/ui/desktop_ui/public/interfaces/omnibox.mojom.h"
+#include "mandoline/ui/desktop_ui/public/interfaces/view_embedder.mojom.h"
+#include "mojo/application/public/cpp/interface_factory.h"
+#include "mojo/common/weak_binding_set.h"
+#include "ui/views/controls/button/button.h"
+#include "ui/views/layout/layout_manager.h"
+#include "url/gurl.h"
+
+namespace mojo {
+class ApplicationConnection;
+class Shell;
+class View;
+}
+
+namespace views {
+class LabelButton;
+}
+
+namespace mandoline {
+
+class BrowserManager;
+class ProgressView;
+
+class BrowserWindow : public mojo::ViewManagerDelegate,
+ public mojo::ViewManagerRootClient,
+ public web_view::mojom::WebViewClient,
+ public ViewEmbedder,
+ public mojo::InterfaceFactory<ViewEmbedder>,
+ public views::LayoutManager,
+ public views::ButtonListener {
+ public:
+ BrowserWindow(mojo::ApplicationImpl* app, BrowserManager* manager);
+ ~BrowserWindow() override;
+
+ void LoadURL(const GURL& url);
+
+ private:
+ // Overridden from mojo::ViewManagerDelegate:
+ void OnEmbed(mojo::View* root) override;
+ void OnViewManagerDestroyed(mojo::ViewManager* view_manager) override;
+
+ // Overridden from ViewManagerRootClient:
+ void OnAccelerator(mojo::EventPtr event) override;
+
+ // Overridden from web_view::mojom::WebViewClient:
+ void TopLevelNavigate(mojo::URLRequestPtr request) override;
+ void LoadingStateChanged(bool is_loading) override;
+ void ProgressChanged(double progress) override;
+
+ // Overridden from ViewEmbedder:
+ void Embed(mojo::URLRequestPtr request) override;
+
+ // Overridden from mojo::InterfaceFactory<ViewEmbedder>:
+ void Create(mojo::ApplicationConnection* connection,
+ mojo::InterfaceRequest<ViewEmbedder> request) override;
+
+
+ // Overridden from views::LayoutManager:
+ gfx::Size GetPreferredSize(const views::View* view) const override;
+ void Layout(views::View* host) override;
+
+ // Overridden from views::ButtonListener:
+ void ButtonPressed(views::Button* sender, const ui::Event& event) override;
+
+ void Init(mojo::View* root);
+ void ShowOmnibox();
+ void EmbedOmnibox(mojo::ApplicationConnection* connection);
+
+ mojo::ApplicationImpl* app_;
+ scoped_ptr<AuraInit> aura_init_;
+ mojo::ViewManagerInit view_manager_init_;
+ BrowserManager* manager_;
+ views::LabelButton* omnibox_launcher_;
+ ProgressView* progress_bar_;
+ mojo::View* root_;
+ mojo::View* content_;
+ mojo::View* omnibox_view_;
+
+ mojo::WeakBindingSet<ViewEmbedder> view_embedder_bindings_;
+
+ GURL default_url_;
+ GURL current_url_;
+
+ web_view::WebView web_view_;
+
+ OmniboxPtr omnibox_;
+ scoped_ptr<mojo::ApplicationConnection> omnibox_connection_;
+
+ DISALLOW_COPY_AND_ASSIGN(BrowserWindow);
+};
+
+} // namespace mandoline
+
+#endif // MANDOLINE_UI_DESKTOP_UI_BROWSER_WINDOW_H_