コード例 #1
0
/**
 * menu_navigation_increment:
 *
 * Increment the navigation pointer.
 **/
void menu_navigation_increment(menu_navigation_t *nav, unsigned scroll_speed)
{
   settings_t *settings   = config_get_ptr();
   menu_list_t *menu_list = menu_list_get_ptr();

   if (!nav)
      return;

   if (nav->selection_ptr + scroll_speed < (menu_list_get_size(menu_list)))
   {
      menu_navigation_set(nav,
            nav->selection_ptr + scroll_speed, true);
      menu_driver_navigation_increment();
   }
   else
   {
      if (settings->menu.navigation.wraparound.vertical_enable)
         menu_navigation_clear(nav, false);
      else
      {
         if ((menu_list_get_size(menu_list) > 0))
         {
            menu_navigation_set_last(nav);
            menu_driver_navigation_increment();
         }
      }
   }

}
コード例 #2
0
static int action_toggle_scroll(unsigned type, const char *label,
      unsigned action)
{
   unsigned scroll_speed = 0, fast_scroll_speed = 0;
   menu_handle_t *menu = menu_driver_resolve();
   if (!menu)
      return -1;

   scroll_speed      = (max(menu->navigation.scroll.acceleration, 2) - 2) / 4 + 1;
   fast_scroll_speed = 4 + 4 * scroll_speed;

   switch (action)
   {
      case MENU_ACTION_LEFT:
         if (menu->navigation.selection_ptr > fast_scroll_speed)
            menu_navigation_set(&menu->navigation,
                  menu->navigation.selection_ptr - fast_scroll_speed, true);
         else
            menu_navigation_clear(&menu->navigation, false);
         break;
      case MENU_ACTION_RIGHT:
         if (menu->navigation.selection_ptr + fast_scroll_speed < (menu_list_get_size(menu->menu_list)))
            menu_navigation_set(&menu->navigation,
                  menu->navigation.selection_ptr + fast_scroll_speed, true);
         else
         {
            if ((menu_list_get_size(menu->menu_list) > 0))
                  menu_navigation_set_last(&menu->navigation);
         }
         break;
   }

   return 0;
}
コード例 #3
0
ファイル: menu_cbs_right.c プロジェクト: netux79/RAvideoFixes
static int action_right_scroll(unsigned type, const char *label,
      bool wraparound)
{
   unsigned scroll_speed = 0, fast_scroll_speed = 0;
   menu_list_t *menu_list = menu_list_get_ptr();
   menu_navigation_t *nav = menu_navigation_get_ptr();
   if (!nav || !menu_list)
      return -1;

   scroll_speed      = (max(nav->scroll.acceleration, 2) - 2) / 4 + 1;
   fast_scroll_speed = 4 + 4 * scroll_speed;

   if (nav->selection_ptr + fast_scroll_speed < (menu_list_get_size(menu_list)))
      menu_navigation_set(nav, nav->selection_ptr + fast_scroll_speed, true);
   else
   {
      if ((menu_list_get_size(menu_list) > 0))
         menu_navigation_set_last(nav);
   }

   return 0;
}