From bd6dec7407bcacd66a3cb4adbc33fab42214a36d Mon Sep 17 00:00:00 2001 From: "jeremy@chromium.org" Date: Thu, 25 Feb 2010 18:53:38 +0000 Subject: Translate Infobars for OS X. Infobars.xib changes - Connect and fix class for close button since the translate infobar needs to know where it is to position the "Options" menu to it's left. BUG=34466 TEST=Translate infobars should continue to workon Windows. Review URL: http://codereview.chromium.org/594056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40034 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/cocoa/translate_infobar.h | 52 ++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 chrome/browser/cocoa/translate_infobar.h (limited to 'chrome/browser/cocoa/translate_infobar.h') diff --git a/chrome/browser/cocoa/translate_infobar.h b/chrome/browser/cocoa/translate_infobar.h new file mode 100644 index 0000000..2a9cc7d --- /dev/null +++ b/chrome/browser/cocoa/translate_infobar.h @@ -0,0 +1,52 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import +#import "chrome/browser/cocoa/infobar_controller.h" + +#include "base/scoped_nsobject.h" +#include "base/scoped_ptr.h" +#include "chrome/browser/translate/languages_menu_model.h" +#include "chrome/browser/translate/options_menu_model.h" +#include "chrome/common/notification_registrar.h" + +class TranslateInfoBarMenuModel; +class TranslateNotificationObserverBridge; + +// Draws and maintains Translate Infobar GUI. +// The translate bar changes unidirectionally between 3 states: +// 1. "Before Translate" - source language popup and translate/cancel buttons +// visible. +// 2. "Translating" - "Translating..." status text visible in address bar. +// 3. "After Translation" - source & target language popups visible. +// +// The GUI uses popup menus interspersed in a text label. For localization +// purposes this means we potentially need 3 labels to display the UI (the 3rd +// is only visible in certain locales). +@interface TranslateInfoBarController : InfoBarController { + @protected + // label_ is defined in InfoBarController. + scoped_nsobject label2_; + scoped_nsobject label3_; + scoped_nsobject translatingLabel_; + scoped_nsobject fromLanguagePopUp_; + scoped_nsobject toLanguagePopUp_; + scoped_nsobject optionsPopUp_; + + // In the current locale, are the "from" and "to" language popup menu + // flipped from what they'd appear in English. + bool swappedLanguagePlaceholders_; + + // Space between controls in pixels - read from the NIB. + CGFloat spaceBetweenControls_; + int numLabelsDisplayed_; + + scoped_ptr original_language_menu_model_; + scoped_ptr target_language_menu_model_; + scoped_ptr options_menu_model_; + scoped_ptr menu_model_; + scoped_ptr observer_bridge_; +} + +@end -- cgit v1.1