Add a GtkTextAccessible

Add an accessible implementation for GtkText.
This commit is contained in:
Matthias Clasen 2019-02-15 21:30:36 -05:00
parent fcb58887fa
commit 936181f354
4 changed files with 1091 additions and 13 deletions

1030
gtk/a11y/gtktextaccessible.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
/* GTK+ - accessibility implementations
* Copyright 2001 Sun Microsystems Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GTK_TEXT_ACCESSIBLE_H__
#define __GTK_TEXT_ACCESSIBLE_H__
#if !defined (__GTK_A11Y_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk-a11y.h> can be included directly."
#endif
#include <gtk/a11y/gtkwidgetaccessible.h>
G_BEGIN_DECLS
#define GTK_TYPE_TEXT_ACCESSIBLE (gtk_text_accessible_get_type ())
#define GTK_TEXT_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TEXT_ACCESSIBLE, GtkTextAccessible))
#define GTK_TEXT_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TEXT_ACCESSIBLE, GtkTextAccessibleClass))
#define GTK_IS_TEXT_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TEXT_ACCESSIBLE))
#define GTK_IS_TEXT_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TEXT_ACCESSIBLE))
#define GTK_TEXT_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TEXT_ACCESSIBLE, GtkTextAccessibleClass))
typedef struct _GtkTextAccessible GtkTextAccessible;
typedef struct _GtkTextAccessibleClass GtkTextAccessibleClass;
typedef struct _GtkTextAccessiblePrivate GtkTextAccessiblePrivate;
struct _GtkTextAccessible
{
GtkWidgetAccessible parent;
GtkTextAccessiblePrivate *priv;
};
struct _GtkTextAccessibleClass
{
GtkWidgetAccessibleClass parent_class;
};
GDK_AVAILABLE_IN_ALL
GType gtk_text_accessible_get_type (void);
G_END_DECLS
#endif /* __GTK_TEXT_ACCESSIBLE_H__ */

View File

@ -46,6 +46,7 @@ a11y_sources = files([
'gtkstackaccessible.c',
'gtkstatusbaraccessible.c',
'gtkswitchaccessible.c',
'gtktextaccessible.c',
'gtktextcellaccessible.c',
'gtktextviewaccessible.c',
'gtktogglebuttonaccessible.c',
@ -100,6 +101,7 @@ a11y_headers = files([
'gtkstackaccessible.h',
'gtkstatusbaraccessible.h',
'gtkswitchaccessible.h',
'gtktextaccessible.h',
'gtktextcellaccessible.h',
'gtktextviewaccessible.h',
'gtktogglebuttonaccessible.h',

View File

@ -67,7 +67,7 @@
#include "gtkwidgetprivate.h"
#include "gtkwindow.h"
#include "a11y/gtkentryaccessible.h"
#include "a11y/gtktextaccessible.h"
#include <cairo-gobject.h>
#include <string.h>
@ -228,17 +228,6 @@ struct _GtkTextPrivate
guint populate_all : 1;
};
struct _EntryIconInfo
{
GtkWidget *widget;
gchar *tooltip;
guint nonactivatable : 1;
guint in_drag : 1;
GdkDragAction actions;
GdkContentFormats *target_list;
};
struct _GtkTextPasswordHint
{
int position; /* Position (in text) of the last password hint */
@ -1370,7 +1359,7 @@ gtk_text_class_init (GtkTextClass *class)
gtk_binding_entry_add_signal (binding_set, GDK_KEY_semicolon, GDK_CONTROL_MASK,
"insert-emoji", 0);
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_ENTRY_ACCESSIBLE);
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TEXT_ACCESSIBLE);
gtk_widget_class_set_css_name (widget_class, I_("text"));
}