OLD | NEW |
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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 #include <gtk/gtk.h> | 5 #include <gtk/gtk.h> |
6 | 6 |
7 #include "chrome/browser/options_window.h" | 7 #include "chrome/browser/options_window.h" |
8 | 8 |
9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
11 #include "chrome/browser/browser_process.h" | 11 #include "chrome/browser/browser_process.h" |
| 12 #include "chrome/browser/gtk/options/general_page_gtk.h" |
12 #include "chrome/browser/profile.h" | 13 #include "chrome/browser/profile.h" |
13 #include "chrome/common/pref_member.h" | 14 #include "chrome/common/pref_member.h" |
14 #include "chrome/common/pref_names.h" | 15 #include "chrome/common/pref_names.h" |
15 #include "chrome/common/pref_service.h" | 16 #include "chrome/common/pref_service.h" |
16 #ifdef CHROME_PERSONALIZATION | 17 #ifdef CHROME_PERSONALIZATION |
17 #include "chrome/personalization/personalization.h" | 18 #include "chrome/personalization/personalization.h" |
18 #endif | 19 #endif |
19 #include "grit/chromium_strings.h" | 20 #include "grit/chromium_strings.h" |
20 #include "grit/generated_resources.h" | 21 #include "grit/generated_resources.h" |
21 | 22 |
(...skipping 25 matching lines...) Expand all Loading... |
47 | 48 |
48 // The options dialog | 49 // The options dialog |
49 GtkWidget *dialog_; | 50 GtkWidget *dialog_; |
50 | 51 |
51 // The container of the option pages | 52 // The container of the option pages |
52 GtkWidget *notebook_; | 53 GtkWidget *notebook_; |
53 | 54 |
54 // The Profile associated with these options. | 55 // The Profile associated with these options. |
55 Profile* profile_; | 56 Profile* profile_; |
56 | 57 |
| 58 // The options pages |
| 59 GeneralPageGtk general_page_; |
| 60 |
57 // The last page the user was on when they opened the Options window. | 61 // The last page the user was on when they opened the Options window. |
58 IntegerPrefMember last_selected_page_; | 62 IntegerPrefMember last_selected_page_; |
59 | 63 |
60 DISALLOW_COPY_AND_ASSIGN(OptionsWindowGtk); | 64 DISALLOW_COPY_AND_ASSIGN(OptionsWindowGtk); |
61 }; | 65 }; |
62 | 66 |
63 static OptionsWindowGtk* instance_ = NULL; | 67 static OptionsWindowGtk* instance_ = NULL; |
64 | 68 |
65 /////////////////////////////////////////////////////////////////////////////// | 69 /////////////////////////////////////////////////////////////////////////////// |
66 // OptionsWindowGtk, public: | 70 // OptionsWindowGtk, public: |
67 | 71 |
68 OptionsWindowGtk::OptionsWindowGtk(Profile* profile) | 72 OptionsWindowGtk::OptionsWindowGtk(Profile* profile) |
69 // Always show preferences for the original profile. Most state when off | 73 // Always show preferences for the original profile. Most state when off |
70 // the record comes from the original profile, but we explicitly use | 74 // the record comes from the original profile, but we explicitly use |
71 // the original profile to avoid potential problems. | 75 // the original profile to avoid potential problems. |
72 : profile_(profile->GetOriginalProfile()) { | 76 : profile_(profile->GetOriginalProfile()), general_page_(profile_) { |
73 // The download manager needs to be initialized before the contents of the | 77 // The download manager needs to be initialized before the contents of the |
74 // Options Window are created. | 78 // Options Window are created. |
75 profile_->GetDownloadManager(); | 79 profile_->GetDownloadManager(); |
76 // We don't need to observe changes in this value. | 80 // We don't need to observe changes in this value. |
77 last_selected_page_.Init(prefs::kOptionsWindowLastTabIndex, | 81 last_selected_page_.Init(prefs::kOptionsWindowLastTabIndex, |
78 g_browser_process->local_state(), NULL); | 82 g_browser_process->local_state(), NULL); |
79 | 83 |
80 dialog_ = gtk_dialog_new_with_buttons( | 84 dialog_ = gtk_dialog_new_with_buttons( |
81 l10n_util::GetStringFUTF8(IDS_OPTIONS_DIALOG_TITLE, | 85 l10n_util::GetStringFUTF8(IDS_OPTIONS_DIALOG_TITLE, |
82 WideToUTF16(l10n_util::GetString(IDS_PRODUCT_NAME))).c_str(), | 86 WideToUTF16(l10n_util::GetString(IDS_PRODUCT_NAME))).c_str(), |
83 // Prefs window is shared between all browser windows. | 87 // Prefs window is shared between all browser windows. |
84 NULL, | 88 NULL, |
85 // Non-modal. | 89 // Non-modal. |
86 GTK_DIALOG_NO_SEPARATOR, | 90 GTK_DIALOG_NO_SEPARATOR, |
87 GTK_STOCK_CLOSE, | 91 GTK_STOCK_CLOSE, |
88 GTK_RESPONSE_CLOSE, | 92 GTK_RESPONSE_CLOSE, |
89 NULL); | 93 NULL); |
90 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox), 18); | 94 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox), 18); |
91 | 95 |
92 notebook_ = gtk_notebook_new(); | 96 notebook_ = gtk_notebook_new(); |
93 | 97 |
94 gtk_notebook_append_page( | 98 gtk_notebook_append_page( |
95 GTK_NOTEBOOK(notebook_), | 99 GTK_NOTEBOOK(notebook_), |
96 gtk_label_new("TODO general"), | 100 general_page_.get_page_widget(), |
97 gtk_label_new( | 101 gtk_label_new( |
98 l10n_util::GetStringUTF8(IDS_OPTIONS_GENERAL_TAB_LABEL).c_str())); | 102 l10n_util::GetStringUTF8(IDS_OPTIONS_GENERAL_TAB_LABEL).c_str())); |
99 | 103 |
100 gtk_notebook_append_page( | 104 gtk_notebook_append_page( |
101 GTK_NOTEBOOK(notebook_), | 105 GTK_NOTEBOOK(notebook_), |
102 gtk_label_new("TODO content"), | 106 gtk_label_new("TODO content"), |
103 gtk_label_new( | 107 gtk_label_new( |
104 l10n_util::GetStringUTF8(IDS_OPTIONS_CONTENT_TAB_LABEL).c_str())); | 108 l10n_util::GetStringUTF8(IDS_OPTIONS_CONTENT_TAB_LABEL).c_str())); |
105 | 109 |
106 #ifdef CHROME_PERSONALIZATION | 110 #ifdef CHROME_PERSONALIZATION |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 OptionsGroup highlight_group, | 220 OptionsGroup highlight_group, |
217 Profile* profile) { | 221 Profile* profile) { |
218 DCHECK(profile); | 222 DCHECK(profile); |
219 // If there's already an existing options window, activate it and switch to | 223 // If there's already an existing options window, activate it and switch to |
220 // the specified page. | 224 // the specified page. |
221 if (!instance_) { | 225 if (!instance_) { |
222 instance_ = new OptionsWindowGtk(profile); | 226 instance_ = new OptionsWindowGtk(profile); |
223 } | 227 } |
224 instance_->ShowOptionsPage(page, highlight_group); | 228 instance_->ShowOptionsPage(page, highlight_group); |
225 } | 229 } |
OLD | NEW |