2001-08-01 Federico Mena Quintero <federico@ximian.com> The calendar search bar widget now includes a drop-down menu of available categories. * pcs/query.c (func_has_categories): Handle one and only one #f value as meaning "unfiled", for components that have no categories at all. * pcs/cal-backend-file.c (open_cal): Duh, do not notify here about changed categories since at this point we don't have any clients bound to us yet. (create_cal): Likewise. (cal_backend_file_add_cal): Notify here. * gui/cal-search-bar.h (CalSearchBarClass): New signal "category_changed". * gui/cal-search-bar.c (cal_search_bar_construct): Add a drop-down menu for the list of categories. (search_option_items): Removed the "Has category" option, since we now have the drop-down menu instad and it would be confusing to have both options. (regen_query): Likewise. Also, this function is now the old cal_search_bar_query_changed() and is shared by that very function and by the callback from the drop-down menu. (notify_query_contains): Include the sub-sexp for the categories. (cal_search_bar_set_categories): New function. (cal_search_bar_get_category): New function. (categories_selection_done_cb): Emit the "category_changed" signal. * gui/e-tasks.c (obj_updated_cb): Removed function since it did not do anything; all updates are handled by the CalendarModel. (obj_removed_cb): Likewise. (ETasksPrivate): Removed the fields for the categories option menu, since now it is in the ESearchBar. (search_bar_sexp_changed_cb): Use calendar_model_set_query() directly here, as we do not need to frob the sexp anymore. (update_query): Removed. (client_categories_changed_cb): New callback. (search_bar_category_changed_cb): New callback. (e_tasks_new_task): Set the default category on the component to the one that is selected in the search bar. (e_tasks_on_filter_selected): Removed. (e_tasks_on_categories_changed): Removed. (e_tasks_rebuild_categories_menu): Removed. (e_tasks_add_menu_item): Removed. (e_tasks_setup_view_menus): Sanitized not to sink objects wildly. (e_tasks_discard_view_menus): New function. * gui/calendar-model.h (CalendarModelClass): Removed the "categories_changed" signal since this is handled in the Wombat now. * gui/calendar-model.c (calendar_model_get_categories): Removed. (calendar_model_set_value_at): Do not collect the categories. (query_obj_updated_cb): Likewise. (calendar_model_collect_categories): Removed. (calendar_model_set_default_category): Constify. * gui/tasks-control.c (tasks_control_deactivate): Call e_tasks_discard_view_menus(). * gui/gnome-cal.c (search_bar_category_changed_cb): Set the default category for the task pad's model. svn path=/trunk/; revision=11559
83 lines
2.6 KiB
C
83 lines
2.6 KiB
C
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
|
|
/* e-tasks.h
|
|
*
|
|
* Copyright (C) 2001 Ximian, Inc.
|
|
* Copyright (C) 2001 Ximian, Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU 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
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public
|
|
* License along with this program; if not, write to the
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*
|
|
* Authors: Federico Mena Quintero <federico@ximian.com>
|
|
* Damon Chaplin <damon@ximian.com>
|
|
*/
|
|
|
|
#ifndef _E_TASKS_H_
|
|
#define _E_TASKS_H_
|
|
|
|
#include <gtk/gtktable.h>
|
|
#include <cal-client/cal-client.h>
|
|
#include "e-calendar-table.h"
|
|
|
|
#define E_TYPE_TASKS (e_tasks_get_type ())
|
|
#define E_TASKS(obj) (GTK_CHECK_CAST ((obj), E_TYPE_TASKS, ETasks))
|
|
#define E_TASKS_CLASS(klass) (GTK_CHECK_CAST_CLASS ((klass), E_TYPE_TASKS, \
|
|
ETasksClass))
|
|
#define E_IS_TASKS(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_TASKS))
|
|
#define E_IS_TASKS_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_TASKS))
|
|
|
|
typedef struct _ETasks ETasks;
|
|
typedef struct _ETasksClass ETasksClass;
|
|
typedef struct _ETasksPrivate ETasksPrivate;
|
|
|
|
struct _ETasks {
|
|
GtkTable table;
|
|
|
|
/* Private data */
|
|
ETasksPrivate *priv;
|
|
};
|
|
|
|
struct _ETasksClass {
|
|
GtkTableClass parent_class;
|
|
|
|
/* Notification signals */
|
|
void (* selection_changed) (ETasks *tasks, int n_selected);
|
|
};
|
|
|
|
|
|
GtkType e_tasks_get_type (void);
|
|
GtkWidget *e_tasks_construct (ETasks *tasks);
|
|
|
|
GtkWidget *e_tasks_new (void);
|
|
|
|
gboolean e_tasks_open (ETasks *tasks,
|
|
char *file);
|
|
|
|
CalClient *e_tasks_get_cal_client (ETasks *tasks);
|
|
|
|
void e_tasks_new_task (ETasks *tasks);
|
|
void e_tasks_delete_selected (ETasks *tasks);
|
|
|
|
|
|
void e_tasks_setup_view_menus (ETasks *tasks, BonoboUIComponent *uic);
|
|
void e_tasks_discard_view_menus (ETasks *tasks);
|
|
|
|
ECalendarTable *e_tasks_get_calendar_table (ETasks *tasks);
|
|
|
|
/* This updates all the preference settings for all the ETasks widgets in use.
|
|
*/
|
|
void e_tasks_update_all_config_settings (void);
|
|
|
|
#endif /* _E_TASKS_H_ */
|