aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/evolution-calendar-control.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/evolution-calendar-control.c')
-rw-r--r--calendar/gui/evolution-calendar-control.c110
1 files changed, 91 insertions, 19 deletions
diff --git a/calendar/gui/evolution-calendar-control.c b/calendar/gui/evolution-calendar-control.c
index cba1180cf4..721a5e871c 100644
--- a/calendar/gui/evolution-calendar-control.c
+++ b/calendar/gui/evolution-calendar-control.c
@@ -12,7 +12,10 @@
#include <gui/eventedit.h>
#include <gui/gnome-cal.h>
#include <gui/calendar-commands.h>
-/*#include <control/calendar-control.h>*/
+
+#define PROPERTY_CALENDAR_URI "calendar_uri"
+
+#define PROPERTY_CALENDAR_URI_IDX 1
CORBA_Environment ev;
@@ -31,18 +34,100 @@ control_activate_cb (BonoboControl *control,
}
+
+static void
+init_bonobo (int argc, char **argv)
+{
+ gnome_CORBA_init_with_popt_table (
+ "evolution-calendar", "0.0",
+ &argc, argv, NULL, 0, NULL, GNORBA_INIT_SERVER_FUNC, &ev);
+
+ orb = gnome_CORBA_ORB ();
+
+ if (bonobo_init (orb, NULL, NULL) == FALSE)
+ g_error (_("Could not initialize Bonobo"));
+}
+
+
+
+static void
+get_prop (BonoboPropertyBag *bag,
+ BonoboArg *arg,
+ guint arg_id,
+ gpointer user_data)
+{
+ GnomeCalendar *gcal = user_data;
+
+ switch (arg_id) {
+
+ case PROPERTY_CALENDAR_URI_IDX:
+ /*
+ if (fb && fb->uri)
+ BONOBO_ARG_SET_STRING (arg, fb->uri);
+ else
+ BONOBO_ARG_SET_STRING (arg, "");
+ */
+ break;
+
+ default:
+ g_warning ("Unhandled arg %d\n", arg_id);
+ }
+}
+
+static void
+set_prop (BonoboPropertyBag *bag,
+ const BonoboArg *arg,
+ guint arg_id,
+ gpointer user_data)
+{
+ GnomeCalendar *gcal = user_data;
+
+ switch (arg_id) {
+
+ case PROPERTY_CALENDAR_URI_IDX:
+ printf ("set_prop: '%s'\n", BONOBO_ARG_GET_STRING (arg));
+ calendar_set_uri (gcal, BONOBO_ARG_GET_STRING (arg));
+ break;
+
+ default:
+ g_warning ("Unhandled arg %d\n", arg_id);
+ break;
+ }
+}
+
+
+static void
+calendar_properties_init (GnomeCalendar *gcal)
+{
+ gcal->properties = bonobo_property_bag_new (get_prop, set_prop, gcal);
+
+ bonobo_property_bag_add (gcal->properties,
+ PROPERTY_CALENDAR_URI,
+ PROPERTY_CALENDAR_URI_IDX,
+ BONOBO_ARG_STRING,
+ NULL,
+ _("The URI that the calendar will display"),
+ 0);
+
+ bonobo_control_set_property_bag (gcal->control, gcal->properties);
+}
+
+
+
static BonoboObject *
calendar_factory (BonoboGenericFactory *Factory, void *closure)
{
- BonoboControl *control;
+ BonoboControl *control;
/* Create the control. */
- GnomeCalendar *cal = new_calendar (full_name,
- user_calendar_file,
- NULL, NULL, 0);
+ GnomeCalendar *cal = new_calendar (full_name, NULL, NULL, 0);
+
gtk_widget_show (GTK_WIDGET (cal));
control = bonobo_control_new (GTK_WIDGET (cal));
+ cal->control = control;
+
+ calendar_properties_init (cal);
gtk_signal_connect (GTK_OBJECT (control), "activate",
control_activate_cb, cal);
@@ -69,26 +154,13 @@ calendar_factory_init (void)
}
-static void
-init_bonobo (int argc, char **argv)
-{
- gnome_CORBA_init_with_popt_table (
- "evolution-calendar", "0.0",
- &argc, argv, NULL, 0, NULL, GNORBA_INIT_SERVER_FUNC, &ev);
-
- orb = gnome_CORBA_ORB ();
-
- if (bonobo_init (orb, NULL, NULL) == FALSE)
- g_error (_("Could not initialize Bonobo"));
-}
-
int
main (int argc, char **argv)
{
alarm_init ();
init_calendar ();
- /*g_log_set_always_fatal ((GLogLevelFlags) 0xFFFF);*/
+ g_log_set_always_fatal ((GLogLevelFlags) 0xFFFF);
CORBA_exception_init (&ev);