~3v1n0/bamf/factory-ref-rework

« back to all changes in this revision

Viewing changes to lib/libbamf/bamf-view.c

  • Committer: Marco Trevisan (Treviño)
  • Date: 2013-06-10 18:22:25 UTC
  • Revision ID: mail@3v1n0.net-20130610182225-zhhs2xokhtbtg066
BamfView: use GParamSpec properties array to initialize and emit notifications

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
  URGENT_CHANGED,
61
61
  VISIBLE_CHANGED,
62
62
  NAME_CHANGED,
63
 
  LAST_SIGNAL,
 
63
  LAST_SIGNAL
64
64
};
65
65
 
66
66
enum
72
72
  PROP_ACTIVE,
73
73
  PROP_USER_VISIBLE,
74
74
  PROP_URGENT,
 
75
  PROP_LAST
75
76
};
76
77
 
77
78
static guint view_signals[LAST_SIGNAL] = { 0 };
 
79
static GParamSpec *properties[PROP_LAST] = { 0 };
78
80
 
79
81
struct _BamfViewPrivate
80
82
{
508
510
{
509
511
  gboolean active = _bamf_dbus_item_view_get_active (proxy);
510
512
  g_signal_emit (G_OBJECT (self), view_signals[ACTIVE_CHANGED], 0, active);
511
 
  g_object_notify (G_OBJECT (self), "active");
 
513
  g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ACTIVE]);
512
514
}
513
515
 
514
516
static void
526
528
{
527
529
  gboolean running = _bamf_dbus_item_view_get_running (proxy);
528
530
  g_signal_emit (G_OBJECT (self), view_signals[RUNNING_CHANGED], 0, running);
529
 
  g_object_notify (G_OBJECT (self), "running");
 
531
  g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_RUNNING]);
530
532
}
531
533
 
532
534
static void
534
536
{
535
537
  gboolean urgent = _bamf_dbus_item_view_get_urgent (proxy);
536
538
  g_signal_emit (G_OBJECT (self), view_signals[URGENT_CHANGED], 0, urgent);
537
 
  g_object_notify (G_OBJECT (self), "urgent");
 
539
  g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_URGENT]);
538
540
}
539
541
 
540
542
static void
542
544
{
543
545
  gboolean user_visible = _bamf_dbus_item_view_get_user_visible (proxy);
544
546
  g_signal_emit (G_OBJECT (self), view_signals[VISIBLE_CHANGED], 0, user_visible);
545
 
  g_object_notify (G_OBJECT (self), "user-visible");
 
547
  g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_USER_VISIBLE]);
546
548
}
547
549
 
548
550
GCancellable *
716
718
 
717
719
  user_visible = bamf_view_is_user_visible (view);
718
720
  g_signal_emit (G_OBJECT (view), view_signals[VISIBLE_CHANGED], 0, user_visible);
719
 
  g_object_notify (G_OBJECT (view), "user-visible");
 
721
  g_object_notify_by_pspec (G_OBJECT (view), properties[PROP_USER_VISIBLE]);
720
722
 
721
723
  active = bamf_view_is_active (view);
722
724
  g_signal_emit (G_OBJECT (view), view_signals[ACTIVE_CHANGED], 0, active);
723
 
  g_object_notify (G_OBJECT (view), "active");
 
725
  g_object_notify_by_pspec (G_OBJECT (view), properties[PROP_ACTIVE]);
724
726
 
725
727
  running = bamf_view_is_running (view);
726
728
  g_signal_emit (G_OBJECT (view), view_signals[RUNNING_CHANGED], 0, running);
727
 
  g_object_notify (G_OBJECT (view), "running");
 
729
  g_object_notify_by_pspec (G_OBJECT (view), properties[PROP_RUNNING]);
728
730
 
729
731
  urgent = bamf_view_is_urgent (view);
