示例#1
0
static gboolean
test_role (void)
{
    AtkRole role1, role2;
    G_CONST_RETURN gchar *name;

    name = atk_role_get_name (ATK_ROLE_PAGE_TAB);
    g_return_val_if_fail (name, FALSE);
    if (strcmp (name, "page-tab") != 0)
    {
        g_print ("Unexpected name for ATK_ROLE_PAGE_TAB %s\n", name);
        return FALSE;
    }

    name = atk_role_get_name (ATK_ROLE_LAYERED_PANE);
    g_return_val_if_fail (name, FALSE);
    if (strcmp (name, "layered-pane") != 0)
    {
        g_print ("Unexpected name for ATK_ROLE_LAYERED_PANE %s\n", name);
        return FALSE;
    }

    role1 = atk_role_for_name ("list-item");
    if (role1 != ATK_ROLE_LIST_ITEM)
    {
        g_print ("Unexpected role for list-item\n");
        return FALSE;
    }

    role1 = atk_role_register ("test-role");
    name = atk_role_get_name (role1);
    g_return_val_if_fail (name, FALSE);
    if (strcmp (name, "test-role") != 0)
    {
        g_print ("Unexpected name for test-role %s\n", name);
        return FALSE;
    }
    role2 = atk_role_for_name ("test-role");
    if (role1 != role2)
    {
        g_print ("Unexpected role for test-role\n");
        return FALSE;
    }
    role2 = atk_role_for_name ("TEST_ROLE");
    if (role2 != 0)
    {
        g_print ("Unexpected role for TEST_ROLE\n");
        return FALSE;
    }
    /*
     * Check that a non-existent role returns NULL
     */
    name = atk_role_get_name (ATK_ROLE_LAST_DEFINED + 2);
    if (name)
    {
        g_print ("Unexpected name for undefined role %s\n", name);
        return FALSE;
    }
    return TRUE;
}
JSStringRef AccessibilityUIElement::role()
{
    AtkRole role = atk_object_get_role(ATK_OBJECT(m_element));

    if (!role)
        return JSStringCreateWithCharacters(0, 0);

    return JSStringCreateWithUTF8CString(atk_role_get_name(role));
}
JSStringRef AccessibilityUIElement::role()
{
    AtkRole role = atk_object_get_role(ATK_OBJECT(m_element));

    if (!role)
        return JSStringCreateWithCharacters(0, 0);

    const gchar* roleName = atk_role_get_name(role);
    GOwnPtr<gchar> axRole(g_strdup_printf("AXRole: %s", roleName));

    return JSStringCreateWithUTF8CString(axRole.get());
}
static void
_print_object_info(AtkObject *obj)
{
   AtkRole atk_role = atk_object_get_role(obj);
   const char *name = atk_object_get_name(obj);
   const char *type_name = g_type_name(G_TYPE_FROM_INSTANCE(obj));
   const char *role_name = atk_role_get_name(atk_role);

   printf("atk_object_get_name: %s\n", name ? name : "NULL");
   printf("atk_object_get_role: %s\n", role_name ? role_name : "NULL");
   printf("atk_object_get_type_name: %s\n", type_name ? type_name : "NULL");
}
示例#5
0
/**
 * Wrapper for atk_role_get_name().
 */
static PyObject*
_role_get_name (PyObject *self, PyObject *args)
{
    AtkRole val;

    debug ("_role_get_name\n");

    if (!PyArg_ParseTuple (args, "i:atk_role_get_name", &val))
        return NULL;
    
    return PyString_FromString (atk_role_get_name (val));
}
示例#6
0
文件: accessible.c 项目: GNOME/at-spi
/*
 * CORBA Accessibility::Accessible::getRole method implementation
 */
