[kdbus] sync with kdbus (kdbus.h - commit: 5ae1ecac44cb)
[platform/upstream/glib.git] / gio / gicon.h
index f75dfbf..5a09864 100644 (file)
  * 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 <gio/giotypes.h>
 
 G_BEGIN_DECLS
@@ -47,7 +45,13 @@ 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
@@ -59,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