Esempio n. 1
0
void menu_build_scroll_indices(file_list_t *buf)
{
   size_t i;
   int current;
   bool current_is_dir;

   if (!driver.menu || !buf)
      return;

   driver.menu->scroll_indices_size = 0;
   if (!buf->size)
      return;

   driver.menu->scroll_indices[driver.menu->scroll_indices_size++] = 0;

   current = menu_list_get_first_char(buf, 0);
   current_is_dir = menu_list_elem_is_dir(buf, 0);

   for (i = 1; i < buf->size; i++)
   {
      int first = menu_list_get_first_char(buf, i);
      bool is_dir = menu_list_elem_is_dir(buf, i);

      if ((current_is_dir && !is_dir) || (first > current))
         driver.menu->scroll_indices[driver.menu->scroll_indices_size++] = i;

      current = first;
      current_is_dir = is_dir;
   }

   driver.menu->scroll_indices[driver.menu->scroll_indices_size++] = buf->size - 1;
}
Esempio n. 2
0
void menu_build_scroll_indices(void *data, file_list_t *buf)
{
   size_t i;
   int current;
   bool current_is_dir;
   rgui_handle_t *rgui = (rgui_handle_t*)data;

   rgui->scroll_indices_size = 0;
   if (!buf->size)
      return;

   rgui->scroll_indices[rgui->scroll_indices_size++] = 0;

   current = menu_list_get_first_char(buf, 0);
   current_is_dir = menu_list_elem_is_dir(buf, 0);

   for (i = 1; i < buf->size; i++)
   {
      int first;
      bool is_dir;

      first = menu_list_get_first_char(buf, i);
      is_dir = menu_list_elem_is_dir(buf, i);

      if ((current_is_dir && !is_dir) || (first > current))
         rgui->scroll_indices[rgui->scroll_indices_size++] = i;

      current = first;
      current_is_dir = is_dir;
   }

   rgui->scroll_indices[rgui->scroll_indices_size++] = buf->size - 1;
}
Esempio n. 3
0
static void menu_list_build_scroll_indices(file_list_t *list)
{
   size_t i;
   int current;
   bool current_is_dir;
   menu_navigation_t *nav = menu_navigation_get_ptr();

   if (!nav || !list)
      return;

   nav->scroll.indices.size = 0;

   if (!list->size)
      return;

   nav->scroll.indices.list[nav->scroll.indices.size++] = 0;

   current        = menu_list_elem_get_first_char(list, 0);
   current_is_dir = menu_list_elem_is_dir(list, 0);

   for (i = 1; i < list->size; i++)
   {
      int first   = menu_list_elem_get_first_char(list, i);
      bool is_dir = menu_list_elem_is_dir(list, i);

      if ((current_is_dir && !is_dir) || (first > current))
         nav->scroll.indices.list[nav->scroll.indices.size++] = i;

      current = first;
      current_is_dir = is_dir;
   }

   nav->scroll.indices.list[nav->scroll.indices.size++] = 
      list->size - 1;
}