aboutsummaryrefslogtreecommitdiffstats
path: root/filter/filter-druid.c
diff options
context:
space:
mode:
authorNotZed <NotZed@HelixCode.com>2000-02-25 11:04:30 +0800
committerMichael Zucci <zucchi@src.gnome.org>2000-02-25 11:04:30 +0800
commit675d1c25dbedaccbb135dc8ccd784e6706aa4aaa (patch)
tree6b3aa7679bb798df06a97a8067202b6b10438328 /filter/filter-druid.c
parentd83721f8b79ba10df2d067d7d0384c1a0790574e (diff)
downloadgsoc2013-evolution-675d1c25dbedaccbb135dc8ccd784e6706aa4aaa.tar
gsoc2013-evolution-675d1c25dbedaccbb135dc8ccd784e6706aa4aaa.tar.gz
gsoc2013-evolution-675d1c25dbedaccbb135dc8ccd784e6706aa4aaa.tar.bz2
gsoc2013-evolution-675d1c25dbedaccbb135dc8ccd784e6706aa4aaa.tar.lz
gsoc2013-evolution-675d1c25dbedaccbb135dc8ccd784e6706aa4aaa.tar.xz
gsoc2013-evolution-675d1c25dbedaccbb135dc8ccd784e6706aa4aaa.tar.zst
gsoc2013-evolution-675d1c25dbedaccbb135dc8ccd784e6706aa4aaa.zip
Functions for memory management.
2000-02-24 NotZed <NotZed@HelixCode.com> * filter-xml.c (filter_description_free): (filter_load_ruleset_free): (filter_load_optionset_free): Functions for memory management. * filter-arg.c (filter_arg_copy): Copy the values of one arg into another. * filter-druid.c: (option_name_changed): Update the option's description as the user enters it in. svn path=/trunk/; revision=1929
Diffstat (limited to 'filter/filter-druid.c')
-rw-r--r--filter/filter-druid.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/filter/filter-druid.c b/filter/filter-druid.c
index 0bcb893172..c502302270 100644
--- a/filter/filter-druid.c
+++ b/filter/filter-druid.c
@@ -102,6 +102,8 @@ object_finalize(FilterDruid *obj)
g_free(p->default_html);
+ printf("\n druid finalize!\n\n");
+
/* FIXME: free lists? */
GTK_OBJECT_CLASS(filter_druid_parent)->finalize(obj);
@@ -414,9 +416,19 @@ arg_link_clicked(GtkHTML *html, const char *url, FilterDruid *f)
void *dummy;
if (sscanf(url+4, "%p %p", &dummy, &arg)==2
- && arg) {
+ && arg) {
+ FilterArg *orig;
+
printf("arg = %p\n", arg);
filter_arg_edit_values(arg);
+
+ /* insert the new value into the existing one */
+ orig = gtk_object_get_data(arg, "origin");
+ if (orig) {
+ filter_arg_copy(orig, arg);
+ } else {
+ g_warning("unknown object loaded");
+ }
/* should have a changed signal which propagates the rewrite */
update_display(f, 0);
}
@@ -424,6 +436,24 @@ arg_link_clicked(GtkHTML *html, const char *url, FilterDruid *f)
}
static void
+option_name_changed(GtkEntry *entry, FilterDruid *f)
+{
+ struct filter_desc *desc;
+
+ printf("name chaned: %s\n", gtk_entry_get_text(entry));
+
+ if (f->option_current) {
+ /* FIXME: lots of memory leaks */
+ desc = g_malloc0(sizeof(*desc));
+ desc->data = g_strdup(gtk_entry_get_text(entry));
+ desc->type = FILTER_XML_TEXT;
+ desc->vartype = -1;
+ desc->varname = NULL;
+ f->option_current->description = g_list_append(NULL, desc);
+ }
+}
+
+static void
dialogue_clicked(FilterDruid *d, int button, void *data)
{
GString *s = g_string_new("");
@@ -636,6 +666,8 @@ build_druid(FilterDruid *d)
gtk_box_pack_start((GtkBox *)vbox1, p->activate1, TRUE, FALSE, 0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(p->activate1), TRUE);
+ gtk_signal_connect(GTK_OBJECT(p->name1), "changed", option_name_changed, d);
+
gtk_box_pack_start((GtkBox *)vbox, frame, TRUE, TRUE, 0);
/* another copy of the filter thingy */