/* * Copyright (C) 2000, 2001 Ximian, Inc. * * Authors: Not Zed * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public License * as published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include "mail-search-dialogue.h" static void mail_search_dialogue_class_init (MailSearchDialogueClass *class); static void mail_search_dialogue_init (MailSearchDialogue *gspaper); static void mail_search_dialogue_finalise (GtkObject *obj); static GnomeDialogClass *parent_class; guint mail_search_dialogue_get_type (void) { static guint type = 0; if (!type) { GtkTypeInfo type_info = { "MailSearchDialogue", sizeof(MailSearchDialogue), sizeof(MailSearchDialogueClass), (GtkClassInitFunc)mail_search_dialogue_class_init, (GtkObjectInitFunc)mail_search_dialogue_init, (GtkArgSetFunc)NULL, (GtkArgGetFunc)NULL }; type = gtk_type_unique (gnome_dialog_get_type (), &type_info); } return type; } static void mail_search_dialogue_class_init (MailSearchDialogueClass *class) { GtkObjectClass *object_class; object_class = (GtkObjectClass *)class; parent_class = gtk_type_class (gnome_dialog_get_type ()); object_class->finalize = mail_search_dialogue_finalise; /* override methods */ } static void mail_search_dialogue_construct (MailSearchDialogue *o, FilterRule *rule) { FilterPart *part; GnomeDialog *dialogue = GNOME_DIALOG (o); gtk_window_set_policy (GTK_WINDOW (dialogue), FALSE, TRUE, FALSE); gtk_window_set_default_size (GTK_WINDOW (dialogue), 500, 400); o->context = rule_context_new (); rule_context_add_part_set (o->context, "partset", filter_part_get_type (), rule_context_add_part, rule_context_next_part); rule_context_load (o->context, EVOLUTION_DATADIR "/evolution/vfoldertypes.xml", ""); if (rule) { o->rule = rule; o->guts = filter_rule_get_widget (o->rule, o->context); } else { o->rule = filter_rule_new (); part = rule_context_next_part (o->context, NULL); if (part == NULL) { g_warning ("Problem loading search: no parts to load"); o->guts = gtk_entry_new (); } else { filter_rule_add_part (o->rule, filter_part_clone (part)); o->guts = filter_rule_get_widget (o->rule, o->context); } } gtk_widget_show (o->guts); gtk_box_pack_start (GTK_BOX (dialogue->vbox), o->guts, TRUE, TRUE, 0); } static void mail_search_dialogue_init (MailSearchDialogue *o) { GnomeDialog *dialogue = GNOME_DIALOG (o); gnome_dialog_append_buttons (dialogue, GNOME_STOCK_BUTTON_OK, _("_Search"), GNOME_STOCK_BUTTON_CANCEL, NULL); gnome_dialog_set_default (dialogue, 0); } static void mail_search_dialogue_finalise (GtkObject *obj) { MailSearchDialogue *o = (MailSearchDialogue *)obj; if (o->context) gtk_object_unref (GTK_OBJECT (o->context)); if (o->rule) gtk_object_unref (GTK_OBJECT (o->rule)); ((GtkObjectClass *)(parent_class))->finalize(obj); } /** * mail_search_dialogue_new: * * Create a new MailSearchDialogue object. * * Return value: A new #MailSearchDialogue object. **/ MailSearchDialogue * mail_search_dialogue_new () { MailSearchDialogue *o = (MailSearchDialogue *)gtk_type_new (mail_search_dialogue_get_type ()); mail_search_dialogue_construct (o, NULL); return o; } MailSearchDialogue * mail_search_dialogue_new_with_rule (FilterRule *rule) { MailSearchDialogue *o = (MailSearchDialogue *)gtk_type_new (mail_search_dialogue_get_type ()); if (rule) gtk_object_ref (GTK_OBJECT (rule)); mail_search_dialogue_construct (o, rule); return o; } /** * mail_search_dialogue_get_query: * @msd: * * Get the query string represting the current search criterea. * * Return value: **/ char * mail_search_dialogue_get_query (MailSearchDialogue *msd) { GString *out = g_string_new (""); char *ret; filter_rule_build_code (msd->rule, out); ret = out->str; g_string_free (out, FALSE); return ret; } tion> FreeBSD GNOME current development ports (https://github.com/freebsd/freebsd-ports-gnome)
aboutsummaryrefslogtreecommitdiffstats
Commit message (Expand)AuthorAgeFilesLines
* support STAGEDIR.vanilla2013-10-272-7/+5
* Add NO_STAGE all over the place in preparation for the staging support (cat: ...bapt2013-09-211-0/+1
* - Convert to new perl frameworkmat2013-08-031-1/+2
* Cleanup supporting perl version 5.8 and 5.10,az2012-12-171-8/+1
* - Update to 0.12sunpoet2012-12-063-12/+20
* - Revert ports/165605 as requested by portmgr@pgollucci2012-03-141-1/+7
* - Remove ports that only work with < perl 5.12 (devel/p5-B-Size, devel/p5-Dev...pgollucci2012-03-091-7/+1
* - Update to 0.11sunpoet2012-02-242-6/+6
* - Update to 0.10culot2012-02-182-6/+15
* - Change PERL_CONFIGURE to "yes" for all values less than or equal to 5.8.0+sunpoet2011-09-171-1/+1
* - Cleaning MD5 in perl@'s ports.jadawin2011-05-171-1/+0
* - Update to 0.09pgollucci2010-06-102-4/+4
* Reset lbr@FreeBSD.org due to maintainer-timeouts and no response to email.linimon2009-08-161-1/+1
* - Update to 0.08pgollucci2009-06-162-4/+4
* Update to 0.07lbr2009-03-222-5/+5
* Update to 0.06lbr2009-01-242-5/+5
* Update to 0.05lbr2009-01-062-5/+5