147
151
if (BAMF_VIEW_GET_CLASS (view)->get_children)
148
152
return BAMF_VIEW_GET_CLASS (view)->get_children (view);
154
if (!bamf_view_remote_ready (view))
150
157
priv = view->priv;
152
159
if (!dbus_g_proxy_call (priv->proxy,
187
194
if (bamf_view_flag_is_set (self, flag))
188
195
return bamf_view_get_flag (self, flag);
197
if (!bamf_view_remote_ready (self))
190
200
if (!dbus_g_proxy_call (priv->proxy,
255
265
return bamf_view_get_boolean (self, "IsUrgent", BAMF_VIEW_URGENT_FLAG);
269
bamf_view_set_name (BamfView *view, const char *name)
271
g_return_if_fail (BAMF_IS_VIEW (view));
273
view->priv->local_name = g_strdup (name);
277
bamf_view_set_icon (BamfView *view, const char *icon)
279
g_return_if_fail (BAMF_IS_VIEW (view));
281
view->priv->local_icon = g_strdup (icon);
285
bamf_view_is_sticky (BamfView *view)
287
g_return_val_if_fail (BAMF_IS_VIEW (view), FALSE);
289
return view->priv->sticky;
293
bamf_view_set_sticky (BamfView *view, gboolean value)
295
g_return_if_fail (BAMF_IS_VIEW (view));
297
view->priv->sticky = value;
260
301
bamf_view_get_icon (BamfView *self)
269
310
if (BAMF_VIEW_GET_CLASS (self)->get_icon)
270
311
return BAMF_VIEW_GET_CLASS (self)->get_icon (self);
313
if (!bamf_view_remote_ready (self))
314
return priv->local_icon;
272
316
if (!dbus_g_proxy_call (priv->proxy,
298
342
if (BAMF_VIEW_GET_CLASS (self)->get_name)
299
343
return BAMF_VIEW_GET_CLASS (self)->get_name (self);
345
if (!bamf_view_remote_ready (self))
346
return priv->local_name;
301
348
if (!dbus_g_proxy_call (priv->proxy,
350
bamf_view_on_closed (DBusGProxy *proxy, BamfView *self)
352
self->priv->is_closed = TRUE;
353
g_signal_emit (G_OBJECT (self), view_signals[CLOSED], 0);
357
404
bamf_view_on_child_added (DBusGProxy *proxy, char *path, BamfView *self)
460
bamf_view_on_closed (DBusGProxy *proxy, BamfView *self)
462
BamfViewPrivate *priv;
466
priv->is_closed = TRUE;
468
if (priv->sticky && priv->proxy)
470
dbus_g_proxy_disconnect_signal (priv->proxy,
472
(GCallback) bamf_view_on_active_changed,
475
dbus_g_proxy_disconnect_signal (priv->proxy,
477
(GCallback) bamf_view_on_closed,
480
dbus_g_proxy_disconnect_signal (priv->proxy,
482
(GCallback) bamf_view_on_child_added,
485
dbus_g_proxy_disconnect_signal (priv->proxy,
487
(GCallback) bamf_view_on_child_removed,
490
dbus_g_proxy_disconnect_signal (priv->proxy,
492
(GCallback) bamf_view_on_running_changed,
495
dbus_g_proxy_disconnect_signal (priv->proxy,
497
(GCallback) bamf_view_on_urgent_changed,
500
dbus_g_proxy_disconnect_signal (priv->proxy,
501
"UserVisibleChanged",
502
(GCallback) bamf_view_on_user_visible_changed,
504
g_object_unref (priv->proxy);
508
g_signal_emit (G_OBJECT (self), view_signals[CLOSED], 0);
413
512
bamf_view_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
530
bamf_view_constructed (GObject *object)
624
bamf_view_set_path (BamfView *view, const char *path)
533
626
BamfViewPrivate *priv;
535
if (G_OBJECT_CLASS (bamf_view_parent_class)->constructed)
536
G_OBJECT_CLASS (bamf_view_parent_class)->constructed (object);
538
view = BAMF_VIEW (object);
628
g_return_if_fail (BAMF_IS_VIEW (view));
540
630
priv = view->priv;
631
priv->is_closed = FALSE;
544
g_warning ("bamf_view_set_path called multiple times\n");
638
priv->path = g_strdup (path);
548
639
priv->proxy = dbus_g_proxy_new_for_name (priv->connection,
549
640
"org.ayatana.bamf",
630
721
(GCallback) bamf_view_on_user_visible_changed,
725
if (bamf_view_is_sticky (view))
727
priv->checked_flags = 0x0;
729
if (bamf_view_user_visible (view))
731
g_signal_emit (G_OBJECT(view), view_signals[VISIBLE_CHANGED], 0, TRUE);
732
g_object_notify (G_OBJECT (view), "user-visible");
735
if (bamf_view_is_active (view))
737
g_signal_emit (G_OBJECT(view), view_signals[ACTIVE_CHANGED], 0, TRUE);
738
g_object_notify (G_OBJECT (view), "active");
741
if (bamf_view_is_running (view))
743
g_signal_emit (G_OBJECT(view), view_signals[RUNNING_CHANGED], 0, TRUE);
744
g_object_notify (G_OBJECT (view), "running");
747
if (bamf_view_is_urgent (view))
749
g_signal_emit (G_OBJECT(view), view_signals[URGENT_CHANGED], 0, TRUE);
750
g_object_notify (G_OBJECT (view), "urgent");
753
if (BAMF_VIEW_GET_CLASS (view)->set_path)
754
BAMF_VIEW_GET_CLASS (view)->set_path (view, path);
758
bamf_view_constructed (GObject *object)
760
if (G_OBJECT_CLASS (bamf_view_parent_class)->constructed)
761
G_OBJECT_CLASS (bamf_view_parent_class)->constructed (object);
643
772
obj_class->get_property = bamf_view_get_property;
644
773
obj_class->set_property = bamf_view_set_property;
646
pspec = g_param_spec_string ("path", "path", "path", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
775
pspec = g_param_spec_string ("path", "path", "path", NULL, G_PARAM_READABLE);
647
776
g_object_class_install_property (obj_class, PROP_PATH, pspec);
649
778
pspec = g_param_spec_boolean ("active", "active", "active", FALSE, G_PARAM_READABLE);