static CORBA_char *
impl_accessibility_accessible_get_role_name (PortableServer_Servant servant,
					     CORBA_Environment     *ev)
{
  const gchar     *role_name;
  AtkRole    role;
  AtkObject *object = get_atkobject_from_servant (servant);

  g_return_val_if_fail (object != NULL, NULL);

  role = atk_object_get_role (object);

  role_name = atk_role_get_name (role);
  if (role_name)
    return CORBA_string_dup (role_name);
  else
    return CORBA_string_dup ("");
}
示例#7
0
static DBusMessage *
impl_GetRoleName (DBusConnection * bus,
                  DBusMessage * message, void *user_data)
{
  AtkObject *object = (AtkObject *) user_data;
  gint role;
  const char *role_name;
  DBusMessage *reply;

  g_return_val_if_fail (ATK_IS_OBJECT (user_data),
                        droute_not_yet_handled_error (message));
  role = atk_object_get_role (object);
  role_name = atk_role_get_name (role);
  if (!role_name)
    role_name = "";
  reply = dbus_message_new_method_return (message);
  if (reply)
    {
      dbus_message_append_args (reply, DBUS_TYPE_STRING, &role_name,
                                DBUS_TYPE_INVALID);
    }
  return reply;
}
示例#8
0
static gboolean
window_close_handler (gpointer p)
{
  CallbackPara *para = (CallbackPara*)p;
  jobject global_ac = para->global_ac;
  gboolean is_toplevel = para->is_toplevel;

  JNIEnv *jniEnv = jaw_util_get_jni_env();
  if (jniEnv == NULL)
  {
    if (jaw_debug)
      g_warning("window_close_handler: env == NULL");
    free_callback_para(para);
    return G_SOURCE_REMOVE;
  }

  if (global_ac == NULL)
  {
    if (jaw_debug)
      g_warning("window_close_handler: global_ac == NULL");
    free_callback_para(para);
    return G_SOURCE_REMOVE;
  }
  JawImpl *jaw_impl = jaw_impl_find_instance(jniEnv, global_ac);
  if (jaw_impl == NULL)
  {
    if (jaw_debug)
      g_warning("window_close_handler: jaw_impl == NULL");
    free_callback_para(para);
    return G_SOURCE_REMOVE;
  }

  AtkObject* atk_obj = ATK_OBJECT(jaw_impl);

  if (!g_strcmp0(atk_role_get_name(atk_object_get_role(atk_obj)), "redundant object"))
  {
    free_callback_para(para);
    return G_SOURCE_REMOVE;
  }

  if (atk_object_get_role(atk_obj) == ATK_ROLE_TOOL_TIP)
  {
    free_callback_para(para);
    return G_SOURCE_REMOVE;
  }

  if (is_toplevel) {
    gint n = jaw_toplevel_remove_window(JAW_TOPLEVEL(atk_get_root()), atk_obj);

    g_object_notify(G_OBJECT(atk_get_root()), "accessible-name");

    g_signal_emit_by_name(ATK_OBJECT(atk_get_root()),
                          "children-changed::remove",
                          n,
                          atk_obj,
                          NULL);

    g_signal_emit_by_name(atk_obj, "destroy", 0);
  }

  free_callback_para(para);

  return G_SOURCE_REMOVE;
}
static void
_test_slideshow_object(AtkObject *obj)
{
   int child_count, selection_count, action_count;
   AtkObject *child, *selection;
   gboolean result;
   const gchar *action_name, *action_description;
   /*sometimes this is called several times*/
   static int tested = 0;
   fprintf(stdout, "Testing slideshow\n");
   if (tested > 0) return;
   tested++;

   g_object_ref(obj);

   g_assert(eailu_is_object_with_role(obj, ATK_ROLE_LIST));

   child_count = atk_object_get_n_accessible_children(obj);
   g_assert(child_count == 9);

   for (int i = 0; i < child_count; i++)
     {
        child = atk_object_ref_accessible_child(obj, i);
        AtkRole role = atk_object_get_role(child);
        fprintf(stdout, "index %d child role: %s\n", i,
                atk_role_get_name(role));
        g_assert(eailu_is_object_with_role(child, ATK_ROLE_IMAGE));
        g_object_unref(child);
     }

   /*test AtkSelectionIface*/
   g_assert(ATK_IS_SELECTION(obj));
   selection = atk_selection_ref_selection(ATK_SELECTION(obj), 0);
   /*this may fail due to a problem with  slideshow cache*/
   g_assert(ATK_IS_OBJECT(selection));
   g_assert(eailu_is_object_with_role(selection, ATK_ROLE_IMAGE));
   g_object_unref(selection);
   selection_count = atk_selection_get_selection_count(ATK_SELECTION(obj));
   g_assert(selection_count == 1);
   result = atk_selection_add_selection(ATK_SELECTION(obj), 5);
   g_assert(result);
   result = atk_selection_is_child_selected(ATK_SELECTION(obj), 5);
   g_assert(result);

   /*test AtkActionIface*/
   g_assert(ATK_IS_ACTION(obj));
   /* test set/get action description */
   eailu_test_action_description_all(ATK_ACTION(obj));
   action_count = atk_action_get_n_actions(ATK_ACTION(obj));
   g_assert(4 == action_count);
   action_name = atk_action_get_name(ATK_ACTION(obj), 0);
   g_assert(!strcmp("next", action_name));
   action_name = atk_action_get_name(ATK_ACTION(obj), 1);
   g_assert(!strcmp("previous", action_name));
   result = atk_action_set_description(ATK_ACTION(obj), 2,
                                       "start the slideshow");
   g_assert(result);
   action_description = atk_action_get_description(ATK_ACTION(obj), 2);
   g_assert(!strcmp("start the slideshow", action_description));
   result = atk_action_do_action(ATK_ACTION(obj), 0);
   g_assert(result);
   result = atk_selection_is_child_selected(ATK_SELECTION(obj), 6);
   g_assert(result);

   eailu_test_atk_focus(obj, TRUE);

   g_object_unref(obj);
   eail_test_code_called = TRUE;
}