diff options
Diffstat (limited to 'chrome/browser/gtk/page_info_window_gtk.cc')
-rw-r--r-- | chrome/browser/gtk/page_info_window_gtk.cc | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/chrome/browser/gtk/page_info_window_gtk.cc b/chrome/browser/gtk/page_info_window_gtk.cc deleted file mode 100644 index 68b05b2f..0000000 --- a/chrome/browser/gtk/page_info_window_gtk.cc +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include <gtk/gtk.h> - -#include "build/build_config.h" - -#include "app/l10n_util.h" -#include "app/resource_bundle.h" -#include "base/compiler_specific.h" -#include "base/string_util.h" -#include "chrome/browser/page_info_model.h" -#include "chrome/browser/page_info_window.h" -#include "chrome/common/gtk_util.h" -#include "grit/locale_settings.h" -#include "grit/generated_resources.h" - - -namespace { - -class PageInfoWindowGtk : public PageInfoModel::PageInfoModelObserver { - public: - PageInfoWindowGtk(gfx::NativeWindow parent, - Profile* profile, - const GURL& url, - const NavigationEntry::SSLStatus& ssl, - bool show_history); - ~PageInfoWindowGtk(); - - // PageInfoModelObserver implementation: - virtual void ModelChanged(); - - // Shows the page info window. - void Show(); - - private: - // Layouts the different sections retrieved from the model. - void InitContents(); - - // Returns a widget that contains the UI for the passed |section|. - GtkWidget* CreateSection(const PageInfoModel::SectionInfo& section); - - // The model containing the different sections to display. - PageInfoModel model_; - - // The page info dialog. - GtkWidget* dialog_; - - // The virtual box containing the sections. - GtkWidget* contents_; - - DISALLOW_COPY_AND_ASSIGN(PageInfoWindowGtk); -}; - -// Close button callback. -void OnDialogResponse(GtkDialog* dialog, gpointer data) { - // "Close" was clicked. - gtk_widget_destroy(GTK_WIDGET(dialog)); -} - -void OnDestroy(GtkDialog* dialog, PageInfoWindowGtk* page_info) { - delete page_info; -} - -//////////////////////////////////////////////////////////////////////////////// -// PageInfoWindowGtk, public: -PageInfoWindowGtk::PageInfoWindowGtk(gfx::NativeWindow parent, - Profile* profile, - const GURL& url, - const NavigationEntry::SSLStatus& ssl, - bool show_history) - : ALLOW_THIS_IN_INITIALIZER_LIST(model_(profile, url, ssl, - show_history, this)), - contents_(NULL) { - dialog_ = gtk_dialog_new_with_buttons( - l10n_util::GetStringUTF8(IDS_PAGEINFO_WINDOW_TITLE).c_str(), - parent, - // Non-modal. - GTK_DIALOG_NO_SEPARATOR, - GTK_STOCK_CLOSE, - GTK_RESPONSE_CLOSE, - NULL); - gtk_window_set_default_size(GTK_WINDOW(dialog_), 500, -1); - gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox), - GtkUtil::kContentAreaSpacing); - GtkUtil::SetWindowIcon(GTK_WINDOW(dialog_)); - g_signal_connect(dialog_, "response", G_CALLBACK(OnDialogResponse), NULL); - g_signal_connect(dialog_, "destroy", G_CALLBACK(OnDestroy), this); - - InitContents(); -} - -PageInfoWindowGtk::~PageInfoWindowGtk() {} - -void PageInfoWindowGtk::ModelChanged() { - InitContents(); -} - -GtkWidget* PageInfoWindowGtk::CreateSection( - const PageInfoModel::SectionInfo& section) { - GtkWidget* vbox = gtk_vbox_new(FALSE, GtkUtil::kControlSpacing); - GtkWidget* label = gtk_label_new(UTF16ToUTF8(section.title).c_str()); - - PangoAttrList* attributes = pango_attr_list_new(); - pango_attr_list_insert(attributes, - pango_attr_weight_new(PANGO_WEIGHT_BOLD)); - gtk_label_set_attributes(GTK_LABEL(label), attributes); - pango_attr_list_unref(attributes); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0); - gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); - - GtkWidget* section_box = gtk_hbox_new(FALSE, 0); - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); - GtkWidget* image = gtk_image_new_from_pixbuf(section.state ? - rb.GetPixbufNamed(IDR_PAGEINFO_GOOD) : - rb.GetPixbufNamed(IDR_PAGEINFO_BAD)); - gtk_box_pack_start(GTK_BOX(section_box), image, FALSE, FALSE, - GtkUtil::kControlSpacing); - gtk_misc_set_alignment(GTK_MISC(image), 0, 0); - - GtkWidget* text_box = gtk_vbox_new(FALSE, GtkUtil::kControlSpacing); - if (!section.head_line.empty()) { - label = gtk_label_new(UTF16ToUTF8(section.head_line).c_str()); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0); - gtk_box_pack_start(GTK_BOX(text_box), label , FALSE, FALSE, 0); - } - label = gtk_label_new(UTF16ToUTF8(section.description).c_str()); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0); - gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); - gtk_box_pack_start(GTK_BOX(text_box), label , FALSE, FALSE, 0); - - gtk_box_pack_start(GTK_BOX(section_box), text_box , TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(vbox), section_box , TRUE, TRUE, 0); - - return vbox; -} - -void PageInfoWindowGtk::InitContents() { - if (contents_) - gtk_widget_destroy(contents_); - contents_ = gtk_vbox_new(FALSE, GtkUtil::kContentAreaSpacing); - for (int i = 0; i < model_.GetSectionCount(); i++) { - gtk_box_pack_start(GTK_BOX(contents_), - CreateSection(model_.GetSectionInfo(i)), - FALSE, FALSE, 0); - } - gtk_widget_show_all(contents_); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog_)->vbox), contents_); -} - -void PageInfoWindowGtk::Show() { - gtk_widget_show(dialog_); -} - -} // namespace - -namespace browser { - -void ShowPageInfo(gfx::NativeWindow parent, - Profile* profile, - const GURL& url, - const NavigationEntry::SSLStatus& ssl, - bool show_history) { - PageInfoWindowGtk* window = new PageInfoWindowGtk(parent, profile, url, - ssl, show_history); - window->Show(); -} - -} // namespace browser |