From: Melvin H. <mha...@us...> - 2003-07-29 01:33:28
|
Update of /cvsroot/libetpan/xetpan/src In directory sc8-pr-cvs1:/tmp/cvs-serv16156/src Modified Files: gtk-utils.c Log Message: - GtkUtils_tree_edit_cb(): implemented - a_GtkUtils_tree_finalize_edit(): new function - a_GtkUtils_table_add_entry(): enable mnemonics in entry label; clean ups - a_GtkUtils_table_add_entry_full(): new function Index: gtk-utils.c =================================================================== RCS file: /cvsroot/libetpan/xetpan/src/gtk-utils.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- gtk-utils.c 26 Jul 2003 11:03:35 -0000 1.16 +++ gtk-utils.c 29 Jul 2003 01:33:25 -0000 1.17 @@ -1904,6 +1904,49 @@ static void GtkUtils_tree_edit_cb(GtkButton *button, gpointer data) { + XePGtkUtilsTree *utils_tree = (XePGtkUtilsTree *) data; + GtkTreePath *path = NULL; + void *edited_item; + + if (GtkUtils_tree_get_selected(utils_tree, &path, + &utils_tree->description, + &utils_tree->type, + &utils_tree->weight, + &utils_tree->user_data1, + &utils_tree->user_data2) != 0) + { + return; + } + + x_free(utils_tree->path); + utils_tree->path = gtk_tree_path_to_string(path); + gtk_tree_path_free(path); + + edited_item = utils_tree->edit.callback(utils_tree, utils_tree->edit.data); + + if (edited_item) + { + a_GtkUtils_tree_finalize_edit(utils_tree, edited_item); + } +} + +void +a_GtkUtils_tree_finalize_edit(XePGtkUtilsTree *utils_tree, void *edited_item) +{ + if (utils_tree->list) + { + clistiter *iter = (clistiter *) utils_tree->user_data1; + + iter->data = edited_item; + } + else if (utils_tree->tree) + { + clistiter *iter = (clistiter *) utils_tree->user_data1; + cntree *node = (cntree *) (iter->data); + node->data = edited_item; + } + + a_GtkUtils_tree_changed(utils_tree); } static void @@ -2039,15 +2082,16 @@ GtkWidget *label; GtkWidget *entry; - label = gtk_label_new(name); + label = gtk_label_new_with_mnemonic(name); gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); gtk_table_attach(table, label, col, col + 1, row, row + 1, - GTK_FILL, GTK_SHRINK, 0.0, 0.0); + GTK_FILL, GTK_SHRINK, 0, 0); gtk_widget_show(label); entry = gtk_entry_new(); + gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); gtk_table_attach(table, entry, col + 1, col + 2, row, row + 1, - GTK_FILL | GTK_EXPAND, GTK_SHRINK, 0.0, 0.0); + GTK_FILL | GTK_EXPAND, GTK_SHRINK, 0, 0); gtk_widget_show(entry); if (help) @@ -2056,7 +2100,41 @@ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_table_attach(table, label, col + 1, col + 2, row + 1, row + 2, - GTK_FILL, GTK_SHRINK, 0.0, 0.0); + GTK_FILL, GTK_SHRINK, 0, 0); + gtk_widget_show(label); + } + + return entry; +} + +GtkWidget * +a_GtkUtils_table_add_entry_full(GtkTable *table, const char *name, + const char *help, guint col, guint width, + guint row, guint height) +{ + GtkWidget *label; + GtkWidget *entry; + + label = gtk_label_new_with_mnemonic(name); + gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); + gtk_table_attach(table, label, col, col + 1, row, row + height, + GTK_FILL, GTK_SHRINK, 0, 0); + gtk_widget_show(label); + + entry = gtk_entry_new(); + gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); + gtk_table_attach(table, entry, col + 1, col + 1 + width, row, row + height, + GTK_FILL | GTK_EXPAND, GTK_SHRINK, 0, 0); + gtk_widget_show(entry); + + if (help) + { + label = a_GtkUtils_label_new_italic(help); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); + gtk_table_attach(table, label, col + 1, col + 1 + width, + row + 1, row + 1 + height, + GTK_FILL, GTK_SHRINK, 0, 0); gtk_widget_show(label); } |