143
143
char *action_descriptions[LAST_ACTION];
144
144
} NautilusIconContainerAccessiblePrivate;
146
static GType nautilus_icon_container_accessible_get_type (void);
146
static AtkObject * get_accessible (GtkWidget *widget);
148
148
static void preview_selected_items (NautilusIconContainer *container);
149
149
static void activate_selected_items (NautilusIconContainer *container);
5540
5536
/* Don't chain up to the parent to avoid clearing and redrawing */
5545
get_accessible (GtkWidget *widget)
5547
AtkObject *accessible;
5549
if ((accessible = eel_accessibility_get_atk_object (widget))) {
5553
accessible = g_object_new
5554
(nautilus_icon_container_accessible_get_type (), NULL);
5556
return eel_accessibility_set_atk_object_return (widget, accessible);
5560
5540
grab_notify_cb (GtkWidget *widget,
5561
5541
gboolean was_grabbed)
5976
5956
widget_class->motion_notify_event = motion_notify_event;
5977
5957
widget_class->key_press_event = key_press_event;
5978
5958
widget_class->popup_menu = popup_menu;
5979
widget_class->get_accessible = get_accessible;
5980
5959
widget_class->style_updated = style_updated;
5981
5960
widget_class->grab_notify = grab_notify_cb;
5961
widget_class->get_accessible = get_accessible;
5983
5963
canvas_class = EEL_CANVAS_CLASS (class);
5984
5964
canvas_class->draw_background = draw_canvas_background;
8559
8539
/* NautilusIconContainerAccessible */
8561
static NautilusIconContainerAccessiblePrivate *
8562
accessible_get_priv (AtkObject *accessible)
8541
EelCanvasAccessible parent;
8564
8542
NautilusIconContainerAccessiblePrivate *priv;
8566
priv = g_object_get_qdata (G_OBJECT (accessible),
8567
accessible_private_data_quark);
8543
} NautilusIconContainerAccessible;
8545
typedef EelCanvasAccessibleClass NautilusIconContainerAccessibleClass;
8547
#define GET_ACCESSIBLE_PRIV(o) ((NautilusIconContainerAccessible *) o)->priv
8572
8549
/* AtkAction interface */
8574
8550
static gboolean
8575
8551
nautilus_icon_container_accessible_do_action (AtkAction *accessible, int i)
8819
8793
nautilus_icon_container_accessible_ref_selection (AtkSelection *accessible,
8796
NautilusIconContainerAccessiblePrivate *priv;
8822
8797
AtkObject *atk_object;
8823
NautilusIconContainerAccessiblePrivate *priv;
8825
8799
NautilusIcon *icon;
8827
8801
nautilus_icon_container_accessible_update_selection (ATK_OBJECT (accessible));
8828
priv = accessible_get_priv (ATK_OBJECT (accessible));
8802
priv = GET_ACCESSIBLE_PRIV (accessible);
8830
8804
item = (g_list_nth (priv->selection, i));
8846
8820
nautilus_icon_container_accessible_get_selection_count (AtkSelection *accessible)
8822
NautilusIconContainerAccessiblePrivate *priv;
8849
NautilusIconContainerAccessiblePrivate *priv;
8825
priv = GET_ACCESSIBLE_PRIV (accessible);
8851
8826
nautilus_icon_container_accessible_update_selection (ATK_OBJECT (accessible));
8852
priv = accessible_get_priv (ATK_OBJECT (accessible));
8854
8827
count = g_list_length (priv->selection);
8872
container = NAUTILUS_ICON_CONTAINER (widget);
8899
8873
nautilus_icon_container_accessible_update_selection (ATK_OBJECT (accessible));
8900
priv = accessible_get_priv (ATK_OBJECT (accessible));
8902
container = NAUTILUS_ICON_CONTAINER (widget);
8875
priv = GET_ACCESSIBLE_PRIV (accessible);
8904
8876
l = g_list_nth (priv->selection, i);
8906
8878
icon = l->data;
9003
static GType nautilus_icon_container_accessible_get_type (void);
9005
G_DEFINE_TYPE_WITH_CODE (NautilusIconContainerAccessible, nautilus_icon_container_accessible,
9006
eel_canvas_accessible_get_type (),
9007
G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, nautilus_icon_container_accessible_action_interface_init)
9008
G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, nautilus_icon_container_accessible_selection_interface_init))
9031
9011
nautilus_icon_container_accessible_initialize (AtkObject *accessible,
9034
9014
NautilusIconContainer *container;
9035
NautilusIconContainerAccessiblePrivate *priv;
9037
if (ATK_OBJECT_CLASS (accessible_parent_class)->initialize) {
9038
ATK_OBJECT_CLASS (accessible_parent_class)->initialize (accessible, data);
9016
if (ATK_OBJECT_CLASS (nautilus_icon_container_accessible_parent_class)->initialize) {
9017
ATK_OBJECT_CLASS (nautilus_icon_container_accessible_parent_class)->initialize (accessible, data);
9041
priv = g_new0 (NautilusIconContainerAccessiblePrivate, 1);
9042
g_object_set_qdata (G_OBJECT (accessible),
9043
accessible_private_data_quark,
9046
9020
if (GTK_IS_ACCESSIBLE (accessible)) {
9047
9021
nautilus_icon_container_accessible_update_selection
9048
9022
(ATK_OBJECT (accessible));
9050
9024
container = NAUTILUS_ICON_CONTAINER (gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible)));
9051
g_signal_connect (G_OBJECT (container), "selection_changed",
9025
g_signal_connect (container, "selection_changed",
9052
9026
G_CALLBACK (nautilus_icon_container_accessible_selection_changed_cb),
9054
g_signal_connect (G_OBJECT (container), "icon_added",
9028
g_signal_connect (container, "icon_added",
9055
9029
G_CALLBACK (nautilus_icon_container_accessible_icon_added_cb),
9057
g_signal_connect (G_OBJECT (container), "icon_removed",
9031
g_signal_connect (container, "icon_removed",
9058
9032
G_CALLBACK (nautilus_icon_container_accessible_icon_removed_cb),
9060
g_signal_connect (G_OBJECT (container), "cleared",
9034
g_signal_connect (container, "cleared",
9061
9035
G_CALLBACK (nautilus_icon_container_accessible_cleared_cb),
9079
9054
g_free (priv->action_descriptions[i]);
9085
G_OBJECT_CLASS (accessible_parent_class)->finalize (object);
9089
nautilus_icon_container_accessible_class_init (AtkObjectClass *klass)
9058
G_OBJECT_CLASS (nautilus_icon_container_accessible_parent_class)->finalize (object);
9062
nautilus_icon_container_accessible_init (NautilusIconContainerAccessible *self)
9064
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, nautilus_icon_container_accessible_get_type (),
9065
NautilusIconContainerAccessiblePrivate);
9069
nautilus_icon_container_accessible_class_init (NautilusIconContainerAccessibleClass *klass)
9071
AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
9091
9072
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
9093
accessible_parent_class = g_type_class_peek_parent (klass);
9095
9074
gobject_class->finalize = nautilus_icon_container_accessible_finalize;
9097
klass->get_n_children = nautilus_icon_container_accessible_get_n_children;
9098
klass->ref_child = nautilus_icon_container_accessible_ref_child;
9099
klass->initialize = nautilus_icon_container_accessible_initialize;
9076
atk_class->get_n_children = nautilus_icon_container_accessible_get_n_children;
9077
atk_class->ref_child = nautilus_icon_container_accessible_ref_child;
9078
atk_class->initialize = nautilus_icon_container_accessible_initialize;
9101
accessible_private_data_quark = g_quark_from_static_string ("icon-container-accessible-private-data");
9080
g_type_class_add_private (klass, sizeof (NautilusIconContainerAccessiblePrivate));
9105
nautilus_icon_container_accessible_get_type (void)
9084
get_accessible (GtkWidget *widget)
9107
static GType type = 0;
9110
static GInterfaceInfo atk_action_info = {
9111
(GInterfaceInitFunc) nautilus_icon_container_accessible_action_interface_init,
9112
(GInterfaceFinalizeFunc) NULL,
9116
static GInterfaceInfo atk_selection_info = {
9117
(GInterfaceInitFunc) nautilus_icon_container_accessible_selection_interface_init,
9118
(GInterfaceFinalizeFunc) NULL,
9122
type = eel_accessibility_create_derived_type
9123
("NautilusIconContainerAccessible",
9125
nautilus_icon_container_accessible_class_init);
9127
g_type_add_interface_static (type, ATK_TYPE_ACTION,
9129
g_type_add_interface_static (type, ATK_TYPE_SELECTION,
9130
&atk_selection_info);
9086
AtkObject *accessible;
9088
if ((accessible = eel_accessibility_get_atk_object (widget))) {
9092
accessible = g_object_new (nautilus_icon_container_accessible_get_type (), "widget", widget, NULL);
9094
return eel_accessibility_set_atk_object_return (widget, accessible);
9136
9097
#if ! defined (NAUTILUS_OMIT_SELF_CHECK)