Index: chrome/browser/gtk/options/options_layout_gtk.cc |
=================================================================== |
--- chrome/browser/gtk/options/options_layout_gtk.cc (revision 71352) |
+++ chrome/browser/gtk/options/options_layout_gtk.cc (working copy) |
@@ -1,125 +0,0 @@ |
-// Copyright (c) 2006-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/gtk/options/options_layout_gtk.h" |
- |
-#include "chrome/browser/gtk/gtk_util.h" |
- |
-// If the height of screen is equal or shorter than this, we will use |
-// a more compact option layout. |
-const int kCompactScreenHeight = 600; |
- |
-// Default option layout builder follows GNOME HIG, which uses header and |
-// spacing to group options. |
-class DefaultOptionsLayoutBuilderGtk : public OptionsLayoutBuilderGtk { |
- public: |
- explicit DefaultOptionsLayoutBuilderGtk(); |
- |
- void AddOptionGroup(const std::string& title, GtkWidget* content, |
- bool expandable); |
- void AddWidget(GtkWidget* content, bool expandable); |
- private: |
- DISALLOW_COPY_AND_ASSIGN(DefaultOptionsLayoutBuilderGtk); |
-}; |
- |
-DefaultOptionsLayoutBuilderGtk::DefaultOptionsLayoutBuilderGtk() { |
- page_ = gtk_vbox_new(FALSE, gtk_util::kContentAreaSpacing); |
- gtk_container_set_border_width(GTK_CONTAINER(page_), |
- gtk_util::kContentAreaBorder); |
-} |
- |
-void DefaultOptionsLayoutBuilderGtk::AddOptionGroup(const std::string& title, |
- GtkWidget* content, |
- bool expandable) { |
- GtkWidget* title_label = gtk_util::CreateBoldLabel(title); |
- |
- GtkWidget* group = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); |
- gtk_box_pack_start(GTK_BOX(group), title_label, FALSE, FALSE, 0); |
- gtk_container_add(GTK_CONTAINER(group), gtk_util::IndentWidget(content)); |
- |
- AddWidget(group, expandable); |
-} |
- |
-void DefaultOptionsLayoutBuilderGtk::AddWidget(GtkWidget* content, |
- bool expandable) { |
- gtk_box_pack_start(GTK_BOX(page_), content, expandable, expandable, 0); |
-} |
- |
-// Compact layout builder uses table to layout label and content horizontally. |
-class CompactOptionsLayoutBuilderGtk : public OptionsLayoutBuilderGtk { |
- public: |
- explicit CompactOptionsLayoutBuilderGtk(); |
- |
- void AddOptionGroup(const std::string& title, GtkWidget* content, |
- bool expandable); |
- void AddWidget(GtkWidget* content, bool expandable); |
- private: |
- GtkWidget *table_; |
- guint row_; |
- |
- DISALLOW_COPY_AND_ASSIGN(CompactOptionsLayoutBuilderGtk); |
-}; |
- |
-CompactOptionsLayoutBuilderGtk::CompactOptionsLayoutBuilderGtk() { |
- row_ = 0; |
- table_ = NULL; |
- |
- page_ = gtk_vbox_new(FALSE, gtk_util::kContentAreaSpacing); |
- gtk_container_set_border_width(GTK_CONTAINER(page_), |
- gtk_util::kContentAreaBorder); |
-} |
- |
-void CompactOptionsLayoutBuilderGtk::AddOptionGroup(const std::string& title, |
- GtkWidget* content, |
- bool expandable) { |
- if (!table_) { |
- // Create a new table to contain option groups |
- table_ = gtk_table_new(0, 2, FALSE); |
- gtk_table_set_col_spacing(GTK_TABLE(table_), 0, gtk_util::kLabelSpacing); |
- gtk_table_set_row_spacings(GTK_TABLE(table_), |
- gtk_util::kContentAreaSpacing); |
- |
- gtk_container_set_border_width(GTK_CONTAINER(table_), |
- gtk_util::kContentAreaBorder); |
- gtk_box_pack_start(GTK_BOX(page_), table_, TRUE, TRUE, 0); |
- } |
- |
- GtkWidget* title_label = gtk_util::CreateBoldLabel(title); |
- |
- gtk_table_resize(GTK_TABLE(table_), row_ + 1, 2); |
- gtk_misc_set_alignment(GTK_MISC(title_label), 1, 0); |
- |
- gtk_table_attach(GTK_TABLE(table_), title_label, |
- 0, 1, row_, row_ + 1, |
- GTK_FILL, GTK_FILL, |
- 0, 0); |
- gtk_table_attach(GTK_TABLE(table_), content, |
- 1, 2, row_, row_ + 1, |
- expandable ? |
- GTK_FILL : GtkAttachOptions(GTK_FILL | GTK_EXPAND), |
- GTK_FILL, |
- 0, 0); |
- row_++; |
-} |
- |
-void CompactOptionsLayoutBuilderGtk::AddWidget(GtkWidget* content, |
- bool expandable) { |
- gtk_box_pack_start(GTK_BOX(page_), content, expandable, expandable, 0); |
- |
- // Let AddOptionGroup create a new table and append after this widget |
- table_ = NULL; |
-} |
- |
-OptionsLayoutBuilderGtk* OptionsLayoutBuilderGtk::Create() { |
- return new DefaultOptionsLayoutBuilderGtk(); |
-} |
- |
-OptionsLayoutBuilderGtk* |
-OptionsLayoutBuilderGtk::CreateOptionallyCompactLayout() { |
- gint screen_height = gdk_screen_get_height(gdk_screen_get_default()); |
- if (screen_height <= kCompactScreenHeight) |
- return new CompactOptionsLayoutBuilderGtk(); |
- else |
- return new DefaultOptionsLayoutBuilderGtk(); |
-} |