| File: | ctk/a11y/ctkwindowaccessible.c |
| Warning: | line 228, column 22 This statement is never executed |
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
| 1 | /* CTK+ - accessibility implementations |
| 2 | * Copyright 2011, F123 Consulting & Mais Diferenças |
| 3 | * Copyright 2001, 2002, 2003 Sun Microsystems Inc. |
| 4 | * |
| 5 | * This library is free software; you can redistribute it and/or |
| 6 | * modify it under the terms of the GNU Lesser General Public |
| 7 | * License as published by the Free Software Foundation; either |
| 8 | * version 2 of the License, or (at your option) any later version. |
| 9 | * |
| 10 | * This library is distributed in the hope that it will be useful, |
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 13 | * Lesser General Public License for more details. |
| 14 | * |
| 15 | * You should have received a copy of the GNU Lesser General Public |
| 16 | * License along with this library. If not, see <http://www.gnu.org/licenses/>. |
| 17 | */ |
| 18 | |
| 19 | #include "config.h" |
| 20 | |
| 21 | #include <ctk/ctk.h> |
| 22 | |
| 23 | #include "ctkwidgetaccessibleprivate.h" |
| 24 | #include "ctkwindowaccessible.h" |
| 25 | #include "ctktoplevelaccessible.h" |
| 26 | #include "ctkwindowprivate.h" |
| 27 | |
| 28 | /* atkcomponent.h */ |
| 29 | |
| 30 | static void ctk_window_accessible_get_extents (AtkComponent *component, |
| 31 | gint *x, |
| 32 | gint *y, |
| 33 | gint *width, |
| 34 | gint *height, |
| 35 | AtkCoordType coord_type); |
| 36 | static void ctk_window_accessible_get_size (AtkComponent *component, |
| 37 | gint *width, |
| 38 | gint *height); |
| 39 | |
| 40 | static void atk_component_interface_init (AtkComponentIface *iface); |
| 41 | static void atk_window_interface_init (AtkWindowIface *iface); |
| 42 | |
| 43 | G_DEFINE_TYPE_WITH_CODE (CtkWindowAccessible,static void ctk_window_accessible_init (CtkWindowAccessible * self); static void ctk_window_accessible_class_init (CtkWindowAccessibleClass *klass); static GType ctk_window_accessible_get_type_once (void ); static gpointer ctk_window_accessible_parent_class = ((void *)0); static gint CtkWindowAccessible_private_offset; static void ctk_window_accessible_class_intern_init (gpointer klass) { ctk_window_accessible_parent_class = g_type_class_peek_parent (klass); if (CtkWindowAccessible_private_offset != 0) g_type_class_adjust_private_offset (klass, &CtkWindowAccessible_private_offset ); ctk_window_accessible_class_init ((CtkWindowAccessibleClass *) klass); } __attribute__ ((__unused__)) static inline gpointer ctk_window_accessible_get_instance_private (CtkWindowAccessible *self) { return (((gpointer) ((guint8*) (self) + (glong) (CtkWindowAccessible_private_offset )))); } GType ctk_window_accessible_get_type (void) { static GType static_g_define_type_id = 0; if ((__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); (void) (0 ? (gpointer) * ( &static_g_define_type_id) : ((void*)0)); (!(__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer), "Expression evaluates to false"); __typeof__ (*(&static_g_define_type_id)) gapg_temp_newval; __typeof__ ((&static_g_define_type_id)) gapg_temp_atomic = (&static_g_define_type_id ); __atomic_load (gapg_temp_atomic, &gapg_temp_newval, 5) ; gapg_temp_newval; })) && g_once_init_enter_pointer ( &static_g_define_type_id)); })) ) { GType g_define_type_id = ctk_window_accessible_get_type_once (); (__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); 0 ? (void) (*(&static_g_define_type_id ) = (g_define_type_id)) : (void) 0; g_once_init_leave_pointer ((&static_g_define_type_id), (gpointer) (guintptr) (g_define_type_id )); })) ; } return static_g_define_type_id; } __attribute__ ( (__noinline__)) static GType ctk_window_accessible_get_type_once (void) { GType g_define_type_id = g_type_register_static_simple ((ctk_container_accessible_get_type ()), g_intern_static_string ("CtkWindowAccessible"), sizeof (CtkWindowAccessibleClass), ( GClassInitFunc)(void (*)(void)) ctk_window_accessible_class_intern_init , sizeof (CtkWindowAccessible), (GInstanceInitFunc)(void (*)( void)) ctk_window_accessible_init, (GTypeFlags) 0); { {{ const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_component_interface_init, ((void*)0), ( (void*)0) }; g_type_add_interface_static (g_define_type_id, ( atk_component_get_type ()), &g_implement_interface_info); } { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_window_interface_init, ((void*)0), ((void *)0) }; g_type_add_interface_static (g_define_type_id, (atk_window_get_type ()), &g_implement_interface_info); };} } return g_define_type_id ; } |
| 44 | ctk_window_accessible,static void ctk_window_accessible_init (CtkWindowAccessible * self); static void ctk_window_accessible_class_init (CtkWindowAccessibleClass *klass); static GType ctk_window_accessible_get_type_once (void ); static gpointer ctk_window_accessible_parent_class = ((void *)0); static gint CtkWindowAccessible_private_offset; static void ctk_window_accessible_class_intern_init (gpointer klass) { ctk_window_accessible_parent_class = g_type_class_peek_parent (klass); if (CtkWindowAccessible_private_offset != 0) g_type_class_adjust_private_offset (klass, &CtkWindowAccessible_private_offset ); ctk_window_accessible_class_init ((CtkWindowAccessibleClass *) klass); } __attribute__ ((__unused__)) static inline gpointer ctk_window_accessible_get_instance_private (CtkWindowAccessible *self) { return (((gpointer) ((guint8*) (self) + (glong) (CtkWindowAccessible_private_offset )))); } GType ctk_window_accessible_get_type (void) { static GType static_g_define_type_id = 0; if ((__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); (void) (0 ? (gpointer) * ( &static_g_define_type_id) : ((void*)0)); (!(__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer), "Expression evaluates to false"); __typeof__ (*(&static_g_define_type_id)) gapg_temp_newval; __typeof__ ((&static_g_define_type_id)) gapg_temp_atomic = (&static_g_define_type_id ); __atomic_load (gapg_temp_atomic, &gapg_temp_newval, 5) ; gapg_temp_newval; })) && g_once_init_enter_pointer ( &static_g_define_type_id)); })) ) { GType g_define_type_id = ctk_window_accessible_get_type_once (); (__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); 0 ? (void) (*(&static_g_define_type_id ) = (g_define_type_id)) : (void) 0; g_once_init_leave_pointer ((&static_g_define_type_id), (gpointer) (guintptr) (g_define_type_id )); })) ; } return static_g_define_type_id; } __attribute__ ( (__noinline__)) static GType ctk_window_accessible_get_type_once (void) { GType g_define_type_id = g_type_register_static_simple ((ctk_container_accessible_get_type ()), g_intern_static_string ("CtkWindowAccessible"), sizeof (CtkWindowAccessibleClass), ( GClassInitFunc)(void (*)(void)) ctk_window_accessible_class_intern_init , sizeof (CtkWindowAccessible), (GInstanceInitFunc)(void (*)( void)) ctk_window_accessible_init, (GTypeFlags) 0); { {{ const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_component_interface_init, ((void*)0), ( (void*)0) }; g_type_add_interface_static (g_define_type_id, ( atk_component_get_type ()), &g_implement_interface_info); } { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_window_interface_init, ((void*)0), ((void *)0) }; g_type_add_interface_static (g_define_type_id, (atk_window_get_type ()), &g_implement_interface_info); };} } return g_define_type_id ; } |
| 45 | CTK_TYPE_CONTAINER_ACCESSIBLE,static void ctk_window_accessible_init (CtkWindowAccessible * self); static void ctk_window_accessible_class_init (CtkWindowAccessibleClass *klass); static GType ctk_window_accessible_get_type_once (void ); static gpointer ctk_window_accessible_parent_class = ((void *)0); static gint CtkWindowAccessible_private_offset; static void ctk_window_accessible_class_intern_init (gpointer klass) { ctk_window_accessible_parent_class = g_type_class_peek_parent (klass); if (CtkWindowAccessible_private_offset != 0) g_type_class_adjust_private_offset (klass, &CtkWindowAccessible_private_offset ); ctk_window_accessible_class_init ((CtkWindowAccessibleClass *) klass); } __attribute__ ((__unused__)) static inline gpointer ctk_window_accessible_get_instance_private (CtkWindowAccessible *self) { return (((gpointer) ((guint8*) (self) + (glong) (CtkWindowAccessible_private_offset )))); } GType ctk_window_accessible_get_type (void) { static GType static_g_define_type_id = 0; if ((__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); (void) (0 ? (gpointer) * ( &static_g_define_type_id) : ((void*)0)); (!(__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer), "Expression evaluates to false"); __typeof__ (*(&static_g_define_type_id)) gapg_temp_newval; __typeof__ ((&static_g_define_type_id)) gapg_temp_atomic = (&static_g_define_type_id ); __atomic_load (gapg_temp_atomic, &gapg_temp_newval, 5) ; gapg_temp_newval; })) && g_once_init_enter_pointer ( &static_g_define_type_id)); })) ) { GType g_define_type_id = ctk_window_accessible_get_type_once (); (__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); 0 ? (void) (*(&static_g_define_type_id ) = (g_define_type_id)) : (void) 0; g_once_init_leave_pointer ((&static_g_define_type_id), (gpointer) (guintptr) (g_define_type_id )); })) ; } return static_g_define_type_id; } __attribute__ ( (__noinline__)) static GType ctk_window_accessible_get_type_once (void) { GType g_define_type_id = g_type_register_static_simple ((ctk_container_accessible_get_type ()), g_intern_static_string ("CtkWindowAccessible"), sizeof (CtkWindowAccessibleClass), ( GClassInitFunc)(void (*)(void)) ctk_window_accessible_class_intern_init , sizeof (CtkWindowAccessible), (GInstanceInitFunc)(void (*)( void)) ctk_window_accessible_init, (GTypeFlags) 0); { {{ const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_component_interface_init, ((void*)0), ( (void*)0) }; g_type_add_interface_static (g_define_type_id, ( atk_component_get_type ()), &g_implement_interface_info); } { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_window_interface_init, ((void*)0), ((void *)0) }; g_type_add_interface_static (g_define_type_id, (atk_window_get_type ()), &g_implement_interface_info); };} } return g_define_type_id ; } |
| 46 | G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT,static void ctk_window_accessible_init (CtkWindowAccessible * self); static void ctk_window_accessible_class_init (CtkWindowAccessibleClass *klass); static GType ctk_window_accessible_get_type_once (void ); static gpointer ctk_window_accessible_parent_class = ((void *)0); static gint CtkWindowAccessible_private_offset; static void ctk_window_accessible_class_intern_init (gpointer klass) { ctk_window_accessible_parent_class = g_type_class_peek_parent (klass); if (CtkWindowAccessible_private_offset != 0) g_type_class_adjust_private_offset (klass, &CtkWindowAccessible_private_offset ); ctk_window_accessible_class_init ((CtkWindowAccessibleClass *) klass); } __attribute__ ((__unused__)) static inline gpointer ctk_window_accessible_get_instance_private (CtkWindowAccessible *self) { return (((gpointer) ((guint8*) (self) + (glong) (CtkWindowAccessible_private_offset )))); } GType ctk_window_accessible_get_type (void) { static GType static_g_define_type_id = 0; if ((__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); (void) (0 ? (gpointer) * ( &static_g_define_type_id) : ((void*)0)); (!(__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer), "Expression evaluates to false"); __typeof__ (*(&static_g_define_type_id)) gapg_temp_newval; __typeof__ ((&static_g_define_type_id)) gapg_temp_atomic = (&static_g_define_type_id ); __atomic_load (gapg_temp_atomic, &gapg_temp_newval, 5) ; gapg_temp_newval; })) && g_once_init_enter_pointer ( &static_g_define_type_id)); })) ) { GType g_define_type_id = ctk_window_accessible_get_type_once (); (__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); 0 ? (void) (*(&static_g_define_type_id ) = (g_define_type_id)) : (void) 0; g_once_init_leave_pointer ((&static_g_define_type_id), (gpointer) (guintptr) (g_define_type_id )); })) ; } return static_g_define_type_id; } __attribute__ ( (__noinline__)) static GType ctk_window_accessible_get_type_once (void) { GType g_define_type_id = g_type_register_static_simple ((ctk_container_accessible_get_type ()), g_intern_static_string ("CtkWindowAccessible"), sizeof (CtkWindowAccessibleClass), ( GClassInitFunc)(void (*)(void)) ctk_window_accessible_class_intern_init , sizeof (CtkWindowAccessible), (GInstanceInitFunc)(void (*)( void)) ctk_window_accessible_init, (GTypeFlags) 0); { {{ const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_component_interface_init, ((void*)0), ( (void*)0) }; g_type_add_interface_static (g_define_type_id, ( atk_component_get_type ()), &g_implement_interface_info); } { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_window_interface_init, ((void*)0), ((void *)0) }; g_type_add_interface_static (g_define_type_id, (atk_window_get_type ()), &g_implement_interface_info); };} } return g_define_type_id ; } |
| 47 | atk_component_interface_init)static void ctk_window_accessible_init (CtkWindowAccessible * self); static void ctk_window_accessible_class_init (CtkWindowAccessibleClass *klass); static GType ctk_window_accessible_get_type_once (void ); static gpointer ctk_window_accessible_parent_class = ((void *)0); static gint CtkWindowAccessible_private_offset; static void ctk_window_accessible_class_intern_init (gpointer klass) { ctk_window_accessible_parent_class = g_type_class_peek_parent (klass); if (CtkWindowAccessible_private_offset != 0) g_type_class_adjust_private_offset (klass, &CtkWindowAccessible_private_offset ); ctk_window_accessible_class_init ((CtkWindowAccessibleClass *) klass); } __attribute__ ((__unused__)) static inline gpointer ctk_window_accessible_get_instance_private (CtkWindowAccessible *self) { return (((gpointer) ((guint8*) (self) + (glong) (CtkWindowAccessible_private_offset )))); } GType ctk_window_accessible_get_type (void) { static GType static_g_define_type_id = 0; if ((__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); (void) (0 ? (gpointer) * ( &static_g_define_type_id) : ((void*)0)); (!(__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer), "Expression evaluates to false"); __typeof__ (*(&static_g_define_type_id)) gapg_temp_newval; __typeof__ ((&static_g_define_type_id)) gapg_temp_atomic = (&static_g_define_type_id ); __atomic_load (gapg_temp_atomic, &gapg_temp_newval, 5) ; gapg_temp_newval; })) && g_once_init_enter_pointer ( &static_g_define_type_id)); })) ) { GType g_define_type_id = ctk_window_accessible_get_type_once (); (__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); 0 ? (void) (*(&static_g_define_type_id ) = (g_define_type_id)) : (void) 0; g_once_init_leave_pointer ((&static_g_define_type_id), (gpointer) (guintptr) (g_define_type_id )); })) ; } return static_g_define_type_id; } __attribute__ ( (__noinline__)) static GType ctk_window_accessible_get_type_once (void) { GType g_define_type_id = g_type_register_static_simple ((ctk_container_accessible_get_type ()), g_intern_static_string ("CtkWindowAccessible"), sizeof (CtkWindowAccessibleClass), ( GClassInitFunc)(void (*)(void)) ctk_window_accessible_class_intern_init , sizeof (CtkWindowAccessible), (GInstanceInitFunc)(void (*)( void)) ctk_window_accessible_init, (GTypeFlags) 0); { {{ const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_component_interface_init, ((void*)0), ( (void*)0) }; g_type_add_interface_static (g_define_type_id, ( atk_component_get_type ()), &g_implement_interface_info); } { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_window_interface_init, ((void*)0), ((void *)0) }; g_type_add_interface_static (g_define_type_id, (atk_window_get_type ()), &g_implement_interface_info); };} } return g_define_type_id ; } |
| 48 | G_IMPLEMENT_INTERFACE (ATK_TYPE_WINDOW,static void ctk_window_accessible_init (CtkWindowAccessible * self); static void ctk_window_accessible_class_init (CtkWindowAccessibleClass *klass); static GType ctk_window_accessible_get_type_once (void ); static gpointer ctk_window_accessible_parent_class = ((void *)0); static gint CtkWindowAccessible_private_offset; static void ctk_window_accessible_class_intern_init (gpointer klass) { ctk_window_accessible_parent_class = g_type_class_peek_parent (klass); if (CtkWindowAccessible_private_offset != 0) g_type_class_adjust_private_offset (klass, &CtkWindowAccessible_private_offset ); ctk_window_accessible_class_init ((CtkWindowAccessibleClass *) klass); } __attribute__ ((__unused__)) static inline gpointer ctk_window_accessible_get_instance_private (CtkWindowAccessible *self) { return (((gpointer) ((guint8*) (self) + (glong) (CtkWindowAccessible_private_offset )))); } GType ctk_window_accessible_get_type (void) { static GType static_g_define_type_id = 0; if ((__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); (void) (0 ? (gpointer) * ( &static_g_define_type_id) : ((void*)0)); (!(__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer), "Expression evaluates to false"); __typeof__ (*(&static_g_define_type_id)) gapg_temp_newval; __typeof__ ((&static_g_define_type_id)) gapg_temp_atomic = (&static_g_define_type_id ); __atomic_load (gapg_temp_atomic, &gapg_temp_newval, 5) ; gapg_temp_newval; })) && g_once_init_enter_pointer ( &static_g_define_type_id)); })) ) { GType g_define_type_id = ctk_window_accessible_get_type_once (); (__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); 0 ? (void) (*(&static_g_define_type_id ) = (g_define_type_id)) : (void) 0; g_once_init_leave_pointer ((&static_g_define_type_id), (gpointer) (guintptr) (g_define_type_id )); })) ; } return static_g_define_type_id; } __attribute__ ( (__noinline__)) static GType ctk_window_accessible_get_type_once (void) { GType g_define_type_id = g_type_register_static_simple ((ctk_container_accessible_get_type ()), g_intern_static_string ("CtkWindowAccessible"), sizeof (CtkWindowAccessibleClass), ( GClassInitFunc)(void (*)(void)) ctk_window_accessible_class_intern_init , sizeof (CtkWindowAccessible), (GInstanceInitFunc)(void (*)( void)) ctk_window_accessible_init, (GTypeFlags) 0); { {{ const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_component_interface_init, ((void*)0), ( (void*)0) }; g_type_add_interface_static (g_define_type_id, ( atk_component_get_type ()), &g_implement_interface_info); } { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_window_interface_init, ((void*)0), ((void *)0) }; g_type_add_interface_static (g_define_type_id, (atk_window_get_type ()), &g_implement_interface_info); };} } return g_define_type_id ; } |
| 49 | atk_window_interface_init))static void ctk_window_accessible_init (CtkWindowAccessible * self); static void ctk_window_accessible_class_init (CtkWindowAccessibleClass *klass); static GType ctk_window_accessible_get_type_once (void ); static gpointer ctk_window_accessible_parent_class = ((void *)0); static gint CtkWindowAccessible_private_offset; static void ctk_window_accessible_class_intern_init (gpointer klass) { ctk_window_accessible_parent_class = g_type_class_peek_parent (klass); if (CtkWindowAccessible_private_offset != 0) g_type_class_adjust_private_offset (klass, &CtkWindowAccessible_private_offset ); ctk_window_accessible_class_init ((CtkWindowAccessibleClass *) klass); } __attribute__ ((__unused__)) static inline gpointer ctk_window_accessible_get_instance_private (CtkWindowAccessible *self) { return (((gpointer) ((guint8*) (self) + (glong) (CtkWindowAccessible_private_offset )))); } GType ctk_window_accessible_get_type (void) { static GType static_g_define_type_id = 0; if ((__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); (void) (0 ? (gpointer) * ( &static_g_define_type_id) : ((void*)0)); (!(__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer), "Expression evaluates to false"); __typeof__ (*(&static_g_define_type_id)) gapg_temp_newval; __typeof__ ((&static_g_define_type_id)) gapg_temp_atomic = (&static_g_define_type_id ); __atomic_load (gapg_temp_atomic, &gapg_temp_newval, 5) ; gapg_temp_newval; })) && g_once_init_enter_pointer ( &static_g_define_type_id)); })) ) { GType g_define_type_id = ctk_window_accessible_get_type_once (); (__extension__ ({ _Static_assert (sizeof *(&static_g_define_type_id) == sizeof (gpointer) , "Expression evaluates to false"); 0 ? (void) (*(&static_g_define_type_id ) = (g_define_type_id)) : (void) 0; g_once_init_leave_pointer ((&static_g_define_type_id), (gpointer) (guintptr) (g_define_type_id )); })) ; } return static_g_define_type_id; } __attribute__ ( (__noinline__)) static GType ctk_window_accessible_get_type_once (void) { GType g_define_type_id = g_type_register_static_simple ((ctk_container_accessible_get_type ()), g_intern_static_string ("CtkWindowAccessible"), sizeof (CtkWindowAccessibleClass), ( GClassInitFunc)(void (*)(void)) ctk_window_accessible_class_intern_init , sizeof (CtkWindowAccessible), (GInstanceInitFunc)(void (*)( void)) ctk_window_accessible_init, (GTypeFlags) 0); { {{ const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_component_interface_init, ((void*)0), ( (void*)0) }; g_type_add_interface_static (g_define_type_id, ( atk_component_get_type ()), &g_implement_interface_info); } { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc )(void (*)(void)) atk_window_interface_init, ((void*)0), ((void *)0) }; g_type_add_interface_static (g_define_type_id, (atk_window_get_type ()), &g_implement_interface_info); };} } return g_define_type_id ; }; |
| 50 | |
| 51 | |
| 52 | static void |
| 53 | ctk_window_accessible_focus_event (AtkObject *obj, |
| 54 | gboolean focus_in) |
| 55 | { |
| 56 | atk_object_notify_state_change (obj, ATK_STATE_ACTIVE, focus_in); |
| 57 | } |
| 58 | |
| 59 | static void |
| 60 | ctk_window_accessible_notify_ctk (GObject *obj, |
| 61 | GParamSpec *pspec) |
| 62 | { |
| 63 | CtkWidget *widget = CTK_WIDGET (obj)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((obj)), ((ctk_widget_get_type ())))))); |
| 64 | AtkObject* atk_obj = ctk_widget_get_accessible (widget); |
| 65 | |
| 66 | if (g_strcmp0 (pspec->name, "title") == 0) |
| 67 | { |
| 68 | g_object_notify (G_OBJECT (atk_obj)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((atk_obj)), (((GType) ((20) << (2)))))))), "accessible-name"); |
| 69 | g_signal_emit_by_name (atk_obj, "visible-data-changed"); |
| 70 | } |
| 71 | else |
| 72 | CTK_WIDGET_ACCESSIBLE_CLASS (ctk_window_accessible_parent_class)((((CtkWidgetAccessibleClass*) (void *) g_type_check_class_cast ((GTypeClass*) ((ctk_window_accessible_parent_class)), ((ctk_widget_accessible_get_type ()))))))->notify_ctk (obj, pspec); |
| 73 | } |
| 74 | |
| 75 | static gboolean |
| 76 | window_state_event_cb (CtkWidget *widget, |
| 77 | CdkEventWindowState *event) |
| 78 | { |
| 79 | AtkObject* obj; |
| 80 | |
| 81 | obj = ctk_widget_get_accessible (widget); |
| 82 | atk_object_notify_state_change (obj, ATK_STATE_ICONIFIED, |
| 83 | (event->new_window_state & CDK_WINDOW_STATE_ICONIFIED) != 0); |
| 84 | |
| 85 | return FALSE(0); |
| 86 | } |
| 87 | |
| 88 | static void |
| 89 | ctk_window_accessible_initialize (AtkObject *obj, |
| 90 | gpointer data) |
| 91 | { |
| 92 | CtkWidget *widget = CTK_WIDGET (data)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((data)), ((ctk_widget_get_type ())))))); |
| 93 | |
| 94 | ATK_OBJECT_CLASS (ctk_window_accessible_parent_class)((((AtkObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((ctk_window_accessible_parent_class)), ((atk_object_get_type ()))))))->initialize (obj, data); |
| 95 | |
| 96 | g_signal_connect (data, "window-state-event", G_CALLBACK (window_state_event_cb), NULL)g_signal_connect_data ((data), ("window-state-event"), (((GCallback ) (window_state_event_cb))), (((void*)0)), ((void*)0), (GConnectFlags ) 0); |
| 97 | _ctk_widget_accessible_set_layer (CTK_WIDGET_ACCESSIBLE (obj)((((CtkWidgetAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((obj)), ((ctk_widget_accessible_get_type ( ))))))), ATK_LAYER_WINDOW); |
| 98 | |
| 99 | if (ctk_window_get_window_type (CTK_WINDOW (widget)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((widget)), ((ctk_window_get_type ()))))))) == CTK_WINDOW_POPUP) |
| 100 | obj->role = ATK_ROLE_WINDOW; |
| 101 | else |
| 102 | obj->role = ATK_ROLE_FRAME; |
| 103 | } |
| 104 | |
| 105 | static CtkWidget * |
| 106 | find_label_child (CtkContainer *container) |
| 107 | { |
| 108 | GList *children, *tmp_list; |
| 109 | CtkWidget *child; |
| 110 | |
| 111 | children = ctk_container_get_children (container); |
| 112 | |
| 113 | child = NULL((void*)0); |
| 114 | for (tmp_list = children; tmp_list != NULL((void*)0); tmp_list = tmp_list->next) |
| 115 | { |
| 116 | if (CTK_IS_LABEL (tmp_list->data)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (tmp_list->data)); GType __t = ((ctk_label_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) |
| 117 | { |
| 118 | child = CTK_WIDGET (tmp_list->data)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((tmp_list->data)), ((ctk_widget_get_type ())))))); |
| 119 | break; |
| 120 | } |
| 121 | else if (CTK_IS_CONTAINER (tmp_list->data)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (tmp_list->data)); GType __t = ((ctk_container_get_type () )); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) |
| 122 | { |
| 123 | child = find_label_child (CTK_CONTAINER (tmp_list->data)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((tmp_list->data)), ((ctk_container_get_type ()))))))); |
| 124 | if (child) |
| 125 | break; |
| 126 | } |
| 127 | } |
| 128 | g_list_free (children); |
| 129 | return child; |
| 130 | } |
| 131 | |
| 132 | static const gchar * |
| 133 | ctk_window_accessible_get_name (AtkObject *accessible) |
| 134 | { |
| 135 | const gchar* name; |
| 136 | CtkWidget* widget; |
| 137 | |
| 138 | widget = ctk_accessible_get_widget (CTK_ACCESSIBLE (accessible)((((CtkAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((accessible)), ((ctk_accessible_get_type ()))))))); |
| 139 | if (widget == NULL((void*)0)) |
| 140 | return NULL((void*)0); |
| 141 | |
| 142 | name = ATK_OBJECT_CLASS (ctk_window_accessible_parent_class)((((AtkObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((ctk_window_accessible_parent_class)), ((atk_object_get_type ()))))))->get_name (accessible); |
| 143 | if (name != NULL((void*)0)) |
| 144 | return name; |
| 145 | |
| 146 | if (CTK_IS_WINDOW (widget)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (widget)); GType __t = ((ctk_window_get_type ())); gboolean __r ; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) |
| 147 | { |
| 148 | CtkWindow *window = CTK_WINDOW (widget)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((widget)), ((ctk_window_get_type ())))))); |
| 149 | |
| 150 | name = ctk_window_get_title (window); |
| 151 | if (name == NULL((void*)0) && accessible->role == ATK_ROLE_TOOL_TIP) |
| 152 | { |
| 153 | CtkWidget *child; |
| 154 | |
| 155 | child = find_label_child (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((window)), ((ctk_container_get_type ()))))))); |
| 156 | if (CTK_IS_LABEL (child)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (child)); GType __t = ((ctk_label_get_type ())); gboolean __r ; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) |
| 157 | name = ctk_label_get_text (CTK_LABEL (child)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((child)), ((ctk_label_get_type ()))))))); |
| 158 | } |
| 159 | } |
| 160 | return name; |
| 161 | } |
| 162 | |
| 163 | static gint |
| 164 | ctk_window_accessible_get_index_in_parent (AtkObject *accessible) |
| 165 | { |
| 166 | CtkWidget* widget; |
| 167 | AtkObject* atk_obj; |
| 168 | gint index = -1; |
| 169 | |
| 170 | widget = ctk_accessible_get_widget (CTK_ACCESSIBLE (accessible)((((CtkAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((accessible)), ((ctk_accessible_get_type ()))))))); |
| 171 | if (widget == NULL((void*)0)) |
| 172 | return -1; |
| 173 | |
| 174 | index = ATK_OBJECT_CLASS (ctk_window_accessible_parent_class)((((AtkObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((ctk_window_accessible_parent_class)), ((atk_object_get_type ()))))))->get_index_in_parent (accessible); |
| 175 | if (index != -1) |
| 176 | return index; |
| 177 | |
| 178 | atk_obj = atk_get_root (); |
| 179 | |
| 180 | if (CTK_IS_WINDOW (widget)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (widget)); GType __t = ((ctk_window_get_type ())); gboolean __r ; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) |
| 181 | { |
| 182 | CtkWindow *window = CTK_WINDOW (widget)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((widget)), ((ctk_window_get_type ())))))); |
| 183 | if (CTK_IS_TOPLEVEL_ACCESSIBLE (atk_obj)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (atk_obj)); GType __t = ((ctk_toplevel_accessible_get_type () )); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) |
| 184 | { |
| 185 | CtkToplevelAccessible *toplevel = CTK_TOPLEVEL_ACCESSIBLE (atk_obj)((((CtkToplevelAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((atk_obj)), ((ctk_toplevel_accessible_get_type ())))))); |
| 186 | index = g_list_index (ctk_toplevel_accessible_get_children (toplevel), window); |
| 187 | } |
| 188 | else |
| 189 | { |
| 190 | gint i, sibling_count; |
| 191 | |
| 192 | sibling_count = atk_object_get_n_accessible_children (atk_obj); |
| 193 | for (i = 0; i < sibling_count && index == -1; ++i) |
| 194 | { |
| 195 | AtkObject *child = atk_object_ref_accessible_child (atk_obj, i); |
| 196 | if (accessible == child) |
| 197 | index = i; |
| 198 | g_object_unref (G_OBJECT (child)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((child)), (((GType) ((20) << (2))))))))); |
| 199 | } |
| 200 | } |
| 201 | } |
| 202 | return index; |
| 203 | } |
| 204 | |
| 205 | static AtkRelationSet * |
| 206 | ctk_window_accessible_ref_relation_set (AtkObject *obj) |
| 207 | { |
| 208 | CtkWidget *widget; |
| 209 | AtkRelationSet *relation_set; |
| 210 | AtkObject *array[1]; |
| 211 | AtkRelation* relation; |
| 212 | CtkWidget *current_widget; |
| 213 | |
| 214 | widget = ctk_accessible_get_widget (CTK_ACCESSIBLE (obj)((((CtkAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((obj)), ((ctk_accessible_get_type ()))))))); |
| 215 | if (widget == NULL((void*)0)) |
| 216 | return NULL((void*)0); |
| 217 | |
| 218 | relation_set = ATK_OBJECT_CLASS (ctk_window_accessible_parent_class)((((AtkObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((ctk_window_accessible_parent_class)), ((atk_object_get_type ()))))))->ref_relation_set (obj); |
| 219 | |
| 220 | if (atk_object_get_role (obj) == ATK_ROLE_TOOL_TIP) |
| 221 | { |
| 222 | relation = atk_relation_set_get_relation_by_type (relation_set, ATK_RELATION_POPUP_FOR); |
| 223 | if (relation) |
| 224 | atk_relation_set_remove (relation_set, relation); |
| 225 | |
| 226 | if (0) /* FIXME need a way to go from tooltip window to widget */ |
| 227 | { |
| 228 | array[0] = ctk_widget_get_accessible (current_widget); |
This statement is never executed | |
| 229 | relation = atk_relation_new (array, 1, ATK_RELATION_POPUP_FOR); |
| 230 | atk_relation_set_add (relation_set, relation); |
| 231 | g_object_unref (relation); |
| 232 | } |
| 233 | } |
| 234 | return relation_set; |
| 235 | } |
| 236 | |
| 237 | static AtkStateSet * |
| 238 | ctk_window_accessible_ref_state_set (AtkObject *accessible) |
| 239 | { |
| 240 | AtkStateSet *state_set; |
| 241 | CtkWidget *widget; |
| 242 | CtkWindow *window; |
| 243 | CdkWindow *cdk_window; |
| 244 | CdkWindowState state; |
| 245 | |
| 246 | widget = ctk_accessible_get_widget (CTK_ACCESSIBLE (accessible)((((CtkAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((accessible)), ((ctk_accessible_get_type ()))))))); |
| 247 | if (widget == NULL((void*)0)) |
| 248 | return NULL((void*)0); |
| 249 | |
| 250 | state_set = ATK_OBJECT_CLASS (ctk_window_accessible_parent_class)((((AtkObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((ctk_window_accessible_parent_class)), ((atk_object_get_type ()))))))->ref_state_set (accessible); |
| 251 | |
| 252 | window = CTK_WINDOW (widget)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((widget)), ((ctk_window_get_type ())))))); |
| 253 | |
| 254 | if (ctk_window_has_toplevel_focus (window) && ctk_window_is_active (window)) |
| 255 | atk_state_set_add_state (state_set, ATK_STATE_ACTIVE); |
| 256 | |
| 257 | cdk_window = ctk_widget_get_window (widget); |
| 258 | if (cdk_window) |
| 259 | { |
| 260 | state = cdk_window_get_state (cdk_window); |
| 261 | if (state & CDK_WINDOW_STATE_ICONIFIED) |
| 262 | atk_state_set_add_state (state_set, ATK_STATE_ICONIFIED); |
| 263 | } |
| 264 | if (ctk_window_get_modal (window)) |
| 265 | atk_state_set_add_state (state_set, ATK_STATE_MODAL); |
| 266 | |
| 267 | if (ctk_window_get_resizable (window)) |
| 268 | atk_state_set_add_state (state_set, ATK_STATE_RESIZABLE); |
| 269 | |
| 270 | return state_set; |
| 271 | } |
| 272 | |
| 273 | static void |
| 274 | count_widget (CtkWidget *widget G_GNUC_UNUSED__attribute__ ((__unused__)), |
| 275 | gint *count) |
| 276 | { |
| 277 | (*count)++; |
| 278 | } |
| 279 | |
| 280 | static void |
| 281 | prepend_widget (CtkWidget *widget, |
| 282 | GList **list) |
| 283 | { |
| 284 | *list = g_list_prepend (*list, widget); |
| 285 | } |
| 286 | |
| 287 | static gint |
| 288 | ctk_window_accessible_get_n_children (AtkObject *object) |
| 289 | { |
| 290 | CtkWidget *window; |
| 291 | gint count = 0; |
| 292 | |
| 293 | window = ctk_accessible_get_widget (CTK_ACCESSIBLE (object)((((CtkAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((object)), ((ctk_accessible_get_type ()))))))); |
| 294 | ctk_container_forall (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((window)), ((ctk_container_get_type ())))))), |
| 295 | (CtkCallback) count_widget, &count); |
| 296 | return count; |
| 297 | } |
| 298 | |
| 299 | static AtkObject * |
| 300 | ctk_window_accessible_ref_child (AtkObject *object, |
| 301 | gint i) |
| 302 | { |
| 303 | CtkWidget *window, *ref_child; |
| 304 | GList *children = NULL((void*)0); |
| 305 | |
| 306 | window = ctk_accessible_get_widget (CTK_ACCESSIBLE (object)((((CtkAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((object)), ((ctk_accessible_get_type ()))))))); |
| 307 | ctk_container_forall (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((window)), ((ctk_container_get_type ())))))), |
| 308 | (CtkCallback) prepend_widget, &children); |
| 309 | ref_child = g_list_nth_data (children, i); |
| 310 | g_list_free (children); |
| 311 | |
| 312 | if (!ref_child) |
| 313 | return NULL((void*)0); |
| 314 | |
| 315 | return g_object_ref (ctk_widget_get_accessible (ref_child))((__typeof__ (ctk_widget_get_accessible (ref_child))) (g_object_ref ) (ctk_widget_get_accessible (ref_child))); |
| 316 | } |
| 317 | |
| 318 | static AtkAttributeSet * |
| 319 | ctk_widget_accessible_get_attributes (AtkObject *obj) |
| 320 | { |
| 321 | CtkWidget *window; |
| 322 | CdkWindowTypeHint hint; |
| 323 | AtkAttributeSet *attributes; |
| 324 | AtkAttribute *attr; |
| 325 | GEnumClass *class; |
| 326 | GEnumValue *value; |
| 327 | |
| 328 | attributes = ATK_OBJECT_CLASS (ctk_window_accessible_parent_class)((((AtkObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((ctk_window_accessible_parent_class)), ((atk_object_get_type ()))))))->get_attributes (obj); |
| 329 | |
| 330 | attr = g_new (AtkAttribute, 1)((AtkAttribute *) g_malloc_n ((1), sizeof (AtkAttribute))); |
| 331 | attr->name = g_strdup ("window-type")g_strdup_inline ("window-type"); |
| 332 | |
| 333 | window = ctk_accessible_get_widget (CTK_ACCESSIBLE (obj)((((CtkAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((obj)), ((ctk_accessible_get_type ()))))))); |
| 334 | hint = ctk_window_get_type_hint (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((window)), ((ctk_window_get_type ()))))))); |
| 335 | |
| 336 | class = g_type_class_ref (CDK_TYPE_WINDOW_TYPE_HINT(cdk_window_type_hint_get_type ())); |
| 337 | for (value = class->values; value->value_name; value++) |
| 338 | { |
| 339 | if (hint == value->value) |
| 340 | { |
| 341 | attr->value = g_strdup (value->value_nick)g_strdup_inline (value->value_nick); |
| 342 | break; |
| 343 | } |
| 344 | } |
| 345 | g_type_class_unref (class); |
| 346 | |
| 347 | attributes = g_slist_append (attributes, attr); |
| 348 | |
| 349 | return attributes; |
| 350 | } |
| 351 | |
| 352 | static void |
| 353 | ctk_window_accessible_class_init (CtkWindowAccessibleClass *klass) |
| 354 | { |
| 355 | CtkWidgetAccessibleClass *widget_class = (CtkWidgetAccessibleClass*)klass; |
| 356 | AtkObjectClass *class = ATK_OBJECT_CLASS (klass)((((AtkObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((klass)), ((atk_object_get_type ())))))); |
| 357 | |
| 358 | widget_class->notify_ctk = ctk_window_accessible_notify_ctk; |
| 359 | |
| 360 | class->get_name = ctk_window_accessible_get_name; |
| 361 | class->get_index_in_parent = ctk_window_accessible_get_index_in_parent; |
| 362 | class->ref_relation_set = ctk_window_accessible_ref_relation_set; |
| 363 | class->ref_state_set = ctk_window_accessible_ref_state_set; |
| 364 | class->initialize = ctk_window_accessible_initialize; |
| 365 | class->focus_event = ctk_window_accessible_focus_event; |
| 366 | class->get_n_children = ctk_window_accessible_get_n_children; |
| 367 | class->ref_child = ctk_window_accessible_ref_child; |
| 368 | class->get_attributes = ctk_widget_accessible_get_attributes; |
| 369 | } |
| 370 | |
| 371 | static void |
| 372 | ctk_window_accessible_init (CtkWindowAccessible *accessible G_GNUC_UNUSED__attribute__ ((__unused__))) |
| 373 | { |
| 374 | } |
| 375 | |
| 376 | static void |
| 377 | ctk_window_accessible_get_extents (AtkComponent *component, |
| 378 | gint *x, |
| 379 | gint *y, |
| 380 | gint *width, |
| 381 | gint *height, |
| 382 | AtkCoordType coord_type) |
| 383 | { |
| 384 | CtkWidget *widget; |
| 385 | CdkWindow *window; |
| 386 | CdkRectangle rect; |
| 387 | gint x_toplevel, y_toplevel; |
| 388 | |
| 389 | widget = ctk_accessible_get_widget (CTK_ACCESSIBLE (component)((((CtkAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((component)), ((ctk_accessible_get_type ()))))))); |
| 390 | if (widget == NULL((void*)0)) |
| 391 | return; |
| 392 | |
| 393 | if (!ctk_widget_is_toplevel (widget)) |
| 394 | { |
| 395 | AtkComponentIface *parent_iface; |
| 396 | |
| 397 | parent_iface = (AtkComponentIface *) g_type_interface_peek_parent (ATK_COMPONENT_GET_IFACE (component)((((AtkComponentIface*) g_type_interface_peek (((GTypeInstance *) ((component)))->g_class, ((atk_component_get_type ()))) )))); |
| 398 | parent_iface->get_extents (component, x, y, width, height, coord_type); |
| 399 | return; |
| 400 | } |
| 401 | |
| 402 | window = ctk_widget_get_window (widget); |
| 403 | if (window == NULL((void*)0)) |
| 404 | return; |
| 405 | |
| 406 | cdk_window_get_frame_extents (window, &rect); |
| 407 | |
| 408 | *width = rect.width; |
| 409 | *height = rect.height; |
| 410 | if (!ctk_widget_is_drawable (widget)) |
| 411 | { |
| 412 | *x = G_MININT(-2147483647 -1); |
| 413 | *y = G_MININT(-2147483647 -1); |
| 414 | return; |
| 415 | } |
| 416 | |
| 417 | *x = rect.x; |
| 418 | *y = rect.y; |
| 419 | if (coord_type == ATK_XY_WINDOW) |
| 420 | { |
| 421 | cdk_window_get_origin (window, &x_toplevel, &y_toplevel); |
| 422 | *x -= x_toplevel; |
| 423 | *y -= y_toplevel; |
| 424 | } |
| 425 | } |
| 426 | |
| 427 | static void |
| 428 | ctk_window_accessible_get_size (AtkComponent *component, |
| 429 | gint *width, |
| 430 | gint *height) |
| 431 | { |
| 432 | CtkWidget *widget; |
| 433 | CdkWindow *window; |
| 434 | CdkRectangle rect; |
| 435 | |
| 436 | widget = ctk_accessible_get_widget (CTK_ACCESSIBLE (component)((((CtkAccessible*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((component)), ((ctk_accessible_get_type ()))))))); |
| 437 | if (widget == NULL((void*)0)) |
| 438 | return; |
| 439 | |
| 440 | if (!ctk_widget_is_toplevel (widget)) |
| 441 | { |
| 442 | AtkComponentIface *parent_iface; |
| 443 | |
| 444 | parent_iface = (AtkComponentIface *) g_type_interface_peek_parent (ATK_COMPONENT_GET_IFACE (component)((((AtkComponentIface*) g_type_interface_peek (((GTypeInstance *) ((component)))->g_class, ((atk_component_get_type ()))) )))); |
| 445 | parent_iface->get_size (component, width, height); |
| 446 | return; |
| 447 | } |
| 448 | |
| 449 | window = ctk_widget_get_window (widget); |
| 450 | if (window == NULL((void*)0)) |
| 451 | return; |
| 452 | |
| 453 | cdk_window_get_frame_extents (window, &rect); |
| 454 | |
| 455 | *width = rect.width; |
| 456 | *height = rect.height; |
| 457 | } |
| 458 | |
| 459 | static void |
| 460 | atk_component_interface_init (AtkComponentIface *iface) |
| 461 | { |
| 462 | iface->get_extents = ctk_window_accessible_get_extents; |
| 463 | iface->get_size = ctk_window_accessible_get_size; |
| 464 | } |
| 465 | |
| 466 | static void |
| 467 | atk_window_interface_init (AtkWindowIface *iface G_GNUC_UNUSED__attribute__ ((__unused__))) |
| 468 | { |
| 469 | /* At this moment AtkWindow is just about signals */ |
| 470 | } |