- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / translate / translate_bubble_factory.h
1 // Copyright 2013 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_TRANSLATE_TRANSLATE_BUBBLE_FACTORY_H_
6 #define CHROME_BROWSER_UI_TRANSLATE_TRANSLATE_BUBBLE_FACTORY_H_
7
8 #include "chrome/browser/ui/translate/translate_bubble_model.h"
9
10 class BrowserWindow;
11
12 namespace content {
13 class WebContents;
14 }
15
16 // Factory to show the Translate bubble.
17 class TranslateBubbleFactory {
18  public:
19   virtual ~TranslateBubbleFactory();
20
21   // Shows the translate bubble. The behavior depends on the current factory's
22   // implementation.
23   static void Show(BrowserWindow* window,
24                    content::WebContents* web_contents,
25                    TranslateBubbleModel::ViewState view_state);
26
27   // Sets the factory to change the behavior how to show the bubble.
28   // TranslateBubbleFactory doesn't take the ownership of |factory|.
29   static void SetFactory(TranslateBubbleFactory* factory);
30
31  protected:
32   // Shows the translate bubble.
33   virtual void ShowImplementation(
34       BrowserWindow* window,
35       content::WebContents* web_contents,
36       TranslateBubbleModel::ViewState view_state) = 0;
37
38  private:
39   static TranslateBubbleFactory* current_factory_;
40 };
41
42 #endif  // CHROME_BROWSER_UI_TRANSLATE_TRANSLATE_BUBBLE_FACTORY_H_