diff options
author | Srinivasa Ragavan <sragavan@src.gnome.org> | 2007-06-18 13:29:59 +0800 |
---|---|---|
committer | Srinivasa Ragavan <sragavan@src.gnome.org> | 2007-06-18 13:29:59 +0800 |
commit | 5bef6377b551e81b14d927218185e5e794f78233 (patch) | |
tree | 66699a898119a0c394e1b6eac8878162078389b2 /widgets | |
parent | 70b5e473c89cb4397ebaa365bcf39e60abce49fe (diff) | |
download | gsoc2013-evolution-5bef6377b551e81b14d927218185e5e794f78233.tar.gz gsoc2013-evolution-5bef6377b551e81b14d927218185e5e794f78233.tar.zst gsoc2013-evolution-5bef6377b551e81b14d927218185e5e794f78233.zip |
** Fix for bug #446015 from Gilles Dartiguelongue
svn path=/trunk/; revision=33701
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/ChangeLog | 14 | ||||
-rw-r--r-- | widgets/menus/gal-define-views-dialog.c | 262 | ||||
-rw-r--r-- | widgets/menus/gal-define-views-dialog.h | 7 | ||||
-rw-r--r-- | widgets/menus/gal-define-views.glade | 366 |
4 files changed, 346 insertions, 303 deletions
diff --git a/widgets/ChangeLog b/widgets/ChangeLog index 44d4df9e06..5a08568561 100644 --- a/widgets/ChangeLog +++ b/widgets/ChangeLog @@ -1,3 +1,17 @@ +2007-06-18 Srinivasa Ragavan <sragavan@novell.com> + + ** Fix for bug #446015 from Gilles Dartiguelongue + + * menus/gal-define-views-dialog.c: + (gdvd_button_new_dialog_callback), (gdvd_button_new_callback), + (gdvd_button_modify_callback), (gdvd_button_delete_callback), + (gdvd_cursor_changed_callback), (gdvd_connect_signal), + (gal_define_views_dialog_init), + (gal_define_views_dialog_set_collection), + (gal_define_views_dialog_new): + * menus/gal-define-views-dialog.h: + * menus/gal-define-views.glade: + 2007-06-11 Milan Crha <mcrha@redhat.com> ** Fix for bug #325882 diff --git a/widgets/menus/gal-define-views-dialog.c b/widgets/menus/gal-define-views-dialog.c index 3630780817..54dff638dd 100644 --- a/widgets/menus/gal-define-views-dialog.c +++ b/widgets/menus/gal-define-views-dialog.c @@ -24,9 +24,9 @@ #include <config.h> #include <gtk/gtk.h> - -#include "table/e-table-scrolled.h" +#include <gtk/gtklabel.h> #include <glib/gi18n.h> + #include "e-util/e-util.h" #include "e-util/e-util-private.h" @@ -49,9 +49,17 @@ enum { PROP_COLLECTION }; +enum { + COL_GALVIEW_NAME, + COL_GALVIEW_DATA +}; + typedef struct { char *title; - ETableModel *model; + + GtkTreeView *treeview; + GtkTreeModel *model; + GalDefineViewsDialog *names; } GalDefineViewsDialogChild; @@ -79,51 +87,44 @@ gal_define_views_dialog_class_init (GalDefineViewsDialogClass *klass) G_PARAM_READWRITE)); } -/* ETable creation */ -#define SPEC "<ETableSpecification cursor-mode=\"line\" draw-grid=\"true\" selection-mode=\"single\" gettext-domain=\"" GETTEXT_PACKAGE "\">" \ - "<ETableColumn model_col= \"0\" _title=\"Name\" expansion=\"1.0\" minimum_width=\"18\" resizable=\"true\" cell=\"string\" compare=\"string\"/>" \ - "<ETableState> <column source=\"0\"/> <grouping> </grouping> </ETableState>" \ - "</ETableSpecification>" - -/* For use from libglade. */ -GtkWidget *gal_define_views_dialog_create_etable(char *name, char *string1, char *string2, int int1, int int2); - -GtkWidget * -gal_define_views_dialog_create_etable(char *name, char *string1, char *string2, int int1, int int2) -{ - GtkWidget *table; - ETableModel *model; - model = gal_define_views_model_new(); - table = e_table_scrolled_new(model, NULL, SPEC, NULL); - g_object_set_data(G_OBJECT (table), "GalDefineViewsDialog::model", model); - return table; -} - /* Button callbacks */ static void -gdvd_button_new_dialog_callback(GtkWidget *widget, int id, GalDefineViewsDialog *dialog) +gdvd_button_new_dialog_callback (GtkWidget *widget, int id, GalDefineViewsDialog *dialog) { gchar *name; + GtkTreeIter iter; GalView *view; + GalViewCollectionItem *item; GalViewFactory *factory; + switch (id) { case GTK_RESPONSE_OK: - g_object_get(widget, + g_object_get (widget, "name", &name, "factory", &factory, NULL); + if (name && factory) { g_strchomp(name); if (*name != '\0') { - view = gal_view_factory_new_view(factory, name); - gal_define_views_model_append(GAL_DEFINE_VIEWS_MODEL(dialog->model), view); - gal_view_edit(view, GTK_WINDOW (dialog)); - g_object_unref(view); + view = gal_view_factory_new_view (factory, name); + gal_view_collection_append(dialog->collection, view); + + item = dialog->collection->view_data[dialog->collection->view_count-1]; + gtk_list_store_append (GTK_LIST_STORE (dialog->model), &iter); + gtk_list_store_set (GTK_LIST_STORE (dialog->model), &iter, + COL_GALVIEW_NAME, name, + COL_GALVIEW_DATA, item, + -1); + + g_warning ("Built-in: %d", item->built_in); + gal_view_edit (view, GTK_WINDOW (dialog)); + g_object_unref (view); } } - g_object_unref(factory); - g_free(name); + g_object_unref (factory); + g_free (name); break; } gtk_widget_destroy (widget); @@ -132,29 +133,24 @@ gdvd_button_new_dialog_callback(GtkWidget *widget, int id, GalDefineViewsDialog static void gdvd_button_new_callback(GtkWidget *widget, GalDefineViewsDialog *dialog) { - GtkWidget *view_new_dialog = gal_view_new_dialog_new(dialog->collection); + GtkWidget *view_new_dialog = gal_view_new_dialog_new (dialog->collection); gtk_window_set_transient_for (GTK_WINDOW (view_new_dialog), GTK_WINDOW (dialog)); - g_signal_connect(view_new_dialog, "response", - G_CALLBACK(gdvd_button_new_dialog_callback), dialog); - gtk_widget_show(view_new_dialog); + g_signal_connect (view_new_dialog, "response", + G_CALLBACK (gdvd_button_new_dialog_callback), dialog); + gtk_widget_show (view_new_dialog); } static void gdvd_button_modify_callback(GtkWidget *widget, GalDefineViewsDialog *dialog) { - int row; - GtkWidget *scrolled; - ETable *etable; - - scrolled = glade_xml_get_widget(dialog->gui, "custom-table"); - etable = e_table_scrolled_get_table(E_TABLE_SCROLLED(scrolled)); - row = e_table_get_cursor_row (E_TABLE(etable)); - - if (row != -1) { - GalView *view; - view = gal_define_views_model_get_view(GAL_DEFINE_VIEWS_MODEL(dialog->model), - row); - gal_view_edit(view, GTK_WINDOW (dialog)); + GtkTreeIter iter; + GalViewCollectionItem *item; + + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (dialog->treeview), + &dialog->model, + &iter)) { + gtk_tree_model_get (dialog->model, &iter, COL_GALVIEW_DATA, &item, -1); + gal_view_edit (item->view, GTK_WINDOW (dialog)); } } @@ -162,18 +158,35 @@ static void gdvd_button_delete_callback(GtkWidget *widget, GalDefineViewsDialog *dialog) { int row; - GtkWidget *scrolled; - ETable *etable; - - scrolled = glade_xml_get_widget(dialog->gui, "custom-table"); - etable = e_table_scrolled_get_table(E_TABLE_SCROLLED(scrolled)); - row = e_table_get_cursor_row (E_TABLE(etable)); - - if (row != -1) { - gal_define_views_model_delete_view(GAL_DEFINE_VIEWS_MODEL(dialog->model), - row); + GtkTreeIter iter; + GtkTreePath *path; + GtkTreeSelection *selection; + GalViewCollectionItem *item; + + selection = gtk_tree_view_get_selection (dialog->treeview); + + if (gtk_tree_selection_get_selected (selection, + &dialog->model, + &iter)) { + gtk_tree_model_get (dialog->model, &iter, COL_GALVIEW_DATA, &item, -1); + + for (row=0; row<dialog->collection->view_count; row++) { + if (item == dialog->collection->view_data[row]) { + gal_view_collection_delete_view (dialog->collection, row); + path = gtk_tree_model_get_path (dialog->model, &iter); + gtk_list_store_remove (GTK_LIST_STORE (dialog->model), &iter); + + if (gtk_tree_path_prev (path)) { + gtk_tree_model_get_iter (dialog->model, &iter, path); + } else { + gtk_tree_model_get_iter_first (dialog->model, &iter); + } + + gtk_tree_selection_select_iter (selection, &iter); + break; + } + } } - } #if 0 @@ -195,41 +208,36 @@ gdvd_button_copy_callback(GtkWidget *widget, GalDefineViewsDialog *dialog) } #endif - + static void -gdvd_connect_signal(GalDefineViewsDialog *dialog, char *widget_name, char *signal, GCallback handler) +gdvd_cursor_changed_callback (GtkWidget *widget, GalDefineViewsDialog *dialog) { - GtkWidget *widget; + GtkWidget *button; + GtkTreeIter iter; + GalViewCollectionItem *item; - widget = glade_xml_get_widget(dialog->gui, widget_name); + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (dialog->treeview), + &dialog->model, + &iter)) { + gtk_tree_model_get (dialog->model, &iter, COL_GALVIEW_DATA, &item, -1); - if (widget) - g_signal_connect(widget, signal, handler, dialog); -} + button = glade_xml_get_widget (dialog->gui, "button-delete"); + gtk_widget_set_sensitive (GTK_WIDGET (button), !item->built_in); -static void -etable_selection_change_forall_cb (int row, GalDefineViewsDialog *dialog) -{ - if (row != -1) { - GalViewCollectionItem *item = gal_view_collection_get_view_item (dialog->collection, row); - - if (item) { - gtk_widget_set_sensitive (glade_xml_get_widget (dialog->gui, "button-delete"), - !item->built_in); - if (GAL_VIEW_GET_CLASS (item->view)->edit) - gtk_widget_set_sensitive (glade_xml_get_widget (dialog->gui, "button-modify"), - !item->built_in); - else - gtk_widget_set_sensitive (glade_xml_get_widget (dialog->gui, "button-modify"), - FALSE); - } + button = glade_xml_get_widget (dialog->gui, "button-modify"); + gtk_widget_set_sensitive (GTK_WIDGET (button), !item->built_in); } } static void -etable_selection_change (ETable *etable, GalDefineViewsDialog *dialog) +gdvd_connect_signal(GalDefineViewsDialog *dialog, char *widget_name, char *signal, GCallback handler) { - e_table_selected_row_foreach (etable, (EForeachFunc) etable_selection_change_forall_cb, dialog); + GtkWidget *widget; + + widget = glade_xml_get_widget (dialog->gui, widget_name); + + if (widget) + g_signal_connect (widget, signal, handler, dialog); } static void @@ -243,7 +251,7 @@ gal_define_views_dialog_init (GalDefineViewsDialog *dialog) { GladeXML *gui; GtkWidget *widget; - GtkWidget *etable; + gchar *filename = g_build_filename (EVOLUTION_GLADEDIR, "gal-define-views.glade", NULL); @@ -258,41 +266,35 @@ gal_define_views_dialog_init (GalDefineViewsDialog *dialog) if (!widget) { return; } - g_object_ref(widget); + + g_object_ref (widget); gtk_container_remove (GTK_CONTAINER (widget->parent), widget); - gtk_window_set_default_size(GTK_WINDOW(dialog), 360, 270); - gtk_container_set_border_width(GTK_CONTAINER(dialog), 6); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), widget, TRUE, TRUE, 0); + gtk_window_set_default_size (GTK_WINDOW (dialog), 360, 270); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 6); + gtk_container_set_border_width (GTK_CONTAINER (widget), 6); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), widget, TRUE, TRUE, 0); g_object_unref(widget); gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); + dialog->treeview = GTK_TREE_VIEW (glade_xml_get_widget (dialog->gui, "treeview1")); + gtk_tree_view_set_reorderable (GTK_TREE_VIEW (dialog->treeview), FALSE); + gtk_tree_view_set_headers_visible (dialog->treeview, TRUE); + + gtk_window_set_policy (GTK_WINDOW (dialog), FALSE, TRUE, FALSE); + gdvd_connect_signal(dialog, "button-new", "clicked", G_CALLBACK(gdvd_button_new_callback)); gdvd_connect_signal(dialog, "button-modify", "clicked", G_CALLBACK(gdvd_button_modify_callback)); gdvd_connect_signal(dialog, "button-delete", "clicked", G_CALLBACK(gdvd_button_delete_callback)); #if 0 gdvd_connect_signal(dialog, "button-copy", "clicked", G_CALLBACK(gdvd_button_copy_callback)); #endif - - dialog->model = NULL; - etable = glade_xml_get_widget(dialog->gui, "custom-table"); - if (etable) { - dialog->model = g_object_get_data(G_OBJECT (etable), "GalDefineViewsDialog::model"); - g_object_set(dialog->model, - "collection", dialog->collection, - NULL); - g_signal_connect (e_table_scrolled_get_table (E_TABLE_SCROLLED (etable)), - "selection_change", - G_CALLBACK (etable_selection_change), dialog); - gtk_widget_show_all (etable); - } - - gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, TRUE, FALSE); - + gdvd_connect_signal(dialog, "treeview1", "cursor-changed", G_CALLBACK(gdvd_cursor_changed_callback)); g_signal_connect (dialog, "response", G_CALLBACK (dialog_response), NULL); + gtk_widget_show (GTK_WIDGET (dialog)); } static void @@ -312,12 +314,52 @@ static void gal_define_views_dialog_set_collection(GalDefineViewsDialog *dialog, GalViewCollection *collection) { + int i; + GtkListStore *store; + GtkCellRenderer *renderer; dialog->collection = collection; - if (dialog->model) { - g_object_set(dialog->model, - "collection", collection, - NULL); + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); + + for (i=0; i<collection->view_count; i++) { + GalViewCollectionItem *item = collection->view_data[i]; + GtkTreeIter iter; + + /* hide built in views */ + /*if (item->built_in == 1) + continue;*/ + + char *title = NULL; + title = e_str_without_underscores (item->title); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + COL_GALVIEW_NAME, title, + COL_GALVIEW_DATA, item, + -1); + + g_free (title); } + + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), + COL_GALVIEW_NAME, GTK_SORT_ASCENDING); + + /* attaching treeview to model */ + gtk_tree_view_set_model (dialog->treeview, GTK_TREE_MODEL (store)); + gtk_tree_view_set_search_column (dialog->treeview, COL_GALVIEW_NAME); + + dialog->model = GTK_TREE_MODEL (store); + + renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_insert_column_with_attributes (dialog->treeview, + COL_GALVIEW_NAME, _("Name"), + renderer, "text", COL_GALVIEW_NAME, + NULL); + + /* set sort column */ + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (dialog->model), + COL_GALVIEW_NAME, GTK_SORT_ASCENDING); + if (dialog->gui) { GtkWidget *widget = glade_xml_get_widget(dialog->gui, "label-views"); if (widget && GTK_IS_LABEL (widget)) { @@ -349,7 +391,7 @@ GtkWidget* gal_define_views_dialog_new (GalViewCollection *collection) { GtkWidget *widget = g_object_new (GAL_DEFINE_VIEWS_DIALOG_TYPE, NULL); - gal_define_views_dialog_set_collection(GAL_DEFINE_VIEWS_DIALOG (widget), collection); + gal_define_views_dialog_set_collection (GAL_DEFINE_VIEWS_DIALOG (widget), collection); return widget; } diff --git a/widgets/menus/gal-define-views-dialog.h b/widgets/menus/gal-define-views-dialog.h index 52636f7444..0cf53bb2a6 100644 --- a/widgets/menus/gal-define-views-dialog.h +++ b/widgets/menus/gal-define-views-dialog.h @@ -25,8 +25,10 @@ #define __GAL_DEFINE_VIEWS_DIALOG_H__ #include <gtk/gtkdialog.h> +#include <gtk/gtktreeview.h> +#include <gtk/gtktreemodel.h> #include <glade/glade.h> -#include <table/e-table-model.h> + #include <widgets/menus/gal-view-collection.h> #ifdef __cplusplus @@ -57,7 +59,8 @@ struct _GalDefineViewsDialog /* item specific fields */ GladeXML *gui; - ETableModel *model; + GtkTreeView *treeview; + GtkTreeModel *model; GalViewCollection *collection; }; diff --git a/widgets/menus/gal-define-views.glade b/widgets/menus/gal-define-views.glade index a863632208..26976c4857 100644 --- a/widgets/menus/gal-define-views.glade +++ b/widgets/menus/gal-define-views.glade @@ -1,192 +1,176 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> +<!--*- mode: xml -*--> <glade-interface> - -<widget class="GtkDialog" id="dialog1"> - <property name="title" translatable="yes">Define Views for "%s"</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> - <property name="modal">False</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <property name="has_separator">True</property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="dialog-vbox1"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child internal-child="action_area"> - <widget class="GtkHButtonBox" id="dialog-action_area1"> - <property name="visible">True</property> - <property name="layout_style">GTK_BUTTONBOX_END</property> - - <child> - <widget class="GtkButton" id="button7"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-close</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="response_id">-5</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - - <child> - <widget class="GtkTable" id="table-top"> - <property name="visible">True</property> - <property name="n_rows">4</property> - <property name="n_columns">1</property> - <property name="homogeneous">False</property> - <property name="row_spacing">6</property> - <property name="column_spacing">6</property> - - <child> - <widget class="GtkHBox" id="hbox1"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="Custom" id="custom-table"> - <property name="visible">True</property> - <property name="creation_function">gal_define_views_dialog_create_etable</property> - <property name="int1">0</property> - <property name="int2">0</property> - <property name="last_modification_time">Fri, 10 Nov 2000 16:37:39 GMT</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox1"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">6</property> - - <child> - <widget class="GtkButton" id="button-new"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-new</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="button-modify"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">_Edit...</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="button-delete"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-delete</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> - </child> - - <child> - <widget class="GtkHButtonBox" id="hbuttonbox1"> - <property name="visible">True</property> - <property name="layout_style">GTK_BUTTONBOX_END</property> - <property name="spacing">6</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - <property name="x_options">fill</property> - <property name="y_options">fill</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label-views"> - <property name="visible">True</property> - <property name="label" translatable="yes">Define Views for %s</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - </widget> - <packing> - <property name="padding">12</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> -</widget> - -</glade-interface> + <widget class="GtkDialog" id="dialog1"> + <property name="title" translatable="yes">Define Views for "%s"</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox1"> + <property name="visible">True</property> + <property name="spacing">6</property> + <child> + <widget class="GtkTable" id="table-top"> + <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="n_columns">1</property> + <property name="column_spacing">6</property> + <property name="row_spacing">6</property> + <child> + <widget class="GtkLabel" id="label-views"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Define Views for %s</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <property name="border_width">6</property> + <property name="spacing">6</property> + <child> + <widget class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</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> + <widget class="GtkTreeView" id="treeview1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="headers_clickable">True</property> + <property name="reorderable">True</property> + <property name="fixed_height_mode">True</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkVButtonBox" id="vbuttonbox1"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="spacing">6</property> + <property name="layout_style">GTK_BUTTONBOX_START</property> + <child> + <widget class="GtkButton" id="button-new"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-new</property> + <property name="use_stock">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <widget class="GtkButton" id="button-modify"> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <child> + <widget class="GtkAlignment" id="alignment33"> + <property name="visible">True</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <child> + <widget class="GtkHBox" id="hbox224"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <widget class="GtkImage" id="image8"> + <property name="visible">True</property> + <property name="stock">gtk-properties</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label557"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Edit</property> + <property name="use_underline">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkButton" id="button-delete"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-delete</property> + <property name="use_stock">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </widget> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">12</property> + <property name="position">2</property> + </packing> + </child> + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area1"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + <child> + <widget class="GtkButton" id="button7"> + <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">-5</property> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + </widget> + </child> + </widget> +</glade-interface>
\ No newline at end of file |