• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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 COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_CLIENT_H_
6 #define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_CLIENT_H_
7 
8 #include <string>
9 
10 #include "base/memory/ref_counted.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "components/translate/core/browser/translate_prefs.h"
13 #include "components/translate/core/browser/translate_step.h"
14 #include "components/translate/core/common/translate_errors.h"
15 
16 class GURL;
17 class PrefService;
18 
19 namespace infobars {
20 class InfoBar;
21 }
22 
23 namespace translate {
24 
25 class TranslateAcceptLanguages;
26 class TranslateDriver;
27 class TranslateInfoBarDelegate;
28 
29 // A client interface that needs to be supplied to TranslateManager by the
30 // embedder.
31 //
32 // Each client instance is associated with a given context within which a
33 // TranslateManager is used (e.g. a single tab).
34 class TranslateClient {
35  public:
36   // Gets the TranslateDriver associated with the client.
37   virtual TranslateDriver* GetTranslateDriver() = 0;
38 
39   // Returns the associated PrefService.
40   virtual PrefService* GetPrefs() = 0;
41 
42   // Returns the associated TranslatePrefs.
43   virtual scoped_ptr<TranslatePrefs> GetTranslatePrefs() = 0;
44 
45   // Returns the associated TranslateAcceptLanguages.
46   virtual TranslateAcceptLanguages* GetTranslateAcceptLanguages() = 0;
47 
48   // Returns the resource ID of the icon to be shown for the Translate infobars.
49   virtual int GetInfobarIconID() const = 0;
50 
51   // Returns a translate infobar that owns |delegate|.
52   virtual scoped_ptr<infobars::InfoBar> CreateInfoBar(
53       scoped_ptr<TranslateInfoBarDelegate> delegate) const = 0;
54 
55   // Called when the embedder should present UI to the user corresponding to the
56   // user's current |step|.
57   virtual void ShowTranslateUI(translate::TranslateStep step,
58                                const std::string source_language,
59                                const std::string target_language,
60                                TranslateErrors::Type error_type,
61                                bool triggered_from_menu) = 0;
62 
63   // Returns true if the URL can be translated.
64   virtual bool IsTranslatableURL(const GURL& url) = 0;
65 
66   // Presents |report_url|, a URL containing information relating to reporting
67   // a language detection error, to the user to allow them to report language
68   // detection errors as desired.
69   virtual void ShowReportLanguageDetectionErrorUI(const GURL& report_url) = 0;
70 };
71 
72 }  // namespace translate
73 
74 #endif  // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_CLIENT_H_
75