cleanup
[platform/upstream/glib.git] / gio / gicon.h
index dd02889..5a09864 100644 (file)
@@ -1,5 +1,5 @@
 /* GIO - GLib Input, Output and Streaming Library
- * 
+ *
  * Copyright (C) 2006-2007 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * 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/>.
  *
  * Author: Alexander Larsson <alexl@redhat.com>
  */
 
+#ifndef __G_ICON_H__
+#define __G_ICON_H__
+
 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
 #error "Only <gio/gio.h> can be included directly."
 #endif
 
-#ifndef __G_ICON_H__
-#define __G_ICON_H__
-
-#include <glib-object.h>
+#include <gio/giotypes.h>
 
 G_BEGIN_DECLS
 
@@ -41,14 +39,19 @@ G_BEGIN_DECLS
  *
  * An abstract type that specifies an icon.
  **/
-typedef struct _GIcon                  GIcon; /* Dummy typedef */
-typedef struct _GIconIface             GIconIface;
+typedef struct _GIconIface GIconIface;
 
 /**
  * GIconIface:
  * @g_iface: The parent interface.
  * @hash: A hash for a given #GIcon.
- * @equal: Checks if two #GIcon<!-- -->s are equal.
+ * @equal: Checks if two #GIcons are equal.
+ * @to_tokens: Serializes a #GIcon into tokens. The tokens must not
+ * contain any whitespace. Don't implement if the #GIcon can't be
+ * serialized (Since 2.20).
+ * @from_tokens: Constructs a #GIcon from tokens. Set the #GError if
+ * the tokens are malformed. Don't implement if the #GIcon can't be
+ * serialized (Since 2.20).
  *
  * GIconIface is used to implement GIcon types for various
  * different systems. See #GThemedIcon and #GLoadableIcon for
@@ -60,16 +63,38 @@ struct _GIconIface
 
   /* Virtual Table */
 
-  guint               (*hash)               (GIcon                *icon);
-  gboolean            (*equal)              (GIcon                *icon1,
-                                            GIcon                *icon2);
+  guint       (* hash)        (GIcon   *icon);
+  gboolean    (* equal)       (GIcon   *icon1,
+                               GIcon   *icon2);
+  gboolean    (* to_tokens)   (GIcon   *icon,
+                              GPtrArray *tokens,
+                               gint    *out_version);
+  GIcon *     (* from_tokens) (gchar  **tokens,
+                               gint     num_tokens,
+                               gint     version,
+                               GError **error);
+
+  GVariant *  (* serialize)   (GIcon   *icon);
 };
 
-GType g_icon_get_type (void) G_GNUC_CONST;
+GLIB_AVAILABLE_IN_ALL
+GType    g_icon_get_type  (void) G_GNUC_CONST;
+
+GLIB_AVAILABLE_IN_ALL
+guint    g_icon_hash            (gconstpointer  icon);
+GLIB_AVAILABLE_IN_ALL
+gboolean g_icon_equal           (GIcon         *icon1,
+                                 GIcon         *icon2);
+GLIB_AVAILABLE_IN_ALL
+gchar   *g_icon_to_string       (GIcon         *icon);
+GLIB_AVAILABLE_IN_ALL
+GIcon   *g_icon_new_for_string  (const gchar   *str,
+                                 GError       **error);
 
-guint    g_icon_hash  (gconstpointer  icon);
-gboolean g_icon_equal (GIcon         *icon1,
-                      GIcon         *icon2);
+GLIB_AVAILABLE_IN_2_38
+GVariant * g_icon_serialize     (GIcon         *icon);
+GLIB_AVAILABLE_IN_2_38
+GIcon *    g_icon_deserialize   (GVariant      *value);
 
 G_END_DECLS