diff options
Diffstat (limited to 'executive-summary/component/e-summary.c')
-rw-r--r-- | executive-summary/component/e-summary.c | 103 |
1 files changed, 28 insertions, 75 deletions
diff --git a/executive-summary/component/e-summary.c b/executive-summary/component/e-summary.c index ef95c7e8b1..12ed32376e 100644 --- a/executive-summary/component/e-summary.c +++ b/executive-summary/component/e-summary.c @@ -337,25 +337,13 @@ make_control_html (ESummaryWindow *window, { char *html, *tmp; int id = GPOINTER_TO_INT (window); - gboolean u, d, l, r, config; + gboolean config; - u = d = l = r = config = TRUE; + config = TRUE; if (window->propertycontrol == CORBA_OBJECT_NIL) config = FALSE; - if (row == 0) /* Top row */ - u = FALSE; - - if (row >= numwindows - 3) /* Bottom row */ - d = FALSE; - - if (col == 0) /* Leftmost column */ - l = FALSE; - - if (col == 2 || ((row * 3) + col) == numwindows - 1) /* Rightmost column */ - r = FALSE; - html = g_strdup_printf ("<table><tr><td><a href=\"close://%d\">" "<img src=\"service-close.png\" border=\"0\">" "</a></td></tr><tr><td>", id); @@ -371,53 +359,6 @@ make_control_html (ESummaryWindow *window, } g_free (tmp); -#if 0 - tmp = html; - if (!l) { - html = g_strdup_printf ("%s<img src=\"service-left-disabled.png\">" - "</td><td>", tmp); - } else { - html = g_strdup_printf ("%s<a href=\"left://%d\">" - "<img src=\"service-left.png\" border=\"0\">" - "</a></td><td>", tmp, id); - } - g_free (tmp); - - tmp = html; - if (!r) { - html = g_strdup_printf ("%s<img src=\"service-right-disabled.png\">" - "</td></tr></table>", tmp); - } else { - html = g_strdup_printf ("%s<a href=\"right://%d\">" - "<img src=\"service-right.png\" border=\"0\">" - "</a></td></tr></table>", tmp, id); - } - g_free (tmp); - - - tmp = html; - if (!d) { - html = g_strdup_printf ("%s<img src=\"service-down-disabled.png\">" - "</td><td>", tmp); - } else { - html = g_strdup_printf ("%s<a href=\"down://%d\">" - "<img src=\"service-down.png\" border=\"0\">" - "</a></td><td>", tmp, id); - } - g_free (tmp); - - tmp = html; - if (!u) { - html = g_strdup_printf ("%s<img src=\"service-up-disabled.png\">" - "</td></tr></table>", tmp); - } else { - html = g_strdup_printf ("%s<a href=\"up://%d\">" - "<img src=\"service-up.png\" border=\"0\">" - "</a></td></tr></table>", tmp, id); - } - g_free (tmp); - -#endif return html; } @@ -648,9 +589,10 @@ html_event (BonoboListener *listener, } static void -prop_changed_cb (BonoboPropertyListener *listener, +prop_changed_cb (BonoboListener *listener, char *name, BonoboArg *arg, + CORBA_Environment *ev, ESummaryWindow *window) { if (strcmp (name, "window_title") == 0) { @@ -678,7 +620,6 @@ e_summary_add_service (ESummary *esummary, ESummaryWindow *window; ESummaryPrivate *priv; Bonobo_Unknown unknown = CORBA_OBJECT_NIL; - Bonobo_PropertyListener corba_listener; CORBA_Environment ev; g_return_val_if_fail (esummary != NULL, NULL); @@ -718,6 +659,16 @@ e_summary_add_service (ESummary *esummary, return NULL; } + window->event_source = Bonobo_Unknown_queryInterface(window->component, + "IDL:Bonobo/EventSource:1.0", &ev); + if (window->event_source == CORBA_OBJECT_NIL) { + g_warning ("There is no Bonobo::EventSource interface"); + + /* FIXME: Free whatever objects exist */ + g_free (window); + return NULL; + } + if (window->html != CORBA_OBJECT_NIL) { Bonobo_Listener listener; CORBA_Environment ev2; @@ -762,19 +713,21 @@ e_summary_add_service (ESummary *esummary, window->propertybag, "window_icon", NULL)); /* Listen to changes */ - window->listener = bonobo_property_listener_new (); - gtk_signal_connect (GTK_OBJECT (window->listener), "prop_changed", - GTK_SIGNAL_FUNC (prop_changed_cb), window); - corba_listener = bonobo_object_corba_objref (BONOBO_OBJECT (window->listener)); - Bonobo_PropertyBag_addChangeListener (window->propertybag, - "window_title", - corba_listener, &ev); - - Bonobo_PropertyBag_addChangeListener (window->propertybag, - "window_icon", - corba_listener, &ev); - CORBA_exception_free (&ev); + if (window->propertycontrol != CORBA_OBJECT_NIL) { + Bonobo_Listener listener; + CORBA_Environment ev2; + + window->listener = bonobo_listener_new (NULL, NULL); + listener = bonobo_object_corba_objref (BONOBO_OBJECT (window->html_listener)); + Bonobo_EventSource_addListener (window->event_source, + listener, &ev); + + gtk_signal_connect (GTK_OBJECT (window->listener), "event_notify", + GTK_SIGNAL_FUNC (prop_changed_cb), window); + } + + CORBA_exception_free (&ev); priv->window_list = g_list_append (priv->window_list, window); return window; |