[gtk+] stylecontext: Make first property name explicit



commit 5b94fe6342605bc9606b1938ac13a56573a2d33a
Author: Benjamin Otte <otte redhat com>
Date:   Fri Nov 10 14:53:36 2017 +0100

    stylecontext: Make first property name explicit
    
    Insist that a first non-NULL property is passed to
    gtk_style_context_get().
    
    This is in particular relevant because of dropping the state argument
    since GTK3, and code like
      gtk_style_context_get (context, state, "font", &font);
    would keep compiling without warnings without this change.

 gtk/gtkstylecontext.c |   12 +++++++++---
 gtk/gtkstylecontext.h |    2 ++
 2 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index 02955e9..f70bc3a 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -749,6 +749,7 @@ gtk_style_context_get_property (GtkStyleContext *context,
 /**
  * gtk_style_context_get_valist:
  * @context: a #GtkStyleContext
+ * @first_property_name: Name of the first property
  * @args: va_list of property name/return location pairs, followed by %NULL
  *
  * Retrieves several style property values from @context for a given state.
@@ -765,13 +766,15 @@ gtk_style_context_get_property (GtkStyleContext *context,
  */
 void
 gtk_style_context_get_valist (GtkStyleContext *context,
+                              const char      *first_property_name,
                               va_list          args)
 {
   const gchar *property_name;
 
   g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
+  g_return_if_fail (first_property_name != NULL);
 
-  property_name = va_arg (args, const gchar *);
+  property_name = first_property_name;
 
   while (property_name)
     {
@@ -799,6 +802,7 @@ gtk_style_context_get_valist (GtkStyleContext *context,
 /**
  * gtk_style_context_get:
  * @context: a #GtkStyleContext
+ * @first_property_name: Name of the first property
  * @...: property name /return value pairs, followed by %NULL
  *
  * Retrieves several style property values from @context for a
@@ -816,14 +820,16 @@ gtk_style_context_get_valist (GtkStyleContext *context,
  */
 void
 gtk_style_context_get (GtkStyleContext *context,
+                       const char      *first_property_name,
                        ...)
 {
   va_list args;
 
   g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
+  g_return_if_fail (first_property_name != NULL);
 
-  va_start (args, context);
-  gtk_style_context_get_valist (context, args);
+  va_start (args, first_property_name);
+  gtk_style_context_get_valist (context, first_property_name, args);
   va_end (args);
 }
 
diff --git a/gtk/gtkstylecontext.h b/gtk/gtkstylecontext.h
index 58da54d..0b58d5e 100644
--- a/gtk/gtkstylecontext.h
+++ b/gtk/gtkstylecontext.h
@@ -1005,9 +1005,11 @@ void gtk_style_context_get_property (GtkStyleContext *context,
                                      GValue          *value);
 GDK_AVAILABLE_IN_ALL
 void gtk_style_context_get_valist   (GtkStyleContext *context,
+                                     const char      *first_property_name,
                                      va_list          args);
 GDK_AVAILABLE_IN_ALL
 void gtk_style_context_get          (GtkStyleContext *context,
+                                     const char      *first_property_name,
                                      ...) G_GNUC_NULL_TERMINATED;
 
 GDK_AVAILABLE_IN_ALL


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]