730
732
  g_signal_emit (G_OBJECT (view), view_signals[URGENT_CHANGED], 0, urgent);
731
 
  g_object_notify (G_OBJECT (view), "urgent");
 
733
  g_object_notify_by_pspec (G_OBJECT (view), properties[PROP_URGENT]);
732
734
}
733
735
 
734
736
void
765
767
 
766
768
  g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (priv->proxy), BAMF_DBUS_DEFAULT_TIMEOUT);
767
769
  _bamf_view_reset_flags (view);
768
 
  g_object_notify (G_OBJECT (self), "path");
 
770
  g_object_notify_by_pspec (G_OBJECT (view), properties[PROP_PATH]);
769
771
 
770
772
  g_signal_connect (priv->proxy, "notify::active",
771
773
                    G_CALLBACK (bamf_view_on_active_changed), view);
798
800
static void
799
801
bamf_view_class_init (BamfViewClass *klass)
800
802
{
801
 
  GParamSpec *pspec;
802
803
  GObjectClass *obj_class = G_OBJECT_CLASS (klass);
803
804
 
804
805
  obj_class->dispose      = bamf_view_dispose;
805
806
  obj_class->get_property = bamf_view_get_property;
806
807
  obj_class->set_property = bamf_view_set_property;
807
808
 
808
 
  pspec = g_param_spec_string ("path", "path", "path", NULL, G_PARAM_READABLE);
809
 
  g_object_class_install_property (obj_class, PROP_PATH, pspec);
810
 
 
811
 
  pspec = g_param_spec_boolean ("active", "active", "active", FALSE, G_PARAM_READABLE);
812
 
  g_object_class_install_property (obj_class, PROP_ACTIVE, pspec);
813
 
 
814
 
  pspec = g_param_spec_boolean ("urgent", "urgent", "urgent", FALSE, G_PARAM_READABLE);
815
 
  g_object_class_install_property (obj_class, PROP_URGENT, pspec);
816
 
 
817
 
  pspec = g_param_spec_boolean ("running", "running", "running", FALSE, G_PARAM_READABLE);
818
 
  g_object_class_install_property (obj_class, PROP_RUNNING, pspec);
819
 
 
820
 
  pspec = g_param_spec_boolean ("user-visible", "user-visible", "user-visible", FALSE, G_PARAM_READABLE);
821
 
  g_object_class_install_property (obj_class, PROP_USER_VISIBLE, pspec);
 
809
  properties[PROP_PATH] = g_param_spec_string ("path", "path", "path", NULL, G_PARAM_READABLE);
 
810
  g_object_class_install_property (obj_class, PROP_PATH, properties[PROP_PATH]);
 
811
 
 
812
  properties[PROP_ACTIVE] = g_param_spec_boolean ("active", "active", "active", FALSE, G_PARAM_READABLE);
 
813
  g_object_class_install_property (obj_class, PROP_ACTIVE, properties[PROP_ACTIVE]);
 
814
 
 
815
  properties[PROP_URGENT] = g_param_spec_boolean ("urgent", "urgent", "urgent", FALSE, G_PARAM_READABLE);
 
816
  g_object_class_install_property (obj_class, PROP_URGENT, properties[PROP_URGENT]);
 
817
 
 
818
  properties[PROP_RUNNING] = g_param_spec_boolean ("running", "running", "running", FALSE, G_PARAM_READABLE);
 
819
  g_object_class_install_property (obj_class, PROP_RUNNING, properties[PROP_RUNNING]);
 
820
 
 
821
  properties[PROP_USER_VISIBLE] = g_param_spec_boolean ("user-visible", "user-visible", "user-visible", FALSE, G_PARAM_READABLE);
 
822
  g_object_class_install_property (obj_class, PROP_USER_VISIBLE, properties[PROP_USER_VISIBLE]);
822
823
 
823
824
  g_type_class_add_private (obj_class, sizeof (BamfViewPrivate));
824
825