Ejemplo n.º 1
0
/**
 * @brief Implementation AtkObject->ref_child callback
 *
 * ATK doc says:\n
 * Gets a reference to the specified accessible child of the object. The
 * accessible children are 0-based so the first accessible child is at index 0,
 * the second at index 1 and so on.
 *
 * @returns an AtkObject representing the specified accessible child of the
 * accessible.
 */
static AtkObject *
eail_naviframe_ref_child(AtkObject *obj, gint i)
{
   Eina_List *list;
   EailNaviframe *naviframe;
   EailWidget *widget;
   Evas_Object *e_object;

   g_return_val_if_fail(EAIL_IS_NAVIFRAME(obj), NULL);

   naviframe = EAIL_NAVIFRAME(obj);
   widget = EAIL_WIDGET(naviframe);

   e_object = eail_widget_get_widget(widget);

   list = elm_naviframe_items_get(e_object);
   int list_count = eina_list_count(list);
   if (i >= list_count)
     {
        eina_list_free(list);
        return NULL;
     }

   AtkObject *child = eail_naviframe_page_new(obj, i);
   atk_object_initialize(child, eina_list_nth(list, i));
   g_object_ref(child);
   naviframe->cached_pages = eina_list_append(naviframe->cached_pages, child);

   eina_list_free(list);

   return child;
}
Ejemplo n.º 2
0
/**
 * @brief Refreshes history of realized pages
 *
 * @param self an EailNaviframe object
 * @param list list of realized pages
 */
static void
_refresh_cached_pages(EailNaviframe *self, const Eina_List *list)
{
   int list_count = eina_list_count(list);

   eina_list_free(self->cached_pages);

   for (int i = 0; i < list_count; i++)
     {
        AtkObject *child = eail_naviframe_page_new(ATK_OBJECT(self), i);
        atk_object_initialize(child, eina_list_nth(list, i));
        g_object_ref(child);
        self->cached_pages = eina_list_append(self->cached_pages, child);
     }
}
Ejemplo n.º 3
0
/**
 * @brief Returns naviframe-page implementation for given object item
 *
 * @param naviframe an naviframe AtkObject
 * @param item an Elm_Object_Item for naviframe-page
 *
 * @returns an AtkObject* representation for naviframe-page
 */
static AtkObject *
_eail_naviframe_get_naviframe_page_for_item(AtkObject *naviframe,
                                            Elm_Object_Item *item)
{
   EailFactoryObj *factory_obj = NULL;
   AtkObject *naviframe_page = NULL;

   factory_obj = eail_factory_find_obj_for_item(item);
   if (factory_obj)
     {
        if (!factory_obj->atk_obj)
          ERR("No atk obj created for factory item object");

        return factory_obj->atk_obj;
     }

   naviframe_page = eail_naviframe_page_new(naviframe, item);
   atk_object_initialize(naviframe_page, item);
   eail_factory_append_item_to_cache(ATK_OBJECT(naviframe_page), item);

   return naviframe_page;
}