Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6105)

Unified Diff: chrome/browser/ui/gtk/translate/translate_infobar_base_gtk.h

Issue 6099014: Move chrome/browser/gtk to chrome/browser/ui/gtk (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Move browser/gtk/ to browser/ui/gtk/, leave header stubs, update new header guards Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/gtk/translate/translate_infobar_base_gtk.h
diff --git a/chrome/browser/ui/gtk/translate/translate_infobar_base_gtk.h b/chrome/browser/ui/gtk/translate/translate_infobar_base_gtk.h
new file mode 100644
index 0000000000000000000000000000000000000000..3cbdd0d3e634a08d55c928a74c0596f6e322d483
--- /dev/null
+++ b/chrome/browser/ui/gtk/translate/translate_infobar_base_gtk.h
@@ -0,0 +1,89 @@
+// 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.
+
+#ifndef CHROME_BROWSER_UI_GTK_TRANSLATE_TRANSLATE_INFOBAR_BASE_GTK_H_
+#define CHROME_BROWSER_UI_GTK_TRANSLATE_TRANSLATE_INFOBAR_BASE_GTK_H_
+#pragma once
+
+#include "chrome/browser/translate/translate_infobar_view.h"
+#include "chrome/browser/gtk/infobar_gtk.h"
+#include "ui/base/animation/animation_delegate.h"
+
+class MenuGtk;
+class OptionsMenuModel;
+class TranslateInfoBarDelegate;
+
+// This class contains some of the base functionality that translate infobars
+// use.
+class TranslateInfoBarBase : public TranslateInfoBarView,
+ public InfoBar,
+ public ui::AnimationDelegate {
+ public:
+ explicit TranslateInfoBarBase(TranslateInfoBarDelegate* delegate);
+ virtual ~TranslateInfoBarBase();
+
+ // Initializes the infobar widgets. Should be called after the object has been
+ // created.
+ virtual void Init();
+
+ // Overridden from InfoBar:
+ virtual void GetTopColor(InfoBarDelegate::Type type,
+ double* r, double* g, double *b);
+ virtual void GetBottomColor(InfoBarDelegate::Type type,
+ double* r, double* g, double *b);
+
+ // Overridden from TranslateInfoBarView:
+ virtual void OriginalLanguageChanged() {}
+ virtual void TargetLanguageChanged() {}
+
+ // Overridden from ui::AnimationDelegate:
+ virtual void AnimationProgressed(const ui::Animation* animation);
+
+ protected:
+ // Sub-classes that want to have the options menu button showing sould
+ // override and return true.
+ virtual bool ShowOptionsMenuButton() const;
+
+ // Creates a label with the appropriate font and color for the translate
+ // infobars.
+ GtkWidget* CreateLabel(const std::string& text);
+
+ // Creates a combobox that displays the languages currently available.
+ // |selected_language| is the language index (as used in the
+ // TranslateInfoDelegate) that should be selected initially.
+ // |exclude_language| is the language index of the language that should not be
+ // included in the list (-1 means no language excluded).
+ GtkWidget* CreateLanguageCombobox(int selected_language,
+ int exclude_language);
+
+ // Given an above-constructed combobox, returns the currently selected
+ // language id.
+ static int GetLanguageComboboxActiveId(GtkComboBox* combo);
+
+ // Convenience to retrieve the TranslateInfoBarDelegate for this infobar.
+ TranslateInfoBarDelegate* GetDelegate() const;
+
+ private:
+ // Builds a button with an arrow in it to emulate the menu-button style from
+ // the windows version.
+ static GtkWidget* BuildOptionsMenuButton();
+
+ // The menu displayed when the Options button is pressed.
+ scoped_ptr<OptionsMenuModel> options_menu_model_;
+ scoped_ptr<MenuGtk> options_menu_menu_;
+
+ CHROMEGTK_CALLBACK_0(TranslateInfoBarBase, void, OnOptionsClicked);
+
+ // A percentage to average the normal page action background with the error
+ // background. When 0, the infobar background should be pure PAGE_ACTION_TYPE.
+ // When 1, the infobar background should be pure WARNING_TYPE.
+ double background_error_percent_;
+
+ // Changes the color of the background from normal to error color and back.
+ scoped_ptr<ui::SlideAnimation> background_color_animation_;
+
+ DISALLOW_COPY_AND_ASSIGN(TranslateInfoBarBase);
+};
+
+#endif // CHROME_BROWSER_UI_GTK_TRANSLATE_TRANSLATE_INFOBAR_BASE_GTK_H_

Powered by Google App Engine
This is Rietveld 408576698