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_SEARCH_ENGINES_TEMPLATE_URL_FETCHER_UI_CALLBACKS_H_
6#define CHROME_BROWSER_UI_SEARCH_ENGINES_TEMPLATE_URL_FETCHER_UI_CALLBACKS_H_
7#pragma once
8
9#include "base/basictypes.h"
10#include "chrome/browser/search_engines/template_url_fetcher_callbacks.h"
11#include "content/common/notification_observer.h"
12#include "content/common/notification_registrar.h"
13
14class SearchEngineTabHelper;
15class TabContents;
16
17// Callbacks which display UI for the TemplateURLFetcher.
18class TemplateURLFetcherUICallbacks : public TemplateURLFetcherCallbacks,
19                                      public NotificationObserver {
20 public:
21  explicit TemplateURLFetcherUICallbacks(SearchEngineTabHelper* tab_helper,
22                                         TabContents* tab_contents);
23  virtual ~TemplateURLFetcherUICallbacks();
24
25  // TemplateURLFetcherCallback implementation.
26  virtual void ConfirmSetDefaultSearchProvider(
27      TemplateURL* template_url,
28      TemplateURLModel* template_url_model);
29  virtual void ConfirmAddSearchProvider(
30      TemplateURL* template_url,
31      Profile* profile);
32
33  // NotificationObserver:
34  virtual void Observe(NotificationType type,
35                       const NotificationSource& source,
36                       const NotificationDetails& details);
37
38 private:
39  // The SearchEngineTabHelper where this request originated. Can be NULL if the
40  // originating tab is closed. If NULL, the engine is not added.
41  SearchEngineTabHelper* source_;
42
43  // The TabContents where this request originated.
44  TabContents* tab_contents_;
45
46  // Handles registering for our notifications.
47  NotificationRegistrar registrar_;
48
49  DISALLOW_COPY_AND_ASSIGN(TemplateURLFetcherUICallbacks);
50};
51
52#endif  // CHROME_BROWSER_UI_SEARCH_ENGINES_TEMPLATE_URL_FETCHER_UI_CALLBACKS_H_
53