172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 24a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 34a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// found in the LICENSE file. 44a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 54a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#ifndef CHROME_BROWSER_UI_VIEWS_FIRST_RUN_BUBBLE_H_ 64a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#define CHROME_BROWSER_UI_VIEWS_FIRST_RUN_BUBBLE_H_ 74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#pragma once 84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 94a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "base/compiler_specific.h" 104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "base/task.h" 114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "chrome/browser/first_run/first_run.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/views/bubble/bubble.h" 134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass FirstRunBubbleViewBase; 154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass Profile; 164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass FirstRunBubble : public Bubble, 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public BubbleDelegate { 194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public: 204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch static FirstRunBubble* Show(Profile* profile, views::Widget* parent, 214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch const gfx::Rect& position_relative_to, 224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch BubbleBorder::ArrowLocation arrow_location, 234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch FirstRun::BubbleType bubble_type); 244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch private: 264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch FirstRunBubble(); 274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual ~FirstRunBubble(); 284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch void set_view(FirstRunBubbleViewBase* view) { view_ = view; } 304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Re-enable the parent window. 324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch void EnableParent(); 334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#if defined(OS_WIN) 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Overridden from Bubble: 364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void OnActivate(UINT action, BOOL minimized, HWND window); 374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#endif 384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // BubbleDelegate. 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void BubbleClosing(Bubble* bubble, bool closed_by_escape); 414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual bool CloseOnEscape() { return true; } 424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual bool FadeInOnShow() { return true; } 434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 444a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Whether we have already been activated. 454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch bool has_been_activated_; 464a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 474a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch ScopedRunnableMethodFactory<FirstRunBubble> enable_window_method_factory_; 484a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 494a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // The view inside the FirstRunBubble. 504a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch FirstRunBubbleViewBase* view_; 514a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 524a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch DISALLOW_COPY_AND_ASSIGN(FirstRunBubble); 534a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 544a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 554a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#endif // CHROME_BROWSER_UI_VIEWS_FIRST_RUN_BUBBLE_H_ 56