(root)/
glib-2.79.0/
gobject/
gvaluetypes.h
       1  /* GObject - GLib Type, Object, Parameter and Signal Library
       2   * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc.
       3   *
       4   * SPDX-License-Identifier: LGPL-2.1-or-later
       5   *
       6   * This library is free software; you can redistribute it and/or
       7   * modify it under the terms of the GNU Lesser General Public
       8   * License as published by the Free Software Foundation; either
       9   * version 2.1 of the License, or (at your option) any later version.
      10   *
      11   * This library is distributed in the hope that it will be useful,
      12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
      13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
      14   * Lesser General Public License for more details.
      15   *
      16   * You should have received a copy of the GNU Lesser General
      17   * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
      18   *
      19   * gvaluetypes.h: GLib default values
      20   */
      21  #ifndef __G_VALUETYPES_H__
      22  #define __G_VALUETYPES_H__
      23  
      24  #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
      25  #error "Only <glib-object.h> can be included directly."
      26  #endif
      27  
      28  #include	<gobject/gvalue.h>
      29  
      30  G_BEGIN_DECLS
      31  
      32  /* --- type macros --- */
      33  /**
      34   * G_VALUE_HOLDS_CHAR:
      35   * @value: a valid #GValue structure
      36   * 
      37   * Checks whether the given #GValue can hold values of type %G_TYPE_CHAR.
      38   * 
      39   * Returns: %TRUE on success.
      40   */
      41  #define G_VALUE_HOLDS_CHAR(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_CHAR))
      42  /**
      43   * G_VALUE_HOLDS_UCHAR:
      44   * @value: a valid #GValue structure
      45   * 
      46   * Checks whether the given #GValue can hold values of type %G_TYPE_UCHAR.
      47   * 
      48   * Returns: %TRUE on success.
      49   */
      50  #define G_VALUE_HOLDS_UCHAR(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UCHAR))
      51  /**
      52   * G_VALUE_HOLDS_BOOLEAN:
      53   * @value: a valid #GValue structure
      54   * 
      55   * Checks whether the given #GValue can hold values of type %G_TYPE_BOOLEAN.
      56   * 
      57   * Returns: %TRUE on success.
      58   */
      59  #define G_VALUE_HOLDS_BOOLEAN(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOOLEAN))
      60  /**
      61   * G_VALUE_HOLDS_INT:
      62   * @value: a valid #GValue structure
      63   * 
      64   * Checks whether the given #GValue can hold values of type %G_TYPE_INT.
      65   * 
      66   * Returns: %TRUE on success.
      67   */
      68  #define G_VALUE_HOLDS_INT(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT))
      69  /**
      70   * G_VALUE_HOLDS_UINT:
      71   * @value: a valid #GValue structure
      72   * 
      73   * Checks whether the given #GValue can hold values of type %G_TYPE_UINT.
      74   * 
      75   * Returns: %TRUE on success.
      76   */
      77  #define G_VALUE_HOLDS_UINT(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT))
      78  /**
      79   * G_VALUE_HOLDS_LONG:
      80   * @value: a valid #GValue structure
      81   * 
      82   * Checks whether the given #GValue can hold values of type %G_TYPE_LONG.
      83   * 
      84   * Returns: %TRUE on success.
      85   */
      86  #define G_VALUE_HOLDS_LONG(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_LONG))
      87  /**
      88   * G_VALUE_HOLDS_ULONG:
      89   * @value: a valid #GValue structure
      90   * 
      91   * Checks whether the given #GValue can hold values of type %G_TYPE_ULONG.
      92   * 
      93   * Returns: %TRUE on success.
      94   */
      95  #define G_VALUE_HOLDS_ULONG(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ULONG))
      96  /**
      97   * G_VALUE_HOLDS_INT64:
      98   * @value: a valid #GValue structure
      99   * 
     100   * Checks whether the given #GValue can hold values of type %G_TYPE_INT64.
     101   * 
     102   * Returns: %TRUE on success.
     103   */
     104  #define G_VALUE_HOLDS_INT64(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT64))
     105  /**
     106   * G_VALUE_HOLDS_UINT64:
     107   * @value: a valid #GValue structure
     108   * 
     109   * Checks whether the given #GValue can hold values of type %G_TYPE_UINT64.
     110   * 
     111   * Returns: %TRUE on success.
     112   */
     113  #define G_VALUE_HOLDS_UINT64(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT64))
     114  /**
     115   * G_VALUE_HOLDS_FLOAT:
     116   * @value: a valid #GValue structure
     117   * 
     118   * Checks whether the given #GValue can hold values of type %G_TYPE_FLOAT.
     119   * 
     120   * Returns: %TRUE on success.
     121   */
     122  #define G_VALUE_HOLDS_FLOAT(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLOAT))
     123  /**
     124   * G_VALUE_HOLDS_DOUBLE:
     125   * @value: a valid #GValue structure
     126   * 
     127   * Checks whether the given #GValue can hold values of type %G_TYPE_DOUBLE.
     128   * 
     129   * Returns: %TRUE on success.
     130   */
     131  #define G_VALUE_HOLDS_DOUBLE(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_DOUBLE))
     132  /**
     133   * G_VALUE_HOLDS_STRING:
     134   * @value: a valid #GValue structure
     135   * 
     136   * Checks whether the given #GValue can hold values of type %G_TYPE_STRING.
     137   * 
     138   * Returns: %TRUE on success.
     139   */
     140  #define G_VALUE_HOLDS_STRING(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_STRING))
     141  /**
     142   * G_VALUE_IS_INTERNED_STRING:
     143   * @value: a valid #GValue structure
     144   *
     145   * Checks whether @value contains a string which is canonical.
     146   *
     147   * Returns: %TRUE if the value contains a string in its canonical
     148   * representation, as returned by g_intern_string(). See also
     149   * g_value_set_interned_string().
     150   *
     151   * Since: 2.66
     152   */
     153  #define G_VALUE_IS_INTERNED_STRING(value) (G_VALUE_HOLDS_STRING (value) && ((value)->data[1].v_uint & G_VALUE_INTERNED_STRING)) GOBJECT_AVAILABLE_MACRO_IN_2_66
     154  /**
     155   * G_VALUE_HOLDS_POINTER:
     156   * @value: a valid #GValue structure
     157   * 
     158   * Checks whether the given #GValue can hold values of type %G_TYPE_POINTER.
     159   * 
     160   * Returns: %TRUE on success.
     161   */
     162  #define G_VALUE_HOLDS_POINTER(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_POINTER))
     163  /**
     164   * G_TYPE_GTYPE:
     165   * 
     166   * The type for #GType.
     167   */
     168  #define	G_TYPE_GTYPE			 (g_gtype_get_type())
     169  /**
     170   * G_VALUE_HOLDS_GTYPE:
     171   * @value: a valid #GValue structure
     172   * 
     173   * Checks whether the given #GValue can hold values of type %G_TYPE_GTYPE.
     174   * 
     175   * Since: 2.12
     176   * Returns: %TRUE on success.
     177   */
     178  #define G_VALUE_HOLDS_GTYPE(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_GTYPE))
     179  /**
     180   * G_VALUE_HOLDS_VARIANT:
     181   * @value: a valid #GValue structure
     182   *
     183   * Checks whether the given #GValue can hold values of type %G_TYPE_VARIANT.
     184   *
     185   * Returns: %TRUE on success.
     186   *
     187   * Since: 2.26
     188   */
     189  #define G_VALUE_HOLDS_VARIANT(value)     (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_VARIANT))
     190  
     191  
     192  /* --- prototypes --- */
     193  GOBJECT_DEPRECATED_IN_2_32_FOR(g_value_set_schar)
     194  void                  g_value_set_char          (GValue       *value,
     195                                                   gchar         v_char);
     196  GOBJECT_DEPRECATED_IN_2_32_FOR(g_value_get_schar)
     197  gchar                 g_value_get_char          (const GValue *value);
     198  GOBJECT_AVAILABLE_IN_ALL
     199  void		      g_value_set_schar		(GValue	      *value,
     200  						 gint8	       v_char);
     201  GOBJECT_AVAILABLE_IN_ALL
     202  gint8		      g_value_get_schar		(const GValue *value);
     203  GOBJECT_AVAILABLE_IN_ALL
     204  void		      g_value_set_uchar		(GValue	      *value,
     205  						 guchar	       v_uchar);
     206  GOBJECT_AVAILABLE_IN_ALL
     207  guchar		      g_value_get_uchar		(const GValue *value);
     208  GOBJECT_AVAILABLE_IN_ALL
     209  void		      g_value_set_boolean	(GValue	      *value,
     210  						 gboolean      v_boolean);
     211  GOBJECT_AVAILABLE_IN_ALL
     212  gboolean	      g_value_get_boolean	(const GValue *value);
     213  GOBJECT_AVAILABLE_IN_ALL
     214  void		      g_value_set_int		(GValue	      *value,
     215  						 gint	       v_int);
     216  GOBJECT_AVAILABLE_IN_ALL
     217  gint		      g_value_get_int		(const GValue *value);
     218  GOBJECT_AVAILABLE_IN_ALL
     219  void		      g_value_set_uint		(GValue	      *value,
     220  						 guint	       v_uint);
     221  GOBJECT_AVAILABLE_IN_ALL
     222  guint		      g_value_get_uint		(const GValue *value);
     223  GOBJECT_AVAILABLE_IN_ALL
     224  void		      g_value_set_long		(GValue	      *value,
     225  						 glong	       v_long);
     226  GOBJECT_AVAILABLE_IN_ALL
     227  glong		      g_value_get_long		(const GValue *value);
     228  GOBJECT_AVAILABLE_IN_ALL
     229  void		      g_value_set_ulong		(GValue	      *value,
     230  						 gulong	       v_ulong);
     231  GOBJECT_AVAILABLE_IN_ALL
     232  gulong		      g_value_get_ulong		(const GValue *value);
     233  GOBJECT_AVAILABLE_IN_ALL
     234  void		      g_value_set_int64		(GValue	      *value,
     235  						 gint64	       v_int64);
     236  GOBJECT_AVAILABLE_IN_ALL
     237  gint64		      g_value_get_int64		(const GValue *value);
     238  GOBJECT_AVAILABLE_IN_ALL
     239  void		      g_value_set_uint64	(GValue	      *value,
     240  						 guint64      v_uint64);
     241  GOBJECT_AVAILABLE_IN_ALL
     242  guint64		      g_value_get_uint64	(const GValue *value);
     243  GOBJECT_AVAILABLE_IN_ALL
     244  void		      g_value_set_float		(GValue	      *value,
     245  						 gfloat	       v_float);
     246  GOBJECT_AVAILABLE_IN_ALL
     247  gfloat		      g_value_get_float		(const GValue *value);
     248  GOBJECT_AVAILABLE_IN_ALL
     249  void		      g_value_set_double	(GValue	      *value,
     250  						 gdouble       v_double);
     251  GOBJECT_AVAILABLE_IN_ALL
     252  gdouble		      g_value_get_double	(const GValue *value);
     253  GOBJECT_AVAILABLE_IN_ALL
     254  void		      g_value_set_string	(GValue	      *value,
     255  						 const gchar  *v_string);
     256  GOBJECT_AVAILABLE_IN_ALL
     257  void		      g_value_set_static_string (GValue	      *value,
     258  						 const gchar  *v_string);
     259  GOBJECT_AVAILABLE_IN_2_66
     260  void		      g_value_set_interned_string (GValue      *value,
     261  						   const gchar  *v_string);
     262  GOBJECT_AVAILABLE_IN_ALL
     263  const gchar *         g_value_get_string	(const GValue *value);
     264  GOBJECT_AVAILABLE_IN_ALL
     265  gchar*		      g_value_dup_string	(const GValue *value);
     266  GOBJECT_AVAILABLE_IN_2_80
     267  gchar*		      g_value_steal_string	(GValue *value);
     268  GOBJECT_AVAILABLE_IN_ALL
     269  void		      g_value_set_pointer	(GValue	      *value,
     270  						 gpointer      v_pointer);
     271  GOBJECT_AVAILABLE_IN_ALL
     272  gpointer	      g_value_get_pointer	(const GValue *value);
     273  GOBJECT_AVAILABLE_IN_ALL
     274  GType		      g_gtype_get_type		(void);
     275  GOBJECT_AVAILABLE_IN_ALL
     276  void		      g_value_set_gtype	        (GValue	      *value,
     277  						 GType         v_gtype);
     278  GOBJECT_AVAILABLE_IN_ALL
     279  GType	              g_value_get_gtype	        (const GValue *value);
     280  GOBJECT_AVAILABLE_IN_ALL
     281  void		      g_value_set_variant	(GValue	      *value,
     282  						 GVariant     *variant);
     283  GOBJECT_AVAILABLE_IN_ALL
     284  void		      g_value_take_variant	(GValue	      *value,
     285  						 GVariant     *variant);
     286  GOBJECT_AVAILABLE_IN_ALL
     287  GVariant*	      g_value_get_variant	(const GValue *value);
     288  GOBJECT_AVAILABLE_IN_ALL
     289  GVariant*	      g_value_dup_variant	(const GValue *value);
     290  
     291  
     292  /* Convenience for registering new pointer types */
     293  GOBJECT_AVAILABLE_IN_ALL
     294  GType                 g_pointer_type_register_static (const gchar *name);
     295  
     296  /* debugging aid, describe value contents as string */
     297  GOBJECT_AVAILABLE_IN_ALL
     298  gchar*                g_strdup_value_contents   (const GValue *value);
     299  
     300  
     301  GOBJECT_AVAILABLE_IN_ALL
     302  void g_value_take_string		        (GValue		   *value,
     303  						 gchar		   *v_string);
     304  GOBJECT_DEPRECATED_FOR(g_value_take_string)
     305  void g_value_set_string_take_ownership          (GValue            *value,
     306                                                   gchar             *v_string);
     307  
     308  
     309  /* humpf, need a C representable type name for G_TYPE_STRING */
     310  /**
     311   * gchararray:
     312   * 
     313   * A C representable type name for %G_TYPE_STRING.
     314   */
     315  typedef gchar* gchararray;
     316  
     317  
     318  G_END_DECLS
     319  
     320  #endif /* __G_VALUETYPES_H__ */