1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_UI_GTK_NOTIFICATIONS_BALLOON_VIEW_HOST_GTK_H_
6#define CHROME_BROWSER_UI_GTK_NOTIFICATIONS_BALLOON_VIEW_HOST_GTK_H_
7#pragma once
8
9#include "chrome/browser/notifications/balloon_host.h"
10#include "ui/gfx/native_widget_types.h"
11
12class RenderWidgetHostViewGtk;
13
14// BalloonViewHost class is a delegate to the renderer host for the HTML
15// notification.  When initialized it creates a new RenderViewHost and loads
16// the contents of the toast into it.  It also handles links within the toast,
17// loading them into a new tab.
18class BalloonViewHost : public BalloonHost {
19 public:
20  explicit BalloonViewHost(Balloon* balloon);
21
22  ~BalloonViewHost() {
23    Shutdown();
24  }
25
26  // Changes the size of the balloon.
27  void UpdateActualSize(const gfx::Size& new_size);
28
29  // Accessors.
30  gfx::NativeView native_view() const;
31
32 protected:
33  virtual void InitRenderWidgetHostView();
34  virtual RenderWidgetHostView* render_widget_host_view() const;
35
36 private:
37  // The GTK-specific widget host view.  Owned by its native view.
38  RenderWidgetHostViewGtk* render_widget_host_view_;
39
40  DISALLOW_COPY_AND_ASSIGN(BalloonViewHost);
41};
42
43#endif  // CHROME_BROWSER_UI_GTK_NOTIFICATIONS_BALLOON_VIEW_HOST_GTK_H_
44