Пример #1
0
static void
epdf_index_fill(Eina_List **items, pdf_outline *entry)
{
   Epdf_Index_Item *item;

   item = epdf_index_item_new();
   item->title = entry->title;
   item->link = entry->link;

   *items = eina_list_append (*items, item);

   if (entry->child)
     epdf_index_fill(&item->children, entry->child);

   if (entry->next)
     epdf_index_fill(items, entry->next);
}
Пример #2
0
static void
epdf_index_fill (Ecore_List *items,
                 GooList    *gitems)
{
  if (!items || !gitems)
    return;

  for (int i = 0; i < gitems->getLength (); i++) {
    Epdf_Index_Item *item;
    OutlineItem     *oitem = (OutlineItem *)gitems->get (i);
    Unicode         *utitle = oitem->getTitle ();

    item = epdf_index_item_new ();
    item->title = unicode_to_char (utitle, oitem->getTitleLength ());
    item->action = oitem->getAction ();
    oitem->open ();
    if (oitem->hasKids () && oitem->getKids ()) {
      item->children = ecore_list_new ();
      epdf_index_fill (item->children, oitem->getKids ());
    }
    ecore_list_append (items, item);
  }
}