| Index: chrome/browser/gtk/bookmark_editor_gtk.cc
|
| diff --git a/chrome/browser/gtk/bookmark_editor_gtk.cc b/chrome/browser/gtk/bookmark_editor_gtk.cc
|
| index 32af73947c9a87d687c8e1e6e015a78357b9cbb0..f4da66e26d74bb76f0b80991dfe50faa3fe31a8a 100644
|
| --- a/chrome/browser/gtk/bookmark_editor_gtk.cc
|
| +++ b/chrome/browser/gtk/bookmark_editor_gtk.cc
|
| @@ -26,7 +26,7 @@ namespace {
|
| // Background color of text field when URL is invalid.
|
| const GdkColor kErrorColor = GDK_COLOR_RGB(0xFF, 0xBC, 0xBC);
|
|
|
| -// Preferred width of the tree.
|
| +// Preferred initial dimensions, in pixels, of the folder tree.
|
| static const int kTreeWidth = 300;
|
| static const int kTreeHeight = 150;
|
|
|
| @@ -76,38 +76,31 @@ void BookmarkEditorGtk::Init(GtkWindow* parent_window) {
|
| DCHECK(bb_model_);
|
| bb_model_->AddObserver(this);
|
|
|
| - // TODO(erg): Redo this entire class as a normal GtkWindow with it's modality
|
| - // manually set to TRUE because using the stock GtkDialog class gives me
|
| - // almost no control over the buttons on the bottom.
|
| dialog_ = gtk_dialog_new_with_buttons(
|
| l10n_util::GetStringUTF8(IDS_BOOMARK_EDITOR_TITLE).c_str(),
|
| parent_window,
|
| GTK_DIALOG_MODAL,
|
| + GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
|
| + GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
|
| NULL);
|
| + gtk_dialog_set_has_separator(GTK_DIALOG(dialog_), FALSE);
|
|
|
| if (show_tree_) {
|
| - // We want the New Folder button to not automatically dismiss the dialog so
|
| - // we have to do that manually. gtk_dialog_add_button() always makes the
|
| - // button dismiss the dialog box. This isn't 100% accurate to what I want;
|
| - // see above about redoing this as a GtkWindow.
|
| GtkWidget* action_area = GTK_DIALOG(dialog_)->action_area;
|
| - new_folder_button_ = gtk_button_new_with_label("New Folder");
|
| - g_signal_connect(new_folder_button_, "clicked",
|
| + GtkWidget* new_folder_button = gtk_button_new_with_label(
|
| + l10n_util::GetStringUTF8(IDS_BOOMARK_EDITOR_NEW_FOLDER_BUTTON).c_str());
|
| + g_signal_connect(new_folder_button, "clicked",
|
| G_CALLBACK(OnNewFolderClicked), this);
|
| - gtk_box_pack_start(GTK_BOX(action_area), new_folder_button_,
|
| - FALSE, FALSE, 0);
|
| + gtk_container_add(GTK_CONTAINER(action_area), new_folder_button);
|
| + gtk_button_box_set_child_secondary(GTK_BUTTON_BOX(action_area),
|
| + new_folder_button, TRUE);
|
| }
|
|
|
| - close_button_ = gtk_dialog_add_button(GTK_DIALOG(dialog_),
|
| - GTK_STOCK_CANCEL,
|
| - GTK_RESPONSE_REJECT);
|
| - ok_button_ = gtk_dialog_add_button(GTK_DIALOG(dialog_),
|
| - GTK_STOCK_OK, GTK_RESPONSE_ACCEPT);
|
| gtk_dialog_set_default_response(GTK_DIALOG(dialog_), GTK_RESPONSE_ACCEPT);
|
|
|
| // The GTK dialog content area layout (overview)
|
| //
|
| - // +- GtkVBox |content_area| --------------------------------------+
|
| + // +- GtkVBox |vbox| ----------------------------------------------+
|
| // |+- GtkTable |table| ------------------------------------------+|
|
| // ||+- GtkLabel ------+ +- GtkEntry |name_entry_| --------------+||
|
| // ||| | | |||
|
| @@ -128,48 +121,49 @@ void BookmarkEditorGtk::Init(GtkWindow* parent_window) {
|
| // |+-------------------------------------------------------------+|
|
| // +---------------------------------------------------------------+
|
| GtkWidget* content_area = GTK_DIALOG(dialog_)->vbox;
|
| - gtk_container_set_border_width(GTK_CONTAINER(content_area), 12);
|
| + gtk_box_set_spacing(GTK_BOX(content_area), 18);
|
| +
|
| + GtkWidget* vbox = gtk_vbox_new(FALSE, 12);
|
| +
|
| GtkWidget* table = gtk_table_new(2, 2, FALSE);
|
| + gtk_table_set_col_spacing(GTK_TABLE(table), 0, 12);
|
| + gtk_table_set_row_spacings(GTK_TABLE(table), 6);
|
|
|
| GtkWidget* label = gtk_label_new(
|
| l10n_util::GetStringUTF8(IDS_BOOMARK_EDITOR_NAME_LABEL).c_str());
|
| + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
|
| gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label),
|
| 0, 1, 0, 1,
|
| - (GtkAttachOptions)(GTK_SHRINK),
|
| - (GtkAttachOptions)(GTK_SHRINK),
|
| - 12, 0);
|
| + (GtkAttachOptions)(GTK_FILL),
|
| + (GtkAttachOptions)(GTK_FILL),
|
| + 0, 0);
|
| name_entry_ = gtk_entry_new();
|
| gtk_entry_set_text(GTK_ENTRY(name_entry_),
|
| node_ ? WideToUTF8(node_->GetTitle()).c_str() : "");
|
| g_signal_connect(G_OBJECT(name_entry_), "changed",
|
| G_CALLBACK(OnEntryChanged), this);
|
| - g_object_set(G_OBJECT(name_entry_), "activates-default", TRUE, NULL);
|
| - gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(name_entry_),
|
| - 1, 2, 0, 1,
|
| - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),
|
| - (GtkAttachOptions)(GTK_FILL),
|
| - 0, 0);
|
| + gtk_entry_set_activates_default(GTK_ENTRY(name_entry_), TRUE);
|
| + gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(name_entry_),
|
| + 1, 2, 0, 1);
|
|
|
| label = gtk_label_new(
|
| l10n_util::GetStringUTF8(IDS_BOOMARK_EDITOR_URL_LABEL).c_str());
|
| + gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
|
| gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(label),
|
| 0, 1, 1, 2,
|
| - (GtkAttachOptions)(GTK_SHRINK),
|
| - (GtkAttachOptions)(GTK_SHRINK),
|
| - 12, 0);
|
| + (GtkAttachOptions)(GTK_FILL),
|
| + (GtkAttachOptions)(GTK_FILL),
|
| + 0, 0);
|
| url_entry_ = gtk_entry_new();
|
| gtk_entry_set_text(GTK_ENTRY(url_entry_),
|
| node_ ? node_->GetURL().spec().c_str() : "");
|
| g_signal_connect(G_OBJECT(url_entry_), "changed",
|
| G_CALLBACK(OnEntryChanged), this);
|
| - g_object_set(G_OBJECT(url_entry_), "activates-default", TRUE, NULL);
|
| - gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(url_entry_),
|
| - 1, 2, 1, 2,
|
| - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),
|
| - (GtkAttachOptions)(GTK_FILL),
|
| - 0, 0);
|
| + gtk_entry_set_activates_default(GTK_ENTRY(url_entry_), TRUE);
|
| + gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(url_entry_),
|
| + 1, 2, 1, 2);
|
|
|
| - gtk_box_pack_start(GTK_BOX(content_area), table, FALSE, FALSE, 0);
|
| + gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
|
|
|
| if (show_tree_) {
|
| GtkTreeIter selected_iter;
|
| @@ -199,12 +193,17 @@ void BookmarkEditorGtk::Init(GtkWindow* parent_window) {
|
|
|
| GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL);
|
| gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),
|
| - GTK_POLICY_NEVER,
|
| + GTK_POLICY_NEVER,
|
| GTK_POLICY_AUTOMATIC);
|
| + gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window),
|
| + GTK_SHADOW_ETCHED_IN);
|
| gtk_container_add(GTK_CONTAINER(scroll_window), tree_view_);
|
| - gtk_box_pack_start(GTK_BOX(content_area), scroll_window, TRUE, TRUE, 12);
|
| +
|
| + gtk_box_pack_start(GTK_BOX(vbox), scroll_window, TRUE, TRUE, 0);
|
| }
|
|
|
| + gtk_box_pack_start(GTK_BOX(content_area), vbox, TRUE, TRUE, 0);
|
| +
|
| g_signal_connect(dialog_, "response",
|
| G_CALLBACK(OnResponse), this);
|
| g_signal_connect(dialog_, "delete-event",
|
| @@ -365,10 +364,12 @@ void BookmarkEditorGtk::OnEntryChanged(GtkEditable* entry,
|
| const GURL url(dialog->GetInputURL());
|
| if (!url.is_valid()) {
|
| gtk_widget_modify_base(dialog->url_entry_, GTK_STATE_NORMAL, &kErrorColor);
|
| - gtk_widget_set_sensitive(GTK_WIDGET(dialog->ok_button_), false);
|
| + gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog->dialog_),
|
| + GTK_RESPONSE_ACCEPT, FALSE);
|
| } else {
|
| gtk_widget_modify_base(dialog->url_entry_, GTK_STATE_NORMAL, NULL);
|
| - gtk_widget_set_sensitive(GTK_WIDGET(dialog->ok_button_), true);
|
| + gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog->dialog_),
|
| + GTK_RESPONSE_ACCEPT, TRUE);
|
| }
|
| }
|
|
|
|
|