コード例 #1
0
static void move_down(){
   menu_list_data *data;
   int i;
   //div_t n;
   int relative_index;

   data = (menu_list_data *)   ssd_dialog_get_current_data();

   //n = div (data->CurrentIndex, data->num_rows);
   relative_index = data->CurrentIndex % data->num_rows;

      if (((data->CurrentIndex == data->num_rows -1) || (relative_index == data->num_rows -1) || (data->CurrentIndex == data->num_items -1)) && (data->num_items > data->num_rows)){
          int index;

         for (i=0; i<data->num_items;i++)
               ssd_widget_hide(data->MenuWidgets[i]);

         if (data->CurrentIndex == data->num_items -1)
            index = 0;
         else
            index = data->CurrentIndex +1;

         for (i=index; i<index+data->num_rows;i++)
            if (i < data->num_items)
               ssd_widget_show(data->MenuWidgets[i]);
      }

      if (data->CurrentIndex < data->num_items-1)
         data->CurrentIndex++;
      else
         data->CurrentIndex = 0;

      ssd_dialog_resort_tab_order();
      ssd_dialog_set_focus(ssd_widget_get(data->MenuWidgets[data->CurrentIndex],"button"));
}
コード例 #2
0
void ssd_dialog_move_focus (int direction) {

   assert(RoadMapDialogCurrent);

   if (!RoadMapDialogCurrent->in_focus) {
      ssd_dialog_set_dialog_focus(RoadMapDialogCurrent,
                                  RoadMapDialogCurrent->in_focus_default);
      return;
   }

   RoadMapDialogCurrent->in_focus =
      ssd_widget_move_focus(RoadMapDialogCurrent->in_focus, direction);
   ssd_dialog_allign_focus();
   ssd_dialog_resort_tab_order();
}
コード例 #3
0
static void move_up(){
      menu_list_data *data;
      int i;
      int n_quot;
   	int relative_index;

      data = (menu_list_data *)   ssd_dialog_get_current_data();
      n_quot = data->CurrentIndex / data->num_rows;
      relative_index = data->CurrentIndex % data->num_rows;

      if (((data->CurrentIndex == 0) || (relative_index == 0) || (data->CurrentIndex == data->num_rows )) && (data->num_items > data->num_rows)){
          int index;

         for (i=0; i<data->num_items;i++)
            ssd_widget_hide(data->MenuWidgets[i]);

         if (relative_index == 0)
         	if (n_quot == 0){
         		//div_t n2;
         		int n2_rem = data->num_items % data->num_rows;
         		int n2_quot = data->num_items / data->num_rows;
         		if (n2_rem == 0)
         			index = (n2_quot -1) * data->num_rows;
         		else
         			index = n2_quot * data->num_rows ;
         	}
         	else
         		index = (n_quot -1) * data->num_rows;
         else
            index =0;

         for (i=index; i<index+data->num_rows;i++)
            if (i < data->num_items)
               ssd_widget_show(data->MenuWidgets[i]);
      }


      if (data->CurrentIndex > 0)
         data->CurrentIndex--;
      else
         data->CurrentIndex = data->num_items -1;

      ssd_dialog_resort_tab_order();
      ssd_dialog_set_focus(ssd_widget_get(data->MenuWidgets[data->CurrentIndex],"button"));

}
コード例 #4
0
static void move_to_start(){
	  menu_list_data *data;
	  int i;
	  int num_items;

	  data = (menu_list_data *)	ssd_dialog_get_current_data();

	  for (i=0; i<data->num_items;i++)
         ssd_widget_hide(data->MenuWidgets[i]);


     if (data->num_items < data->num_rows)
     	num_items = data->num_items;
     else
     	num_items = data->num_rows;
     for (i=0; i<num_items;i++)
         		ssd_widget_show(data->MenuWidgets[i]);
	  ssd_dialog_resort_tab_order();
	  ssd_dialog_set_focus(ssd_widget_get(data->MenuWidgets[0],"button"));
	  data->CurrentIndex = 0;
}