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

Side by Side Diff: chrome/browser/ui/views/infobars/after_translate_infobar.h

Issue 7796010: Attempt at fixing crash in menus shown from infobars. Here's what the (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Change comment and remove change to views Created 9 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_
6 #define CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_ 6 #define CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_
7 #pragma once 7 #pragma once
8 8
9 #include "chrome/browser/translate/languages_menu_model.h" 9 #include "chrome/browser/translate/languages_menu_model.h"
10 #include "chrome/browser/translate/options_menu_model.h" 10 #include "chrome/browser/translate/options_menu_model.h"
11 #include "chrome/browser/ui/views/infobars/translate_infobar_base.h" 11 #include "chrome/browser/ui/views/infobars/translate_infobar_base.h"
12 #include "views/controls/menu/view_menu_delegate.h" 12 #include "views/controls/menu/view_menu_delegate.h"
13 13
14 class TranslateInfoBarDelegate; 14 class TranslateInfoBarDelegate;
15 namespace views { 15 namespace views {
16 class MenuButton; 16 class MenuButton;
17 class MenuRunner;
18 } 17 }
19 18
20 class AfterTranslateInfoBar : public TranslateInfoBarBase, 19 class AfterTranslateInfoBar : public TranslateInfoBarBase,
21 public views::ViewMenuDelegate { 20 public views::ViewMenuDelegate {
22 public: 21 public:
23 AfterTranslateInfoBar(TabContentsWrapper* owner, 22 AfterTranslateInfoBar(TabContentsWrapper* owner,
24 TranslateInfoBarDelegate* delegate); 23 TranslateInfoBarDelegate* delegate);
25 24
26 private: 25 private:
27 virtual ~AfterTranslateInfoBar(); 26 virtual ~AfterTranslateInfoBar();
28 27
29 // TranslateInfoBarBase: 28 // TranslateInfoBarBase:
30 virtual void Layout(); 29 virtual void Layout() OVERRIDE;
31 virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child); 30 virtual void ViewHierarchyChanged(bool is_add,
32 virtual void ButtonPressed(views::Button* sender, const views::Event& event); 31 View* parent,
33 virtual int ContentMinimumWidth() const; 32 View* child) OVERRIDE;
34 virtual void OriginalLanguageChanged(); 33 virtual void ButtonPressed(views::Button* sender,
35 virtual void TargetLanguageChanged(); 34 const views::Event& event) OVERRIDE;
35 virtual int ContentMinimumWidth() const OVERRIDE;
36 virtual void OriginalLanguageChanged() OVERRIDE;
37 virtual void TargetLanguageChanged() OVERRIDE;
36 38
37 // ViewMenuDelegate: 39 // ViewMenuDelegate:
38 virtual void RunMenu(View* source, const gfx::Point& pt); 40 virtual void RunMenu(View* source, const gfx::Point& pt) OVERRIDE;
39 41
40 // The text displayed in the infobar is something like: 42 // The text displayed in the infobar is something like:
41 // "Translated from <lang1> to <lang2> [more text in some languages]" 43 // "Translated from <lang1> to <lang2> [more text in some languages]"
42 // ...where <lang1> and <lang2> are comboboxes. So the text is split in 3 44 // ...where <lang1> and <lang2> are comboboxes. So the text is split in 3
43 // chunks, each displayed in one of the labels below. 45 // chunks, each displayed in one of the labels below.
44 views::Label* label_1_; 46 views::Label* label_1_;
45 views::Label* label_2_; 47 views::Label* label_2_;
46 views::Label* label_3_; 48 views::Label* label_3_;
47 49
48 views::MenuButton* original_language_menu_button_; 50 views::MenuButton* original_language_menu_button_;
49 views::MenuButton* target_language_menu_button_; 51 views::MenuButton* target_language_menu_button_;
50 views::TextButton* revert_button_; 52 views::TextButton* revert_button_;
51 views::MenuButton* options_menu_button_; 53 views::MenuButton* options_menu_button_;
52 54
53 LanguagesMenuModel original_language_menu_model_; 55 LanguagesMenuModel original_language_menu_model_;
54 LanguagesMenuModel target_language_menu_model_; 56 LanguagesMenuModel target_language_menu_model_;
55 OptionsMenuModel options_menu_model_; 57 OptionsMenuModel options_menu_model_;
56 58
57 scoped_ptr<views::MenuRunner> menu_runner_;
58
59 // True if the target language comes before the original one. 59 // True if the target language comes before the original one.
60 bool swapped_language_buttons_; 60 bool swapped_language_buttons_;
61 61
62 DISALLOW_COPY_AND_ASSIGN(AfterTranslateInfoBar); 62 DISALLOW_COPY_AND_ASSIGN(AfterTranslateInfoBar);
63 }; 63 };
64 64
65 #endif // CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_ 65 #endif // CHROME_BROWSER_UI_VIEWS_INFOBARS_AFTER_TRANSLATE_INFOBAR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698