[nautilus] floating-bar: port to GLib type declaration macros.
- From: Ernestas Kulik <ernestask src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] floating-bar: port to GLib type declaration macros.
- Date: Wed, 30 Aug 2017 08:26:12 +0000 (UTC)
commit cad0a3e04d842a72d8e3153cf27b56ffccb933c8
Author: Vyas Giridharan <vyasgiridhar27 gmail com>
Date: Mon Aug 28 17:00:40 2017 +0530
floating-bar: port to GLib type declaration macros.
Porting Nautilus object declarations to G_DECLARE_*_TYPE will
reduce a huge number of boilerplate code.
That will make nautilus code easier for newcomers and others alike.
https://bugzilla.gnome.org/show_bug.cgi?id=786815
src/nautilus-floating-bar.c | 90 +++++++++++++++++++++----------------------
src/nautilus-floating-bar.h | 27 +------------
2 files changed, 45 insertions(+), 72 deletions(-)
---
diff --git a/src/nautilus-floating-bar.c b/src/nautilus-floating-bar.c
index 2a6a2c5..0d81012 100644
--- a/src/nautilus-floating-bar.c
+++ b/src/nautilus-floating-bar.c
@@ -27,8 +27,10 @@
#define HOVER_HIDE_TIMEOUT_INTERVAL 100
-struct _NautilusFloatingBarDetails
+struct _NautilusFloatingBar
{
+ GtkBox parent;
+
gchar *primary_label;
gchar *details_label;
@@ -78,8 +80,8 @@ nautilus_floating_bar_finalize (GObject *obj)
NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (obj);
nautilus_floating_bar_remove_hover_timeout (self);
- g_free (self->priv->primary_label);
- g_free (self->priv->details_label);
+ g_free (self->primary_label);
+ g_free (self->details_label);
G_OBJECT_CLASS (nautilus_floating_bar_parent_class)->finalize (obj);
}
@@ -96,19 +98,19 @@ nautilus_floating_bar_get_property (GObject *object,
{
case PROP_PRIMARY_LABEL:
{
- g_value_set_string (value, self->priv->primary_label);
+ g_value_set_string (value, self->primary_label);
}
break;
case PROP_DETAILS_LABEL:
{
- g_value_set_string (value, self->priv->details_label);
+ g_value_set_string (value, self->details_label);
}
break;
case PROP_SHOW_SPINNER:
{
- g_value_set_boolean (value, self->priv->show_spinner);
+ g_value_set_boolean (value, self->show_spinner);
}
break;
@@ -161,27 +163,27 @@ update_labels (NautilusFloatingBar *self)
{
gboolean primary_visible, details_visible;
- primary_visible = (self->priv->primary_label != NULL) &&
- (strlen (self->priv->primary_label) > 0);
- details_visible = (self->priv->details_label != NULL) &&
- (strlen (self->priv->details_label) > 0);
+ primary_visible = (self->primary_label != NULL) &&
+ (strlen (self->primary_label) > 0);
+ details_visible = (self->details_label != NULL) &&
+ (strlen (self->details_label) > 0);
- gtk_label_set_text (GTK_LABEL (self->priv->primary_label_widget),
- self->priv->primary_label);
- gtk_widget_set_visible (self->priv->primary_label_widget, primary_visible);
+ gtk_label_set_text (GTK_LABEL (self->primary_label_widget),
+ self->primary_label);
+ gtk_widget_set_visible (self->primary_label_widget, primary_visible);
- gtk_label_set_text (GTK_LABEL (self->priv->details_label_widget),
- self->priv->details_label);
- gtk_widget_set_visible (self->priv->details_label_widget, details_visible);
+ gtk_label_set_text (GTK_LABEL (self->details_label_widget),
+ self->details_label);
+ gtk_widget_set_visible (self->details_label_widget, details_visible);
}
void
nautilus_floating_bar_remove_hover_timeout (NautilusFloatingBar *self)
{
- if (self->priv->hover_timeout_id != 0)
+ if (self->hover_timeout_id != 0)
{
- g_source_remove (self->priv->hover_timeout_id);
- self->priv->hover_timeout_id = 0;
+ g_source_remove (self->hover_timeout_id);
+ self->hover_timeout_id = 0;
}
}
@@ -212,7 +214,7 @@ check_pointer_timeout (gpointer user_data)
if (pointer_y == -1 || pointer_y < data->y_down_limit || pointer_y > data->y_upper_limit)
{
gtk_widget_show (data->floating_bar);
- NAUTILUS_FLOATING_BAR (data->floating_bar)->priv->hover_timeout_id = 0;
+ NAUTILUS_FLOATING_BAR (data->floating_bar)->hover_timeout_id = 0;
return G_SOURCE_REMOVE;
}
@@ -235,9 +237,9 @@ overlay_enter_notify_cb (GtkWidget *parent,
NautilusFloatingBar *self = NAUTILUS_FLOATING_BAR (widget);
- if (self->priv->hover_timeout_id != 0)
+ if (self->hover_timeout_id != 0)
{
- g_source_remove (self->priv->hover_timeout_id);
+ g_source_remove (self->hover_timeout_id);
}
if (event->window != gtk_widget_get_window (widget))
@@ -245,7 +247,7 @@ overlay_enter_notify_cb (GtkWidget *parent,
return GDK_EVENT_PROPAGATE;
}
- if (NAUTILUS_FLOATING_BAR (widget)->priv->is_interactive)
+ if (NAUTILUS_FLOATING_BAR (widget)->is_interactive)
{
return GDK_EVENT_PROPAGATE;
}
@@ -259,11 +261,11 @@ overlay_enter_notify_cb (GtkWidget *parent,
data->y_down_limit = y_pos;
data->y_upper_limit = y_pos + gtk_widget_get_allocated_height (widget);
- self->priv->hover_timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT, HOVER_HIDE_TIMEOUT_INTERVAL,
- check_pointer_timeout, data,
- check_pointer_data_free);
+ self->hover_timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT, HOVER_HIDE_TIMEOUT_INTERVAL,
+ check_pointer_timeout, data,
+ check_pointer_data_free);
- g_source_set_name_by_id (self->priv->hover_timeout_id, "[nautilus-floating-bar]
overlay_enter_notify_cb");
+ g_source_set_name_by_id (self->hover_timeout_id, "[nautilus-floating-bar] overlay_enter_notify_cb");
return GDK_EVENT_STOP;
}
@@ -392,9 +394,9 @@ nautilus_floating_bar_constructed (GObject *obj)
w = gtk_spinner_new ();
gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 0);
- gtk_widget_set_visible (w, self->priv->show_spinner);
+ gtk_widget_set_visible (w, self->show_spinner);
gtk_spinner_start (GTK_SPINNER (w));
- self->priv->spinner = w;
+ self->spinner = w;
gtk_widget_set_size_request (w, 16, 16);
gtk_widget_set_margin_start (w, 8);
@@ -413,13 +415,13 @@ nautilus_floating_bar_constructed (GObject *obj)
gtk_label_set_ellipsize (GTK_LABEL (w), PANGO_ELLIPSIZE_MIDDLE);
gtk_label_set_single_line_mode (GTK_LABEL (w), TRUE);
gtk_container_add (GTK_CONTAINER (labels_box), w);
- self->priv->primary_label_widget = w;
+ self->primary_label_widget = w;
gtk_widget_show (w);
w = gtk_label_new (NULL);
gtk_label_set_single_line_mode (GTK_LABEL (w), TRUE);
gtk_container_add (GTK_CONTAINER (labels_box), w);
- self->priv->details_label_widget = w;
+ self->details_label_widget = w;
gtk_widget_show (w);
}
@@ -428,9 +430,6 @@ nautilus_floating_bar_init (NautilusFloatingBar *self)
{
GtkStyleContext *context;
- self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NAUTILUS_TYPE_FLOATING_BAR,
- NautilusFloatingBarDetails);
-
context = gtk_widget_get_style_context (GTK_WIDGET (self));
gtk_style_context_add_class (context, "floating-bar");
}
@@ -480,7 +479,6 @@ nautilus_floating_bar_class_init (NautilusFloatingBarClass *klass)
G_TYPE_NONE, 1,
G_TYPE_INT);
- g_type_class_add_private (klass, sizeof (NautilusFloatingBarDetails));
g_object_class_install_properties (oclass, NUM_PROPERTIES, properties);
}
@@ -488,10 +486,10 @@ void
nautilus_floating_bar_set_primary_label (NautilusFloatingBar *self,
const gchar *label)
{
- if (g_strcmp0 (self->priv->primary_label, label) != 0)
+ if (g_strcmp0 (self->primary_label, label) != 0)
{
- g_free (self->priv->primary_label);
- self->priv->primary_label = g_strdup (label);
+ g_free (self->primary_label);
+ self->primary_label = g_strdup (label);
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_PRIMARY_LABEL]);
@@ -503,10 +501,10 @@ void
nautilus_floating_bar_set_details_label (NautilusFloatingBar *self,
const gchar *label)
{
- if (g_strcmp0 (self->priv->details_label, label) != 0)
+ if (g_strcmp0 (self->details_label, label) != 0)
{
- g_free (self->priv->details_label);
- self->priv->details_label = g_strdup (label);
+ g_free (self->details_label);
+ self->details_label = g_strdup (label);
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DETAILS_LABEL]);
@@ -527,10 +525,10 @@ void
nautilus_floating_bar_set_show_spinner (NautilusFloatingBar *self,
gboolean show_spinner)
{
- if (self->priv->show_spinner != show_spinner)
+ if (self->show_spinner != show_spinner)
{
- self->priv->show_spinner = show_spinner;
- gtk_widget_set_visible (self->priv->spinner,
+ self->show_spinner = show_spinner;
+ gtk_widget_set_visible (self->spinner,
show_spinner);
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SHOW_SPINNER]);
@@ -573,7 +571,7 @@ nautilus_floating_bar_add_action (NautilusFloatingBar *self,
g_signal_connect (button, "clicked",
G_CALLBACK (action_button_clicked_cb), self);
- self->priv->is_interactive = TRUE;
+ self->is_interactive = TRUE;
}
void
@@ -601,5 +599,5 @@ nautilus_floating_bar_cleanup_actions (NautilusFloatingBar *self)
g_list_free (children);
- self->priv->is_interactive = FALSE;
+ self->is_interactive = FALSE;
}
diff --git a/src/nautilus-floating-bar.h b/src/nautilus-floating-bar.h
index ebe8e14..2eb0e64 100644
--- a/src/nautilus-floating-bar.h
+++ b/src/nautilus-floating-bar.h
@@ -28,32 +28,7 @@
#define NAUTILUS_FLOATING_BAR_ACTION_ID_STOP 1
#define NAUTILUS_TYPE_FLOATING_BAR nautilus_floating_bar_get_type()
-#define NAUTILUS_FLOATING_BAR(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_FLOATING_BAR, NautilusFloatingBar))
-#define NAUTILUS_FLOATING_BAR_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_FLOATING_BAR, NautilusFloatingBarClass))
-#define NAUTILUS_IS_FLOATING_BAR(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_FLOATING_BAR))
-#define NAUTILUS_IS_FLOATING_BAR_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_FLOATING_BAR))
-#define NAUTILUS_FLOATING_BAR_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_FLOATING_BAR, NautilusFloatingBarClass))
-
-typedef struct _NautilusFloatingBar NautilusFloatingBar;
-typedef struct _NautilusFloatingBarClass NautilusFloatingBarClass;
-typedef struct _NautilusFloatingBarDetails NautilusFloatingBarDetails;
-
-struct _NautilusFloatingBar {
- GtkBox parent;
- NautilusFloatingBarDetails *priv;
-};
-
-struct _NautilusFloatingBarClass {
- GtkBoxClass parent_class;
-};
-
-/* GObject */
-GType nautilus_floating_bar_get_type (void);
+G_DECLARE_FINAL_TYPE (NautilusFloatingBar, nautilus_floating_bar, NAUTILUS, FLOATING_BAR, GtkBox)
GtkWidget * nautilus_floating_bar_new (const gchar *primary_label,
const gchar *details_label,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]