From 70398dd9e66a5b78c847ad45e42a168e99b5893a Mon Sep 17 00:00:00 2001 From: JP Rosevear Date: Thu, 7 Feb 2002 19:35:18 +0000 Subject: pass meeting boolean for gnome_calendar_edit_object and 2002-02-07 JP Rosevear * 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 --- calendar/gui/calendar-component.c | 57 +++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 20 deletions(-) (limited to 'calendar/gui/calendar-component.c') 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", -- cgit v1.2.3