diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 4 | ||||
-rw-r--r-- | calendar/gui/calendar-commands.c | 155 | ||||
-rw-r--r-- | calendar/gui/dialogs/task-editor.c | 28 | ||||
-rw-r--r-- | calendar/gui/event-editor.c | 36 |
4 files changed, 100 insertions, 123 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index f497d96d65..ea084d444d 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,7 @@ +2000-09-07 Michael Meeks <michael@helixcode.com> + + * gui/calendar-commands.c: Re-write most UI handler code. + 2000-09-13 Federico Mena Quintero <federico@helixcode.com> * gui/calendar-model.c (obj_updated_cb): Removed an unused diff --git a/calendar/gui/calendar-commands.c b/calendar/gui/calendar-commands.c index 40928530af..9f9b58aa7f 100644 --- a/calendar/gui/calendar-commands.c +++ b/calendar/gui/calendar-commands.c @@ -478,6 +478,8 @@ properties_cmd (BonoboUIHandler *uih, void *user_data, const char *path) } +#warning FIXME: reinstate this when radiobuttons are implemented +#if 0 /* Note: if the order of these is changed, make sure you change the indices used to access the widgets in calendar_control_activate(). */ static GnomeUIInfo gnome_toolbar_view_buttons [] = { @@ -500,80 +502,42 @@ static GnomeUIInfo gnome_toolbar_view_buttons [] = { #endif GNOMEUIINFO_END }; +#endif - -static GnomeUIInfo calendar_toolbar [] = { - GNOMEUIINFO_ITEM_STOCK (N_("New"), N_("Create a new appointment"), - new_appointment_cb, GNOME_STOCK_PIXMAP_NEW), - - GNOMEUIINFO_SEPARATOR, - - GNOMEUIINFO_ITEM_STOCK (N_("Print"), N_("Print this calendar"), tb_print_cb, GNOME_STOCK_PIXMAP_PRINT), - - GNOMEUIINFO_SEPARATOR, - - GNOMEUIINFO_ITEM_STOCK (N_("Prev"), N_("Go back in time"), previous_clicked, GNOME_STOCK_PIXMAP_BACK), - GNOMEUIINFO_ITEM_STOCK (N_("Today"), N_("Go to present time"), today_clicked, GNOME_STOCK_PIXMAP_HOME), - GNOMEUIINFO_ITEM_STOCK (N_("Next"), N_("Go forward in time"), next_clicked, GNOME_STOCK_PIXMAP_FORWARD), - - GNOMEUIINFO_SEPARATOR, - - GNOMEUIINFO_ITEM_STOCK (N_("Go to"), N_("Go to a specific date"), goto_clicked, GNOME_STOCK_PIXMAP_JUMP_TO), - - GNOMEUIINFO_SEPARATOR, - - GNOMEUIINFO_RADIOLIST (gnome_toolbar_view_buttons), - - GNOMEUIINFO_END +BonoboUIVerb verbs [] = { + BONOBO_UI_VERB ("CalendarNew", new_calendar_cmd), + BONOBO_UI_VERB ("CalendarOpen", open_calendar_cmd), + BONOBO_UI_VERB ("CalendarSaveAs", save_as_calendar_cmd), + BONOBO_UI_VERB ("CalendarPrint", file_print_cb), + BONOBO_UI_VERB ("EditNewAppointment", new_appointment_cb), + BONOBO_UI_VERB ("CalendarPreferences", properties_cmd), + BONOBO_UI_VERB ("AboutCalendar", about_calendar_cmd), + + BONOBO_UI_VERB ("CalendarPrev", previous_clicked), + BONOBO_UI_VERB ("CalendarToday", today_clicked), + BONOBO_UI_VERB ("CalendarNext", next_clicked), + BONOBO_UI_VERB ("CalendarGoto", goto_clicked), + + BONOBO_UI_VERB_END }; - - -/* Performs signal connection as appropriate for interpreters or native bindings */ -static void -do_ui_signal_connect (GnomeUIInfo *uiinfo, gchar *signal_name, - GnomeUIBuilderData *uibdata) -{ - if (uibdata->is_interp) - gtk_signal_connect_full (GTK_OBJECT (uiinfo->widget), - signal_name, NULL, uibdata->relay_func, - uibdata->data ? - uibdata->data : uiinfo->user_data, - uibdata->destroy_func, FALSE, FALSE); - - else if (uiinfo->moreinfo) - gtk_signal_connect (GTK_OBJECT (uiinfo->widget), - signal_name, uiinfo->moreinfo, uibdata->data ? - uibdata->data : uiinfo->user_data); -} - - void calendar_control_activate (BonoboControl *control, GnomeCalendar *cal) { - Bonobo_UIHandler remote_uih; - GtkWidget *toolbar, *toolbar_frame; - BonoboControl *toolbar_control; - GnomeUIBuilderData uibdata; + Bonobo_UIHandler remote_uih; BonoboUIHandler *uih; - int behavior; uih = bonobo_control_get_ui_handler (control); g_assert (uih != NULL); - uibdata.connect_func = do_ui_signal_connect; - uibdata.data = cal; - uibdata.is_interp = FALSE; - uibdata.relay_func = NULL; - uibdata.destroy_func = NULL; - g_print ("In calendar_control_activate\n"); remote_uih = bonobo_control_get_remote_ui_handler (control); bonobo_ui_handler_set_container (uih, remote_uih); bonobo_object_release_unref (remote_uih, NULL); +#if 0 toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH); gnome_app_fill_toolbar_custom (GTK_TOOLBAR (toolbar), @@ -614,52 +578,31 @@ calendar_control_activate (BonoboControl *control, behavior, GNOME_DOCK_TOP, 1, 1, 0); - - /* file menu */ - bonobo_ui_handler_menu_new_item (uih, "/File/New/Calendar", N_("New Ca_lendar"), - N_("Create a new calendar"), - -1, BONOBO_UI_HANDLER_PIXMAP_NONE, - NULL, 0, 0, new_calendar_cmd, cal); - bonobo_ui_handler_menu_new_item (uih, "/File/Open/Calendar", N_("Open Ca_lendar"), - N_("Open a calendar"), -1, - BONOBO_UI_HANDLER_PIXMAP_NONE, NULL, - 0, 0, open_calendar_cmd, cal); - bonobo_ui_handler_menu_new_item (uih, "/File/Save Calendar As", - N_("Save Calendar As"), - N_("Save Calendar As"), - -1, - BONOBO_UI_HANDLER_PIXMAP_NONE, NULL, - 0, 0, save_as_calendar_cmd, cal); - bonobo_ui_handler_menu_new_item (uih, "/File/Print", N_("Print..."), - N_("Print this calendar"), -1, - BONOBO_UI_HANDLER_PIXMAP_STOCK, - GNOME_STOCK_PIXMAP_PRINT, - 'p', GDK_CONTROL_MASK, - file_print_cb, cal); - - /* edit menu */ - bonobo_ui_handler_menu_new_item (uih, "/Edit/New Appointment", - N_("_New appointment..."), N_("Create a new appointment"), - -1, BONOBO_UI_HANDLER_PIXMAP_STOCK, - GNOME_STOCK_MENU_NEW, 0, 0, - new_appointment_cb, cal); - - //bonobo_ui_handler_menu_new_separator (uih, "/Edit", -1); - - bonobo_ui_handler_menu_new_item (uih, "/Edit/Preferences", - N_("Preferences"), N_("Preferences"), - -1, BONOBO_UI_HANDLER_PIXMAP_NONE, NULL, - 0, 0, properties_cmd, cal); - /* help menu */ - - bonobo_ui_handler_menu_new_item (uih, - "/Help/About Calendar", - N_("About Calendar"), - N_("About Calendar"), - -1, - BONOBO_UI_HANDLER_PIXMAP_NONE, NULL, - 0, 0, about_calendar_cmd, cal); - +#endif + + { /* FIXME: sweeten this whole function */ + char *fname; + xmlNode *ui; + Bonobo_UIContainer container; + BonoboUIComponent *component; + + component = bonobo_ui_compat_get_component (uih); + bonobo_ui_component_add_verb_list_with_data ( + component, verbs, cal); + + container = bonobo_ui_compat_get_container (uih); + g_return_if_fail (container != CORBA_OBJECT_NIL); + + fname = bonobo_ui_util_get_ui_fname ("evolution-calendar.xml"); + g_warning ("Attempting ui load from '%s'", fname); + + ui = bonobo_ui_util_new_ui (component, fname, "evolution-calendar"); + + bonobo_ui_component_set_tree (component, container, "/", ui, NULL); + + g_free (fname); + xmlFreeNode (ui); + } } @@ -671,7 +614,10 @@ calendar_control_deactivate (BonoboControl *control) g_print ("In calendar_control_deactivate\n"); - bonobo_ui_handler_dock_remove (uih, "/Toolbar"); + bonobo_ui_component_rm ( + bonobo_ui_compat_get_component (uih), + bonobo_ui_compat_get_container (uih), "/", NULL); + bonobo_ui_handler_unset_container (uih); } @@ -692,6 +638,7 @@ new_calendar (char *full_name, char *geometry, gboolean hidden) GtkWidget *toplevel; int xpos, ypos, width, height; + toplevel = gnome_calendar_new (); if (gnome_parse_geometry (geometry, &xpos, &ypos, &width, &height)) { @@ -764,7 +711,7 @@ init_calendar (void) am_pm_flag = gnome_config_get_bool ("/calendar/Calendar/AM PM flag=0"); week_starts_on_monday = gnome_config_get_bool ("/calendar/Calendar/Week starts on Monday=0"); - if (day_end < day_begin){ + if (day_end < day_begin) { day_begin = 8; day_end = 17; } diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index 240d1a5010..08d76a14be 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -228,6 +228,7 @@ TaskEditor * task_editor_construct (TaskEditor *tedit) { TaskEditorPrivate *priv; + GtkWidget *bonobo_win; g_return_val_if_fail (tedit != NULL, NULL); g_return_val_if_fail (IS_TASK_EDITOR (tedit), NULL); @@ -257,7 +258,26 @@ task_editor_construct (TaskEditor *tedit) goto error; } - bonobo_ui_handler_set_app (priv->uih, GNOME_APP (priv->app)); + bonobo_win = bonobo_win_new ("event-editor-dialog", "Event Editor"); + + /* FIXME: The sucking bit */ + { + GtkWidget *contents; + + contents = gnome_dock_get_client_area ( + GNOME_DOCK (GNOME_APP (priv->app)->dock)); + if (!contents) { + g_message ("event_editor_construct(): Could not get contents"); + goto error; + } + gtk_widget_ref (contents); + gtk_container_remove (GTK_CONTAINER (contents->parent), contents); + bonobo_win_set_contents (BONOBO_WIN (bonobo_win), contents); + gtk_widget_destroy (priv->app); + priv->app = GTK_WIDGET (bonobo_win); + } + + bonobo_ui_handler_set_app (priv->uih, BONOBO_WIN (priv->app)); create_menu (tedit); create_toolbar (tedit); @@ -655,9 +675,11 @@ create_toolbar (TaskEditor *tedit) bonobo_ui_handler_create_toolbar (priv->uih, "Toolbar"); +#warning This should be converted to xml. +#if 0 /* Fetch the toolbar. What a pain in the ass. */ - dock_item = gnome_app_get_dock_item_by_name (GNOME_APP (priv->app), GNOME_APP_TOOLBAR_NAME); + dock_item = bonobo_win_get_dock_item_by_name (BONOBO_WIN (priv->app), BONOBO_WIN_TOOLBAR_NAME); g_assert (dock_item != NULL); toolbar_child = gnome_dock_item_get_child (dock_item); @@ -665,7 +687,7 @@ create_toolbar (TaskEditor *tedit) /* Turn off labels as GtkToolbar sucks */ gtk_toolbar_set_style (GTK_TOOLBAR (toolbar_child), GTK_TOOLBAR_ICONS); - +#endif list = bonobo_ui_handler_toolbar_parse_uiinfo_list_with_data (toolbar, tedit); bonobo_ui_handler_toolbar_add_list (priv->uih, "/Toolbar", list); diff --git a/calendar/gui/event-editor.c b/calendar/gui/event-editor.c index 452399c836..3f6efd1bb0 100644 --- a/calendar/gui/event-editor.c +++ b/calendar/gui/event-editor.c @@ -1394,24 +1394,10 @@ create_toolbar (EventEditor *ee) { EventEditorPrivate *priv; BonoboUIHandlerToolbarItem *list; - GnomeDockItem *dock_item; - GtkWidget *toolbar_child; priv = ee->priv; bonobo_ui_handler_create_toolbar (priv->uih, "Toolbar"); - - /* Fetch the toolbar. What a pain in the ass. */ - - dock_item = gnome_app_get_dock_item_by_name (GNOME_APP (priv->app), GNOME_APP_TOOLBAR_NAME); - g_assert (dock_item != NULL); - - toolbar_child = gnome_dock_item_get_child (dock_item); - g_assert (toolbar_child != NULL && GTK_IS_TOOLBAR (toolbar_child)); - - /* Turn off labels as GtkToolbar sucks */ - gtk_toolbar_set_style (GTK_TOOLBAR (toolbar_child), GTK_TOOLBAR_ICONS); - list = bonobo_ui_handler_toolbar_parse_uiinfo_list_with_data (toolbar, ee); bonobo_ui_handler_toolbar_add_list (priv->uih, "/Toolbar", list); } @@ -1446,6 +1432,7 @@ EventEditor * event_editor_construct (EventEditor *ee) { EventEditorPrivate *priv; + GtkWidget *bonobo_win; g_return_val_if_fail (ee != NULL, NULL); g_return_val_if_fail (IS_EVENT_EDITOR (ee), NULL); @@ -1468,6 +1455,24 @@ event_editor_construct (EventEditor *ee) init_widgets (ee); /* Construct the app */ + bonobo_win = bonobo_win_new ("event-editor-dialog", "Event Editor"); + + /* FIXME: The sucking bit */ + { + GtkWidget *contents; + + contents = gnome_dock_get_client_area ( + GNOME_DOCK (GNOME_APP (priv->app)->dock)); + if (!contents) { + g_message ("event_editor_construct(): Could not get contents"); + goto error; + } + gtk_widget_ref (contents); + gtk_container_remove (GTK_CONTAINER (contents->parent), contents); + bonobo_win_set_contents (BONOBO_WIN (bonobo_win), contents); + gtk_widget_destroy (priv->app); + priv->app = bonobo_win; + } priv->uih = bonobo_ui_handler_new (); if (!priv->uih) { @@ -1475,7 +1480,7 @@ event_editor_construct (EventEditor *ee) goto error; } - bonobo_ui_handler_set_app (priv->uih, GNOME_APP (priv->app)); + bonobo_ui_handler_set_app (priv->uih, BONOBO_WIN (priv->app)); create_menu (ee); create_toolbar (ee); @@ -1791,7 +1796,6 @@ set_all_day (GtkWidget *toggle, EventEditor *ee) e_date_edit_set_show_time (E_DATE_EDIT (priv->start_time), !all_day); e_date_edit_set_show_time (E_DATE_EDIT (priv->end_time), !all_day); - e_date_edit_set_time (E_DATE_EDIT (priv->end_time), mktime (&end_tm)); } |