balloon_view_host_mac.h revision 21d179b334e59e9a3bfcaed4c4430bef1bc5759d
1// Copyright (c) 2010 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_COCOA_NOTIFICATIONS_BALLOON_VIEW_HOST_MAC_H_
6#define CHROME_BROWSER_UI_COCOA_NOTIFICATIONS_BALLOON_VIEW_HOST_MAC_H_
7#pragma once
8
9#include "chrome/browser/notifications/balloon_host.h"
10
11class RenderWidgetHostView;
12class RenderWidgetHostViewMac;
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
24  // Changes the size of the balloon.
25  void UpdateActualSize(const gfx::Size& new_size);
26
27  // Accessors.
28  gfx::NativeView native_view() const;
29
30 protected:
31  virtual void InitRenderWidgetHostView();
32  virtual RenderWidgetHostView* render_widget_host_view() const;
33
34 private:
35  // The Mac-specific widget host view.  This is owned by its native view,
36  // which this class frees in its destructor.
37  RenderWidgetHostViewMac* render_widget_host_view_;
38
39  DISALLOW_COPY_AND_ASSIGN(BalloonViewHost);
40};
41
42#endif  // CHROME_BROWSER_UI_COCOA_NOTIFICATIONS_BALLOON_VIEW_HOST_MAC_H_
43