[gcr: 6/6] Add vala vapi files for Gck and Gcr libraries



commit c258c860e34b905e4c4a8095ddd3a9a9f583c9f8
Author: Stef Walter <stefw gnome org>
Date:   Sat Oct 20 14:03:38 2012 +0200

    Add vala vapi files for Gck and Gcr libraries
    
    https://bugzilla.gnome.org/show_bug.cgi?id=689685

 .gitignore                          |  6 ++++
 configure.ac                        | 13 ++++++++
 docs/reference/gcr/gcr-sections.txt |  4 ---
 gck/Gck-1.metadata                  |  2 ++
 gck/Makefile.am                     | 59 ++++++++++++++++++++++++++++---------
 gcr/Gcr-3.metadata                  |  5 ++++
 gcr/Makefile.am                     | 35 ++++++++++++++++++++++
 ui/GcrUi-3.metadata                 |  5 ++++
 ui/Makefile.am                      | 39 ++++++++++++++++++++++--
 ui/gcr-certificate-renderer.c       | 36 +++++++++++-----------
 ui/gcr-certificate-renderer.h       |  5 ----
 ui/gcr-certificate-widget.c         | 25 +++++++---------
 ui/gcr-certificate-widget.h         | 19 ++++++------
 ui/gcr-deprecated.h                 | 11 +++++++
 ui/gcr-renderer.c                   | 37 +++++++++++++++++++++++
 ui/gcr-renderer.h                   |  5 ++++
 ui/gcr-ui.symbols                   |  2 ++
 17 files changed, 241 insertions(+), 67 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 20f039f..4fb6aa0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,12 +81,16 @@ stamp-*
 /gck/*.pc
 /gck/gck-enum-types*
 /gck/gck-marshal.*
+/gck/gck-*.deps
+/gck/gck-*.vapi
 
 /gcr/*.pc
 /gcr/gcr-dbus-generated.*
 /gcr/gcr-enum-types*
 /gcr/gcr-oids.*
 /gcr/gcr-marshal.*
+/gcr/gcr-*.deps
+/gcr/gcr-*.vapi
 
 /ui/*.pc
 /ui/gcr-enum-types*
@@ -96,6 +100,8 @@ stamp-*
 /ui/gcr-viewer
 /ui/gcr-viewer.desktop
 /ui/gcr-viewer.desktop.in
+/ui/gcr-*.deps
+/ui/gcr-*.vapi
 
 /po/Makefile.in.in
 /po/*.sed
diff --git a/configure.ac b/configure.ac
index b32f723..6bbe3d5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -103,6 +103,18 @@ if test "x$enable_gtk_doc" = "xyes"; then
 fi
 
 # --------------------------------------------------------------------
+# Vala
+
+VALA_REQUIRED=0.18.0.22
+
+VAPIGEN_CHECK($VALA_REQUIRED)
+
+if test "$enable_vala" != "no"; then
+       AC_PATH_PROG([VALAC], [valac], [])
+fi
+AM_CONDITIONAL(HAVE_VALAC, test "x$VALAC" != "x")
+
+# --------------------------------------------------------------------
 # Checks for functions
 #
 
@@ -414,6 +426,7 @@ echo "  Debug Build:          $debug_status"
 echo "  Strict Compilation:   $strict_status"
 echo "  GTK+ Widgets:         $with_gtk"
 echo "  Introspection:        $found_introspection"
+echo "  Vala:                 $enable_vala"
 echo "  Valgrind:             $valgrind_status"
 echo "  Test Coverage:        ${enable_coverage:-no}"
 echo
diff --git a/docs/reference/gcr/gcr-sections.txt b/docs/reference/gcr/gcr-sections.txt
index b39923e..5f9d08e 100644
--- a/docs/reference/gcr/gcr-sections.txt
+++ b/docs/reference/gcr/gcr-sections.txt
@@ -517,14 +517,10 @@ GcrCertificateWidgetClass
 GcrCertificateRenderer
 GcrCertificateRendererClass
 gcr_certificate_widget_new
-gcr_certificate_widget_get_attributes
-gcr_certificate_widget_set_attributes
 gcr_certificate_widget_get_certificate
 gcr_certificate_widget_set_certificate
 gcr_certificate_renderer_new
 gcr_certificate_renderer_new_for_attributes
-gcr_certificate_renderer_get_attributes
-gcr_certificate_renderer_set_attributes
 gcr_certificate_renderer_get_certificate
 gcr_certificate_renderer_set_certificate
 <SUBSECTION Standard>
diff --git a/gck/Gck-1.metadata b/gck/Gck-1.metadata
new file mode 100644
index 0000000..b175213
--- /dev/null
+++ b/gck/Gck-1.metadata
@@ -0,0 +1,2 @@
+// Metadata file for Vala API generation.
+// See https://live.gnome.org/Vala/UpstreamGuide for more information
diff --git a/gck/Makefile.am b/gck/Makefile.am
index 771a443..9b30933 100644
--- a/gck/Makefile.am
+++ b/gck/Makefile.am
@@ -100,6 +100,21 @@ gck-enum-types.h: $(ENUM_TEMPLATE_H) $(HEADER_FILES)
 gck-enum-types.c: $(ENUM_TEMPLATE_C) $(HEADER_FILES)
        $(GLIB_MKENUMS) --template $^ > $@
 
+EXTRA_DIST = \
+       gck.pc.in \
+       gck-marshal.list \
+       gck.symbols \
+       pkcs11-trust-assertions.h \
+       pkcs11i.h
+
+CLEANFILES = \
+       gck-$(GCK_MAJOR).pc \
+       $(gir_DATA) \
+       $(typelibs_DATA) \
+       $(BUILT_SOURCES) \
+       gck-actual.abi \
+       gck-expected.abi
+
 # ------------------------------------------------------------------
 # INTROSPECTION
 
@@ -127,6 +142,36 @@ gir_DATA = $(INTROSPECTION_GIRS)
 typelibsdir = $(libdir)/girepository-1.0
 typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
 
+if ENABLE_VAPIGEN
+include $(VAPIGEN_MAKEFILE)
+
+gck- GCK_MAJOR@.vapi: Gck- GCK_MAJOR@.gir Gck- GCK_MAJOR@.metadata gck- GCK_MAJOR@.deps
+
+VAPIGEN_VAPIS = gck- GCK_MAJOR@.vapi
+
+gck_ GCK_MAJOR@_vapi_DEPS = glib-2.0 gio-2.0
+gck_ GCK_MAJOR@_vapi_METADATADIRS = $(srcdir)
+gck_ GCK_MAJOR@_vapi_FILES = Gck- GCK_MAJOR@.gir
+
+VAPI_DEPS = $(VAPIGEN_VAPIS:.vapi=.deps)
+
+gck-$(GCK_MAJOR).deps: Makefile.am
+       $(AM_V_GEN) echo $(gck_ GCK_MAJOR@_vapi_DEPS) | tr ' ' '\n' > $@
+
+vapidir = $(datadir)/vala/vapi
+vapi_DATA = \
+       $(VAPIGEN_VAPIS) \
+       $(VAPI_DEPS)
+
+EXTRA_DIST += \
+       Gck- GCK_MAJOR@.metadata
+
+CLEANFILES += \
+       $(VAPIGEN_VAPIS) \
+       $(VAPI_DEPS)
+
+endif # ENABLE_VAPIGEN
+
 endif
 
 # ----------------------------------------------------------------
@@ -152,17 +197,3 @@ check-local: check-symbols
 check-memory:
        make -C tests check-memory
 
-EXTRA_DIST = \
-       gck.pc.in \
-       gck-marshal.list \
-       gck.symbols \
-       pkcs11-trust-assertions.h \
-       pkcs11i.h
-
-CLEANFILES = \
-       gck-$(GCK_MAJOR).pc \
-       $(gir_DATA) \
-       $(typelibs_DATA) \
-       $(BUILT_SOURCES) \
-       gck-actual.abi \
-       gck-expected.abi
diff --git a/gcr/Gcr-3.metadata b/gcr/Gcr-3.metadata
new file mode 100644
index 0000000..cbecc9f
--- /dev/null
+++ b/gcr/Gcr-3.metadata
@@ -0,0 +1,5 @@
+// Metadata file for Vala API generation.
+// See https://live.gnome.org/Vala/UpstreamGuide for more information
+
+Certificate
+       .get_der_data#virtual_method name="provide_der_data"
\ No newline at end of file
diff --git a/gcr/Makefile.am b/gcr/Makefile.am
index d7ae74b..bd6bcfc 100644
--- a/gcr/Makefile.am
+++ b/gcr/Makefile.am
@@ -238,8 +238,43 @@ gir_DATA = $(INTROSPECTION_GIRS)
 typelibsdir = $(libdir)/girepository-1.0
 typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
 
+if ENABLE_VAPIGEN
+
+include $(VAPIGEN_MAKEFILE)
+
+gcr- GCR_MAJOR@.vapi: Gcr- GCR_MAJOR@.gir Gcr- GCR_MAJOR@.metadata gcr- GCR_MAJOR@.deps
+
+VAPIGEN_VAPIS = gcr- GCR_MAJOR@.vapi
+
+gcr_ GCR_MAJOR@_vapi_DEPS = glib-2.0 gio-2.0 gck- GCK_MAJOR@
+gcr_ GCR_MAJOR@_vapi_METADATADIRS = $(srcdir)
+gcr_ GCR_MAJOR@_vapi_VAPIDIRS = $(builddir)/../gck
+gcr_ GCR_MAJOR@_vapi_GIRDIRS = $(builddir)/../gck
+gcr_ GCR_MAJOR@_vapi_FILES = Gcr- GCR_MAJOR@.gir
+
+VAPI_DEPS = $(VAPIGEN_VAPIS:.vapi=.deps)
+
+gcr-$(GCR_MAJOR).deps: Makefile.am
+       $(AM_V_GEN) echo $(gcr_ GCR_MAJOR@_vapi_DEPS) | tr ' ' '\n' > $@
+
+vapidir = $(datadir)/vala/vapi
+vapi_DATA = \
+       $(VAPIGEN_VAPIS) \
+       $(VAPI_DEPS)
+
+EXTRA_DIST += \
+       Gcr- GCR_MAJOR@.metadata
+
+CLEANFILES += \
+       $(VAPIGEN_VAPIS) \
+       $(VAPI_DEPS)
+
+endif # ENABLE_VAPIGEN
+
 endif # HAVE_INTROSPECTON
 
+# ----------------------------------------------------------------
+
 gcr-base-expected.abi: gcr-base.symbols
        $(AM_V_GEN) cpp -P $< | sort > $@
 
diff --git a/ui/GcrUi-3.metadata b/ui/GcrUi-3.metadata
new file mode 100644
index 0000000..85cb51a
--- /dev/null
+++ b/ui/GcrUi-3.metadata
@@ -0,0 +1,5 @@
+// Metadata file for Vala API generation.
+// See https://live.gnome.org/Vala/UpstreamGuide for more information
+
+CertificateRenderer
+       .label skip=true
\ No newline at end of file
diff --git a/ui/Makefile.am b/ui/Makefile.am
index 97ccf28..012fe79 100644
--- a/ui/Makefile.am
+++ b/ui/Makefile.am
@@ -4,6 +4,9 @@ SUBDIRS = . icons tests
 
 incdir = $(includedir)/gcr- GCR_MAJOR@/ui
 
+EXTRA_DIST = 
+CLEANFILES =
+
 INCLUDES = \
        -I$(top_builddir) \
        -I$(top_srcdir) \
@@ -185,6 +188,38 @@ gir_DATA = $(INTROSPECTION_GIRS)
 typelibsdir = $(libdir)/girepository-1.0
 typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
 
+if ENABLE_VAPIGEN
+include $(VAPIGEN_MAKEFILE)
+
+gcr-ui- GCR_MAJOR@.vapi: GcrUi- GCR_MAJOR@.gir GcrUi- GCR_MAJOR@.metadata gcr-ui- GCR_MAJOR@.deps
+
+VAPIGEN_VAPIS = gcr-ui- GCR_MAJOR@.vapi
+
+gcr_ui_ GCR_MAJOR@_vapi_DEPS = glib-2.0 gio-2.0 gck- GCK_MAJOR@ gcr- GCR_MAJOR@ gtk+-3.0
+gcr_ui_ GCR_MAJOR@_vapi_METADATADIRS = $(srcdir)
+gcr_ui_ GCR_MAJOR@_vapi_VAPIDIRS = $(builddir) $(builddir)/../gck $(builddir)/../gcr
+gcr_ui_ GCR_MAJOR@_vapi_GIRDIRS = $(builddir) $(builddir)/../gck $(builddir)/../gcr
+gcr_ui_ GCR_MAJOR@_vapi_FILES = GcrUi- GCR_MAJOR@.gir
+
+VAPI_DEPS = $(VAPIGEN_VAPIS:.vapi=.deps)
+
+gcr-ui-$(GCR_MAJOR).deps: Makefile.am
+       $(AM_V_GEN) echo $(gcr_ui_ GCR_MAJOR@_vapi_DEPS) | tr ' ' '\n' > $@
+
+vapidir = $(datadir)/vala/vapi
+vapi_DATA = \
+       $(VAPIGEN_VAPIS) \
+       $(VAPI_DEPS)
+
+EXTRA_DIST += \
+       GcrUi- GCR_MAJOR@.metadata
+
+CLEANFILES += \
+       $(VAPIGEN_VAPIS) \
+       $(VAPI_DEPS)
+
+endif # ENABLE_VAPIGEN
+
 endif # HAVE_INTROSPECTION
 
 pkgconfig_DATA = \
@@ -231,7 +266,7 @@ gcr_prompter_LDADD = \
        $(top_builddir)/gck/libgck- GCK_MAJOR@.la \
        $(GTK_LIBS)
 
-EXTRA_DIST = \
+EXTRA_DIST += \
        gcr.pc.in \
        gcr-ui.pc.in \
        $(ui_DATA) \
@@ -239,7 +274,7 @@ EXTRA_DIST = \
        $(desktop_in_in_files) \
        $(mime_DATA)
 
-CLEANFILES = \
+CLEANFILES += \
        $(desktop_DATA) \
        gcr-ui-actual.abi \
        gcr-ui-expected.abi \
diff --git a/ui/gcr-certificate-renderer.c b/ui/gcr-certificate-renderer.c
index e730357..183962d 100644
--- a/ui/gcr-certificate-renderer.c
+++ b/ui/gcr-certificate-renderer.c
@@ -29,6 +29,7 @@
 #include "gcr-certificate-exporter.h"
 #include "gcr-certificate-renderer.h"
 #include "gcr-certificate-renderer-private.h"
+#include "gcr-deprecated.h"
 #include "gcr-display-view.h"
 #include "gcr-renderer.h"
 
@@ -384,7 +385,17 @@ gcr_certificate_renderer_set_property (GObject *obj, guint prop_id, const GValue
                gcr_renderer_emit_data_changed (GCR_RENDERER (self));
                break;
        case PROP_ATTRIBUTES:
-               gcr_certificate_renderer_set_attributes (self, g_value_get_boxed (value));
+               gck_attributes_unref (self->pv->opt_attrs);
+               self->pv->opt_attrs = g_value_get_boxed (value);
+               if (self->pv->opt_attrs)
+                       gck_attributes_ref (self->pv->opt_attrs);
+               if (self->pv->opt_cert) {
+                       g_object_unref (self->pv->opt_cert);
+                       g_object_notify (G_OBJECT (self), "certificate");
+                       self->pv->opt_cert = NULL;
+               }
+               gcr_renderer_emit_data_changed (GCR_RENDERER (self));
+               g_object_notify (G_OBJECT (self), "attributes");
                break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
@@ -742,12 +753,14 @@ gcr_certificate_renderer_set_certificate (GcrCertificateRenderer *self, GcrCerti
  * Get the PKCS\#11 attributes, if any, set for this renderer to display.
  *
  * Returns: (allow-none) (transfer none): the attributes, owned by the renderer
+ *
+ * Deprecated: 3.6: Use gcr_renderer_get_attributes() instead
  */
 GckAttributes *
 gcr_certificate_renderer_get_attributes (GcrCertificateRenderer *self)
 {
        g_return_val_if_fail (GCR_IS_CERTIFICATE_RENDERER (self), NULL);
-       return self->pv->opt_attrs;
+       return gcr_renderer_get_attributes (GCR_RENDERER (self));
 }
 
 /**
@@ -757,27 +770,14 @@ gcr_certificate_renderer_get_attributes (GcrCertificateRenderer *self)
  *
  * Set the PKCS\#11 attributes for this renderer to display. One of the attributes
  * should be a CKA_VALUE type attribute containing a DER encoded certificate.
+ *
+ * Deprecated: 3.6: Use gcr_renderer_set_attributes() instead
  */
 void
 gcr_certificate_renderer_set_attributes (GcrCertificateRenderer *self, GckAttributes *attrs)
 {
        g_return_if_fail (GCR_IS_CERTIFICATE_RENDERER (self));
-
-       gck_attributes_unref (self->pv->opt_attrs);
-       self->pv->opt_attrs = attrs;
-
-       if (self->pv->opt_attrs)
-               gck_attributes_ref (self->pv->opt_attrs);
-
-       if (self->pv->opt_cert) {
-               g_object_unref (self->pv->opt_cert);
-               g_object_notify (G_OBJECT (self), "certificate");
-               self->pv->opt_cert = NULL;
-       }
-
-       gcr_renderer_emit_data_changed (GCR_RENDERER (self));
-       g_object_notify (G_OBJECT (self), "attributes");
-
+       gcr_renderer_set_attributes (GCR_RENDERER (self), attrs);
 }
 
 typedef struct {
diff --git a/ui/gcr-certificate-renderer.h b/ui/gcr-certificate-renderer.h
index 13fa960..1161166 100644
--- a/ui/gcr-certificate-renderer.h
+++ b/ui/gcr-certificate-renderer.h
@@ -68,11 +68,6 @@ GcrCertificate*           gcr_certificate_renderer_get_certificate    (GcrCertif
 void                      gcr_certificate_renderer_set_certificate    (GcrCertificateRenderer *self,
                                                                        GcrCertificate *certificate);
 
-GckAttributes*            gcr_certificate_renderer_get_attributes     (GcrCertificateRenderer *self);
-
-void                      gcr_certificate_renderer_set_attributes     (GcrCertificateRenderer *self,
-                                                                       GckAttributes *attrs);
-
 G_END_DECLS
 
 #endif /* __GCR_CERTIFICATE_RENDERER_H__ */
diff --git a/ui/gcr-certificate-widget.c b/ui/gcr-certificate-widget.c
index 75f80ad..b92ffd2 100644
--- a/ui/gcr-certificate-widget.c
+++ b/ui/gcr-certificate-widget.c
@@ -23,6 +23,7 @@
 
 #include "gcr-certificate-renderer.h"
 #include "gcr-certificate-widget.h"
+#include "gcr-deprecated.h"
 #include "gcr-renderer.h"
 #include "gcr-viewer.h"
 
@@ -65,23 +66,12 @@ enum {
        PROP_ATTRIBUTES
 };
 
-struct _GcrCertificateWidget {
-       /*< private >*/
-       GtkAlignment parent;
-       GcrCertificateWidgetPrivate *pv;
-};
-
-struct _GcrCertificateWidgetClass {
-       /*< private >*/
-       GtkAlignmentClass parent_class;
-};
-
 struct _GcrCertificateWidgetPrivate {
        GcrViewer *viewer;
        GcrCertificateRenderer *renderer;
 };
 
-G_DEFINE_TYPE (GcrCertificateWidget, gcr_certificate_widget, GTK_TYPE_ALIGNMENT);
+G_DEFINE_TYPE (GcrCertificateWidget, gcr_certificate_widget, GTK_TYPE_WIDGET);
 
 /* -----------------------------------------------------------------------------
  * OBJECT
@@ -243,12 +233,14 @@ gcr_certificate_widget_set_certificate (GcrCertificateWidget *self, GcrCertifica
  * a certificate.
  *
  * Returns: (allow-none) (transfer none): the attributes, owned by the widget
+ *
+ * Deprecated: 3.6: Use gcr_renderer_get_attributes() instead
  */
 GckAttributes *
 gcr_certificate_widget_get_attributes (GcrCertificateWidget *self)
 {
        g_return_val_if_fail (GCR_IS_CERTIFICATE_WIDGET (self), NULL);
-       return gcr_certificate_renderer_get_attributes (self->pv->renderer);
+       return gcr_renderer_get_attributes (GCR_RENDERER (self->pv->renderer));
 }
 
 /**
@@ -258,10 +250,13 @@ gcr_certificate_widget_get_attributes (GcrCertificateWidget *self)
  *
  * Set the attributes displayed in the widget. The attributes should contain
  * a certificate.
+ *
+ * Deprecated: 3.6: Use gcr_renderer_set_attributes() instead
  */
 void
-gcr_certificate_widget_set_attributes (GcrCertificateWidget *self, GckAttributes* attrs)
+gcr_certificate_widget_set_attributes (GcrCertificateWidget *self,
+                                       GckAttributes *attrs)
 {
        g_return_if_fail (GCR_IS_CERTIFICATE_WIDGET (self));
-       gcr_certificate_renderer_set_attributes (self->pv->renderer, attrs);
+       gcr_renderer_set_attributes (GCR_RENDERER (self->pv->renderer), attrs);
 }
diff --git a/ui/gcr-certificate-widget.h b/ui/gcr-certificate-widget.h
index 9371a63..7c29e68 100644
--- a/ui/gcr-certificate-widget.h
+++ b/ui/gcr-certificate-widget.h
@@ -43,10 +43,16 @@ typedef struct _GcrCertificateWidget GcrCertificateWidget;
 typedef struct _GcrCertificateWidgetClass GcrCertificateWidgetClass;
 typedef struct _GcrCertificateWidgetPrivate GcrCertificateWidgetPrivate;
 
-/*
- * TODO: GcrCertificateWidget and GcrCertificateWidgetClass are hidden until
- * we can figure out what they should be derived from.
- */
+struct _GcrCertificateWidget {
+       /*< private >*/
+       GtkWidget parent;
+       GcrCertificateWidgetPrivate *pv;
+};
+
+struct _GcrCertificateWidgetClass {
+       /*< private >*/
+       GtkWidgetClass parent_class;
+};
 
 GType                   gcr_certificate_widget_get_type               (void);
 
@@ -57,11 +63,6 @@ GcrCertificate*         gcr_certificate_widget_get_certificate        (GcrCertif
 void                    gcr_certificate_widget_set_certificate        (GcrCertificateWidget *self,
                                                                        GcrCertificate *certificate);
 
-GckAttributes*          gcr_certificate_widget_get_attributes         (GcrCertificateWidget *self);
-
-void                    gcr_certificate_widget_set_attributes         (GcrCertificateWidget *self,
-                                                                       GckAttributes* attrs);
-
 G_END_DECLS
 
 #endif /* __GCR_CERTIFICATE_WIDGET_H__ */
diff --git a/ui/gcr-deprecated.h b/ui/gcr-deprecated.h
index 3447c84..f92b79d 100644
--- a/ui/gcr-deprecated.h
+++ b/ui/gcr-deprecated.h
@@ -34,6 +34,7 @@
 
 #include "gcr-certificate-basics-widget.h"
 #include "gcr-certificate-details-widget.h"
+#include "gcr-certificate-renderer.h"
 #include "gcr-viewer.h"
 
 G_BEGIN_DECLS
@@ -41,6 +42,16 @@ G_BEGIN_DECLS
 void              gcr_renderer_render                         (GcrRenderer *self,
                                                                GcrViewer *viewer);
 
+GckAttributes *   gcr_certificate_renderer_get_attributes     (GcrCertificateRenderer *self);
+
+void              gcr_certificate_renderer_set_attributes     (GcrCertificateRenderer *self,
+                                                               GckAttributes *attrs);
+
+GckAttributes *   gcr_certificate_widget_get_attributes       (GcrCertificateWidget *self);
+
+void              gcr_certificate_widget_set_attributes       (GcrCertificateWidget *self,
+                                                               GckAttributes *attrs);
+
 G_END_DECLS
 
 #endif /* __GI_SCANNER__ */
diff --git a/ui/gcr-renderer.c b/ui/gcr-renderer.c
index 30ce91f..e66ed89 100644
--- a/ui/gcr-renderer.c
+++ b/ui/gcr-renderer.c
@@ -186,6 +186,43 @@ gcr_renderer_emit_data_changed (GcrRenderer *self)
        g_signal_emit (self, signals[DATA_CHANGED], 0);
 }
 
+/**
+ * gcr_renderer_get_attributes:
+ * @self: The renderer
+ *
+ * Get the PKCS\#11 attributes, if any, set for this renderer to display.
+ *
+ * Returns: (allow-none) (transfer none): the attributes, owned by the renderer
+ */
+GckAttributes *
+gcr_renderer_get_attributes (GcrRenderer *self)
+{
+       GckAttributes *attrs;
+
+       g_return_val_if_fail (GCR_IS_RENDERER (self), NULL);
+
+       g_object_get (self, "attributes", &attrs, NULL);
+       if (attrs != NULL)
+               gck_attributes_unref (attrs);
+       return attrs;
+}
+
+/**
+ * gcr_renderer_set_attributes:
+ * @self: The renderer
+ * @attrs: (allow-none): attributes to set
+ *
+ * Set the PKCS\#11 attributes for this renderer to display.
+ */
+void
+gcr_renderer_set_attributes (GcrRenderer *self,
+                             GckAttributes *attrs)
+{
+       g_return_if_fail (GCR_IS_RENDERER (self));
+
+       g_object_set (self, "attributes", attrs, NULL);
+}
+
 static gint
 sort_registered_by_n_attrs (gconstpointer a, gconstpointer b)
 {
diff --git a/ui/gcr-renderer.h b/ui/gcr-renderer.h
index 2c898fa..8b6dc97 100644
--- a/ui/gcr-renderer.h
+++ b/ui/gcr-renderer.h
@@ -78,6 +78,11 @@ GcrRenderer*              gcr_renderer_create                     (const gchar *
 void                      gcr_renderer_register                   (GType renderer_type,
                                                                    GckAttributes *attrs);
 
+GckAttributes *           gcr_renderer_get_attributes             (GcrRenderer *self);
+
+void                      gcr_renderer_set_attributes             (GcrRenderer *self,
+                                                                   GckAttributes *attrs);
+
 void                   gcr_renderer_register_well_known           (void);
 
 G_END_DECLS
diff --git a/ui/gcr-ui.symbols b/ui/gcr-ui.symbols
index d334d49..cde2d44 100644
--- a/ui/gcr-ui.symbols
+++ b/ui/gcr-ui.symbols
@@ -65,12 +65,14 @@ gcr_list_selector_set_selected
 gcr_prompt_dialog_get_type
 gcr_renderer_create
 gcr_renderer_emit_data_changed
+gcr_renderer_get_attributes
 gcr_renderer_get_type
 gcr_renderer_popuplate_popup
 gcr_renderer_register
 gcr_renderer_register_well_known
 gcr_renderer_render
 gcr_renderer_render_view
+gcr_renderer_set_attributes
 gcr_secure_entry_buffer_get_type
 gcr_secure_entry_buffer_new
 gcr_tree_selector_get_collection


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