| 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 |