diff options
author | NotZed <NotZed@HelixCode.com> | 2000-02-25 11:04:30 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2000-02-25 11:04:30 +0800 |
commit | 675d1c25dbedaccbb135dc8ccd784e6706aa4aaa (patch) | |
tree | 6b3aa7679bb798df06a97a8067202b6b10438328 /filter/filter-druid.c | |
parent | d83721f8b79ba10df2d067d7d0384c1a0790574e (diff) | |
download | gsoc2013-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.c | 34 |
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 */ |