1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#ifndef CHROME_BROWSER_UI_COCOA_NOTIFICATIONS_BALLOON_VIEW_HOST_MAC_H_
621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#define CHROME_BROWSER_UI_COCOA_NOTIFICATIONS_BALLOON_VIEW_HOST_MAC_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/notifications/balloon_host.h"
10513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
11513209b27ff55e2841eac0e4120199c23acce758Ben Murdochclass RenderWidgetHostView;
12513209b27ff55e2841eac0e4120199c23acce758Ben Murdochclass RenderWidgetHostViewMac;
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// BalloonViewHost class is a delegate to the renderer host for the HTML
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// notification.  When initialized it creates a new RenderViewHost and loads
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// the contents of the toast into it.  It also handles links within the toast,
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// loading them into a new tab.
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass BalloonViewHost : public BalloonHost {
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public:
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  explicit BalloonViewHost(Balloon* balloon);
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
22513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  ~BalloonViewHost();
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Changes the size of the balloon.
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  void UpdateActualSize(const gfx::Size& new_size);
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Accessors.
28513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  gfx::NativeView native_view() const;
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch protected:
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual void InitRenderWidgetHostView();
32513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  virtual RenderWidgetHostView* render_widget_host_view() const;
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private:
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // The Mac-specific widget host view.  This is owned by its native view,
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // which this class frees in its destructor.
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  RenderWidgetHostViewMac* render_widget_host_view_;
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  DISALLOW_COPY_AND_ASSIGN(BalloonViewHost);
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
4221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#endif  // CHROME_BROWSER_UI_COCOA_NOTIFICATIONS_BALLOON_VIEW_HOST_MAC_H_
43