forked from AuroraMiddleware/gtk
First cut at GailEntry -> GtkEntryAccessible
Replace the factory for entry and spin button with gtk_widget_class_set_accessible_type() calls, and move then to the GtkAccessible namespace.
This commit is contained in:
parent
c2d1e3eeb0
commit
918514d51d
@ -18,7 +18,7 @@ gail_c_sources = \
|
||||
gailcombobox.c \
|
||||
gailcontainer.c \
|
||||
gailcontainercell.c \
|
||||
gailentry.c \
|
||||
gtkentryaccessible.c \
|
||||
gailexpander.c \
|
||||
gailframe.c \
|
||||
gailimage.c \
|
||||
@ -43,7 +43,7 @@ gail_c_sources = \
|
||||
gailscrollbar.c \
|
||||
gailscrolledwindow.c \
|
||||
gailseparator.c \
|
||||
gailspinbutton.c \
|
||||
gtkspinbuttonaccessible.c \
|
||||
gailsubmenuitem.c \
|
||||
gailstatusbar.c \
|
||||
gailtextcell.c \
|
||||
@ -72,7 +72,7 @@ gail_private_h_sources = \
|
||||
gailcombobox.h \
|
||||
gailcontainercell.h \
|
||||
gailcontainer.h \
|
||||
gailentry.h \
|
||||
gtkentryaccessible.h \
|
||||
gailexpander.h \
|
||||
gailfactory.h \
|
||||
gailframe.h \
|
||||
@ -98,7 +98,7 @@ gail_private_h_sources = \
|
||||
gailscrollbar.h \
|
||||
gailscrolledwindow.h \
|
||||
gailseparator.h \
|
||||
gailspinbutton.h \
|
||||
gtkspinbuttonaccessible.h \
|
||||
gailsubmenuitem.h \
|
||||
gailstatusbar.h \
|
||||
gailtextcell.h \
|
||||
|
@ -34,7 +34,6 @@
|
||||
#include "gailcombobox.h"
|
||||
#include "gailcontainer.h"
|
||||
#include "gailcontainercell.h"
|
||||
#include "gailentry.h"
|
||||
#include "gailexpander.h"
|
||||
#include "gailframe.h"
|
||||
#include "gailimage.h"
|
||||
@ -55,7 +54,6 @@
|
||||
#include "gailscrollbar.h"
|
||||
#include "gailscrolledwindow.h"
|
||||
#include "gailseparator.h"
|
||||
#include "gailspinbutton.h"
|
||||
#include "gailstatusbar.h"
|
||||
#include "gailtextcell.h"
|
||||
#include "gailtextview.h"
|
||||
@ -121,7 +119,6 @@ GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_TOGGLE_BUTTON, GailToggleButton, gail_toggle_b
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_IMAGE, GailImage, gail_image, GTK_TYPE_IMAGE)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_TEXT_VIEW, GailTextView, gail_text_view, GTK_TYPE_TEXT_VIEW)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_COMBO_BOX, GailComboBox, gail_combo_box, GTK_TYPE_COMBO_BOX)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_ENTRY, GailEntry, gail_entry, GTK_TYPE_ENTRY)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_MENU_SHELL, GailMenuShell, gail_menu_shell, GTK_TYPE_MENU_SHELL)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_MENU, GailMenu, gail_menu, GTK_TYPE_MENU)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_WINDOW, GailWindow, gail_window, GTK_TYPE_BIN)
|
||||
@ -132,7 +129,6 @@ GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_STATUSBAR, GailStatusbar, gail_statusbar, GTK_
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_NOTEBOOK, GailNotebook, gail_notebook, GTK_TYPE_NOTEBOOK)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_CALENDAR, GailCalendar, gail_calendar, GTK_TYPE_CALENDAR)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_PROGRESS_BAR, GailProgressBar, gail_progress_bar, GTK_TYPE_PROGRESS_BAR)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_SPIN_BUTTON, GailSpinButton, gail_spin_button, GTK_TYPE_SPIN_BUTTON)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_TREE_VIEW, GailTreeView, gail_tree_view, GTK_TYPE_TREE_VIEW)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_FRAME, GailFrame, gail_frame, GTK_TYPE_FRAME)
|
||||
GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_RADIO_BUTTON, GailRadioButton, gail_radio_button, GTK_TYPE_RADIO_BUTTON)
|
||||
@ -898,7 +894,6 @@ gail_accessibility_module_init (void)
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_IMAGE, gail_image);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_TEXT_VIEW, gail_text_view);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_COMBO_BOX, gail_combo_box);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_ENTRY, gail_entry);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_MENU_BAR, gail_menu_shell);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_MENU, gail_menu);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_WINDOW, gail_window);
|
||||
@ -909,7 +904,6 @@ gail_accessibility_module_init (void)
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_NOTEBOOK, gail_notebook);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CALENDAR, gail_calendar);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_PROGRESS_BAR, gail_progress_bar);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_SPIN_BUTTON, gail_spin_button);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_TREE_VIEW, gail_tree_view);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_FRAME, gail_frame);
|
||||
GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER_TEXT, gail_text_cell);
|
||||
|
@ -1,53 +0,0 @@
|
||||
/* GAIL - The GNOME Accessibility Implementation Library
|
||||
* 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, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GAIL_SPIN_BUTTON_H__
|
||||
#define __GAIL_SPIN_BUTTON_H__
|
||||
|
||||
#include "gailentry.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GAIL_TYPE_SPIN_BUTTON (gail_spin_button_get_type ())
|
||||
#define GAIL_SPIN_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_SPIN_BUTTON, GailSpinButton))
|
||||
#define GAIL_SPIN_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_SPIN_BUTTON, GailSpinButtonClass))
|
||||
#define GAIL_IS_SPIN_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_SPIN_BUTTON))
|
||||
#define GAIL_IS_SPIN_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_SPIN_BUTTON))
|
||||
#define GAIL_SPIN_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_SPIN_BUTTON, GailSpinButtonClass))
|
||||
|
||||
typedef struct _GailSpinButton GailSpinButton;
|
||||
typedef struct _GailSpinButtonClass GailSpinButtonClass;
|
||||
|
||||
struct _GailSpinButton
|
||||
{
|
||||
GailEntry parent;
|
||||
|
||||
AtkObject *adjustment;
|
||||
};
|
||||
|
||||
GType gail_spin_button_get_type (void);
|
||||
|
||||
struct _GailSpinButtonClass
|
||||
{
|
||||
GailEntryClass parent_class;
|
||||
};
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GAIL_SPIN_BUTTON_H__ */
|
@ -22,155 +22,155 @@
|
||||
#include <string.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
#include "gailentry.h"
|
||||
#include "gtkentryaccessible.h"
|
||||
#include "gailcombobox.h"
|
||||
#include <libgail-util/gailmisc.h>
|
||||
|
||||
static void gail_entry_class_init (GailEntryClass *klass);
|
||||
static void gail_entry_init (GailEntry *entry);
|
||||
static void gail_entry_real_initialize (AtkObject *obj,
|
||||
static void gtk_entry_accessible_class_init (GtkEntryAccessibleClass *klass);
|
||||
static void gtk_entry_accessible_init (GtkEntryAccessible *entry);
|
||||
static void gtk_entry_accessible_real_initialize (AtkObject *obj,
|
||||
gpointer data);
|
||||
static void text_setup (GailEntry *entry,
|
||||
static void text_setup (GtkEntryAccessible *entry,
|
||||
GtkEntry *gtk_entry);
|
||||
static void gail_entry_real_notify_gtk (GObject *obj,
|
||||
static void gtk_entry_accessible_real_notify_gtk (GObject *obj,
|
||||
GParamSpec *pspec);
|
||||
static void gail_entry_finalize (GObject *object);
|
||||
static void gtk_entry_accessible_finalize (GObject *object);
|
||||
|
||||
static gint gail_entry_get_index_in_parent (AtkObject *accessible);
|
||||
static gint gtk_entry_accessible_get_index_in_parent (AtkObject *accessible);
|
||||
|
||||
/* atkobject.h */
|
||||
|
||||
static AtkStateSet* gail_entry_ref_state_set (AtkObject *accessible);
|
||||
static AtkAttributeSet* gail_entry_get_attributes (AtkObject *accessible);
|
||||
static AtkStateSet* gtk_entry_accessible_ref_state_set (AtkObject *accessible);
|
||||
static AtkAttributeSet* gtk_entry_accessible_get_attributes (AtkObject *accessible);
|
||||
|
||||
/* atktext.h */
|
||||
|
||||
static void atk_text_interface_init (AtkTextIface *iface);
|
||||
|
||||
static gchar* gail_entry_get_text (AtkText *text,
|
||||
static gchar* gtk_entry_accessible_get_text (AtkText *text,
|
||||
gint start_pos,
|
||||
gint end_pos);
|
||||
static gunichar gail_entry_get_character_at_offset
|
||||
static gunichar gtk_entry_accessible_get_character_at_offset
|
||||
(AtkText *text,
|
||||
gint offset);
|
||||
static gchar* gail_entry_get_text_before_offset(AtkText *text,
|
||||
static gchar* gtk_entry_accessible_get_text_before_offset(AtkText *text,
|
||||
gint offset,
|
||||
AtkTextBoundary boundary_type,
|
||||
gint *start_offset,
|
||||
gint *end_offset);
|
||||
static gchar* gail_entry_get_text_at_offset (AtkText *text,
|
||||
static gchar* gtk_entry_accessible_get_text_at_offset (AtkText *text,
|
||||
gint offset,
|
||||
AtkTextBoundary boundary_type,
|
||||
gint *start_offset,
|
||||
gint *end_offset);
|
||||
static gchar* gail_entry_get_text_after_offset (AtkText *text,
|
||||
static gchar* gtk_entry_accessible_get_text_after_offset (AtkText *text,
|
||||
gint offset,
|
||||
AtkTextBoundary boundary_type,
|
||||
gint *start_offset,
|
||||
gint *end_offset);
|
||||
static gint gail_entry_get_caret_offset (AtkText *text);
|
||||
static gboolean gail_entry_set_caret_offset (AtkText *text,
|
||||
static gint gtk_entry_accessible_get_caret_offset (AtkText *text);
|
||||
static gboolean gtk_entry_accessible_set_caret_offset (AtkText *text,
|
||||
gint offset);
|
||||
static gint gail_entry_get_n_selections (AtkText *text);
|
||||
static gchar* gail_entry_get_selection (AtkText *text,
|
||||
static gint gtk_entry_accessible_get_n_selections (AtkText *text);
|
||||
static gchar* gtk_entry_accessible_get_selection (AtkText *text,
|
||||
gint selection_num,
|
||||
gint *start_offset,
|
||||
gint *end_offset);
|
||||
static gboolean gail_entry_add_selection (AtkText *text,
|
||||
static gboolean gtk_entry_accessible_add_selection (AtkText *text,
|
||||
gint start_offset,
|
||||
gint end_offset);
|
||||
static gboolean gail_entry_remove_selection (AtkText *text,
|
||||
static gboolean gtk_entry_accessible_remove_selection (AtkText *text,
|
||||
gint selection_num);
|
||||
static gboolean gail_entry_set_selection (AtkText *text,
|
||||
static gboolean gtk_entry_accessible_set_selection (AtkText *text,
|
||||
gint selection_num,
|
||||
gint start_offset,
|
||||
gint end_offset);
|
||||
static gint gail_entry_get_character_count (AtkText *text);
|
||||
static AtkAttributeSet * gail_entry_get_run_attributes
|
||||
static gint gtk_entry_accessible_get_character_count (AtkText *text);
|
||||
static AtkAttributeSet * gtk_entry_accessible_get_run_attributes
|
||||
(AtkText *text,
|
||||
gint offset,
|
||||
gint *start_offset,
|
||||
gint *end_offset);
|
||||
static AtkAttributeSet * gail_entry_get_default_attributes
|
||||
static AtkAttributeSet * gtk_entry_accessible_get_default_attributes
|
||||
(AtkText *text);
|
||||
static void gail_entry_get_character_extents (AtkText *text,
|
||||
static void gtk_entry_accessible_get_character_extents (AtkText *text,
|
||||
gint offset,
|
||||
gint *x,
|
||||
gint *y,
|
||||
gint *width,
|
||||
gint *height,
|
||||
AtkCoordType coords);
|
||||
static gint gail_entry_get_offset_at_point (AtkText *text,
|
||||
static gint gtk_entry_accessible_get_offset_at_point (AtkText *text,
|
||||
gint x,
|
||||
gint y,
|
||||
AtkCoordType coords);
|
||||
/* atkeditabletext.h */
|
||||
|
||||
static void atk_editable_text_interface_init (AtkEditableTextIface *iface);
|
||||
static void gail_entry_set_text_contents (AtkEditableText *text,
|
||||
static void gtk_entry_accessible_set_text_contents (AtkEditableText *text,
|
||||
const gchar *string);
|
||||
static void gail_entry_insert_text (AtkEditableText *text,
|
||||
static void gtk_entry_accessible_insert_text (AtkEditableText *text,
|
||||
const gchar *string,
|
||||
gint length,
|
||||
gint *position);
|
||||
static void gail_entry_copy_text (AtkEditableText *text,
|
||||
static void gtk_entry_accessible_copy_text (AtkEditableText *text,
|
||||
gint start_pos,
|
||||
gint end_pos);
|
||||
static void gail_entry_cut_text (AtkEditableText *text,
|
||||
static void gtk_entry_accessible_cut_text (AtkEditableText *text,
|
||||
gint start_pos,
|
||||
gint end_pos);
|
||||
static void gail_entry_delete_text (AtkEditableText *text,
|
||||
static void gtk_entry_accessible_delete_text (AtkEditableText *text,
|
||||
gint start_pos,
|
||||
gint end_pos);
|
||||
static void gail_entry_paste_text (AtkEditableText *text,
|
||||
static void gtk_entry_accessible_paste_text (AtkEditableText *text,
|
||||
gint position);
|
||||
static void gail_entry_paste_received (GtkClipboard *clipboard,
|
||||
static void gtk_entry_accessible_paste_received (GtkClipboard *clipboard,
|
||||
const gchar *text,
|
||||
gpointer data);
|
||||
|
||||
|
||||
/* Callbacks */
|
||||
|
||||
static gboolean gail_entry_idle_notify_insert (gpointer data);
|
||||
static void gail_entry_notify_insert (GailEntry *entry);
|
||||
static void gail_entry_notify_delete (GailEntry *entry);
|
||||
static void _gail_entry_insert_text_cb (GtkEntry *entry,
|
||||
static gboolean gtk_entry_accessible_idle_notify_insert (gpointer data);
|
||||
static void gtk_entry_accessible_notify_insert (GtkEntryAccessible *entry);
|
||||
static void gtk_entry_accessible_notify_delete (GtkEntryAccessible *entry);
|
||||
static void _gtk_entry_accessible_insert_text_cb (GtkEntry *entry,
|
||||
gchar *arg1,
|
||||
gint arg2,
|
||||
gpointer arg3);
|
||||
static void _gail_entry_delete_text_cb (GtkEntry *entry,
|
||||
static void _gtk_entry_accessible_delete_text_cb (GtkEntry *entry,
|
||||
gint arg1,
|
||||
gint arg2);
|
||||
static void _gail_entry_changed_cb (GtkEntry *entry);
|
||||
static gboolean check_for_selection_change (GailEntry *entry,
|
||||
static void _gtk_entry_accessible_changed_cb (GtkEntry *entry);
|
||||
static gboolean check_for_selection_change (GtkEntryAccessible *entry,
|
||||
GtkEntry *gtk_entry);
|
||||
|
||||
static void atk_action_interface_init (AtkActionIface *iface);
|
||||
|
||||
static gboolean gail_entry_do_action (AtkAction *action,
|
||||
static gboolean gtk_entry_accessible_do_action (AtkAction *action,
|
||||
gint i);
|
||||
static gboolean idle_do_action (gpointer data);
|
||||
static gint gail_entry_get_n_actions (AtkAction *action);
|
||||
static const gchar* gail_entry_get_keybinding (AtkAction *action,
|
||||
static gint gtk_entry_accessible_get_n_actions (AtkAction *action);
|
||||
static const gchar* gtk_entry_accessible_get_keybinding (AtkAction *action,
|
||||
gint i);
|
||||
static const gchar* gail_entry_action_get_name (AtkAction *action,
|
||||
static const gchar* gtk_entry_accessible_action_get_name (AtkAction *action,
|
||||
gint i);
|
||||
|
||||
typedef struct _GailEntryPaste GailEntryPaste;
|
||||
typedef struct _GtkEntryAccessiblePaste GtkEntryAccessiblePaste;
|
||||
|
||||
struct _GailEntryPaste
|
||||
struct _GtkEntryAccessiblePaste
|
||||
{
|
||||
GtkEntry* entry;
|
||||
gint position;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (GailEntry, gail_entry, GAIL_TYPE_WIDGET,
|
||||
G_DEFINE_TYPE_WITH_CODE (GtkEntryAccessible, gtk_entry_accessible, GAIL_TYPE_WIDGET,
|
||||
G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT, atk_editable_text_interface_init)
|
||||
G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init)
|
||||
G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
|
||||
|
||||
static void
|
||||
gail_entry_class_init (GailEntryClass *klass)
|
||||
gtk_entry_accessible_class_init (GtkEntryAccessibleClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
|
||||
@ -178,18 +178,18 @@ gail_entry_class_init (GailEntryClass *klass)
|
||||
|
||||
widget_class = (GailWidgetClass*)klass;
|
||||
|
||||
gobject_class->finalize = gail_entry_finalize;
|
||||
gobject_class->finalize = gtk_entry_accessible_finalize;
|
||||
|
||||
class->ref_state_set = gail_entry_ref_state_set;
|
||||
class->get_index_in_parent = gail_entry_get_index_in_parent;
|
||||
class->initialize = gail_entry_real_initialize;
|
||||
class->get_attributes = gail_entry_get_attributes;
|
||||
class->ref_state_set = gtk_entry_accessible_ref_state_set;
|
||||
class->get_index_in_parent = gtk_entry_accessible_get_index_in_parent;
|
||||
class->initialize = gtk_entry_accessible_real_initialize;
|
||||
class->get_attributes = gtk_entry_accessible_get_attributes;
|
||||
|
||||
widget_class->notify_gtk = gail_entry_real_notify_gtk;
|
||||
widget_class->notify_gtk = gtk_entry_accessible_real_notify_gtk;
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_init (GailEntry *entry)
|
||||
gtk_entry_accessible_init (GtkEntryAccessible *entry)
|
||||
{
|
||||
entry->textutil = NULL;
|
||||
entry->signal_name_insert = NULL;
|
||||
@ -200,34 +200,34 @@ gail_entry_init (GailEntry *entry)
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_real_initialize (AtkObject *obj,
|
||||
gtk_entry_accessible_real_initialize (AtkObject *obj,
|
||||
gpointer data)
|
||||
{
|
||||
GtkEntry *entry;
|
||||
GailEntry *gail_entry;
|
||||
GtkEntryAccessible *gtk_entry_accessible;
|
||||
gint start_pos, end_pos;
|
||||
|
||||
ATK_OBJECT_CLASS (gail_entry_parent_class)->initialize (obj, data);
|
||||
ATK_OBJECT_CLASS (gtk_entry_accessible_parent_class)->initialize (obj, data);
|
||||
|
||||
gail_entry = GAIL_ENTRY (obj);
|
||||
gail_entry->textutil = gail_text_util_new ();
|
||||
gtk_entry_accessible = GTK_ENTRY_ACCESSIBLE (obj);
|
||||
gtk_entry_accessible->textutil = gail_text_util_new ();
|
||||
|
||||
g_assert (GTK_IS_ENTRY (data));
|
||||
|
||||
entry = GTK_ENTRY (data);
|
||||
text_setup (gail_entry, entry);
|
||||
text_setup (gtk_entry_accessible, entry);
|
||||
gtk_editable_get_selection_bounds (GTK_EDITABLE (entry),
|
||||
&start_pos, &end_pos);
|
||||
gail_entry->cursor_position = end_pos;
|
||||
gail_entry->selection_bound = start_pos;
|
||||
gtk_entry_accessible->cursor_position = end_pos;
|
||||
gtk_entry_accessible->selection_bound = start_pos;
|
||||
|
||||
/* Set up signal callbacks */
|
||||
g_signal_connect (data, "insert-text",
|
||||
G_CALLBACK (_gail_entry_insert_text_cb), NULL);
|
||||
G_CALLBACK (_gtk_entry_accessible_insert_text_cb), NULL);
|
||||
g_signal_connect (data, "delete-text",
|
||||
G_CALLBACK (_gail_entry_delete_text_cb), NULL);
|
||||
G_CALLBACK (_gtk_entry_accessible_delete_text_cb), NULL);
|
||||
g_signal_connect (data, "changed",
|
||||
G_CALLBACK (_gail_entry_changed_cb), NULL);
|
||||
G_CALLBACK (_gtk_entry_accessible_changed_cb), NULL);
|
||||
|
||||
if (gtk_entry_get_visibility (entry))
|
||||
obj->role = ATK_ROLE_TEXT;
|
||||
@ -236,23 +236,23 @@ gail_entry_real_initialize (AtkObject *obj,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_real_notify_gtk (GObject *obj,
|
||||
gtk_entry_accessible_real_notify_gtk (GObject *obj,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
AtkObject* atk_obj;
|
||||
GtkEntry* gtk_entry;
|
||||
GailEntry* entry;
|
||||
GtkEntryAccessible* entry;
|
||||
|
||||
widget = GTK_WIDGET (obj);
|
||||
atk_obj = gtk_widget_get_accessible (widget);
|
||||
gtk_entry = GTK_ENTRY (widget);
|
||||
entry = GAIL_ENTRY (atk_obj);
|
||||
entry = GTK_ENTRY_ACCESSIBLE (atk_obj);
|
||||
|
||||
if (strcmp (pspec->name, "cursor-position") == 0)
|
||||
{
|
||||
if (entry->insert_idle_handler == 0)
|
||||
entry->insert_idle_handler = gdk_threads_add_idle (gail_entry_idle_notify_insert, entry);
|
||||
entry->insert_idle_handler = gdk_threads_add_idle (gtk_entry_accessible_idle_notify_insert, entry);
|
||||
|
||||
if (check_for_selection_change (entry, gtk_entry))
|
||||
g_signal_emit_by_name (atk_obj, "text_selection_changed");
|
||||
@ -265,7 +265,7 @@ gail_entry_real_notify_gtk (GObject *obj,
|
||||
else if (strcmp (pspec->name, "selection-bound") == 0)
|
||||
{
|
||||
if (entry->insert_idle_handler == 0)
|
||||
entry->insert_idle_handler = gdk_threads_add_idle (gail_entry_idle_notify_insert, entry);
|
||||
entry->insert_idle_handler = gdk_threads_add_idle (gtk_entry_accessible_idle_notify_insert, entry);
|
||||
|
||||
if (check_for_selection_change (entry, gtk_entry))
|
||||
g_signal_emit_by_name (atk_obj, "text_selection_changed");
|
||||
@ -301,11 +301,11 @@ gail_entry_real_notify_gtk (GObject *obj,
|
||||
}
|
||||
}
|
||||
else
|
||||
GAIL_WIDGET_CLASS (gail_entry_parent_class)->notify_gtk (obj, pspec);
|
||||
GAIL_WIDGET_CLASS (gtk_entry_accessible_parent_class)->notify_gtk (obj, pspec);
|
||||
}
|
||||
|
||||
static void
|
||||
text_setup (GailEntry *entry,
|
||||
text_setup (GtkEntryAccessible *entry,
|
||||
GtkEntry *gtk_entry)
|
||||
{
|
||||
if (gtk_entry_get_visibility (gtk_entry))
|
||||
@ -339,9 +339,9 @@ text_setup (GailEntry *entry,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_finalize (GObject *object)
|
||||
gtk_entry_accessible_finalize (GObject *object)
|
||||
{
|
||||
GailEntry *entry = GAIL_ENTRY (object);
|
||||
GtkEntryAccessible *entry = GTK_ENTRY_ACCESSIBLE (object);
|
||||
|
||||
g_object_unref (entry->textutil);
|
||||
g_free (entry->activate_keybinding);
|
||||
@ -355,11 +355,11 @@ gail_entry_finalize (GObject *object)
|
||||
g_source_remove (entry->insert_idle_handler);
|
||||
entry->insert_idle_handler = 0;
|
||||
}
|
||||
G_OBJECT_CLASS (gail_entry_parent_class)->finalize (object);
|
||||
G_OBJECT_CLASS (gtk_entry_accessible_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static gint
|
||||
gail_entry_get_index_in_parent (AtkObject *accessible)
|
||||
gtk_entry_accessible_get_index_in_parent (AtkObject *accessible)
|
||||
{
|
||||
/*
|
||||
* If the parent widget is a combo box then the index is 1
|
||||
@ -369,20 +369,20 @@ gail_entry_get_index_in_parent (AtkObject *accessible)
|
||||
if (GAIL_IS_COMBO_BOX (accessible->accessible_parent))
|
||||
return 1;
|
||||
|
||||
return ATK_OBJECT_CLASS (gail_entry_parent_class)->get_index_in_parent (accessible);
|
||||
return ATK_OBJECT_CLASS (gtk_entry_accessible_parent_class)->get_index_in_parent (accessible);
|
||||
}
|
||||
|
||||
/* atkobject.h */
|
||||
|
||||
static AtkStateSet*
|
||||
gail_entry_ref_state_set (AtkObject *accessible)
|
||||
gtk_entry_accessible_ref_state_set (AtkObject *accessible)
|
||||
{
|
||||
AtkStateSet *state_set;
|
||||
GtkEntry *entry;
|
||||
gboolean value;
|
||||
GtkWidget *widget;
|
||||
|
||||
state_set = ATK_OBJECT_CLASS (gail_entry_parent_class)->ref_state_set (accessible);
|
||||
state_set = ATK_OBJECT_CLASS (gtk_entry_accessible_parent_class)->ref_state_set (accessible);
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
|
||||
|
||||
if (widget == NULL)
|
||||
@ -399,14 +399,14 @@ gail_entry_ref_state_set (AtkObject *accessible)
|
||||
}
|
||||
|
||||
static AtkAttributeSet *
|
||||
gail_entry_get_attributes (AtkObject *accessible)
|
||||
gtk_entry_accessible_get_attributes (AtkObject *accessible)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
AtkAttributeSet *attributes;
|
||||
AtkAttribute *placeholder_text;
|
||||
const gchar *text;
|
||||
|
||||
attributes = ATK_OBJECT_CLASS (gail_entry_parent_class)->get_attributes (accessible);
|
||||
attributes = ATK_OBJECT_CLASS (gtk_entry_accessible_parent_class)->get_attributes (accessible);
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
|
||||
if (widget == NULL)
|
||||
@ -430,27 +430,27 @@ gail_entry_get_attributes (AtkObject *accessible)
|
||||
static void
|
||||
atk_text_interface_init (AtkTextIface *iface)
|
||||
{
|
||||
iface->get_text = gail_entry_get_text;
|
||||
iface->get_character_at_offset = gail_entry_get_character_at_offset;
|
||||
iface->get_text_before_offset = gail_entry_get_text_before_offset;
|
||||
iface->get_text_at_offset = gail_entry_get_text_at_offset;
|
||||
iface->get_text_after_offset = gail_entry_get_text_after_offset;
|
||||
iface->get_caret_offset = gail_entry_get_caret_offset;
|
||||
iface->set_caret_offset = gail_entry_set_caret_offset;
|
||||
iface->get_character_count = gail_entry_get_character_count;
|
||||
iface->get_n_selections = gail_entry_get_n_selections;
|
||||
iface->get_selection = gail_entry_get_selection;
|
||||
iface->add_selection = gail_entry_add_selection;
|
||||
iface->remove_selection = gail_entry_remove_selection;
|
||||
iface->set_selection = gail_entry_set_selection;
|
||||
iface->get_run_attributes = gail_entry_get_run_attributes;
|
||||
iface->get_default_attributes = gail_entry_get_default_attributes;
|
||||
iface->get_character_extents = gail_entry_get_character_extents;
|
||||
iface->get_offset_at_point = gail_entry_get_offset_at_point;
|
||||
iface->get_text = gtk_entry_accessible_get_text;
|
||||
iface->get_character_at_offset = gtk_entry_accessible_get_character_at_offset;
|
||||
iface->get_text_before_offset = gtk_entry_accessible_get_text_before_offset;
|
||||
iface->get_text_at_offset = gtk_entry_accessible_get_text_at_offset;
|
||||
iface->get_text_after_offset = gtk_entry_accessible_get_text_after_offset;
|
||||
iface->get_caret_offset = gtk_entry_accessible_get_caret_offset;
|
||||
iface->set_caret_offset = gtk_entry_accessible_set_caret_offset;
|
||||
iface->get_character_count = gtk_entry_accessible_get_character_count;
|
||||
iface->get_n_selections = gtk_entry_accessible_get_n_selections;
|
||||
iface->get_selection = gtk_entry_accessible_get_selection;
|
||||
iface->add_selection = gtk_entry_accessible_add_selection;
|
||||
iface->remove_selection = gtk_entry_accessible_remove_selection;
|
||||
iface->set_selection = gtk_entry_accessible_set_selection;
|
||||
iface->get_run_attributes = gtk_entry_accessible_get_run_attributes;
|
||||
iface->get_default_attributes = gtk_entry_accessible_get_default_attributes;
|
||||
iface->get_character_extents = gtk_entry_accessible_get_character_extents;
|
||||
iface->get_offset_at_point = gtk_entry_accessible_get_offset_at_point;
|
||||
}
|
||||
|
||||
static gchar*
|
||||
gail_entry_get_text (AtkText *text,
|
||||
gtk_entry_accessible_get_text (AtkText *text,
|
||||
gint start_pos,
|
||||
gint end_pos)
|
||||
{
|
||||
@ -461,11 +461,11 @@ gail_entry_get_text (AtkText *text,
|
||||
/* State is defunct */
|
||||
return NULL;
|
||||
|
||||
return gail_text_util_get_substring (GAIL_ENTRY (text)->textutil, start_pos, end_pos);
|
||||
return gail_text_util_get_substring (GTK_ENTRY_ACCESSIBLE (text)->textutil, start_pos, end_pos);
|
||||
}
|
||||
|
||||
static gchar*
|
||||
gail_entry_get_text_before_offset (AtkText *text,
|
||||
gtk_entry_accessible_get_text_before_offset (AtkText *text,
|
||||
gint offset,
|
||||
AtkTextBoundary boundary_type,
|
||||
gint *start_offset,
|
||||
@ -482,13 +482,13 @@ gail_entry_get_text_before_offset (AtkText *text,
|
||||
/* Get Entry */
|
||||
entry = GTK_ENTRY (widget);
|
||||
|
||||
return gail_text_util_get_text (GAIL_ENTRY (text)->textutil,
|
||||
return gail_text_util_get_text (GTK_ENTRY_ACCESSIBLE (text)->textutil,
|
||||
gtk_entry_get_layout (entry), GAIL_BEFORE_OFFSET,
|
||||
boundary_type, offset, start_offset, end_offset);
|
||||
}
|
||||
|
||||
static gchar*
|
||||
gail_entry_get_text_at_offset (AtkText *text,
|
||||
gtk_entry_accessible_get_text_at_offset (AtkText *text,
|
||||
gint offset,
|
||||
AtkTextBoundary boundary_type,
|
||||
gint *start_offset,
|
||||
@ -505,13 +505,13 @@ gail_entry_get_text_at_offset (AtkText *text,
|
||||
/* Get Entry */
|
||||
entry = GTK_ENTRY (widget);
|
||||
|
||||
return gail_text_util_get_text (GAIL_ENTRY (text)->textutil,
|
||||
return gail_text_util_get_text (GTK_ENTRY_ACCESSIBLE (text)->textutil,
|
||||
gtk_entry_get_layout (entry), GAIL_AT_OFFSET,
|
||||
boundary_type, offset, start_offset, end_offset);
|
||||
}
|
||||
|
||||
static gchar*
|
||||
gail_entry_get_text_after_offset (AtkText *text,
|
||||
gtk_entry_accessible_get_text_after_offset (AtkText *text,
|
||||
gint offset,
|
||||
AtkTextBoundary boundary_type,
|
||||
gint *start_offset,
|
||||
@ -528,13 +528,13 @@ gail_entry_get_text_after_offset (AtkText *text,
|
||||
/* Get Entry */
|
||||
entry = GTK_ENTRY (widget);
|
||||
|
||||
return gail_text_util_get_text (GAIL_ENTRY (text)->textutil,
|
||||
return gail_text_util_get_text (GTK_ENTRY_ACCESSIBLE (text)->textutil,
|
||||
gtk_entry_get_layout (entry), GAIL_AFTER_OFFSET,
|
||||
boundary_type, offset, start_offset, end_offset);
|
||||
}
|
||||
|
||||
static gint
|
||||
gail_entry_get_character_count (AtkText *text)
|
||||
gtk_entry_accessible_get_character_count (AtkText *text)
|
||||
{
|
||||
GtkEntry *entry;
|
||||
GtkWidget *widget;
|
||||
@ -549,7 +549,7 @@ gail_entry_get_character_count (AtkText *text)
|
||||
}
|
||||
|
||||
static gint
|
||||
gail_entry_get_caret_offset (AtkText *text)
|
||||
gtk_entry_accessible_get_caret_offset (AtkText *text)
|
||||
{
|
||||
GtkEntry *entry;
|
||||
GtkWidget *widget;
|
||||
@ -565,7 +565,7 @@ gail_entry_get_caret_offset (AtkText *text)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gail_entry_set_caret_offset (AtkText *text, gint offset)
|
||||
gtk_entry_accessible_set_caret_offset (AtkText *text, gint offset)
|
||||
{
|
||||
GtkEntry *entry;
|
||||
GtkWidget *widget;
|
||||
@ -582,7 +582,7 @@ gail_entry_set_caret_offset (AtkText *text, gint offset)
|
||||
}
|
||||
|
||||
static AtkAttributeSet*
|
||||
gail_entry_get_run_attributes (AtkText *text,
|
||||
gtk_entry_accessible_get_run_attributes (AtkText *text,
|
||||
gint offset,
|
||||
gint *start_offset,
|
||||
gint *end_offset)
|
||||
@ -617,7 +617,7 @@ gail_entry_get_run_attributes (AtkText *text,
|
||||
}
|
||||
|
||||
static AtkAttributeSet*
|
||||
gail_entry_get_default_attributes (AtkText *text)
|
||||
gtk_entry_accessible_get_default_attributes (AtkText *text)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkEntry *entry;
|
||||
@ -637,7 +637,7 @@ gail_entry_get_default_attributes (AtkText *text)
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_get_character_extents (AtkText *text,
|
||||
gtk_entry_accessible_get_character_extents (AtkText *text,
|
||||
gint offset,
|
||||
gint *x,
|
||||
gint *y,
|
||||
@ -678,7 +678,7 @@ gail_entry_get_character_extents (AtkText *text,
|
||||
}
|
||||
|
||||
static gint
|
||||
gail_entry_get_offset_at_point (AtkText *text,
|
||||
gtk_entry_accessible_get_offset_at_point (AtkText *text,
|
||||
gint x,
|
||||
gint y,
|
||||
AtkCoordType coords)
|
||||
@ -728,7 +728,7 @@ gail_entry_get_offset_at_point (AtkText *text,
|
||||
}
|
||||
|
||||
static gint
|
||||
gail_entry_get_n_selections (AtkText *text)
|
||||
gtk_entry_accessible_get_n_selections (AtkText *text)
|
||||
{
|
||||
GtkEntry *entry;
|
||||
GtkWidget *widget;
|
||||
@ -751,7 +751,7 @@ gail_entry_get_n_selections (AtkText *text)
|
||||
}
|
||||
|
||||
static gchar*
|
||||
gail_entry_get_selection (AtkText *text,
|
||||
gtk_entry_accessible_get_selection (AtkText *text,
|
||||
gint selection_num,
|
||||
gint *start_pos,
|
||||
gint *end_pos)
|
||||
@ -780,7 +780,7 @@ gail_entry_get_selection (AtkText *text,
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gail_entry_add_selection (AtkText *text,
|
||||
gtk_entry_accessible_add_selection (AtkText *text,
|
||||
gint start_pos,
|
||||
gint end_pos)
|
||||
{
|
||||
@ -811,7 +811,7 @@ gail_entry_add_selection (AtkText *text,
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gail_entry_remove_selection (AtkText *text,
|
||||
gtk_entry_accessible_remove_selection (AtkText *text,
|
||||
gint selection_num)
|
||||
{
|
||||
GtkEntry *entry;
|
||||
@ -844,7 +844,7 @@ gail_entry_remove_selection (AtkText *text,
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gail_entry_set_selection (AtkText *text,
|
||||
gtk_entry_accessible_set_selection (AtkText *text,
|
||||
gint selection_num,
|
||||
gint start_pos,
|
||||
gint end_pos)
|
||||
@ -881,17 +881,17 @@ gail_entry_set_selection (AtkText *text,
|
||||
static void
|
||||
atk_editable_text_interface_init (AtkEditableTextIface *iface)
|
||||
{
|
||||
iface->set_text_contents = gail_entry_set_text_contents;
|
||||
iface->insert_text = gail_entry_insert_text;
|
||||
iface->copy_text = gail_entry_copy_text;
|
||||
iface->cut_text = gail_entry_cut_text;
|
||||
iface->delete_text = gail_entry_delete_text;
|
||||
iface->paste_text = gail_entry_paste_text;
|
||||
iface->set_text_contents = gtk_entry_accessible_set_text_contents;
|
||||
iface->insert_text = gtk_entry_accessible_insert_text;
|
||||
iface->copy_text = gtk_entry_accessible_copy_text;
|
||||
iface->cut_text = gtk_entry_accessible_cut_text;
|
||||
iface->delete_text = gtk_entry_accessible_delete_text;
|
||||
iface->paste_text = gtk_entry_accessible_paste_text;
|
||||
iface->set_run_attributes = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_set_text_contents (AtkEditableText *text,
|
||||
gtk_entry_accessible_set_text_contents (AtkEditableText *text,
|
||||
const gchar *string)
|
||||
{
|
||||
GtkEntry *entry;
|
||||
@ -912,7 +912,7 @@ gail_entry_set_text_contents (AtkEditableText *text,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_insert_text (AtkEditableText *text,
|
||||
gtk_entry_accessible_insert_text (AtkEditableText *text,
|
||||
const gchar *string,
|
||||
gint length,
|
||||
gint *position)
|
||||
@ -936,7 +936,7 @@ gail_entry_insert_text (AtkEditableText *text,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_copy_text (AtkEditableText *text,
|
||||
gtk_entry_accessible_copy_text (AtkEditableText *text,
|
||||
gint start_pos,
|
||||
gint end_pos)
|
||||
{
|
||||
@ -960,7 +960,7 @@ gail_entry_copy_text (AtkEditableText *text,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_cut_text (AtkEditableText *text,
|
||||
gtk_entry_accessible_cut_text (AtkEditableText *text,
|
||||
gint start_pos,
|
||||
gint end_pos)
|
||||
{
|
||||
@ -987,7 +987,7 @@ gail_entry_cut_text (AtkEditableText *text,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_delete_text (AtkEditableText *text,
|
||||
gtk_entry_accessible_delete_text (AtkEditableText *text,
|
||||
gint start_pos,
|
||||
gint end_pos)
|
||||
{
|
||||
@ -1009,12 +1009,12 @@ gail_entry_delete_text (AtkEditableText *text,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_paste_text (AtkEditableText *text,
|
||||
gtk_entry_accessible_paste_text (AtkEditableText *text,
|
||||
gint position)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkEditable *editable;
|
||||
GailEntryPaste paste_struct;
|
||||
GtkEntryAccessiblePaste paste_struct;
|
||||
GtkClipboard *clipboard;
|
||||
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
|
||||
@ -1032,15 +1032,15 @@ gail_entry_paste_text (AtkEditableText *text,
|
||||
clipboard = gtk_clipboard_get_for_display (gtk_widget_get_display (widget),
|
||||
GDK_SELECTION_CLIPBOARD);
|
||||
gtk_clipboard_request_text (clipboard,
|
||||
gail_entry_paste_received, &paste_struct);
|
||||
gtk_entry_accessible_paste_received, &paste_struct);
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_paste_received (GtkClipboard *clipboard,
|
||||
gtk_entry_accessible_paste_received (GtkClipboard *clipboard,
|
||||
const gchar *text,
|
||||
gpointer data)
|
||||
{
|
||||
GailEntryPaste* paste_struct = (GailEntryPaste *)data;
|
||||
GtkEntryAccessiblePaste* paste_struct = (GtkEntryAccessiblePaste *)data;
|
||||
|
||||
if (text)
|
||||
gtk_editable_insert_text (GTK_EDITABLE (paste_struct->entry), text, -1,
|
||||
@ -1052,19 +1052,19 @@ gail_entry_paste_received (GtkClipboard *clipboard,
|
||||
/* Callbacks */
|
||||
|
||||
static gboolean
|
||||
gail_entry_idle_notify_insert (gpointer data)
|
||||
gtk_entry_accessible_idle_notify_insert (gpointer data)
|
||||
{
|
||||
GailEntry *entry;
|
||||
GtkEntryAccessible *entry;
|
||||
|
||||
entry = GAIL_ENTRY (data);
|
||||
entry = GTK_ENTRY_ACCESSIBLE (data);
|
||||
entry->insert_idle_handler = 0;
|
||||
gail_entry_notify_insert (entry);
|
||||
gtk_entry_accessible_notify_insert (entry);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_notify_insert (GailEntry *entry)
|
||||
gtk_entry_accessible_notify_insert (GtkEntryAccessible *entry)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
|
||||
@ -1086,40 +1086,40 @@ gail_entry_notify_insert (GailEntry *entry)
|
||||
* arg2 returns the number of characters inserted.
|
||||
*/
|
||||
static void
|
||||
_gail_entry_insert_text_cb (GtkEntry *entry,
|
||||
_gtk_entry_accessible_insert_text_cb (GtkEntry *entry,
|
||||
gchar *arg1,
|
||||
gint arg2,
|
||||
gpointer arg3)
|
||||
{
|
||||
AtkObject *accessible;
|
||||
GailEntry *gail_entry;
|
||||
GtkEntryAccessible *entry_accessible;
|
||||
gint *position = (gint *) arg3;
|
||||
|
||||
if (arg2 == 0)
|
||||
return;
|
||||
|
||||
accessible = gtk_widget_get_accessible (GTK_WIDGET (entry));
|
||||
gail_entry = GAIL_ENTRY (accessible);
|
||||
if (!gail_entry->signal_name_insert)
|
||||
entry_accessible = GTK_ENTRY_ACCESSIBLE (accessible);
|
||||
if (!entry_accessible->signal_name_insert)
|
||||
{
|
||||
gail_entry->signal_name_insert = "text_changed::insert";
|
||||
gail_entry->position_insert = *position;
|
||||
gail_entry->length_insert = g_utf8_strlen(arg1, arg2);
|
||||
entry_accessible->signal_name_insert = "text_changed::insert";
|
||||
entry_accessible->position_insert = *position;
|
||||
entry_accessible->length_insert = g_utf8_strlen(arg1, arg2);
|
||||
}
|
||||
/*
|
||||
* The signal will be emitted when the cursor position is updated.
|
||||
* or in an idle handler if it not updated.
|
||||
*/
|
||||
if (gail_entry->insert_idle_handler == 0)
|
||||
gail_entry->insert_idle_handler = gdk_threads_add_idle (gail_entry_idle_notify_insert, gail_entry);
|
||||
if (entry_accessible->insert_idle_handler == 0)
|
||||
entry_accessible->insert_idle_handler = gdk_threads_add_idle (gtk_entry_accessible_idle_notify_insert, entry_accessible);
|
||||
}
|
||||
|
||||
static gunichar
|
||||
gail_entry_get_character_at_offset (AtkText *text,
|
||||
gtk_entry_accessible_get_character_at_offset (AtkText *text,
|
||||
gint offset)
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GailEntry *entry;
|
||||
GtkEntryAccessible *entry;
|
||||
gchar *string;
|
||||
gchar *index;
|
||||
gunichar unichar;
|
||||
@ -1129,7 +1129,7 @@ gail_entry_get_character_at_offset (AtkText *text,
|
||||
/* State is defunct */
|
||||
return '\0';
|
||||
|
||||
entry = GAIL_ENTRY (text);
|
||||
entry = GTK_ENTRY_ACCESSIBLE (text);
|
||||
string = gail_text_util_get_substring (entry->textutil, 0, -1);
|
||||
if (offset >= g_utf8_strlen (string, -1))
|
||||
{
|
||||
@ -1147,7 +1147,7 @@ gail_entry_get_character_at_offset (AtkText *text,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_entry_notify_delete (GailEntry *entry)
|
||||
gtk_entry_accessible_notify_delete (GtkEntryAccessible *entry)
|
||||
{
|
||||
if (entry->signal_name_delete)
|
||||
{
|
||||
@ -1163,12 +1163,12 @@ gail_entry_notify_delete (GailEntry *entry)
|
||||
* end of the delete range if multiple characters are deleted.
|
||||
*/
|
||||
static void
|
||||
_gail_entry_delete_text_cb (GtkEntry *entry,
|
||||
_gtk_entry_accessible_delete_text_cb (GtkEntry *entry,
|
||||
gint arg1,
|
||||
gint arg2)
|
||||
{
|
||||
AtkObject *accessible;
|
||||
GailEntry *gail_entry;
|
||||
GtkEntryAccessible *entry_accessible;
|
||||
|
||||
/*
|
||||
* Zero length text deleted so ignore
|
||||
@ -1177,31 +1177,31 @@ _gail_entry_delete_text_cb (GtkEntry *entry,
|
||||
return;
|
||||
|
||||
accessible = gtk_widget_get_accessible (GTK_WIDGET (entry));
|
||||
gail_entry = GAIL_ENTRY (accessible);
|
||||
if (!gail_entry->signal_name_delete)
|
||||
entry_accessible = GTK_ENTRY_ACCESSIBLE (accessible);
|
||||
if (!entry_accessible->signal_name_delete)
|
||||
{
|
||||
gail_entry->signal_name_delete = "text_changed::delete";
|
||||
gail_entry->position_delete = arg1;
|
||||
gail_entry->length_delete = arg2 - arg1;
|
||||
entry_accessible->signal_name_delete = "text_changed::delete";
|
||||
entry_accessible->position_delete = arg1;
|
||||
entry_accessible->length_delete = arg2 - arg1;
|
||||
}
|
||||
gail_entry_notify_delete (gail_entry);
|
||||
gtk_entry_accessible_notify_delete (entry_accessible);
|
||||
}
|
||||
|
||||
static void
|
||||
_gail_entry_changed_cb (GtkEntry *entry)
|
||||
_gtk_entry_accessible_changed_cb (GtkEntry *entry)
|
||||
{
|
||||
AtkObject *accessible;
|
||||
GailEntry *gail_entry;
|
||||
GtkEntryAccessible *gtk_entry_accessible;
|
||||
|
||||
accessible = gtk_widget_get_accessible (GTK_WIDGET (entry));
|
||||
|
||||
gail_entry = GAIL_ENTRY (accessible);
|
||||
gtk_entry_accessible = GTK_ENTRY_ACCESSIBLE (accessible);
|
||||
|
||||
text_setup (gail_entry, entry);
|
||||
text_setup (gtk_entry_accessible, entry);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
check_for_selection_change (GailEntry *entry,
|
||||
check_for_selection_change (GtkEntryAccessible *entry,
|
||||
GtkEntry *gtk_entry)
|
||||
{
|
||||
gboolean selected, ret_val = FALSE;
|
||||
@ -1236,21 +1236,21 @@ check_for_selection_change (GailEntry *entry,
|
||||
static void
|
||||
atk_action_interface_init (AtkActionIface *iface)
|
||||
{
|
||||
iface->do_action = gail_entry_do_action;
|
||||
iface->get_n_actions = gail_entry_get_n_actions;
|
||||
iface->get_keybinding = gail_entry_get_keybinding;
|
||||
iface->get_name = gail_entry_action_get_name;
|
||||
iface->do_action = gtk_entry_accessible_do_action;
|
||||
iface->get_n_actions = gtk_entry_accessible_get_n_actions;
|
||||
iface->get_keybinding = gtk_entry_accessible_get_keybinding;
|
||||
iface->get_name = gtk_entry_accessible_action_get_name;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gail_entry_do_action (AtkAction *action,
|
||||
gtk_entry_accessible_do_action (AtkAction *action,
|
||||
gint i)
|
||||
{
|
||||
GailEntry *entry;
|
||||
GtkEntryAccessible *entry;
|
||||
GtkWidget *widget;
|
||||
gboolean return_value = TRUE;
|
||||
|
||||
entry = GAIL_ENTRY (action);
|
||||
entry = GTK_ENTRY_ACCESSIBLE (action);
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
|
||||
if (widget == NULL)
|
||||
/*
|
||||
@ -1279,10 +1279,10 @@ gail_entry_do_action (AtkAction *action,
|
||||
static gboolean
|
||||
idle_do_action (gpointer data)
|
||||
{
|
||||
GailEntry *entry;
|
||||
GtkEntryAccessible *entry;
|
||||
GtkWidget *widget;
|
||||
|
||||
entry = GAIL_ENTRY (data);
|
||||
entry = GTK_ENTRY_ACCESSIBLE (data);
|
||||
entry->action_idle_handler = 0;
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (entry));
|
||||
if (widget == NULL /* State is defunct */ ||
|
||||
@ -1295,19 +1295,19 @@ idle_do_action (gpointer data)
|
||||
}
|
||||
|
||||
static gint
|
||||
gail_entry_get_n_actions (AtkAction *action)
|
||||
gtk_entry_accessible_get_n_actions (AtkAction *action)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static const gchar*
|
||||
gail_entry_get_keybinding (AtkAction *action,
|
||||
gtk_entry_accessible_get_keybinding (AtkAction *action,
|
||||
gint i)
|
||||
{
|
||||
GailEntry *entry;
|
||||
GtkEntryAccessible *entry;
|
||||
gchar *return_value = NULL;
|
||||
|
||||
entry = GAIL_ENTRY (action);
|
||||
entry = GTK_ENTRY_ACCESSIBLE (action);
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
@ -1323,7 +1323,7 @@ gail_entry_get_keybinding (AtkAction *action,
|
||||
gpointer target_object;
|
||||
guint key_val;
|
||||
|
||||
entry = GAIL_ENTRY (action);
|
||||
entry = GTK_ENTRY_ACCESSIBLE (action);
|
||||
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (entry));
|
||||
if (widget == NULL)
|
||||
/*
|
||||
@ -1365,7 +1365,7 @@ gail_entry_get_keybinding (AtkAction *action,
|
||||
}
|
||||
|
||||
static const gchar*
|
||||
gail_entry_action_get_name (AtkAction *action,
|
||||
gtk_entry_accessible_action_get_name (AtkAction *action,
|
||||
gint i)
|
||||
{
|
||||
const gchar *return_value;
|
@ -17,25 +17,25 @@
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GAIL_ENTRY_H__
|
||||
#define __GAIL_ENTRY_H__
|
||||
#ifndef __GTK_ENTRY_ACCESSIBLE_H__
|
||||
#define __GTK_ENTRY_ACCESSIBLE_H__
|
||||
|
||||
#include "gailwidget.h"
|
||||
#include "gailtextutil.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GAIL_TYPE_ENTRY (gail_entry_get_type ())
|
||||
#define GAIL_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_ENTRY, GailEntry))
|
||||
#define GAIL_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_ENTRY, GailEntryClass))
|
||||
#define GAIL_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_ENTRY))
|
||||
#define GAIL_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_ENTRY))
|
||||
#define GAIL_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_ENTRY, GailEntryClass))
|
||||
#define GTK_TYPE_ENTRY_ACCESSIBLE (gtk_entry_accessible_get_type ())
|
||||
#define GTK_ENTRY_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY_ACCESSIBLE, GtkEntryAccessible))
|
||||
#define GTK_ENTRY_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ENTRY_ACCESSIBLE, GtkEntryAccessibleClass))
|
||||
#define GTK_IS_ENTRY_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ENTRY_ACCESSIBLE))
|
||||
#define GTK_IS_ENTRY_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ENTRY_ACCESSIBLE))
|
||||
#define GTK_ENTRY_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ENTRY_ACCESSIBLE, GtkEntryAccessibleClass))
|
||||
|
||||
typedef struct _GailEntry GailEntry;
|
||||
typedef struct _GailEntryClass GailEntryClass;
|
||||
typedef struct _GtkEntryAccessible GtkEntryAccessible;
|
||||
typedef struct _GtkEntryAccessibleClass GtkEntryAccessibleClass;
|
||||
|
||||
struct _GailEntry
|
||||
struct _GtkEntryAccessible
|
||||
{
|
||||
GailWidget parent;
|
||||
|
||||
@ -57,13 +57,13 @@ struct _GailEntry
|
||||
guint insert_idle_handler;
|
||||
};
|
||||
|
||||
GType gail_entry_get_type (void);
|
||||
GType gtk_entry_accessible_get_type (void);
|
||||
|
||||
struct _GailEntryClass
|
||||
struct _GtkEntryAccessibleClass
|
||||
{
|
||||
GailWidgetClass parent_class;
|
||||
};
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GAIL_ENTRY_H__ */
|
||||
#endif /* __GTK_ENTRY_ACCESSIBLE_H__ */
|
@ -21,39 +21,38 @@
|
||||
|
||||
#include <string.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include "gailspinbutton.h"
|
||||
#include "gtkspinbuttonaccessible.h"
|
||||
#include "gailadjustment.h"
|
||||
#include "gail-private-macros.h"
|
||||
|
||||
static void gail_spin_button_class_init (GailSpinButtonClass *klass);
|
||||
static void gail_spin_button_init (GailSpinButton *button);
|
||||
static void gail_spin_button_real_initialize (AtkObject *obj,
|
||||
static void gtk_spin_button_accessible_class_init (GtkSpinButtonAccessibleClass *klass);
|
||||
static void gtk_spin_button_accessible_init (GtkSpinButtonAccessible *button);
|
||||
static void gtk_spin_button_accessible_real_initialize (AtkObject *obj,
|
||||
gpointer data);
|
||||
static void gail_spin_button_finalize (GObject *object);
|
||||
static void gtk_spin_button_accessible_finalize (GObject *object);
|
||||
|
||||
static void atk_value_interface_init (AtkValueIface *iface);
|
||||
|
||||
static void gail_spin_button_real_notify_gtk (GObject *obj,
|
||||
static void gtk_spin_button_accessible_real_notify_gtk (GObject *obj,
|
||||
GParamSpec *pspec);
|
||||
|
||||
static void gail_spin_button_get_current_value (AtkValue *obj,
|
||||
static void gtk_spin_button_accessible_get_current_value (AtkValue *obj,
|
||||
GValue *value);
|
||||
static void gail_spin_button_get_maximum_value (AtkValue *obj,
|
||||
static void gtk_spin_button_accessible_get_maximum_value (AtkValue *obj,
|
||||
GValue *value);
|
||||
static void gail_spin_button_get_minimum_value (AtkValue *obj,
|
||||
static void gtk_spin_button_accessible_get_minimum_value (AtkValue *obj,
|
||||
GValue *value);
|
||||
static void gail_spin_button_get_minimum_increment (AtkValue *obj,
|
||||
static void gtk_spin_button_accessible_get_minimum_increment (AtkValue *obj,
|
||||
GValue *value);
|
||||
static gboolean gail_spin_button_set_current_value (AtkValue *obj,
|
||||
static gboolean gtk_spin_button_accessible_set_current_value (AtkValue *obj,
|
||||
const GValue *value);
|
||||
static void gail_spin_button_value_changed (GtkAdjustment *adjustment,
|
||||
static void gtk_spin_button_accessible_value_changed (GtkAdjustment *adjustment,
|
||||
gpointer data);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (GailSpinButton, gail_spin_button, GAIL_TYPE_ENTRY,
|
||||
G_DEFINE_TYPE_WITH_CODE (GtkSpinButtonAccessible, gtk_spin_button_accessible, GTK_TYPE_ENTRY_ACCESSIBLE,
|
||||
G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
|
||||
|
||||
static void
|
||||
gail_spin_button_class_init (GailSpinButtonClass *klass)
|
||||
gtk_spin_button_accessible_class_init (GtkSpinButtonAccessibleClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
|
||||
@ -61,27 +60,27 @@ gail_spin_button_class_init (GailSpinButtonClass *klass)
|
||||
|
||||
widget_class = (GailWidgetClass*)klass;
|
||||
|
||||
widget_class->notify_gtk = gail_spin_button_real_notify_gtk;
|
||||
widget_class->notify_gtk = gtk_spin_button_accessible_real_notify_gtk;
|
||||
|
||||
class->initialize = gail_spin_button_real_initialize;
|
||||
class->initialize = gtk_spin_button_accessible_real_initialize;
|
||||
|
||||
gobject_class->finalize = gail_spin_button_finalize;
|
||||
gobject_class->finalize = gtk_spin_button_accessible_finalize;
|
||||
}
|
||||
|
||||
static void
|
||||
gail_spin_button_init (GailSpinButton *button)
|
||||
gtk_spin_button_accessible_init (GtkSpinButtonAccessible *button)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gail_spin_button_real_initialize (AtkObject *obj,
|
||||
gtk_spin_button_accessible_real_initialize (AtkObject *obj,
|
||||
gpointer data)
|
||||
{
|
||||
GtkAdjustment *adjustment;
|
||||
GailSpinButton *spin_button = GAIL_SPIN_BUTTON (obj);
|
||||
GtkSpinButtonAccessible *spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (obj);
|
||||
GtkSpinButton *gtk_spin_button;
|
||||
|
||||
ATK_OBJECT_CLASS (gail_spin_button_parent_class)->initialize (obj, data);
|
||||
ATK_OBJECT_CLASS (gtk_spin_button_accessible_parent_class)->initialize (obj, data);
|
||||
|
||||
gtk_spin_button = GTK_SPIN_BUTTON (data);
|
||||
/*
|
||||
@ -94,7 +93,7 @@ gail_spin_button_real_initialize (AtkObject *obj,
|
||||
spin_button->adjustment = gail_adjustment_new (adjustment);
|
||||
g_signal_connect (adjustment,
|
||||
"value-changed",
|
||||
G_CALLBACK (gail_spin_button_value_changed),
|
||||
G_CALLBACK (gtk_spin_button_accessible_value_changed),
|
||||
obj);
|
||||
}
|
||||
else
|
||||
@ -107,22 +106,20 @@ gail_spin_button_real_initialize (AtkObject *obj,
|
||||
static void
|
||||
atk_value_interface_init (AtkValueIface *iface)
|
||||
{
|
||||
iface->get_current_value = gail_spin_button_get_current_value;
|
||||
iface->get_maximum_value = gail_spin_button_get_maximum_value;
|
||||
iface->get_minimum_value = gail_spin_button_get_minimum_value;
|
||||
iface->get_minimum_increment = gail_spin_button_get_minimum_increment;
|
||||
iface->set_current_value = gail_spin_button_set_current_value;
|
||||
iface->get_current_value = gtk_spin_button_accessible_get_current_value;
|
||||
iface->get_maximum_value = gtk_spin_button_accessible_get_maximum_value;
|
||||
iface->get_minimum_value = gtk_spin_button_accessible_get_minimum_value;
|
||||
iface->get_minimum_increment = gtk_spin_button_accessible_get_minimum_increment;
|
||||
iface->set_current_value = gtk_spin_button_accessible_set_current_value;
|
||||
}
|
||||
|
||||
static void
|
||||
gail_spin_button_get_current_value (AtkValue *obj,
|
||||
gtk_spin_button_accessible_get_current_value (AtkValue *obj,
|
||||
GValue *value)
|
||||
{
|
||||
GailSpinButton *spin_button;
|
||||
GtkSpinButtonAccessible *spin_button;
|
||||
|
||||
g_return_if_fail (GAIL_IS_SPIN_BUTTON (obj));
|
||||
|
||||
spin_button = GAIL_SPIN_BUTTON (obj);
|
||||
spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (obj);
|
||||
if (spin_button->adjustment == NULL)
|
||||
/*
|
||||
* Adjustment has not been specified
|
||||
@ -133,14 +130,12 @@ gail_spin_button_get_current_value (AtkValue *obj,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_spin_button_get_maximum_value (AtkValue *obj,
|
||||
gtk_spin_button_accessible_get_maximum_value (AtkValue *obj,
|
||||
GValue *value)
|
||||
{
|
||||
GailSpinButton *spin_button;
|
||||
GtkSpinButtonAccessible *spin_button;
|
||||
|
||||
g_return_if_fail (GAIL_IS_SPIN_BUTTON (obj));
|
||||
|
||||
spin_button = GAIL_SPIN_BUTTON (obj);
|
||||
spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (obj);
|
||||
if (spin_button->adjustment == NULL)
|
||||
/*
|
||||
* Adjustment has not been specified
|
||||
@ -151,14 +146,12 @@ gail_spin_button_get_maximum_value (AtkValue *obj,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_spin_button_get_minimum_value (AtkValue *obj,
|
||||
gtk_spin_button_accessible_get_minimum_value (AtkValue *obj,
|
||||
GValue *value)
|
||||
{
|
||||
GailSpinButton *spin_button;
|
||||
GtkSpinButtonAccessible *spin_button;
|
||||
|
||||
g_return_if_fail (GAIL_IS_SPIN_BUTTON (obj));
|
||||
|
||||
spin_button = GAIL_SPIN_BUTTON (obj);
|
||||
spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (obj);
|
||||
if (spin_button->adjustment == NULL)
|
||||
/*
|
||||
* Adjustment has not been specified
|
||||
@ -169,13 +162,11 @@ gail_spin_button_get_minimum_value (AtkValue *obj,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_spin_button_get_minimum_increment (AtkValue *obj, GValue *value)
|
||||
gtk_spin_button_accessible_get_minimum_increment (AtkValue *obj, GValue *value)
|
||||
{
|
||||
GailSpinButton *spin_button;
|
||||
GtkSpinButtonAccessible *spin_button;
|
||||
|
||||
g_return_if_fail (GAIL_IS_SPIN_BUTTON (obj));
|
||||
|
||||
spin_button = GAIL_SPIN_BUTTON (obj);
|
||||
spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (obj);
|
||||
if (spin_button->adjustment == NULL)
|
||||
/*
|
||||
* Adjustment has not been specified
|
||||
@ -186,14 +177,12 @@ gail_spin_button_get_minimum_increment (AtkValue *obj, GValue *value)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gail_spin_button_set_current_value (AtkValue *obj,
|
||||
gtk_spin_button_accessible_set_current_value (AtkValue *obj,
|
||||
const GValue *value)
|
||||
{
|
||||
GailSpinButton *spin_button;
|
||||
GtkSpinButtonAccessible *spin_button;
|
||||
|
||||
g_return_val_if_fail (GAIL_IS_SPIN_BUTTON (obj), FALSE);
|
||||
|
||||
spin_button = GAIL_SPIN_BUTTON (obj);
|
||||
spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (obj);
|
||||
if (spin_button->adjustment == NULL)
|
||||
/*
|
||||
* Adjustment has not been specified
|
||||
@ -204,25 +193,25 @@ gail_spin_button_set_current_value (AtkValue *obj,
|
||||
}
|
||||
|
||||
static void
|
||||
gail_spin_button_finalize (GObject *object)
|
||||
gtk_spin_button_accessible_finalize (GObject *object)
|
||||
{
|
||||
GailSpinButton *spin_button = GAIL_SPIN_BUTTON (object);
|
||||
GtkSpinButtonAccessible *spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (object);
|
||||
|
||||
if (spin_button->adjustment)
|
||||
{
|
||||
g_object_unref (spin_button->adjustment);
|
||||
spin_button->adjustment = NULL;
|
||||
}
|
||||
G_OBJECT_CLASS (gail_spin_button_parent_class)->finalize (object);
|
||||
G_OBJECT_CLASS (gtk_spin_button_accessible_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gail_spin_button_real_notify_gtk (GObject *obj,
|
||||
gtk_spin_button_accessible_real_notify_gtk (GObject *obj,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (obj);
|
||||
GailSpinButton *spin_button = GAIL_SPIN_BUTTON (gtk_widget_get_accessible (widget));
|
||||
GtkSpinButtonAccessible *spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (gtk_widget_get_accessible (widget));
|
||||
|
||||
if (strcmp (pspec->name, "adjustment") == 0)
|
||||
{
|
||||
@ -247,24 +236,24 @@ gail_spin_button_real_notify_gtk (GObject *obj,
|
||||
spin_button->adjustment = gail_adjustment_new (adjustment);
|
||||
g_signal_connect (adjustment,
|
||||
"value-changed",
|
||||
G_CALLBACK (gail_spin_button_value_changed),
|
||||
G_CALLBACK (gtk_spin_button_accessible_value_changed),
|
||||
spin_button);
|
||||
}
|
||||
else
|
||||
GAIL_WIDGET_CLASS (gail_spin_button_parent_class)->notify_gtk (obj, pspec);
|
||||
GAIL_WIDGET_CLASS (gtk_spin_button_accessible_parent_class)->notify_gtk (obj, pspec);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gail_spin_button_value_changed (GtkAdjustment *adjustment,
|
||||
gtk_spin_button_accessible_value_changed (GtkAdjustment *adjustment,
|
||||
gpointer data)
|
||||
{
|
||||
GailSpinButton *spin_button;
|
||||
GtkSpinButtonAccessible *spin_button;
|
||||
|
||||
gail_return_if_fail (adjustment != NULL);
|
||||
gail_return_if_fail (data != NULL);
|
||||
if (adjustment == NULL || data == NULL)
|
||||
return;
|
||||
|
||||
spin_button = GAIL_SPIN_BUTTON (data);
|
||||
spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (data);
|
||||
|
||||
g_object_notify (G_OBJECT (spin_button), "accessible-value");
|
||||
}
|
53
gtk/a11y/gtkspinbuttonaccessible.h
Normal file
53
gtk/a11y/gtkspinbuttonaccessible.h
Normal file
@ -0,0 +1,53 @@
|
||||
/* GAIL - The GNOME Accessibility Implementation Library
|
||||
* 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, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GTK_SPIN_BUTTON_ACCESSIBLE_H__
|
||||
#define __GTK_SPIN_BUTTON_ACCESSIBLE_H__
|
||||
|
||||
#include "gtkentryaccessible.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GTK_TYPE_SPIN_BUTTON_ACCESSIBLE (gtk_spin_button_accessible_get_type ())
|
||||
#define GTK_SPIN_BUTTON_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE, GtkSpinButtonAccessible))
|
||||
#define GTK_SPIN_BUTTON_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE, GtkSpinButtonAccessibleClass))
|
||||
#define GTK_IS_SPIN_BUTTON_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE))
|
||||
#define GTK_IS_SPIN_BUTTON_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE))
|
||||
#define GTK_SPIN_BUTTON_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE, GtkSpinButtonAccessibleClass))
|
||||
|
||||
typedef struct _GtkSpinButtonAccessible GtkSpinButtonAccessible;
|
||||
typedef struct _GtkSpinButtonAccessibleClass GtkSpinButtonAccessibleClass;
|
||||
|
||||
struct _GtkSpinButtonAccessible
|
||||
{
|
||||
GtkEntryAccessible parent;
|
||||
|
||||
AtkObject *adjustment;
|
||||
};
|
||||
|
||||
struct _GtkSpinButtonAccessibleClass
|
||||
{
|
||||
GtkEntryAccessibleClass parent_class;
|
||||
};
|
||||
|
||||
GType gtk_spin_button_accessible_get_type (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GTK_SPIN_BUTTON_ACCESSIBLE_H__ */
|
@ -67,6 +67,8 @@
|
||||
#include "gtkwidgetprivate.h"
|
||||
#include "gtkstylecontextprivate.h"
|
||||
|
||||
#include "a11y/gtkentryaccessible.h"
|
||||
|
||||
/**
|
||||
* SECTION:gtkentry
|
||||
* @Short_description: A single line text entry field
|
||||
@ -1870,6 +1872,8 @@ gtk_entry_class_init (GtkEntryClass *class)
|
||||
GTK_PARAM_READABLE));
|
||||
|
||||
g_type_class_add_private (gobject_class, sizeof (GtkEntryPrivate));
|
||||
|
||||
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_ENTRY_ACCESSIBLE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -45,6 +45,8 @@
|
||||
#include "gtkintl.h"
|
||||
#include "gtktypebuiltins.h"
|
||||
|
||||
#include "a11y/gtkspinbuttonaccessible.h"
|
||||
|
||||
#define MIN_SPIN_BUTTON_WIDTH 30
|
||||
#define MAX_TIMER_CALLS 5
|
||||
#define EPSILON 1e-10
|
||||
@ -507,6 +509,8 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
|
||||
add_spin_binding (binding_set, GDK_KEY_Page_Down, GDK_CONTROL_MASK, GTK_SCROLL_START);
|
||||
|
||||
g_type_class_add_private (class, sizeof (GtkSpinButtonPrivate));
|
||||
|
||||
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SPIN_BUTTON_ACCESSIBLE);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user