diff options
author | Federico Mena Quintero <federico@helixcode.com> | 2000-09-08 14:39:05 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2000-09-08 14:39:05 +0800 |
commit | a38d76bc2e91964b73ffac3efcb043db54bf2189 (patch) | |
tree | 8ed2564db7ff3ff60a50b162fc3a75039e322d3e /calendar/gui/control-factory.c | |
parent | 0a8b44f162e3d1db26967e972b99a39e174369e6 (diff) | |
download | gsoc2013-evolution-a38d76bc2e91964b73ffac3efcb043db54bf2189.tar gsoc2013-evolution-a38d76bc2e91964b73ffac3efcb043db54bf2189.tar.gz gsoc2013-evolution-a38d76bc2e91964b73ffac3efcb043db54bf2189.tar.bz2 gsoc2013-evolution-a38d76bc2e91964b73ffac3efcb043db54bf2189.tar.lz gsoc2013-evolution-a38d76bc2e91964b73ffac3efcb043db54bf2189.tar.xz gsoc2013-evolution-a38d76bc2e91964b73ffac3efcb043db54bf2189.tar.zst gsoc2013-evolution-a38d76bc2e91964b73ffac3efcb043db54bf2189.zip |
Fall equinox cleanup!
2000-09-08 Federico Mena Quintero <federico@helixcode.com>
Fall equinox cleanup!
OK, I know the equinox is not here yet, but weather has changed
enough to warrant it.
Sigh. This place is definitely not the tropics.
* gui/gnome-cal.c (obj_updated_cb): Renamed from
gnome_calendar_object_updated_cb(); fixed prototype.
(obj_removed_cb): Renamed from gnome_calendar_object_removed_cb();
fixed prototype.
(GnomeCalendarPrivate): Moved all the GnomeCalendar fields to a
private structure so I don't have to rebuild the whole calendar
GUI directory every time something changes in the object.
(GnomeCalendarPrivate): Removed the property bag and the control
fields; they are local to the control-factory now.
(gnome_calendar_update_view_buttons): Remove the
ignore_view_button_clicks mess and just block the signal.
(gnome_calendar_set_view): Added a "focus" argument to indicate
whether we want the main widget in the specified view to grab the
focus.
(gnome_calendar_set_view_internal): Handle the focus argument here.
(gnome_calendar_set_view_buttons): Temporary hack to notify the
calendar about its buttons.
(gnome_calendar_get_selected_time_range): New function.
(gnome_calendar_get_cal_client): New function.
* gui/control-factory.c (calendar_properties_init): Keep the
property bag local to here; it does not need to be in the calendar
object yet.
(control_factory_fn): Renamed from control_factory(). Just use
control_factory_new_control().
(control_factory_new_control): Moved the stuff over from
create_control(), and keep the control local to here. Check the
return value of bonobo_control_new().
* gui/calendar-commands.c (show_day_view_clicked): Remove the
ignore_view_button_clicks mess.
(new_calendar): Removed the useless "page" argument.
(calendar_control_activate): Use gnome_calendar_set_view_buttons()
for now.
svn path=/trunk/; revision=5255
Diffstat (limited to 'calendar/gui/control-factory.c')
-rw-r--r-- | calendar/gui/control-factory.c | 65 |
1 files changed, 35 insertions, 30 deletions
diff --git a/calendar/gui/control-factory.c b/calendar/gui/control-factory.c index 7bdd9b52a5..3b2f931127 100644 --- a/calendar/gui/control-factory.c +++ b/calendar/gui/control-factory.c @@ -49,8 +49,8 @@ CORBA_ORB orb; static void -control_activate_cb (BonoboControl *control, - gboolean activate, +control_activate_cb (BonoboControl *control, + gboolean activate, gpointer user_data) { if (activate) @@ -112,11 +112,13 @@ set_prop (BonoboPropertyBag *bag, static void -calendar_properties_init (GnomeCalendar *gcal) +calendar_properties_init (GnomeCalendar *gcal, BonoboControl *control) { - gcal->properties = bonobo_property_bag_new (get_prop, set_prop, gcal); + BonoboPropertyBag *pbag; - bonobo_property_bag_add (gcal->properties, + pbag = bonobo_property_bag_new (get_prop, set_prop, gcal); + + bonobo_property_bag_add (pbag, PROPERTY_CALENDAR_URI, PROPERTY_CALENDAR_URI_IDX, BONOBO_ARG_STRING, @@ -124,35 +126,21 @@ calendar_properties_init (GnomeCalendar *gcal) _("The URI that the calendar will display"), 0); - bonobo_control_set_property_bag (gcal->control, gcal->properties); + bonobo_control_set_property_bag (control, pbag); } - -static BonoboControl * -create_control (void) +/* Callback factory function for calendar controls */ +static BonoboObject * +control_factory_fn (BonoboGenericFactory *Factory, void *data) { BonoboControl *control; - GnomeCalendar *cal; - - 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); - - return control; -} + control = control_factory_new_control (); -static BonoboObject * -control_factory (BonoboGenericFactory *Factory, void *closure) -{ - return BONOBO_OBJECT (create_control ()); + if (control) + return BONOBO_OBJECT (control); + else + return NULL; } @@ -166,7 +154,7 @@ control_factory_init (void) puts ("XXXXXX - initializing calendar factory!!!"); - factory = bonobo_generic_factory_new (CONTROL_FACTORY_ID, control_factory, NULL); + factory = bonobo_generic_factory_new (CONTROL_FACTORY_ID, control_factory_fn, NULL); if (factory == NULL) g_error ("I could not register a Calendar control factory."); @@ -176,5 +164,22 @@ control_factory_init (void) BonoboControl * control_factory_new_control (void) { - return create_control (); + BonoboControl *control; + GnomeCalendar *gcal; + + gcal = new_calendar (full_name, NULL, 0); + gtk_widget_show (GTK_WIDGET (gcal)); + + control = bonobo_control_new (GTK_WIDGET (gcal)); + if (!control) { + g_message ("control_factory_fn(): could not create the control!"); + return NULL; + } + + calendar_properties_init (gcal, control); + + gtk_signal_connect (GTK_OBJECT (control), "activate", + GTK_SIGNAL_FUNC (control_activate_cb), gcal); + + return control; } |