Index: chrome/browser/gtk/options/fonts_languages_window_gtk.cc |
=================================================================== |
--- chrome/browser/gtk/options/fonts_languages_window_gtk.cc (revision 71352) |
+++ chrome/browser/gtk/options/fonts_languages_window_gtk.cc (working copy) |
@@ -1,149 +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 "chrome/browser/fonts_languages_window.h" |
- |
-#include <gtk/gtk.h> |
- |
-#include "app/l10n_util.h" |
-#include "base/message_loop.h" |
-#include "chrome/browser/gtk/gtk_util.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/gtk/options/fonts_page_gtk.h" |
-#include "chrome/browser/gtk/options/languages_page_gtk.h" |
-#include "grit/chromium_strings.h" |
-#include "grit/generated_resources.h" |
- |
-/////////////////////////////////////////////////////////////////////////////// |
-// FontsLanguagesWindowGtk |
-// |
-// The contents of the Options dialog window. |
- |
-class FontsLanguagesWindowGtk { |
- public: |
- explicit FontsLanguagesWindowGtk(Profile* profile); |
- ~FontsLanguagesWindowGtk(); |
- |
- // Shows the tab corresponding to the specified |page|. |
- void ShowTabPage(gfx::NativeWindow window, FontsLanguagesPage page); |
- |
- private: |
- static void OnWindowDestroy(GtkWidget* widget, |
- FontsLanguagesWindowGtk* window); |
- |
- // The fonts and languages dialog. |
- GtkWidget *dialog_; |
- |
- // The container of the option pages. |
- GtkWidget *notebook_; |
- |
- // The Profile associated with these options. |
- Profile* profile_; |
- |
- // The fonts page. |
- FontsPageGtk fonts_page_; |
- |
- // The languages page. |
- LanguagesPageGtk languages_page_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FontsLanguagesWindowGtk); |
-}; |
- |
-static FontsLanguagesWindowGtk* instance_ = NULL; |
- |
-/////////////////////////////////////////////////////////////////////////////// |
-// FontsLanguagesWindowGtk, public: |
- |
-FontsLanguagesWindowGtk::FontsLanguagesWindowGtk(Profile* profile) |
- // Always show preferences for the original profile. Most state when off |
- // the record comes from the original profile, but we explicitly use |
- // the original profile to avoid potential problems. |
- : profile_(profile->GetOriginalProfile()), |
- fonts_page_(profile_), |
- languages_page_(profile_) { |
- dialog_ = gtk_dialog_new_with_buttons( |
- l10n_util::GetStringUTF8(IDS_FONT_LANGUAGE_SETTING_WINDOWS_TITLE).c_str(), |
- // Prefs window is shared between all browser windows. |
- NULL, |
- // 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), |
- gtk_util::kContentAreaSpacing); |
- |
- notebook_ = gtk_notebook_new(); |
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog_)->vbox), notebook_); |
- |
- // Fonts and Encoding tab. |
- gtk_notebook_append_page( |
- GTK_NOTEBOOK(notebook_), |
- fonts_page_.get_page_widget(), |
- gtk_label_new( |
- l10n_util::GetStringUTF8( |
- IDS_FONT_LANGUAGE_SETTING_FONT_TAB_TITLE).c_str())); |
- |
- // Langauges tab. |
- gtk_notebook_append_page( |
- GTK_NOTEBOOK(notebook_), |
- languages_page_.get_page_widget(), |
- gtk_label_new( |
- l10n_util::GetStringUTF8( |
- IDS_FONT_LANGUAGE_SETTING_LANGUAGES_TAB_TITLE).c_str())); |
- |
- // Show the notebook. |
- gtk_util::ShowDialogWithLocalizedSize(dialog_, -1, -1, false); |
- |
- // We only have one button and don't do any special handling, so just hook it |
- // directly to gtk_widget_destroy. |
- g_signal_connect_swapped(dialog_, "response", G_CALLBACK(gtk_widget_destroy), |
- dialog_); |
- |
- g_signal_connect(dialog_, "destroy", G_CALLBACK(OnWindowDestroy), this); |
-} |
- |
-FontsLanguagesWindowGtk::~FontsLanguagesWindowGtk() { |
-} |
- |
-void FontsLanguagesWindowGtk::ShowTabPage(gfx::NativeWindow window, |
- FontsLanguagesPage page) { |
- // Center our dialog over whoever displayed us. |
- gtk_util::CenterOverWindow(GTK_WINDOW(dialog_), window); |
- |
- // Bring options window to front if it already existed and isn't already |
- // in front. |
- gtk_util::PresentWindow(dialog_, 0); |
- |
- // If the page is out of bounds, reset to the first tab. |
- if (page < 0 || page >= gtk_notebook_get_n_pages(GTK_NOTEBOOK(notebook_))) |
- page = FONTS_ENCODING_PAGE; |
- |
- // Switch the tab to the selected |page|. |
- gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook_), page); |
-} |
- |
-/////////////////////////////////////////////////////////////////////////////// |
-// FontsLanguagesWindowGtk, private: |
- |
-// static |
-void FontsLanguagesWindowGtk::OnWindowDestroy(GtkWidget* widget, |
- FontsLanguagesWindowGtk* window) { |
- instance_ = NULL; |
- MessageLoop::current()->DeleteSoon(FROM_HERE, window); |
-} |
- |
-void ShowFontsLanguagesWindow(gfx::NativeWindow window, |
- FontsLanguagesPage page, |
- Profile* profile) { |
- DCHECK(profile); |
- // If there's already an existing fonts and language window, activate it and |
- // switch to the specified page. |
- if (!instance_) |
- instance_ = new FontsLanguagesWindowGtk(profile); |
- |
- instance_->ShowTabPage(window, page); |
-} |