diff options
author | Federico Mena Quintero <federico@ximian.com> | 2001-05-17 07:38:58 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2001-05-17 07:38:58 +0800 |
commit | f00e9367382fb81cdb4b689f96645357f122b051 (patch) | |
tree | 1750ce1d4c5104dd77a2d509bd00ca657915ebae /calendar/gui/dialogs/editor-page.h | |
parent | d0243a91821d311699347c11d454314bdbdfc0fe (diff) | |
download | gsoc2013-evolution-f00e9367382fb81cdb4b689f96645357f122b051.tar gsoc2013-evolution-f00e9367382fb81cdb4b689f96645357f122b051.tar.gz gsoc2013-evolution-f00e9367382fb81cdb4b689f96645357f122b051.tar.bz2 gsoc2013-evolution-f00e9367382fb81cdb4b689f96645357f122b051.tar.lz gsoc2013-evolution-f00e9367382fb81cdb4b689f96645357f122b051.tar.xz gsoc2013-evolution-f00e9367382fb81cdb4b689f96645357f122b051.tar.zst gsoc2013-evolution-f00e9367382fb81cdb4b689f96645357f122b051.zip |
Split the event and task editors into different objects for the separate
2001-05-16 Federico Mena Quintero <federico@ximian.com>
Split the event and task editors into different objects for the
separate pages; this way they can be shared by both editors.
* gui/dialogs/editor-page.[ch]: New abstract class for a page in a
calendar component editor.
* gui/dialogs/event-page.[ch]: Main page of an event editor.
* gui/dialogs/alarm-page.[ch]: Alarm page of a calendar component
editor.
* gui/dialogs/recurrence-page.[ch]: Recurrence page of a calendar
component editor.
* gui/dialogs/event-page.c (event_page_fill_widgets): Eeek, this
was missing a bunch of break statements.
(event_page_fill_component): Use a temporary variable rather than
allocating a struct icaltimetype.
* gui/dialogs/alarm-page.c (get_alarm_string): Do not use
fixed-size buffers.
(alarm_page_fill_widgets): Use cal_obj_uid_list_free().
(append_reminder): Now the list stores the plain CalComponentAlarm
structures in the row data. We do *NOT* want to be frobbing the
component's data directly. Rather, we clone the alarms from the
component and maintain them on our own.
(alarm_page_fill_component): Clone the alarms before adding them
to the component so that we maintain the invariant that the alarm
structures in the list did *not* come from the component.
* cal-util/cal-component.c (cal_component_add_alarm): Added
documentation.
(cal_component_remove_alarm): Added documentation.
(cal_component_remove_alarm): Do a lookup in our hash table of
alarms instead of scanning the whole component.
(CalComponentAlarm): Removed the `parent' field, since it was
unused.
(cal_component_free_alarm_uids): Removed function, since
cal_component_get_alarm_uids() is documented so that the user will
know that he must use cal_obj_uid_list_free().
(cal_component_alarm_clone): New function.
svn path=/trunk/; revision=9861
Diffstat (limited to 'calendar/gui/dialogs/editor-page.h')
-rw-r--r-- | calendar/gui/dialogs/editor-page.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/calendar/gui/dialogs/editor-page.h b/calendar/gui/dialogs/editor-page.h new file mode 100644 index 0000000000..3f9587c9de --- /dev/null +++ b/calendar/gui/dialogs/editor-page.h @@ -0,0 +1,86 @@ +/* Evolution calendar - Base class for calendar component editor pages + * + * Copyright (C) 2001 Ximian, Inc. + * + * Authors: Federico Mena-Quintero <federico@ximian.com> + * + * 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. + */ + +#ifndef EDITOR_PAGE_H +#define EDITOR_PAGE_H + +#include <time.h> +#include <libgnome/gnome-defs.h> +#include <gtk/gtkwidget.h> +#include <cal-util/cal-component.h> + +BEGIN_GNOME_DECLS + + + +#define TYPE_EDITOR_PAGE (editor_page_get_type ()) +#define EDITOR_PAGE(obj) (GTK_CHECK_CAST ((obj), TYPE_EDITOR_PAGE, EditorPage)) +#define EDITOR_PAGE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), TYPE_EDITOR_PAGE, \ + EditorPageClass)) +#define IS_EDITOR_PAGE(obj) (GTK_CHECK_TYPE ((obj), TYPE_EDITOR_PAGE)) +#define IS_EDITOR_PAGE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), TYPE_EDITOR_PAGE)) + +typedef struct { + GtkObject object; +} EditorPage; + +typedef struct { + GtkObjectClass parent_class; + + /* Notification signals */ + + void (* changed) (EditorPage *page); + void (* summary_changed) (EditorPage *page); + void (* dtstart_changed) (EditorPage *page); + + /* Virtual methods */ + + GtkWidget *(* get_widget) (EditorPage *page); + + void (* fill_widgets) (EditorPage *page, CalComponent *comp); + void (* fill_component) (EditorPage *page, CalComponent *comp); + + void (* set_summary) (EditorPage *page, const char *summary); + char *(* get_summary) (EditorPage *page); + + void (* set_dtstart) (EditorPage *page, time_t start); +} EditorPageClass; + +GtkType editor_page_get_type (void); + +GtkWidget *editor_page_get_widget (EditorPage *page); + +void editor_page_fill_widgets (EditorPage *page, CalComponent *comp); +void editor_page_fill_component (EditorPage *page, CalComponent *comp); + +void editor_page_set_summary (EditorPage *page, const char *summary); +char *editor_page_get_summary (EditorPage *page); + +void editor_page_set_dtstart (EditorPage *page, time_t start); + +void editor_page_notify_changed (EditorPage *page); +void editor_page_notify_summary_changed (EditorPage *page); + + + +END_GNOME_DECLS + +#endif |