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