11e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
21e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
31e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// found in the LICENSE file.
41e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
51e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "chrome/browser/ui/translate/translate_bubble_factory.h"
61e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
71e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "chrome/browser/ui/browser_finder.h"
81e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "chrome/browser/ui/browser_window.h"
91e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)namespace {
111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void ShowDefault(BrowserWindow* window,
131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                 content::WebContents* web_contents,
14c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch                 translate::TranslateStep step,
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                 translate::TranslateErrors::Type error_type) {
161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  // |window| might be null when testing.
171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  if (!window)
181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    return;
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  window->ShowTranslateBubble(web_contents, step, error_type, false);
201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}  // namespace
231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TranslateBubbleFactory::~TranslateBubbleFactory() {
251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static
281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void TranslateBubbleFactory::Show(BrowserWindow* window,
291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)                                  content::WebContents* web_contents,
30c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch                                  translate::TranslateStep step,
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                  translate::TranslateErrors::Type error_type) {
321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  if (current_factory_) {
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    current_factory_->ShowImplementation(
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        window, web_contents, step, error_type);
351e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    return;
361e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  }
371e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ShowDefault(window, web_contents, step, error_type);
391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static
421e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)void TranslateBubbleFactory::SetFactory(TranslateBubbleFactory* factory) {
431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  current_factory_ = factory;
441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}
451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// static
471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TranslateBubbleFactory* TranslateBubbleFactory::current_factory_ = NULL;
48