OLD | NEW |
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 #include "chrome/browser/ui/gtk/about_chrome_dialog.h" | 5 #include "chrome/browser/ui/gtk/about_chrome_dialog.h" |
6 | 6 |
7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/utf_string_conversions.h" | 12 #include "base/utf_string_conversions.h" |
13 #include "chrome/browser/google/google_util.h" | 13 #include "chrome/browser/google/google_util.h" |
14 #include "chrome/browser/platform_util.h" | |
15 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
16 #include "chrome/browser/ui/browser_list.h" | 15 #include "chrome/browser/ui/browser_list.h" |
17 #include "chrome/browser/ui/gtk/cairo_cached_surface.h" | 16 #include "chrome/browser/ui/gtk/cairo_cached_surface.h" |
18 #include "chrome/browser/ui/gtk/gtk_chrome_link_button.h" | 17 #include "chrome/browser/ui/gtk/gtk_chrome_link_button.h" |
19 #include "chrome/browser/ui/gtk/gtk_theme_service.h" | 18 #include "chrome/browser/ui/gtk/gtk_theme_service.h" |
20 #include "chrome/browser/ui/gtk/gtk_util.h" | 19 #include "chrome/browser/ui/gtk/gtk_util.h" |
21 #include "chrome/common/chrome_constants.h" | 20 #include "chrome/common/chrome_constants.h" |
22 #include "chrome/common/chrome_version_info.h" | 21 #include "chrome/common/chrome_version_info.h" |
23 #include "chrome/common/url_constants.h" | 22 #include "chrome/common/url_constants.h" |
24 #include "grit/chromium_strings.h" | 23 #include "grit/chromium_strings.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 cairo_fill(cr); | 95 cairo_fill(cr); |
97 cairo_destroy(cr); | 96 cairo_destroy(cr); |
98 return FALSE; | 97 return FALSE; |
99 } | 98 } |
100 | 99 |
101 } // namespace | 100 } // namespace |
102 | 101 |
103 void ShowAboutDialogForProfile(GtkWindow* parent, Profile* profile) { | 102 void ShowAboutDialogForProfile(GtkWindow* parent, Profile* profile) { |
104 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 103 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
105 static GdkPixbuf* background = rb.GetNativeImageNamed(IDR_ABOUT_BACKGROUND); | 104 static GdkPixbuf* background = rb.GetNativeImageNamed(IDR_ABOUT_BACKGROUND); |
106 chrome::VersionInfo version_info; | |
107 std::string current_version = version_info.Version(); | |
108 #if !defined(GOOGLE_CHROME_BUILD) | |
109 current_version += " ("; | |
110 current_version += l10n_util::GetStringUTF8( | |
111 version_info.IsOfficialBuild() ? | |
112 IDS_ABOUT_VERSION_OFFICIAL : IDS_ABOUT_VERSION_UNOFFICIAL); | |
113 current_version += " "; | |
114 current_version += version_info.LastChange(); | |
115 current_version += " "; | |
116 current_version += version_info.OSType(); | |
117 current_version += ")"; | |
118 #endif | |
119 std::string channel = platform_util::GetVersionStringModifier(); | |
120 if (!channel.empty()) | |
121 current_version += " " + channel; | |
122 | 105 |
123 // Build the dialog. | 106 // Build the dialog. |
124 GtkWidget* dialog = gtk_dialog_new_with_buttons( | 107 GtkWidget* dialog = gtk_dialog_new_with_buttons( |
125 l10n_util::GetStringUTF8(IDS_ABOUT_CHROME_TITLE).c_str(), | 108 l10n_util::GetStringUTF8(IDS_ABOUT_CHROME_TITLE).c_str(), |
126 parent, | 109 parent, |
127 GTK_DIALOG_MODAL, | 110 GTK_DIALOG_MODAL, |
128 NULL); | 111 NULL); |
129 // Pick up the style set in gtk_util.cc:InitRCStyles(). | 112 // Pick up the style set in gtk_util.cc:InitRCStyles(). |
130 // The layout of this dialog is special because the logo should be flush | 113 // The layout of this dialog is special because the logo should be flush |
131 // with the edges of the window. | 114 // with the edges of the window. |
(...skipping 19 matching lines...) Expand all Loading... |
151 | 134 |
152 GtkWidget* text_vbox = gtk_vbox_new(FALSE, kExtraLineSpacing); | 135 GtkWidget* text_vbox = gtk_vbox_new(FALSE, kExtraLineSpacing); |
153 | 136 |
154 GdkColor black = gtk_util::kGdkBlack; | 137 GdkColor black = gtk_util::kGdkBlack; |
155 GtkWidget* product_label = MakeMarkupLabel( | 138 GtkWidget* product_label = MakeMarkupLabel( |
156 "<span font_desc=\"18\" style=\"normal\">%s</span>", | 139 "<span font_desc=\"18\" style=\"normal\">%s</span>", |
157 l10n_util::GetStringUTF8(IDS_PRODUCT_NAME)); | 140 l10n_util::GetStringUTF8(IDS_PRODUCT_NAME)); |
158 gtk_widget_modify_fg(product_label, GTK_STATE_NORMAL, &black); | 141 gtk_widget_modify_fg(product_label, GTK_STATE_NORMAL, &black); |
159 gtk_box_pack_start(GTK_BOX(text_vbox), product_label, FALSE, FALSE, 0); | 142 gtk_box_pack_start(GTK_BOX(text_vbox), product_label, FALSE, FALSE, 0); |
160 | 143 |
161 GtkWidget* version_label = gtk_label_new(current_version.c_str()); | 144 chrome::VersionInfo version_info; |
| 145 GtkWidget* version_label = gtk_label_new( |
| 146 version_info.CreateVersionString().c_str()); |
162 gtk_misc_set_alignment(GTK_MISC(version_label), 0.0, 0.5); | 147 gtk_misc_set_alignment(GTK_MISC(version_label), 0.0, 0.5); |
163 gtk_label_set_selectable(GTK_LABEL(version_label), TRUE); | 148 gtk_label_set_selectable(GTK_LABEL(version_label), TRUE); |
164 gtk_widget_modify_fg(version_label, GTK_STATE_NORMAL, &black); | 149 gtk_widget_modify_fg(version_label, GTK_STATE_NORMAL, &black); |
165 gtk_box_pack_start(GTK_BOX(text_vbox), version_label, FALSE, FALSE, 0); | 150 gtk_box_pack_start(GTK_BOX(text_vbox), version_label, FALSE, FALSE, 0); |
166 | 151 |
167 gtk_container_add(GTK_CONTAINER(text_alignment), text_vbox); | 152 gtk_container_add(GTK_CONTAINER(text_alignment), text_vbox); |
168 gtk_box_pack_start(GTK_BOX(hbox), text_alignment, TRUE, TRUE, 0); | 153 gtk_box_pack_start(GTK_BOX(hbox), text_alignment, TRUE, TRUE, 0); |
169 | 154 |
170 GtkWidget* image_vbox = gtk_vbox_new(FALSE, 0); | 155 GtkWidget* image_vbox = gtk_vbox_new(FALSE, 0); |
171 gtk_box_pack_end(GTK_BOX(image_vbox), | 156 gtk_box_pack_end(GTK_BOX(image_vbox), |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 gtk_util::kContentAreaBorder, 0, | 270 gtk_util::kContentAreaBorder, 0, |
286 gtk_util::kContentAreaBorder, gtk_util::kContentAreaBorder); | 271 gtk_util::kContentAreaBorder, gtk_util::kContentAreaBorder); |
287 gtk_container_add(GTK_CONTAINER(alignment), vbox); | 272 gtk_container_add(GTK_CONTAINER(alignment), vbox); |
288 gtk_box_pack_start(GTK_BOX(content_area), alignment, FALSE, FALSE, 0); | 273 gtk_box_pack_start(GTK_BOX(content_area), alignment, FALSE, FALSE, 0); |
289 | 274 |
290 g_signal_connect(dialog, "response", G_CALLBACK(OnResponse), NULL); | 275 g_signal_connect(dialog, "response", G_CALLBACK(OnResponse), NULL); |
291 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); | 276 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); |
292 gtk_widget_show_all(dialog); | 277 gtk_widget_show_all(dialog); |
293 gtk_widget_grab_focus(close_button); | 278 gtk_widget_grab_focus(close_button); |
294 } | 279 } |
OLD | NEW |