Exemplo n.º 1
0
void menu_input_search_start(void)
{
   menu_handle_t *menu = menu_driver_get_ptr();
   if (!menu)
      return;

   menu->keyboard.display = true;
   menu->keyboard.label = "Search: ";
   menu->keyboard.buffer = 
      input_keyboard_start_line(menu, menu_input_search_callback);
}
Exemplo n.º 2
0
void menu_key_start_line(void *data, const char *label, input_keyboard_line_complete_t cb)
{
   menu_handle_t *menu = (menu_handle_t*)data;

   if (!menu)
      return;

   menu->keyboard.display = true;
   menu->keyboard.label = label;
   menu->keyboard.buffer = input_keyboard_start_line(menu, cb);
}
Exemplo n.º 3
0
void menu_input_search_start(void)
{
   menu_handle_t      *menu = menu_driver_get_ptr();
   menu_input_t *menu_input = menu_input_get_ptr();
   if (!menu || !menu_input)
      return;

   menu_input->keyboard.display = true;
   menu_input->keyboard.label   = menu_hash_to_str(MENU_VALUE_SEARCH);
   menu_input->keyboard.buffer  =
      input_keyboard_start_line(menu, menu_input_search_callback);
}
Exemplo n.º 4
0
void menu_key_event(bool down, unsigned keycode, uint32_t character, uint16_t mod)
{
   (void)down;
   (void)keycode;
   (void)mod;

   if (character == '/')
   {
      rgui->keyboard.display = true;
      rgui->keyboard.label = "Search: ";
      rgui->keyboard.buffer = input_keyboard_start_line(rgui, menu_search_callback);
   }
}
Exemplo n.º 5
0
void menu_input_key_start_line(const char *label,
      const char *label_setting, unsigned type, unsigned idx,
      input_keyboard_line_complete_t cb)
{
   menu_handle_t *menu = menu_driver_get_ptr();
   if (!menu)
      return;

   menu->keyboard.display       = true;
   menu->keyboard.label         = label;
   menu->keyboard.label_setting = label_setting;
   menu->keyboard.type          = type;
   menu->keyboard.idx           = idx;
   menu->keyboard.buffer        = input_keyboard_start_line(menu, cb);
}
Exemplo n.º 6
0
bool menu_input_dialog_start_search(void)
{
   menu_handle_t      *menu = NULL;

   if (!menu_driver_ctl(
            RARCH_MENU_CTL_DRIVER_DATA_GET, &menu))
      return false;

   menu_input_dialog_display_kb();
   strlcpy(menu_input_dialog_keyboard_label, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SEARCH),
         sizeof(menu_input_dialog_keyboard_label));
   menu_input_dialog_keyboard_buffer   =
      input_keyboard_start_line(menu, menu_input_search_cb);

   return true;
}
Exemplo n.º 7
0
void menu_input_key_start_line(const char *label,
      const char *label_setting, unsigned type, unsigned idx,
      input_keyboard_line_complete_t cb)
{
   bool keyboard_display    = true;
   menu_handle_t    *menu   = menu_driver_get_ptr();
   menu_input_t *menu_input = menu_input_get_ptr();
   if (!menu || !menu_input)
      return;

   menu_input_ctl(MENU_INPUT_CTL_SET_KEYBOARD_DISPLAY,       &keyboard_display);
   menu_input_ctl(MENU_INPUT_CTL_SET_KEYBOARD_LABEL,         &label);
   menu_input_ctl(MENU_INPUT_CTL_SET_KEYBOARD_LABEL_SETTING, &label_setting);

   menu_input->keyboard.type          = type;
   menu_input->keyboard.idx           = idx;
   menu_input->keyboard.buffer        = input_keyboard_start_line(menu, cb);
}
Exemplo n.º 8
0
void menu_key_event(bool down, unsigned keycode, uint32_t character, uint16_t mod)
{
   if (!driver.menu)
   {
      RARCH_ERR("Cannot invoke menu key event callback, menu handle is not initialized.\n");
      return;
   }

   (void)down;
   (void)keycode;
   (void)mod;

   if (character == '/')
   {
      driver.menu->keyboard.display = true;
      driver.menu->keyboard.label = "Search: ";
      driver.menu->keyboard.buffer = input_keyboard_start_line(driver.menu, menu_search_callback);
   }
}
Exemplo n.º 9
0
bool menu_input_dialog_start(menu_input_ctx_line_t *line)
{
   menu_handle_t    *menu      = NULL;
   if (!line)
      return false;
   if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu))
      return false;

   menu_input_dialog_display_kb();
   strlcpy(menu_input_dialog_keyboard_label, line->label, 
         sizeof(menu_input_dialog_keyboard_label));
   strlcpy(menu_input_dialog_keyboard_label_setting,
         line->label_setting, sizeof(menu_input_dialog_keyboard_label_setting));

   menu_input_dialog_keyboard_type   = line->type;
   menu_input_dialog_keyboard_idx    = line->idx;
   menu_input_dialog_keyboard_buffer =
      input_keyboard_start_line(menu, line->cb);

   return true;
}
Exemplo n.º 10
0
bool menu_input_ctl(enum menu_input_ctl_state state, void *data)
{
   menu_input_t *menu_input = menu_input_get_ptr();
   menu_handle_t      *menu = menu_driver_get_ptr();

   if (!menu_input)
      return false;

   switch (state)
   {
      case MENU_INPUT_CTL_SEARCH_START:
         menu_input->keyboard.display = true;
         menu_input->keyboard.label   = menu_hash_to_str(MENU_VALUE_SEARCH);
         menu_input->keyboard.buffer  =
            input_keyboard_start_line(menu, menu_input_search_callback);
         return true;
      case MENU_INPUT_CTL_MOUSE_SCROLL_DOWN:
         {
            bool *ptr = (bool*)data;
            *ptr = menu_input->mouse.scrolldown;
         }
         return true;
      case MENU_INPUT_CTL_MOUSE_SCROLL_UP:
         {
            bool *ptr = (bool*)data;
            *ptr = menu_input->mouse.scrollup;
         }
         return true;
      case MENU_INPUT_CTL_MOUSE_PTR:
         {
            unsigned *ptr = (unsigned*)data;
            menu_input->mouse.ptr = *ptr;
         }
         return true;
      case MENU_INPUT_CTL_POINTER_PTR:
         {
            unsigned *ptr = (unsigned*)data;
            menu_input->pointer.ptr = *ptr;
         }
         return true;
      case MENU_INPUT_CTL_POINTER_ACCEL_READ:
         {
            float *ptr = (float*)data;
            *ptr = menu_input->pointer.accel;
         }
         return true;
      case MENU_INPUT_CTL_POINTER_ACCEL_WRITE:
         {
            float *ptr = (float*)data;
            menu_input->pointer.accel = *ptr;
         }
         return true;
      case MENU_INPUT_CTL_POINTER_DRAGGING:
         {
            bool *ptr = (bool*)data;
            *ptr = menu_input->pointer.dragging;
         }
         return true;
      case MENU_INPUT_CTL_KEYBOARD_DISPLAY:
         {
            bool *ptr = (bool*)data;
            *ptr = menu_input->keyboard.display;
         }
         return true;
      case MENU_INPUT_CTL_SET_KEYBOARD_DISPLAY:
         {
            bool *ptr = (bool*)data;
            menu_input->keyboard.display = *ptr;
         }
         return true;
      case MENU_INPUT_CTL_KEYBOARD_BUFF_PTR:
         {
            const char **ptr = (const char**)data;
            *ptr = *menu_input->keyboard.buffer;
         }
         return true;
      case MENU_INPUT_CTL_KEYBOARD_LABEL:
         {
            const char **ptr = (const char**)data;
            *ptr = menu_input->keyboard.label;
         }
         return true;
      case MENU_INPUT_CTL_SET_KEYBOARD_LABEL:
         {
            char **ptr = (char**)data;
            menu_input->keyboard.label = *ptr;
         }
         return true;
      case MENU_INPUT_CTL_UNSET_KEYBOARD_LABEL:
         menu_input->keyboard.label = NULL;
         return true;
      case MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING:
         {
            const char **ptr = (const char**)data;
            *ptr = menu_input->keyboard.label_setting;
         }
         return true;
      case MENU_INPUT_CTL_SET_KEYBOARD_LABEL_SETTING:
         {
            char **ptr = (char**)data;
            menu_input->keyboard.label_setting = *ptr;
         }
         return true;
      case MENU_INPUT_CTL_UNSET_KEYBOARD_LABEL_SETTING:
         menu_input->keyboard.label_setting = NULL;
         return true;
   }

   return false;
}
Exemplo n.º 11
0
bool menu_input_ctl(enum menu_input_ctl_state state, void *data)
{
   static char menu_input_keyboard_label_setting[256];
   static const char **menu_input_keyboard_buffer;
   static const char *menu_input_keyboard_label = NULL;
   static bool pointer_dragging                 = false;
   menu_input_t *menu_input                     = menu_input_get_ptr();

   if (!menu_input)
      return false;

   switch (state)
   {
      case MENU_INPUT_CTL_BIND_SET_MIN_MAX:
         {
            menu_input_ctx_bind_limits_t *lim = 
               (menu_input_ctx_bind_limits_t*)data;
            if (!lim || !menu_input)
               return false;

            menu_input->binds.begin = lim->min;
            menu_input->binds.last  = lim->max;
         }
         break;
      case MENU_INPUT_CTL_CHECK_INSIDE_HITBOX:
         {
            menu_input_ctx_hitbox_t *hitbox = (menu_input_ctx_hitbox_t*)data;
            int16_t  mouse_x       = menu_input_mouse_state(MENU_MOUSE_X_AXIS);
            int16_t  mouse_y       = menu_input_mouse_state(MENU_MOUSE_Y_AXIS);
            bool     inside_hitbox = 
                  (mouse_x    >= hitbox->x1) 
                  && (mouse_x <= hitbox->x2) 
                  && (mouse_y >= hitbox->y1) 
                  && (mouse_y <= hitbox->y2)
                  ;

            if (!inside_hitbox)
               return false;
         }
         break;
      case MENU_INPUT_CTL_DEINIT:
         memset(menu_input, 0, sizeof(menu_input_t));
         pointer_dragging      = false;
         break;
      case MENU_INPUT_CTL_SEARCH_START:
         {
            menu_handle_t      *menu = NULL;
            if (!menu_driver_ctl(
                     RARCH_MENU_CTL_DRIVER_DATA_GET, &menu))
               return false;

            menu_input->keyboard.display = true;
            menu_input_keyboard_label    = menu_hash_to_str(MENU_VALUE_SEARCH);
            menu_input_keyboard_buffer   =
               input_keyboard_start_line(menu, menu_input_search_cb);
         }
         break;
      case MENU_INPUT_CTL_MOUSE_PTR:
         {
            unsigned *ptr = (unsigned*)data;
            menu_input->mouse.ptr = *ptr;
         }
         break;
      case MENU_INPUT_CTL_POINTER_PTR:
         {
            unsigned *ptr = (unsigned*)data;
            menu_input->pointer.ptr = *ptr;
         }
         break;
      case MENU_INPUT_CTL_POINTER_ACCEL_READ:
         {
            float *ptr = (float*)data;
            *ptr = menu_input->pointer.accel;
         }
         break;
      case MENU_INPUT_CTL_POINTER_ACCEL_WRITE:
         {
            float *ptr = (float*)data;
            menu_input->pointer.accel = *ptr;
         }
         break;
      case MENU_INPUT_CTL_IS_POINTER_DRAGGED:
         return pointer_dragging;
      case MENU_INPUT_CTL_SET_POINTER_DRAGGED:
         pointer_dragging = true;
         break;
      case MENU_INPUT_CTL_UNSET_POINTER_DRAGGED:
         pointer_dragging = false;
         break;
      case MENU_INPUT_CTL_KEYBOARD_DISPLAY:
         {
            bool *ptr = (bool*)data;
            *ptr = menu_input->keyboard.display;
         }
         break;
      case MENU_INPUT_CTL_SET_KEYBOARD_DISPLAY:
         {
            bool *ptr = (bool*)data;
            menu_input->keyboard.display = *ptr;
         }
         break;
      case MENU_INPUT_CTL_KEYBOARD_BUFF_PTR:
         {
            const char **ptr = (const char**)data;
            *ptr = *menu_input_keyboard_buffer;
         }
         break;
      case MENU_INPUT_CTL_KEYBOARD_LABEL:
         {
            const char **ptr = (const char**)data;
            *ptr = menu_input_keyboard_label;
         }
         break;
      case MENU_INPUT_CTL_SET_KEYBOARD_LABEL:
         {
            char **ptr = (char**)data;
            menu_input_keyboard_label = *ptr;
         }
         break;
      case MENU_INPUT_CTL_UNSET_KEYBOARD_LABEL:
         menu_input_keyboard_label = NULL;
         break;
      case MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING:
         {
            const char **ptr = (const char**)data;
            *ptr = menu_input_keyboard_label_setting;
         }
         break;
      case MENU_INPUT_CTL_SET_KEYBOARD_LABEL_SETTING:
         {
            char **ptr = (char**)data;
            strlcpy(menu_input_keyboard_label_setting,
            *ptr, sizeof(menu_input_keyboard_label_setting));
         }
         break;
      case MENU_INPUT_CTL_UNSET_KEYBOARD_LABEL_SETTING:
         menu_input_keyboard_label_setting[0] = '\0';
         break;
      case MENU_INPUT_CTL_BIND_NONE:
      case MENU_INPUT_CTL_BIND_SINGLE:
      case MENU_INPUT_CTL_BIND_ALL:
         return menu_input_key_bind_set_mode(state, data);
      case MENU_INPUT_CTL_BIND_ITERATE:
         {
            menu_input_ctx_bind_t *bind = (menu_input_ctx_bind_t*)data;
            if (!bind)
               return false;
            return menu_input_key_bind_iterate(bind->s, bind->len);
         }
      case MENU_INPUT_CTL_START_LINE:
         {
            bool keyboard_display       = true;
            menu_handle_t    *menu      = NULL;
            menu_input_ctx_line_t *line = (menu_input_ctx_line_t*)data;
            if (!menu_input || !line)
               return false;
            if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu))
               return false;

            menu_input_ctl(MENU_INPUT_CTL_SET_KEYBOARD_DISPLAY,
                  &keyboard_display);
            menu_input_ctl(MENU_INPUT_CTL_SET_KEYBOARD_LABEL,
                  &line->label);
            menu_input_ctl(MENU_INPUT_CTL_SET_KEYBOARD_LABEL_SETTING,
                  &line->label_setting);

            menu_input->keyboard.type   = line->type;
            menu_input->keyboard.idx    = line->idx;
            menu_input_keyboard_buffer  = 
               input_keyboard_start_line(menu, line->cb);
         }
         break;
      default:
      case MENU_INPUT_CTL_NONE:
         break;
   }

   return true;
}
Exemplo n.º 12
0
void menu_key_start_line(rgui_handle_t *rgui, const char *label, input_keyboard_line_complete_t cb)
{
   rgui->keyboard.display = true;
   rgui->keyboard.label = label;
   rgui->keyboard.buffer = input_keyboard_start_line(rgui, cb);
}