diff options
author | JP Rosevear <jpr@ximian.com> | 2002-02-08 03:35:18 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2002-02-08 03:35:18 +0800 |
commit | 70398dd9e66a5b78c847ad45e42a168e99b5893a (patch) | |
tree | 16117c3769876e9fb0415e56ff0c4bcb7de769ef /calendar/gui/calendar-component.c | |
parent | 91a3039067e05004f73abab588c4838ff7d10f18 (diff) | |
download | gsoc2013-evolution-70398dd9e66a5b78c847ad45e42a168e99b5893a.tar.gz gsoc2013-evolution-70398dd9e66a5b78c847ad45e42a168e99b5893a.tar.zst gsoc2013-evolution-70398dd9e66a5b78c847ad45e42a168e99b5893a.zip |
pass meeting boolean for gnome_calendar_edit_object and
2002-02-07 JP Rosevear <jpr@ximian.com>
* gui/e-day-view.c: pass meeting boolean for
gnome_calendar_edit_object and gnome_calendar_new_appointment_for
* gui/e-week-view-event-item.c: ditto
* gui/e-week-view.c: ditto
* gui/tasks-control.c (confirm_expunge): kill warning
* gui/calendar-commands.c (new_meeting_cb): show a new meeting
dialog
(new_event_cb): pass new param
* gui/gnome-cal.c (gnome_calendar_edit_object): take meeting
boolean and show meeting page if true
(gnome_calendar_new_appointment_for): takeing meeting param and
pass to above
(gnome_calendar_new_appointment): add new param
* gui/gnome-cal.h: update proto
* gui/component-factory.c (create_component): take a comp editor
mode, determine vtype
(sc_user_create_new_item_cb): check for meeting user creatable
item
(create_object): add meeting as user creatable item
* gui/comp-editor-factory.c (edit_new): get a comp editor mode
now, determine vtype and show meeting page if required
(queue_edit_new): get comp editor mode
(impl_editNew): ditto, plus queue the mode directly instead of
determining the vtype
* gui/dialogs/event-editor.c (show_meeting): new internal util
function to show meeting page
(event_editor_show_meeting): show the meeting
(schedule_meeting_cmd): use show_meeting
* gui/dialogs/event-editor.h: new proto
* idl/evolution-calendar.idl: editNew takes a mode rather than a
type now
* cal-util/Makefile.am: fix includes
svn path=/trunk/; revision=15595
Diffstat (limited to 'calendar/gui/calendar-component.c')
-rw-r--r-- | calendar/gui/calendar-component.c | 57 |
1 files changed, 37 insertions, 20 deletions
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c index 979885c10f..26b5a1efb9 100644 --- a/calendar/gui/calendar-component.c +++ b/calendar/gui/calendar-component.c @@ -52,6 +52,7 @@ /* IDs for user creatable items */ #define CREATE_EVENT_ID "event" +#define CREATE_MEETING_ID "meeting" #define CREATE_TASK_ID "task" char *evolution_dir; @@ -527,29 +528,28 @@ get_data_uri (const char *uri, CalComponentVType vtype) * uses the default folder for that type of component. */ static void -create_component (const char *uri, CalComponentVType vtype) +create_component (const char *uri, GNOME_Evolution_Calendar_CompEditorFactory_CompEditorMode type) { char *real_uri; CORBA_Environment ev; - GNOME_Evolution_Calendar_CalObjType corba_type; GNOME_Evolution_Calendar_CompEditorFactory factory; + CalComponentVType vtype; - real_uri = get_data_uri (uri, vtype); - - switch (vtype) { - case CAL_COMPONENT_EVENT: - corba_type = GNOME_Evolution_Calendar_TYPE_EVENT; + switch (type) { + case GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_EVENT: + case GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_MEETING: + vtype = CAL_COMPONENT_EVENT; break; - - case CAL_COMPONENT_TODO: - corba_type = GNOME_Evolution_Calendar_TYPE_TODO; + case GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_TODO: + vtype = CAL_COMPONENT_TODO; break; - default: g_assert_not_reached (); return; } + real_uri = get_data_uri (uri, vtype); + /* Get the factory */ CORBA_exception_init (&ev); @@ -567,7 +567,7 @@ create_component (const char *uri, CalComponentVType vtype) /* Create the item */ CORBA_exception_init (&ev); - GNOME_Evolution_Calendar_CompEditorFactory_editNew (factory, real_uri, corba_type, &ev); + GNOME_Evolution_Calendar_CompEditorFactory_editNew (factory, real_uri, type, &ev); if (ev._major != CORBA_NO_EXCEPTION) g_message ("create_component(): Exception while creating the component"); @@ -594,14 +594,25 @@ sc_user_create_new_item_cb (EvolutionShellComponent *shell_component, { if (strcmp (id, CREATE_EVENT_ID) == 0) { if (strcmp (parent_folder_type, FOLDER_CALENDAR) == 0) - create_component (parent_folder_physical_uri, CAL_COMPONENT_EVENT); + create_component (parent_folder_physical_uri, + GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_EVENT); else - create_component (NULL, CAL_COMPONENT_EVENT); + create_component (NULL, + GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_EVENT); + } else if (strcmp (id, CREATE_MEETING_ID) == 0) { + if (strcmp (parent_folder_type, FOLDER_CALENDAR) == 0) + create_component (parent_folder_physical_uri, + GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_MEETING); + else + create_component (NULL, + GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_MEETING); } else if (strcmp (id, CREATE_TASK_ID) == 0) { if (strcmp (parent_folder_type, FOLDER_TASKS) == 0) - create_component (parent_folder_physical_uri, CAL_COMPONENT_TODO); + create_component (parent_folder_physical_uri, + GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_TODO); else - create_component (NULL, CAL_COMPONENT_TODO); + create_component (NULL, + GNOME_Evolution_Calendar_CompEditorFactory_EDITOR_MODE_TODO); } else g_assert_not_reached (); } @@ -639,14 +650,20 @@ create_object (void) evolution_shell_component_add_user_creatable_item (shell_component, CREATE_EVENT_ID, - _("Create a new appointment"), - _("New _Appointment"), 'a', + _("New appointment"), + _("_Appointment"), 'a', + NULL); + + evolution_shell_component_add_user_creatable_item (shell_component, + CREATE_MEETING_ID, + _("New meeting"), + _("_Meeting"), 's', NULL); evolution_shell_component_add_user_creatable_item (shell_component, CREATE_TASK_ID, - _("Create a new task"), - _("New _Task"), 't', + _("New task"), + _("_Task"), 't', NULL); gtk_signal_connect (GTK_OBJECT (shell_component), "user_create_new_item", |