aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/calendar-commands.c7
-rw-r--r--calendar/gui/calendar-commands.h4
-rw-r--r--calendar/gui/e-tasks.c15
-rw-r--r--calendar/gui/e-tasks.h5
-rw-r--r--calendar/gui/gnome-cal.c13
-rw-r--r--calendar/gui/gnome-cal.h4
-rw-r--r--calendar/gui/tasks-control.c9
7 files changed, 49 insertions, 8 deletions
diff --git a/calendar/gui/calendar-commands.c b/calendar/gui/calendar-commands.c
index 8eb6a540e8..4165760231 100644
--- a/calendar/gui/calendar-commands.c
+++ b/calendar/gui/calendar-commands.c
@@ -686,6 +686,8 @@ calendar_control_activate (BonoboControl *control,
uic = bonobo_control_get_ui_component (control);
g_assert (uic != NULL);
+ gnome_calendar_set_ui_component (gcal, uic);
+
remote_uih = bonobo_control_get_remote_ui_container (control);
bonobo_ui_component_set_container (uic, remote_uih);
bonobo_object_release_unref (remote_uih, NULL);
@@ -735,10 +737,13 @@ void
calendar_control_deactivate (BonoboControl *control, GnomeCalendar *gcal)
{
FocusData *focus;
+ BonoboUIComponent *uic;
- BonoboUIComponent *uic = bonobo_control_get_ui_component (control);
+ uic = bonobo_control_get_ui_component (control);
g_assert (uic != NULL);
+ gnome_calendar_set_ui_component (gcal, uic);
+
focus = gtk_object_get_data (GTK_OBJECT (control), "focus_data");
g_assert (focus != NULL);
diff --git a/calendar/gui/calendar-commands.h b/calendar/gui/calendar-commands.h
index 14a86365d9..0a20ba6c69 100644
--- a/calendar/gui/calendar-commands.h
+++ b/calendar/gui/calendar-commands.h
@@ -25,9 +25,11 @@
#ifndef CALENDAR_COMMANDS_H
#define CALENDAR_COMMANDS_H
-#include <bonobo/bonobo-control.h>
#include "gnome-cal.h"
+#include <bonobo/bonobo-control.h>
+#include <bonobo/bonobo-ui-component.h>
+
/* This tells all the calendars to reload the config settings. */
void update_all_config_settings (void);
diff --git a/calendar/gui/e-tasks.c b/calendar/gui/e-tasks.c
index b9443a2875..d98bdfea9c 100644
--- a/calendar/gui/e-tasks.c
+++ b/calendar/gui/e-tasks.c
@@ -125,8 +125,6 @@ e_tasks_init (ETasks *tasks)
priv->query = NULL;
priv->view_instance = NULL;
priv->view_menus = NULL;
-
- setup_widgets (tasks);
}
/* Callback used when the selection changes in the table. */
@@ -244,6 +242,8 @@ e_tasks_construct (ETasks *tasks)
priv = tasks->priv;
+ setup_widgets (tasks);
+
priv->client = cal_client_new ();
if (!priv->client)
return NULL;
@@ -281,6 +281,17 @@ e_tasks_new (void)
}
+void
+e_tasks_set_ui_component (ETasks *tasks,
+ BonoboUIComponent *ui_component)
+{
+ g_return_if_fail (E_IS_TASKS (tasks));
+ g_return_if_fail (ui_component == NULL || BONOBO_IS_UI_COMPONENT (ui_component));
+
+ e_search_bar_set_ui_component (E_SEARCH_BAR (tasks->priv->search_bar), ui_component);
+}
+
+
static void
e_tasks_destroy (GtkObject *object)
{
diff --git a/calendar/gui/e-tasks.h b/calendar/gui/e-tasks.h
index 102369b682..b88e495dcc 100644
--- a/calendar/gui/e-tasks.h
+++ b/calendar/gui/e-tasks.h
@@ -56,10 +56,13 @@ struct _ETasksClass {
GtkType e_tasks_get_type (void);
-GtkWidget *e_tasks_construct (ETasks *tasks);
+GtkWidget *e_tasks_construct (ETasks *tasks);
GtkWidget *e_tasks_new (void);
+void e_tasks_set_ui_component (ETasks *tasks,
+ BonoboUIComponent *ui_component);
+
gboolean e_tasks_open (ETasks *tasks,
char *file);
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 9ff815211e..165f79c70a 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -910,7 +910,6 @@ gnome_calendar_init (GnomeCalendar *gcal)
priv->current_view_type = GNOME_CAL_DAY_VIEW;
priv->range_selected = FALSE;
- setup_widgets (gcal);
priv->dn_query = NULL;
priv->sexp = g_strdup ("#t"); /* Match all */
@@ -1683,6 +1682,8 @@ gnome_calendar_construct (GnomeCalendar *gcal)
priv = gcal->priv;
+ setup_widgets (gcal);
+
/*
* Calendar Folder Client.
*/
@@ -1747,6 +1748,16 @@ gnome_calendar_new (void)
return GTK_WIDGET (gcal);
}
+void
+gnome_calendar_set_ui_component (GnomeCalendar *gcal,
+ BonoboUIComponent *ui_component)
+{
+ g_return_if_fail (GNOME_IS_CALENDAR (gcal));
+ g_return_if_fail (ui_component == NULL || BONOBO_IS_UI_COMPONENT (ui_component));
+
+ e_search_bar_set_ui_component (E_SEARCH_BAR (gcal->priv->search_bar), ui_component);
+}
+
/**
* gnome_calendar_get_cal_client:
* @gcal: A calendar view.
diff --git a/calendar/gui/gnome-cal.h b/calendar/gui/gnome-cal.h
index 2c4eaaf0af..8a888420dc 100644
--- a/calendar/gui/gnome-cal.h
+++ b/calendar/gui/gnome-cal.h
@@ -31,6 +31,7 @@
#include <bonobo/bonobo-ui-component.h>
#include <widgets/misc/e-calendar.h>
#include <cal-client/cal-client.h>
+
#include "e-calendar-table.h"
BEGIN_GNOME_DECLS
@@ -82,6 +83,9 @@ GtkWidget *gnome_calendar_construct (GnomeCalendar *gcal);
GtkWidget *gnome_calendar_new (void);
+void gnome_calendar_set_ui_component (GnomeCalendar *cal,
+ BonoboUIComponent *ui_component);
+
ECalendarTable *gnome_calendar_get_task_pad (GnomeCalendar *gcal);
CalClient *gnome_calendar_get_cal_client (GnomeCalendar *gcal);
diff --git a/calendar/gui/tasks-control.c b/calendar/gui/tasks-control.c
index 6ae2a45565..53e3eb239f 100644
--- a/calendar/gui/tasks-control.c
+++ b/calendar/gui/tasks-control.c
@@ -101,7 +101,7 @@ static void tasks_control_print_preview_cmd (BonoboUIComponent *uic,
BonoboControl *
-tasks_control_new (void)
+tasks_control_new (void)
{
BonoboControl *control;
GtkWidget *tasks;
@@ -109,11 +109,11 @@ tasks_control_new (void)
tasks = e_tasks_new ();
if (!tasks)
return NULL;
-
gtk_widget_show (tasks);
control = bonobo_control_new (tasks);
if (!control) {
+ gtk_widget_destroy (tasks);
g_message ("control_factory_fn(): could not create the control!");
return NULL;
}
@@ -303,6 +303,8 @@ tasks_control_activate (BonoboControl *control, ETasks *tasks)
uic = bonobo_control_get_ui_component (control);
g_assert (uic != NULL);
+ e_tasks_set_ui_component (tasks, uic);
+
remote_uih = bonobo_control_get_remote_ui_container (control);
bonobo_ui_component_set_container (uic, remote_uih);
bonobo_object_release_unref (remote_uih, NULL);
@@ -347,8 +349,11 @@ static void
tasks_control_deactivate (BonoboControl *control, ETasks *tasks)
{
BonoboUIComponent *uic = bonobo_control_get_ui_component (control);
+
g_assert (uic != NULL);
+ e_tasks_set_ui_component (tasks, NULL);
+
e_tasks_discard_view_menus (tasks);
/* Stop monitoring the "selection_changed" signal */