[gtk/ebassi/for-master: 4/6] a11y: Add getters for GtkAtSpiContext
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/ebassi/for-master: 4/6] a11y: Add getters for GtkAtSpiContext
- Date: Mon, 16 Nov 2020 16:45:35 +0000 (UTC)
commit bc4f71a107e66d7d2efe5f64589d0a655ace71ce
Author: Emmanuele Bassi <ebassi gnome org>
Date: Mon Nov 16 15:21:58 2020 +0000
a11y: Add getters for GtkAtSpiContext
We are going to use them in order to implement atspi.Cache.
gtk/a11y/gtkatspicontext.c | 36 ++++++++++++++++++++++++++++++++++++
gtk/a11y/gtkatspicontextprivate.h | 13 +++++++++++++
gtk/a11y/gtkatspiprivate.h | 4 ++++
3 files changed, 53 insertions(+)
---
diff --git a/gtk/a11y/gtkatspicontext.c b/gtk/a11y/gtkatspicontext.c
index 735b661945..28753f9f98 100644
--- a/gtk/a11y/gtkatspicontext.c
+++ b/gtk/a11y/gtkatspicontext.c
@@ -1798,6 +1798,42 @@ gtk_at_spi_context_to_ref (GtkAtSpiContext *self)
return g_variant_new ("(so)", name, self->context_path);
}
+
+GVariant *
+gtk_at_spi_context_get_interfaces (GtkAtSpiContext *self)
+{
+ g_return_val_if_fail (GTK_IS_AT_SPI_CONTEXT (self), NULL);
+
+ return self->interfaces;
+}
+
+GVariant *
+gtk_at_spi_context_get_states (GtkAtSpiContext *self)
+{
+ GVariantBuilder builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE ("au"));
+
+ collect_states (self, &builder);
+
+ return g_variant_builder_end (&builder);
+}
+
+GVariant *
+gtk_at_spi_context_get_parent_ref (GtkAtSpiContext *self)
+{
+ g_return_val_if_fail (GTK_IS_AT_SPI_CONTEXT (self), NULL);
+
+ GtkAccessible *accessible = gtk_at_context_get_accessible (GTK_AT_CONTEXT (self));
+
+ return get_parent_context_ref (accessible);
+}
+
+GtkAtSpiRoot *
+gtk_at_spi_context_get_root (GtkAtSpiContext *self)
+{
+ g_return_val_if_fail (GTK_IS_AT_SPI_CONTEXT (self), NULL);
+
+ return self->root;
+}
/* }}} */
/* vim:set foldmethod=marker expandtab: */
diff --git a/gtk/a11y/gtkatspicontextprivate.h b/gtk/a11y/gtkatspicontextprivate.h
index b0cd407579..0c95b8af07 100644
--- a/gtk/a11y/gtkatspicontextprivate.h
+++ b/gtk/a11y/gtkatspicontextprivate.h
@@ -21,6 +21,7 @@
#pragma once
#include "gtkatcontextprivate.h"
+#include "gtkatspiprivate.h"
G_BEGIN_DECLS
@@ -39,4 +40,16 @@ gtk_at_spi_context_get_context_path (GtkAtSpiContext *self);
GVariant *
gtk_at_spi_context_to_ref (GtkAtSpiContext *self);
+GtkAtSpiRoot *
+gtk_at_spi_context_get_root (GtkAtSpiContext *self);
+
+GVariant *
+gtk_at_spi_context_get_parent_ref (GtkAtSpiContext *self);
+
+GVariant *
+gtk_at_spi_context_get_interfaces (GtkAtSpiContext *self);
+
+GVariant *
+gtk_at_spi_context_get_states (GtkAtSpiContext *self);
+
G_END_DECLS
diff --git a/gtk/a11y/gtkatspiprivate.h b/gtk/a11y/gtkatspiprivate.h
index ee3c51c4f6..1202885475 100644
--- a/gtk/a11y/gtkatspiprivate.h
+++ b/gtk/a11y/gtkatspiprivate.h
@@ -273,4 +273,8 @@ typedef enum {
ATSPI_SCROLL_ANYWHERE
} AtspiScrollType;
+typedef struct _GtkAtSpiRoot GtkAtSpiRoot;
+typedef struct _GtkAtSpiCache GtkAtSpiCache;
+typedef struct _GtkAtSpiContext GtkAtSpiContext;
+
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]