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

Side by Side Diff: chrome/browser/views/options/languages_page_view.cc

Issue 113991: Make Combobox portable (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #include <windows.h> 4 #include <windows.h>
5 #include <shlobj.h> 5 #include <shlobj.h>
6 #include <vsstyle.h> 6 #include <vsstyle.h>
7 #include <vssym32.h> 7 #include <vssym32.h>
8 8
9 #include "chrome/browser/views/options/languages_page_view.h" 9 #include "chrome/browser/views/options/languages_page_view.h"
10 10
(...skipping 11 matching lines...) Expand all
22 #include "chrome/browser/views/options/language_combobox_model.h" 22 #include "chrome/browser/views/options/language_combobox_model.h"
23 #include "chrome/browser/views/restart_message_box.h" 23 #include "chrome/browser/views/restart_message_box.h"
24 #include "chrome/common/pref_names.h" 24 #include "chrome/common/pref_names.h"
25 #include "chrome/common/pref_service.h" 25 #include "chrome/common/pref_service.h"
26 #include "grit/chromium_strings.h" 26 #include "grit/chromium_strings.h"
27 #include "grit/generated_resources.h" 27 #include "grit/generated_resources.h"
28 #include "grit/theme_resources.h" 28 #include "grit/theme_resources.h"
29 #include "third_party/skia/include/core/SkBitmap.h" 29 #include "third_party/skia/include/core/SkBitmap.h"
30 #include "unicode/uloc.h" 30 #include "unicode/uloc.h"
31 #include "views/controls/button/radio_button.h" 31 #include "views/controls/button/radio_button.h"
32 #include "views/controls/combo_box.h"
33 #include "views/controls/tabbed_pane.h" 32 #include "views/controls/tabbed_pane.h"
34 #include "views/controls/table/table_model.h" 33 #include "views/controls/table/table_model.h"
35 #include "views/controls/table/table_model_observer.h" 34 #include "views/controls/table/table_model_observer.h"
36 #include "views/controls/table/table_view.h" 35 #include "views/controls/table/table_view.h"
37 #include "views/grid_layout.h" 36 #include "views/grid_layout.h"
38 #include "views/standard_layout.h" 37 #include "views/standard_layout.h"
39 #include "views/widget/widget.h" 38 #include "views/widget/widget.h"
40 #include "views/window/window.h" 39 #include "views/window/window.h"
41 40
42 static const char* const accept_language_list[] = { 41 static const char* const accept_language_list[] = {
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 "zh-TW", // Chinese (Traditional) 171 "zh-TW", // Chinese (Traditional)
173 "zu", // Zulu 172 "zu", // Zulu
174 }; 173 };
175 174
176 /////////////////////////////////////////////////////////////////////////////// 175 ///////////////////////////////////////////////////////////////////////////////
177 // AddLanguageWindowView 176 // AddLanguageWindowView
178 // 177 //
179 // This opens another window from where a new accept language can be selected. 178 // This opens another window from where a new accept language can be selected.
180 // 179 //
181 class AddLanguageWindowView : public views::View, 180 class AddLanguageWindowView : public views::View,
182 public views::ComboBox::Listener, 181 public views::Combobox::Listener,
183 public views::DialogDelegate { 182 public views::DialogDelegate {
184 public: 183 public:
185 AddLanguageWindowView(LanguagesPageView* language_delegate, Profile* profile); 184 AddLanguageWindowView(LanguagesPageView* language_delegate, Profile* profile);
186 views::Window* container() const { return container_; } 185 views::Window* container() const { return container_; }
187 void set_container(views::Window* container) { 186 void set_container(views::Window* container) {
188 container_ = container; 187 container_ = container;
189 } 188 }
190 189
191 // views::DialogDelegate methods. 190 // views::DialogDelegate methods.
192 virtual bool Accept(); 191 virtual bool Accept();
193 virtual std::wstring GetWindowTitle() const; 192 virtual std::wstring GetWindowTitle() const;
194 193
195 // views::WindowDelegate method. 194 // views::WindowDelegate method.
196 virtual bool IsModal() const { return true; } 195 virtual bool IsModal() const { return true; }
197 virtual views::View* GetContentsView() { return this; } 196 virtual views::View* GetContentsView() { return this; }
198 197
199 // views::ComboBox::Listener implementation: 198 // views::Combobox::Listener implementation:
200 virtual void ItemChanged(views::ComboBox* combo_box, 199 virtual void ItemChanged(views::Combobox* combobox,
201 int prev_index, 200 int prev_index,
202 int new_index); 201 int new_index);
203 202
204 // views::View overrides. 203 // views::View overrides.
205 virtual void Layout(); 204 virtual void Layout();
206 virtual gfx::Size GetPreferredSize(); 205 virtual gfx::Size GetPreferredSize();
207 206
208 protected: 207 protected:
209 virtual void ViewHierarchyChanged(bool is_add, views::View* parent, 208 virtual void ViewHierarchyChanged(bool is_add, views::View* parent,
210 views::View* child); 209 views::View* child);
211 210
212 private: 211 private:
213 void Init(); 212 void Init();
214 213
215 // The Options dialog window. 214 // The Options dialog window.
216 views::Window* container_; 215 views::Window* container_;
217 216
218 // Used for Call back to LanguagePageView that language has been selected. 217 // Used for Call back to LanguagePageView that language has been selected.
219 LanguagesPageView* language_delegate_; 218 LanguagesPageView* language_delegate_;
220 std::string accept_language_selected_; 219 std::string accept_language_selected_;
221 220
222 // Combobox and its corresponding model. 221 // Combobox and its corresponding model.
223 scoped_ptr<LanguageComboboxModel> accept_language_combobox_model_; 222 scoped_ptr<LanguageComboboxModel> accept_language_combobox_model_;
224 views::ComboBox* accept_language_combobox_; 223 views::Combobox* accept_language_combobox_;
225 224
226 // The Profile associated with this window. 225 // The Profile associated with this window.
227 Profile* profile_; 226 Profile* profile_;
228 227
229 DISALLOW_COPY_AND_ASSIGN(AddLanguageWindowView); 228 DISALLOW_COPY_AND_ASSIGN(AddLanguageWindowView);
230 }; 229 };
231 230
232 static const int kDialogPadding = 7; 231 static const int kDialogPadding = 7;
233 static int kDefaultWindowWidthChars = 60; 232 static int kDefaultWindowWidthChars = 60;
234 static int kDefaultWindowHeightLines = 3; 233 static int kDefaultWindowHeightLines = 3;
(...skipping 15 matching lines...) Expand all
250 return l10n_util::GetString(IDS_FONT_LANGUAGE_SETTING_LANGUAGES_TAB_TITLE); 249 return l10n_util::GetString(IDS_FONT_LANGUAGE_SETTING_LANGUAGES_TAB_TITLE);
251 } 250 }
252 251
253 bool AddLanguageWindowView::Accept() { 252 bool AddLanguageWindowView::Accept() {
254 if (language_delegate_) { 253 if (language_delegate_) {
255 language_delegate_->OnAddLanguage(accept_language_selected_); 254 language_delegate_->OnAddLanguage(accept_language_selected_);
256 } 255 }
257 return true; 256 return true;
258 } 257 }
259 258
260 void AddLanguageWindowView::ItemChanged(views::ComboBox* combo_box, 259 void AddLanguageWindowView::ItemChanged(views::Combobox* combobox,
261 int prev_index, 260 int prev_index,
262 int new_index) { 261 int new_index) {
263 accept_language_selected_ = accept_language_combobox_model_-> 262 accept_language_selected_ = accept_language_combobox_model_->
264 GetLocaleFromIndex(new_index); 263 GetLocaleFromIndex(new_index);
265 } 264 }
266 265
267 void AddLanguageWindowView::Layout() { 266 void AddLanguageWindowView::Layout() {
268 gfx::Size sz = accept_language_combobox_->GetPreferredSize(); 267 gfx::Size sz = accept_language_combobox_->GetPreferredSize();
269 accept_language_combobox_->SetBounds(kDialogPadding, kDialogPadding, 268 accept_language_combobox_->SetBounds(kDialogPadding, kDialogPadding,
270 width() - 2*kDialogPadding, 269 width() - 2*kDialogPadding,
(...skipping 28 matching lines...) Expand all
299 // In that case, we skip it. 298 // In that case, we skip it.
300 // TODO(jungshik) : Put them at the of the list with language codes 299 // TODO(jungshik) : Put them at the of the list with language codes
301 // enclosed by brackets. 300 // enclosed by brackets.
302 if (IsStringASCII(local_name) && 301 if (IsStringASCII(local_name) &&
303 WideToASCII(local_name) == accept_language_list[i]) 302 WideToASCII(local_name) == accept_language_list[i])
304 continue; 303 continue;
305 locale_codes.push_back(accept_language_list[i]); 304 locale_codes.push_back(accept_language_list[i]);
306 } 305 }
307 accept_language_combobox_model_.reset(new LanguageComboboxModel( 306 accept_language_combobox_model_.reset(new LanguageComboboxModel(
308 profile_, locale_codes)); 307 profile_, locale_codes));
309 accept_language_combobox_ = new views::ComboBox( 308 accept_language_combobox_ = new views::Combobox(
310 accept_language_combobox_model_.get()); 309 accept_language_combobox_model_.get());
311 accept_language_combobox_->SetSelectedItem(0); 310 accept_language_combobox_->SetSelectedItem(0);
312 accept_language_combobox_->SetListener(this); 311 accept_language_combobox_->set_listener(this);
313 AddChildView(accept_language_combobox_); 312 AddChildView(accept_language_combobox_);
314 } 313 }
315 314
316 class LanguageOrderTableModel : public views::TableModel { 315 class LanguageOrderTableModel : public views::TableModel {
317 public: 316 public:
318 LanguageOrderTableModel(); 317 LanguageOrderTableModel();
319 318
320 // Set Language List. 319 // Set Language List.
321 void SetAcceptLanguagesString(const std::string& language_list); 320 void SetAcceptLanguagesString(const std::string& language_list);
322 321
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing); 611 layout->AddPaddingRow(0, kUnrelatedControlVerticalSpacing);
613 612
614 language_info_label_ = new views::Label( 613 language_info_label_ = new views::Label(
615 l10n_util::GetString(IDS_OPTIONS_CHROME_LANGUAGE_INFO)); 614 l10n_util::GetString(IDS_OPTIONS_CHROME_LANGUAGE_INFO));
616 language_info_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); 615 language_info_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
617 ui_language_label_ = new views::Label( 616 ui_language_label_ = new views::Label(
618 l10n_util::GetString(IDS_OPTIONS_CHROME_UI_LANGUAGE)); 617 l10n_util::GetString(IDS_OPTIONS_CHROME_UI_LANGUAGE));
619 ui_language_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); 618 ui_language_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
620 ui_language_model_.reset(new LanguageComboboxModel); 619 ui_language_model_.reset(new LanguageComboboxModel);
621 change_ui_language_combobox_ = 620 change_ui_language_combobox_ =
622 new views::ComboBox(ui_language_model_.get()); 621 new views::Combobox(ui_language_model_.get());
623 change_ui_language_combobox_->SetListener(this); 622 change_ui_language_combobox_->set_listener(this);
624 dictionary_language_label_ = new views::Label( 623 dictionary_language_label_ = new views::Label(
625 l10n_util::GetString(IDS_OPTIONS_CHROME_DICTIONARY_LANGUAGE)); 624 l10n_util::GetString(IDS_OPTIONS_CHROME_DICTIONARY_LANGUAGE));
626 dictionary_language_label_->SetHorizontalAlignment( 625 dictionary_language_label_->SetHorizontalAlignment(
627 views::Label::ALIGN_LEFT); 626 views::Label::ALIGN_LEFT);
628 enable_spellchecking_checkbox_ = new views::Checkbox( 627 enable_spellchecking_checkbox_ = new views::Checkbox(
629 l10n_util::GetString(IDS_OPTIONS_ENABLE_SPELLCHECK)); 628 l10n_util::GetString(IDS_OPTIONS_ENABLE_SPELLCHECK));
630 enable_spellchecking_checkbox_->set_listener(this); 629 enable_spellchecking_checkbox_->set_listener(this);
631 enable_spellchecking_checkbox_->SetMultiLine(true); 630 enable_spellchecking_checkbox_->SetMultiLine(true);
632 631
633 // Determine Locale Codes. 632 // Determine Locale Codes.
634 SpellChecker::Languages spell_check_languages; 633 SpellChecker::Languages spell_check_languages;
635 SpellChecker::SpellCheckLanguages(&spell_check_languages); 634 SpellChecker::SpellCheckLanguages(&spell_check_languages);
636 dictionary_language_model_.reset(new LanguageComboboxModel(profile(), 635 dictionary_language_model_.reset(new LanguageComboboxModel(profile(),
637 spell_check_languages)); 636 spell_check_languages));
638 change_dictionary_language_combobox_ = 637 change_dictionary_language_combobox_ =
639 new views::ComboBox(dictionary_language_model_.get()); 638 new views::Combobox(dictionary_language_model_.get());
640 change_dictionary_language_combobox_->SetListener(this); 639 change_dictionary_language_combobox_->set_listener(this);
641 640
642 // SpellCheck language settings. 641 // SpellCheck language settings.
643 layout->StartRow(0, single_column_view_set_id); 642 layout->StartRow(0, single_column_view_set_id);
644 layout->AddView(enable_spellchecking_checkbox_); 643 layout->AddView(enable_spellchecking_checkbox_);
645 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing); 644 layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
646 const int double_column_view_set_2_id = 2; 645 const int double_column_view_set_2_id = 2;
647 column_set = layout->AddColumnSet(double_column_view_set_2_id); 646 column_set = layout->AddColumnSet(double_column_view_set_2_id);
648 column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 0, 647 column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 0,
649 GridLayout::USE_PREF, 0, 0); 648 GridLayout::USE_PREF, 0, 0);
650 column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing); 649 column_set->AddPaddingColumn(0, kRelatedControlHorizontalSpacing);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
723 722
724 change_dictionary_language_combobox_->SetSelectedItem(index); 723 change_dictionary_language_combobox_->SetSelectedItem(index);
725 spellcheck_language_index_selected_ = -1; 724 spellcheck_language_index_selected_ = -1;
726 } 725 }
727 if (!pref_name || *pref_name == prefs::kEnableSpellCheck) { 726 if (!pref_name || *pref_name == prefs::kEnableSpellCheck) {
728 enable_spellchecking_checkbox_->SetChecked( 727 enable_spellchecking_checkbox_->SetChecked(
729 enable_spellcheck_.GetValue()); 728 enable_spellcheck_.GetValue());
730 } 729 }
731 } 730 }
732 731
733 void LanguagesPageView::ItemChanged(views::ComboBox* sender, 732 void LanguagesPageView::ItemChanged(views::Combobox* sender,
734 int prev_index, 733 int prev_index,
735 int new_index) { 734 int new_index) {
736 if (prev_index == new_index) 735 if (prev_index == new_index)
737 return; 736 return;
738 737
739 if (sender == change_ui_language_combobox_) { 738 if (sender == change_ui_language_combobox_) {
740 if (new_index == starting_ui_language_index_) 739 if (new_index == starting_ui_language_index_)
741 ui_language_index_selected_ = -1; 740 ui_language_index_selected_ = -1;
742 else 741 else
743 ui_language_index_selected_ = new_index; 742 ui_language_index_selected_ = new_index;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 if (spellcheck_language_index_selected_ != -1) { 840 if (spellcheck_language_index_selected_ != -1) {
842 UserMetricsRecordAction(L"Options_DictionaryLanguage", 841 UserMetricsRecordAction(L"Options_DictionaryLanguage",
843 profile()->GetPrefs()); 842 profile()->GetPrefs());
844 dictionary_language_.SetValue(ASCIIToWide(dictionary_language_model_-> 843 dictionary_language_.SetValue(ASCIIToWide(dictionary_language_model_->
845 GetLocaleFromIndex(spellcheck_language_index_selected_))); 844 GetLocaleFromIndex(spellcheck_language_index_selected_)));
846 } 845 }
847 846
848 if (enable_spellcheck_checkbox_clicked_) 847 if (enable_spellcheck_checkbox_clicked_)
849 enable_spellcheck_.SetValue(enable_spellchecking_checkbox_->checked()); 848 enable_spellcheck_.SetValue(enable_spellchecking_checkbox_->checked());
850 } 849 }
OLDNEW
« no previous file with comments | « chrome/browser/views/options/languages_page_view.h ('k') | chrome/browser/views/select_profile_dialog.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698