* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
- * Public License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* gparamspecs.h: GLib default param specs
*/
+#ifndef __G_PARAMSPECS_H__
+#define __G_PARAMSPECS_H__
+
#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
#error "Only <glib-object.h> can be included directly."
#endif
-#ifndef __G_PARAMSPECS_H__
-#define __G_PARAMSPECS_H__
-
#include <gobject/gvalue.h>
#include <gobject/genums.h>
#include <gobject/gboxed.h>
* G_TYPE_PARAM_VALUE_ARRAY:
*
* The #GType of #GParamSpecValueArray.
+ *
+ * Deprecated: 2.32: Use #GArray instead of #GValueArray
*/
#define G_TYPE_PARAM_VALUE_ARRAY (g_param_spec_types[18])
/**
* Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VALUE_ARRAY.
*
* Returns: %TRUE on success.
+ *
+ * Deprecated: 2.32: Use #GArray instead of #GValueArray
*/
#define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY))
/**
* @pspec: a valid #GParamSpec instance
*
* Cast a #GParamSpec instance into a #GParamSpecValueArray.
+ *
+ * Deprecated: 2.32: Use #GArray instead of #GValueArray
*/
#define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray))
*/
#define G_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType))
+/**
+ * G_TYPE_PARAM_VARIANT:
+ *
+ * The #GType of #GParamSpecVariant.
+ *
+ * Since: 2.26
+ */
+#define G_TYPE_PARAM_VARIANT (g_param_spec_types[22])
+/**
+ * G_IS_PARAM_SPEC_VARIANT:
+ * @pspec: a #GParamSpec
+ *
+ * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VARIANT.
+ *
+ * Returns: %TRUE on success
+ *
+ * Since: 2.26
+ */
+#define G_IS_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VARIANT))
+/**
+ * G_PARAM_SPEC_VARIANT:
+ * @pspec: a #GParamSpec
+ *
+ * Casts a #GParamSpec into a #GParamSpecVariant.
+ *
+ * Since: 2.26
+ */
+#define G_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VARIANT, GParamSpecVariant))
/* --- typedefs & structures --- */
typedef struct _GParamSpecChar GParamSpecChar;
typedef struct _GParamSpecObject GParamSpecObject;
typedef struct _GParamSpecOverride GParamSpecOverride;
typedef struct _GParamSpecGType GParamSpecGType;
+typedef struct _GParamSpecVariant GParamSpecVariant;
/**
* GParamSpecChar:
GParamSpec parent_instance;
GType is_a_type;
};
+/**
+ * GParamSpecVariant:
+ * @parent_instance: private #GParamSpec portion
+ * @type: a #GVariantType, or %NULL
+ * @default_value: a #GVariant, or %NULL
+ *
+ * A #GParamSpec derived structure that contains the meta data for #GVariant properties.
+ *
+ * Since: 2.26
+ */
+struct _GParamSpecVariant
+{
+ GParamSpec parent_instance;
+ GVariantType *type;
+ GVariant *default_value;
+
+ /*< private >*/
+ gpointer padding[4];
+};
/* --- GParamSpec prototypes --- */
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_char (const gchar *name,
const gchar *nick,
const gchar *blurb,
gint8 maximum,
gint8 default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_uchar (const gchar *name,
const gchar *nick,
const gchar *blurb,
guint8 maximum,
guint8 default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_boolean (const gchar *name,
const gchar *nick,
const gchar *blurb,
gboolean default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_int (const gchar *name,
const gchar *nick,
const gchar *blurb,
gint maximum,
gint default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_uint (const gchar *name,
const gchar *nick,
const gchar *blurb,
guint maximum,
guint default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_long (const gchar *name,
const gchar *nick,
const gchar *blurb,
glong maximum,
glong default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_ulong (const gchar *name,
const gchar *nick,
const gchar *blurb,
gulong maximum,
gulong default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_int64 (const gchar *name,
const gchar *nick,
const gchar *blurb,
gint64 maximum,
gint64 default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_uint64 (const gchar *name,
const gchar *nick,
const gchar *blurb,
guint64 maximum,
guint64 default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_unichar (const gchar *name,
const gchar *nick,
const gchar *blurb,
gunichar default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_enum (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType enum_type,
gint default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_flags (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType flags_type,
guint default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_float (const gchar *name,
const gchar *nick,
const gchar *blurb,
gfloat maximum,
gfloat default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_double (const gchar *name,
const gchar *nick,
const gchar *blurb,
gdouble maximum,
gdouble default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_string (const gchar *name,
const gchar *nick,
const gchar *blurb,
const gchar *default_value,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_param (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType param_type,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_boxed (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType boxed_type,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_pointer (const gchar *name,
const gchar *nick,
const gchar *blurb,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_value_array (const gchar *name,
const gchar *nick,
const gchar *blurb,
GParamSpec *element_spec,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_object (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType object_type,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_override (const gchar *name,
GParamSpec *overridden);
+GLIB_AVAILABLE_IN_ALL
GParamSpec* g_param_spec_gtype (const gchar *name,
const gchar *nick,
const gchar *blurb,
GType is_a_type,
GParamFlags flags);
+GLIB_AVAILABLE_IN_ALL
+GParamSpec* g_param_spec_variant (const gchar *name,
+ const gchar *nick,
+ const gchar *blurb,
+ const GVariantType *type,
+ GVariant *default_value,
+ GParamFlags flags);
/* --- internal --- */
/* We prefix variable declarations so they can
# endif /* !GOBJECT_COMPILATION */
# endif /* !GOBJECT_STATIC_COMPILATION */
# else /* !G_PLATFORM_WIN32 */
-# define GOBJECT_VAR extern
+# define GOBJECT_VAR _GLIB_EXTERN
# endif /* !G_PLATFORM_WIN32 */
#endif /* GOBJECT_VAR */