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
if (value == view->priv->sticky)
303
g_object_unref (view);
306
view->priv->sticky = value;
260
310
bamf_view_get_icon (BamfView *self)
269
319
if (BAMF_VIEW_GET_CLASS (self)->get_icon)
270
320
return BAMF_VIEW_GET_CLASS (self)->get_icon (self);
322
if (!bamf_view_remote_ready (self))
323
return priv->local_icon;
272
325
if (!dbus_g_proxy_call (priv->proxy,
298
351
if (BAMF_VIEW_GET_CLASS (self)->get_name)
299
352
return BAMF_VIEW_GET_CLASS (self)->get_name (self);
354
if (!bamf_view_remote_ready (self))
355
return priv->local_name;
301
357
if (!dbus_g_proxy_call (priv->proxy,
350
bamf_view_on_closed (DBusGProxy *proxy, BamfView *self)
412
bamf_view_get_click_suggestion (BamfView *self)
352
self->priv->is_closed = TRUE;
353
g_signal_emit (G_OBJECT (self), view_signals[CLOSED], 0);
414
g_return_val_if_fail (BAMF_IS_VIEW (self), BAMF_CLICK_BEHAVIOR_NONE);
416
if (BAMF_VIEW_GET_CLASS (self)->click_behavior)
417
return BAMF_VIEW_GET_CLASS (self)->click_behavior (self);
419
return BAMF_CLICK_BEHAVIOR_NONE;
479
bamf_view_on_closed (DBusGProxy *proxy, BamfView *self)
481
BamfViewPrivate *priv;
485
priv->is_closed = TRUE;
487
if (priv->sticky && priv->proxy)
489
dbus_g_proxy_disconnect_signal (priv->proxy,
491
(GCallback) bamf_view_on_active_changed,
494
dbus_g_proxy_disconnect_signal (priv->proxy,
496
(GCallback) bamf_view_on_closed,
499
dbus_g_proxy_disconnect_signal (priv->proxy,
501
(GCallback) bamf_view_on_child_added,
504
dbus_g_proxy_disconnect_signal (priv->proxy,
506
(GCallback) bamf_view_on_child_removed,
509
dbus_g_proxy_disconnect_signal (priv->proxy,
511
(GCallback) bamf_view_on_running_changed,
514
dbus_g_proxy_disconnect_signal (priv->proxy,
516
(GCallback) bamf_view_on_urgent_changed,
519
dbus_g_proxy_disconnect_signal (priv->proxy,
520
"UserVisibleChanged",
521
(GCallback) bamf_view_on_user_visible_changed,
523
g_object_unref (priv->proxy);
527
g_signal_emit (G_OBJECT (self), view_signals[CLOSED], 0);
413
537
bamf_view_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
530
bamf_view_constructed (GObject *object)
649
bamf_view_get_path (BamfView *view)
651
g_return_val_if_fail (BAMF_IS_VIEW (view), NULL);
653
return view->priv->path;
657
bamf_view_set_path (BamfView *view, const char *path)
533
659
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);
661
g_return_if_fail (BAMF_IS_VIEW (view));
540
663
priv = view->priv;
664
priv->is_closed = FALSE;
544
g_warning ("bamf_view_set_path called multiple times\n");
671
priv->path = g_strdup (path);
548
672
priv->proxy = dbus_g_proxy_new_for_name (priv->connection,
549
673
"org.ayatana.bamf",
630
754
(GCallback) bamf_view_on_user_visible_changed,
758
if (bamf_view_is_sticky (view))
760
priv->checked_flags = 0x0;
762
if (bamf_view_user_visible (view))
764
g_signal_emit (G_OBJECT(view), view_signals[VISIBLE_CHANGED], 0, TRUE);
765
g_object_notify (G_OBJECT (view), "user-visible");
768
if (bamf_view_is_active (view))
770
g_signal_emit (G_OBJECT(view), view_signals[ACTIVE_CHANGED], 0, TRUE);
771
g_object_notify (G_OBJECT (view), "active");
774
if (bamf_view_is_running (view))
776
g_signal_emit (G_OBJECT(view), view_signals[RUNNING_CHANGED], 0, TRUE);
777
g_object_notify (G_OBJECT (view), "running");
780
if (bamf_view_is_urgent (view))
782
g_signal_emit (G_OBJECT(view), view_signals[URGENT_CHANGED], 0, TRUE);
783
g_object_notify (G_OBJECT (view), "urgent");
786
if (BAMF_VIEW_GET_CLASS (view)->set_path)
787
BAMF_VIEW_GET_CLASS (view)->set_path (view, path);
791
bamf_view_constructed (GObject *object)
793
if (G_OBJECT_CLASS (bamf_view_parent_class)->constructed)
794
G_OBJECT_CLASS (bamf_view_parent_class)->constructed (object);
643
805
obj_class->get_property = bamf_view_get_property;
644
806
obj_class->set_property = bamf_view_set_property;
646
pspec = g_param_spec_string ("path", "path", "path", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
808
pspec = g_param_spec_string ("path", "path", "path", NULL, G_PARAM_READABLE);
647
809
g_object_class_install_property (obj_class, PROP_PATH, pspec);
649
811
pspec = g_param_spec_boolean ("active", "active", "active", FALSE, G_PARAM_READABLE);