aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/component-factory.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2002-02-08 03:35:18 +0800
committerJP Rosevear <jpr@src.gnome.org>2002-02-08 03:35:18 +0800
commit70398dd9e66a5b78c847ad45e42a168e99b5893a (patch)
tree16117c3769876e9fb0415e56ff0c4bcb7de769ef /calendar/gui/component-factory.c
parent91a3039067e05004f73abab588c4838ff7d10f18 (diff)
downloadgsoc2013-evolution-70398dd9e66a5b78c847ad45e42a168e99b5893a.tar
gsoc2013-evolution-70398dd9e66a5b78c847ad45e42a168e99b5893a.tar.gz
gsoc2013-evolution-70398dd9e66a5b78c847ad45e42a168e99b5893a.tar.bz2
gsoc2013-evolution-70398dd9e66a5b78c847ad45e42a168e99b5893a.tar.lz
gsoc2013-evolution-70398dd9e66a5b78c847ad45e42a168e99b5893a.tar.xz
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/component-factory.c')
-rw-r--r--calendar/gui/component-factory.c57
1 files changed, 37 insertions, 20 deletions
diff --git a/calendar/gui/component-factory.c b/calendar/gui/component-factory.c
index 979885c10f..26b5a1efb9 100644
--- a/calendar/gui/component-factory.c
+++ b/calendar/gui/component-factory.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",