aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/task-editor.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2001-02-09 04:50:49 +0800
committerJP Rosevear <jpr@src.gnome.org>2001-02-09 04:50:49 +0800
commit67336a8d362a3ddb78d3daa82375ab647d75f5e4 (patch)
tree960a83b5452aa68821e11432f6df60db03b64fe7 /calendar/gui/dialogs/task-editor.c
parent2ca1db97c9db0d22865b668bf0f3a1d03f77cdb6 (diff)
downloadgsoc2013-evolution-67336a8d362a3ddb78d3daa82375ab647d75f5e4.tar
gsoc2013-evolution-67336a8d362a3ddb78d3daa82375ab647d75f5e4.tar.gz
gsoc2013-evolution-67336a8d362a3ddb78d3daa82375ab647d75f5e4.tar.bz2
gsoc2013-evolution-67336a8d362a3ddb78d3daa82375ab647d75f5e4.tar.lz
gsoc2013-evolution-67336a8d362a3ddb78d3daa82375ab647d75f5e4.tar.xz
gsoc2013-evolution-67336a8d362a3ddb78d3daa82375ab647d75f5e4.tar.zst
gsoc2013-evolution-67336a8d362a3ddb78d3daa82375ab647d75f5e4.zip
Pull up from 0.9 branch
2001-02-08 JP Rosevear <jpr@ximian.com> * gui/event-editor.c: Remove assorted menu/bonobo stuff * gui/dialogs/task-editor.c: Remove assorted menu/bonobo stuff (task_editor_construct): no longer suck out the glade contents into a bonobo win, listen for apply and close signals (tedit_apply_event_cb): listen for apply signal and save object (tedit_close_event_cb): listen for close signal and prompt to save if need be (task_editor_focus): new function to bring the dialog to the front * gui/dialogs/task-editor.h: new prototype * gui/e-meeting-edit.c (schedule_button_clicked_cb): no need to update widgets in the event editor since the event editor won't be open (e_meeting_editor_new): don't need the event editor reference any more * gui/e-meeting-edit.h: Change prototype * gui/e-day-view.c (e_day_view_on_event_right_click): Make schedule meeting a new contextual menu item (e_day_view_on_schedule_meet): new routine to schedule a meeting from the contextual menu * gui/e-calendar-table.c (e_calendar_table_open_task): Call task_editor_focus * gui/event-editor-dialog.glade: Update to be a property box * gui/dialogs/task-editor-dialog.glade: Update to be a property box svn path=/trunk/; revision=8115
Diffstat (limited to 'calendar/gui/dialogs/task-editor.c')
-rw-r--r--calendar/gui/dialogs/task-editor.c208
1 files changed, 58 insertions, 150 deletions
diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c
index 45961ded2b..936da0f8db 100644
--- a/calendar/gui/dialogs/task-editor.c
+++ b/calendar/gui/dialogs/task-editor.c
@@ -49,9 +49,6 @@ typedef struct {
/* Glade XML data */
GladeXML *xml;
- /* UI handler */
- BonoboUIComponent *uic;
-
/* Client to use */
CalClient *client;
@@ -131,9 +128,9 @@ static const int classification_map[] = {
static void task_editor_class_init (TaskEditorClass *class);
static void task_editor_init (TaskEditor *tedit);
-static gint app_delete_event_cb (GtkWidget *widget,
- GdkEvent *event,
- gpointer data);
+static void tedit_apply_event_cb (GtkWidget *widget, gint page_num, gpointer data);
+static gint tedit_close_event_cb (GtkWidget *widget, gpointer data);
+static gint tedit_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data);
static void close_dialog (TaskEditor *tedit);
static gboolean get_widgets (TaskEditor *tedit);
static void init_widgets (TaskEditor *tedit);
@@ -143,13 +140,6 @@ static void set_title_from_comp (TaskEditor *tedit, CalComponent *comp);
static void clear_widgets (TaskEditor *tedit);
static void fill_widgets (TaskEditor *tedit);
-static void file_save_cb (BonoboUIComponent *uic, gpointer data, const char *path);
-static void file_save_and_close_cb (BonoboUIComponent *uic, gpointer data, const char *path);
-static void file_delete_cb (BonoboUIComponent *uic, gpointer data, const char *path);
-static void file_close_cb (BonoboUIComponent *uic, gpointer data, const char *path);
-
-static void debug_xml_cb (BonoboUIComponent *uic, gpointer data, const char *path);
-
static void save_todo_object (TaskEditor *tedit);
static void dialog_to_comp_object (TaskEditor *tedit);
@@ -225,18 +215,6 @@ task_editor_new (void)
return task_editor_construct (tedit);
}
-static BonoboUIVerb verbs [] = {
-
- BONOBO_UI_VERB ("FileSave", file_save_cb),
- BONOBO_UI_VERB ("FileDelete", file_delete_cb),
- BONOBO_UI_VERB ("FileClose", file_close_cb),
- BONOBO_UI_VERB ("FileSaveAndClose", file_save_and_close_cb),
-
- BONOBO_UI_VERB ("DebugDumpXml", debug_xml_cb),
-
- BONOBO_UI_VERB_END
-};
-
/**
* task_editor_construct:
* @tedit: A #TaskEditor.
@@ -251,7 +229,6 @@ 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);
@@ -273,53 +250,17 @@ task_editor_construct (TaskEditor *tedit)
init_widgets (tedit);
- /* Construct the app */
-
- priv->uic = bonobo_ui_component_new ("task-editor-dialog");
- if (!priv->uic) {
- g_message ("task_editor_construct(): Could not create the UI component");
- goto error;
- }
-
- bonobo_win = bonobo_window_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_window_set_contents (BONOBO_WINDOW (bonobo_win), contents);
- gtk_widget_destroy (priv->app);
- priv->app = GTK_WIDGET (bonobo_win);
- }
-
- {
- BonoboUIContainer *container = bonobo_ui_container_new ();
- bonobo_ui_container_set_win (container, BONOBO_WINDOW (priv->app));
- bonobo_ui_component_set_container (
- priv->uic, bonobo_object_corba_objref (BONOBO_OBJECT (container)));
- }
-
- bonobo_ui_component_add_verb_list_with_data (
- priv->uic, verbs, tedit);
-
- bonobo_ui_util_set_ui (priv->uic, EVOLUTION_DATADIR,
- "evolution-task-editor-dialog.xml",
- "evolution-task-editor");
-
/* Hook to destruction of the dialog */
+ gtk_signal_connect (GTK_OBJECT (priv->app), "apply",
+ GTK_SIGNAL_FUNC (tedit_apply_event_cb), tedit);
+ gtk_signal_connect (GTK_OBJECT (priv->app), "close",
+ GTK_SIGNAL_FUNC (tedit_close_event_cb), tedit);
gtk_signal_connect (GTK_OBJECT (priv->app), "delete_event",
- GTK_SIGNAL_FUNC (app_delete_event_cb), tedit);
+ GTK_SIGNAL_FUNC (tedit_delete_event_cb), tedit);
+
+ /* Add focus to the summary entry */
+ gtk_widget_grab_focus (GTK_WIDGET (priv->summary));
- /* Show the dialog */
- gtk_widget_show (priv->app);
return tedit;
@@ -342,10 +283,41 @@ task_editor_create_date_edit (void)
return dedit;
}
+/* Callback used when the dialog box is destroyed */
+static void
+tedit_apply_event_cb (GtkWidget *widget, gint page_num, gpointer data)
+{
+ TaskEditor *tedit;
+
+ g_return_if_fail (IS_TASK_EDITOR (data));
+
+ tedit = TASK_EDITOR (data);
+
+ if (page_num != -1)
+ return;
+
+ save_todo_object (tedit);
+}
+
+/* Callback used when the dialog box is destroyed */
+static gint
+tedit_close_event_cb (GtkWidget *widget, gpointer data)
+{
+ TaskEditor *tedit;
+
+ g_return_val_if_fail (IS_TASK_EDITOR (data), TRUE);
+
+ tedit = TASK_EDITOR (data);
+
+ if (prompt_to_save_changes (tedit))
+ close_dialog (tedit);
+
+ return TRUE;
+}
/* Callback used when the dialog box is destroyed */
static gint
-app_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data)
+tedit_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data)
{
TaskEditor *tedit;
@@ -490,11 +462,6 @@ task_editor_destroy (GtkObject *object)
tedit = TASK_EDITOR (object);
priv = tedit->priv;
- if (priv->uic) {
- bonobo_object_unref (BONOBO_OBJECT (priv->uic));
- priv->uic = NULL;
- }
-
if (priv->app) {
gtk_widget_destroy (priv->app);
priv->app = NULL;
@@ -680,6 +647,18 @@ task_editor_set_todo_object (TaskEditor *tedit,
fill_widgets (tedit);
}
+void
+task_editor_focus (TaskEditor *tedit)
+{
+ TaskEditorPrivate *priv;
+
+ g_return_if_fail (tedit != NULL);
+ g_return_if_fail (IS_TASK_EDITOR (tedit));
+
+ priv = tedit->priv;
+ gtk_widget_show_now (priv->app);
+ raise_and_focus (priv->app);
+}
/* Creates an appropriate title for the task editor dialog */
static char *
@@ -1019,80 +998,6 @@ dialog_to_comp_object (TaskEditor *tedit)
cal_component_commit_sequence (comp);
}
-static void
-debug_xml_cb (BonoboUIComponent *uic, gpointer data, const char *path)
-{
- TaskEditor *tedit = TASK_EDITOR (data);
- TaskEditorPrivate *priv = tedit->priv;
-
- bonobo_window_dump (BONOBO_WINDOW (priv->app), "on demand");
-}
-
-/* File/Save callback */
-static void
-file_save_cb (BonoboUIComponent *uic, gpointer data, const char *path)
-{
- TaskEditor *tedit;
-
- tedit = TASK_EDITOR (data);
- save_todo_object (tedit);
-}
-
-/* File/Save and Close callback */
-static void
-file_save_and_close_cb (BonoboUIComponent *uic, gpointer data, const char *path)
-{
- TaskEditor *tedit;
-
- tedit = TASK_EDITOR (data);
- save_todo_object (tedit);
- close_dialog (tedit);
-}
-
-/* File/Delete callback */
-static void
-file_delete_cb (BonoboUIComponent *uic, gpointer data, const char *path)
-{
- TaskEditor *tedit;
- TaskEditorPrivate *priv;
-
- tedit = TASK_EDITOR (data);
-
- g_return_if_fail (IS_TASK_EDITOR (tedit));
-
- priv = tedit->priv;
-
- g_return_if_fail (priv->comp);
-
- if (delete_component_dialog (priv->comp, priv->app)) {
- const char *uid;
-
- cal_component_get_uid (priv->comp, &uid);
-
- /* We don't check the return value; FALSE can mean the object
- * was not in the server anyways.
- */
- cal_client_remove_object (priv->client, uid);
-
- close_dialog (tedit);
- }
-}
-
-/* File/Close callback */
-static void
-file_close_cb (BonoboUIComponent *uic, gpointer data, const char *path)
-{
- TaskEditor *tedit;
-
- g_return_if_fail (IS_TASK_EDITOR (data));
-
- tedit = TASK_EDITOR (data);
-
- if (prompt_to_save_changes (tedit))
- close_dialog (tedit);
-}
-
-
static TaskEditorPriority
priority_value_to_index (int priority_value)
{
@@ -1279,6 +1184,9 @@ task_editor_set_changed (TaskEditor *tedit,
#endif
priv->changed = changed;
+
+ if (priv->app)
+ gnome_property_box_set_state (GNOME_PROPERTY_BOX (priv->app), changed);
}