gnome-terminal r2608 - trunk/src
- From: chpe svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-terminal r2608 - trunk/src
- Date: Thu, 29 May 2008 19:38:14 +0000 (UTC)
Author: chpe
Date: Thu May 29 19:38:12 2008
New Revision: 2608
URL: http://svn.gnome.org/viewvc/gnome-terminal?rev=2608&view=rev
Log:
Port profile manager dialogue to GtkBuilder.
Added:
trunk/src/profile-manager.ui
Modified:
trunk/src/Makefile.am
trunk/src/terminal-app.c
Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am (original)
+++ trunk/src/Makefile.am Thu May 29 19:38:12 2008
@@ -88,7 +88,9 @@
uidir = $(pkgdatadir)
ui_DATA = \
- terminal.ui
+ terminal.ui \
+ profile-manager.ui \
+ $(NULL)
CLEANFILES = \
gnome-terminal.schemas \
Added: trunk/src/profile-manager.ui
==============================================================================
--- (empty file)
+++ trunk/src/profile-manager.ui Thu May 29 19:38:12 2008
@@ -0,0 +1,170 @@
+<?xml version="1.0"?>
+<interface>
+ <object class="GtkDialog" id="profile-manager">
+ <property name="visible">True</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Profiles</property>
+ <property name="role">gnome-terminal-profile-manager</property>
+ <property name="default_width">400</property>
+ <property name="default_height">300</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox5">
+ <property name="visible">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkVBox" id="vbox84">
+ <property name="visible">True</property>
+ <property name="border_width">5</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="hbox25">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow" id="profiles-treeview-container">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkVButtonBox" id="vbuttonbox1">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <property name="layout_style">GTK_BUTTONBOX_START</property>
+ <child>
+ <object class="GtkButton" id="new-profile-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="label">gtk-new</property>
+ <property name="use_stock">True</property>
+ <property name="focus_on_click">False</property>
+ <property name="response_id">0</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="dummy">
+ <property name="AtkObject::accessible-description" translatable="yes">Click to open new profile dialog</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="edit-profile-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="label">gtk-edit</property>
+ <property name="use_stock">True</property>
+ <property name="focus_on_click">False</property>
+ <property name="response_id">0</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="dummy">
+ <property name="AtkObject::accessible-description" translatable="yes">lick to open edit profile dialog</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="delete-profile-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="label">gtk-delete</property>
+ <property name="use_stock">True</property>
+ <property name="focus_on_click">False</property>
+ <property name="response_id">0</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="dummy">
+ <property name="AtkObject::accessible-description" translatable="yes">Click to delete selected profile</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkHBox" id="default-profile-hbox">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="default-profile-label">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Profile used when launching a new terminal:</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area5">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <object class="GtkButton" id="helpbutton2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="label">gtk-help</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">-11</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="closebutton2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="label">gtk-close</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">-7</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
Modified: trunk/src/terminal-app.c
==============================================================================
--- trunk/src/terminal-app.c (original)
+++ trunk/src/terminal-app.c Thu May 29 19:38:12 2008
@@ -1276,31 +1276,6 @@
}
static void
-fix_button_align (GtkWidget *button)
-{
- GtkWidget *child;
- GtkWidget *alignment;
-
- child = gtk_bin_get_child (GTK_BIN (button));
-
- g_object_ref (child);
- gtk_container_remove (GTK_CONTAINER (button), child);
-
- alignment = gtk_alignment_new (0.0, 0.5, 1.0, 1.0);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 12);
-
- gtk_container_add (GTK_CONTAINER (alignment), child);
- g_object_unref (child);
-
- gtk_container_add (GTK_CONTAINER (button), alignment);
-
- if (GTK_IS_ALIGNMENT (child) || GTK_IS_LABEL (child))
- {
- g_object_set (G_OBJECT (child), "xalign", 0.0, NULL);
- }
-}
-
-static void
count_selected_profiles_func (GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
@@ -1349,167 +1324,84 @@
terminal_app_manage_profiles (TerminalApp *app,
GtkWindow *transient_parent)
{
- GtkWindow *old_transient_parent;
-
- if (app->manage_profiles_dialog == NULL)
- {
- GtkWidget *main_vbox;
- GtkWidget *vbox;
- GtkWidget *label;
- GtkWidget *sw;
- GtkWidget *hbox;
- GtkWidget *button;
- GtkWidget *spacer;
- GtkRequisition req;
- GtkSizeGroup *size_group;
- GtkTreeSelection *selection;
-
- old_transient_parent = NULL;
-
- app->manage_profiles_dialog =
- gtk_dialog_new_with_buttons (_("Profiles"),
- NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_HELP,
- GTK_RESPONSE_HELP,
- GTK_STOCK_CLOSE,
- GTK_RESPONSE_ACCEPT,
- NULL);
- gtk_dialog_set_default_response (GTK_DIALOG (app->manage_profiles_dialog),
- GTK_RESPONSE_ACCEPT);
- g_signal_connect (GTK_DIALOG (app->manage_profiles_dialog),
- "response",
- G_CALLBACK (manage_profiles_response_cb),
- app);
-
- g_signal_connect (G_OBJECT (app->manage_profiles_dialog),
- "destroy",
- G_CALLBACK (manage_profiles_destroyed_callback),
- app);
+ char *ui_filename;
+ GtkBuilder *builder;
+ GObject *dialog;
+ GObject *tree_view_container, *new_button, *edit_button, *remove_button;
+ GObject *default_hbox, *default_label;
+ GtkTreeSelection *selection;
+
+ if (app->manage_profiles_dialog)
+ {
+ gtk_window_set_transient_for (GTK_WINDOW (app->manage_profiles_dialog), transient_parent);
+ gtk_window_present (GTK_WINDOW (app->manage_profiles_dialog));
+ return;
+ }
+
+ builder = gtk_builder_new ();
+
+ ui_filename = g_build_filename (TERM_PKGDATADIR, "profile-manager.ui", NULL);
+ gtk_builder_add_from_file (builder, ui_filename, NULL);
+ g_free (ui_filename);
+
+ dialog = gtk_builder_get_object (builder, "profile-manager");
+ tree_view_container = gtk_builder_get_object (builder, "profiles-treeview-container");
+ new_button = gtk_builder_get_object (builder, "new-profile-button");
+ edit_button = gtk_builder_get_object (builder, "edit-profile-button");
+ remove_button = gtk_builder_get_object (builder, "delete-profile-button");
+ default_hbox = gtk_builder_get_object (builder, "default-profile-hbox");
+ default_label = gtk_builder_get_object (builder, "default-profile-label");
+
+ app->manage_profiles_dialog = GTK_WIDGET (dialog);
+ app->manage_profiles_new_button = GTK_WIDGET (new_button);
+ app->manage_profiles_edit_button = GTK_WIDGET (edit_button);
+ app->manage_profiles_delete_button = GTK_WIDGET (remove_button);
+
+ g_signal_connect (dialog, "response", G_CALLBACK (manage_profiles_response_cb), app);
+ g_signal_connect (dialog, "destroy", G_CALLBACK (manage_profiles_destroyed_callback), app);
+
+ app->manage_profiles_list = profile_list_treeview_create (app);
+ g_signal_connect (app->manage_profiles_list, "row-activated",
+ G_CALLBACK (profile_list_row_activated_cb), app);
+ gtk_container_add (GTK_CONTAINER (tree_view_container), app->manage_profiles_list);
+ gtk_widget_show (app->manage_profiles_list);
+
+ g_signal_connect (new_button, "clicked",
+ G_CALLBACK (profile_list_new_button_clicked_cb),
+ app->manage_profiles_list);
+ g_signal_connect (edit_button, "clicked",
+ G_CALLBACK (profile_list_edit_button_clicked_cb),
+ app->manage_profiles_list);
+ g_signal_connect (remove_button, "clicked",
+ G_CALLBACK (profile_list_delete_button_clicked_cb),
+ app->manage_profiles_list);
+
+ app->manage_profiles_default_menu = profile_combo_box_new ();
+ g_signal_connect (app->manage_profiles_default_menu, "changed",
+ G_CALLBACK (profile_combo_box_changed_cb), app);
- terminal_util_set_unique_role (GTK_WINDOW (app->manage_profiles_dialog), "gnome-terminal-profile-manager");
+ gtk_box_pack_start (GTK_BOX (default_hbox), app->manage_profiles_default_menu, FALSE, FALSE, 0);
+ gtk_widget_show (app->manage_profiles_default_menu);
- gtk_widget_set_name (app->manage_profiles_dialog, "profile-manager-dialog");
- gtk_rc_parse_string ("widget \"profile-manager-dialog\" style \"hig-dialog\"\n");
+ gtk_label_set_mnemonic_widget (GTK_LABEL (default_label), app->manage_profiles_default_menu);
- gtk_dialog_set_has_separator (GTK_DIALOG (app->manage_profiles_dialog), FALSE);
- gtk_container_set_border_width (GTK_CONTAINER (app->manage_profiles_dialog), 10);
- gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (app->manage_profiles_dialog)->vbox), 12);
-
- main_vbox = gtk_vbox_new (FALSE, 12);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (app->manage_profiles_dialog)->vbox), main_vbox, TRUE, TRUE, 0);
-
- // the top thing
- hbox = gtk_hbox_new (FALSE, 12);
- gtk_box_pack_start (GTK_BOX (main_vbox), hbox, TRUE, TRUE, 0);
+ monitor_profiles_for_is_default_change (app->manage_profiles_default_menu);
- vbox = gtk_vbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0);
+ gtk_widget_grab_focus (app->manage_profiles_list);
- size_group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL);
-
- label = gtk_label_new_with_mnemonic (_("_Profiles:"));
- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
- gtk_size_group_add_widget (size_group, label);
- gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
-
- app->manage_profiles_list = profile_list_treeview_create (app);
- g_signal_connect (app->manage_profiles_list, "row-activated",
- G_CALLBACK (profile_list_row_activated_cb), NULL);
-
- sw = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN);
- gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0);
- gtk_container_add (GTK_CONTAINER (sw), app->manage_profiles_list);
-
- gtk_dialog_set_default_response (GTK_DIALOG (app->manage_profiles_dialog), RESPONSE_CREATE);
- gtk_label_set_mnemonic_widget (GTK_LABEL (label), app->manage_profiles_list);
+ /* Monitor selection for sensitivity */
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (app->manage_profiles_list));
+ selection_changed_callback (selection, app);
+ g_signal_connect (selection, "changed", G_CALLBACK (selection_changed_callback), app);
- vbox = gtk_vbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
+ gtk_window_set_transient_for (GTK_WINDOW (app->manage_profiles_dialog),
+ transient_parent);
- spacer = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
- gtk_size_group_add_widget (size_group, spacer);
- gtk_box_pack_start (GTK_BOX (vbox), spacer, FALSE, FALSE, 0);
-
- button = gtk_button_new_from_stock (GTK_STOCK_NEW);
- fix_button_align (button);
- gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
- g_signal_connect (button, "clicked",
- G_CALLBACK (profile_list_new_button_clicked_cb),
- app->manage_profiles_list);
- app->manage_profiles_new_button = button;
- terminal_util_set_atk_name_description (app->manage_profiles_new_button, NULL,
- _("Click to open new profile dialog"));
-
- button = gtk_button_new_from_stock (GTK_STOCK_EDIT);
- fix_button_align (button);
- gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
- g_signal_connect (button, "clicked",
- G_CALLBACK (profile_list_edit_button_clicked_cb),
- app->manage_profiles_list);
- app->manage_profiles_edit_button = button;
- terminal_util_set_atk_name_description (app->manage_profiles_edit_button, NULL,
- _("Click to open edit profile dialog"));
-
- button = gtk_button_new_from_stock (GTK_STOCK_DELETE);
- fix_button_align (button);
- gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
- g_signal_connect (button, "clicked",
- G_CALLBACK (profile_list_delete_button_clicked_cb),
- app->manage_profiles_list);
- app->manage_profiles_delete_button = button;
- terminal_util_set_atk_name_description (app->manage_profiles_delete_button, NULL,
- _("Click to delete selected profile"));
- // bottom line
- hbox = gtk_hbox_new (FALSE, 12);
- gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 0);
+ gtk_window_set_default_size (GTK_WINDOW (app->manage_profiles_dialog), 450, 300);
- label = gtk_label_new_with_mnemonic (_("Profile _used when launching a new terminal:"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- app->manage_profiles_default_menu = profile_combo_box_new ();
- gtk_label_set_mnemonic_widget (GTK_LABEL (label), app->manage_profiles_default_menu);
- g_signal_connect (app->manage_profiles_default_menu, "changed",
- G_CALLBACK (profile_combo_box_changed_cb), app);
- monitor_profiles_for_is_default_change (app->manage_profiles_default_menu);
- gtk_box_pack_start (GTK_BOX (hbox), app->manage_profiles_default_menu, TRUE, TRUE, 0);
-
- /* Set default size of profile list */
- gtk_window_set_geometry_hints (GTK_WINDOW (app->manage_profiles_dialog),
- app->manage_profiles_list,
- NULL, 0);
-
- /* Incremental reflow makes this a bit useless, I guess. */
- gtk_widget_size_request (app->manage_profiles_list, &req);
- gtk_window_set_default_size (GTK_WINDOW (app->manage_profiles_dialog),
- MIN (req.width + 140, 450),
- MIN (req.height + 190, 400));
-
- gtk_widget_grab_focus (app->manage_profiles_list);
-
- g_object_unref (G_OBJECT (size_group));
-
- /* Monitor selection for sensitivity */
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (app->manage_profiles_list));
- selection_changed_callback (selection, app);
- g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (selection_changed_callback), app);
- }
- else
- {
- old_transient_parent = gtk_window_get_transient_for (GTK_WINDOW (app->manage_profiles_dialog));
- }
-
- if (old_transient_parent != transient_parent)
- {
- gtk_window_set_transient_for (GTK_WINDOW (app->manage_profiles_dialog),
- transient_parent);
- gtk_widget_hide (app->manage_profiles_dialog); /* re-show the window on its new parent */
- }
-
- gtk_widget_show_all (app->manage_profiles_dialog);
gtk_window_present (GTK_WINDOW (app->manage_profiles_dialog));
+
+ g_object_unref (builder);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]