void JoystickMenu::menu_action(MenuItem* item) { if (0 <= item->id && item->id < Controller::CONTROLCOUNT) { ItemControlField* micf = dynamic_cast<ItemControlField*>(item); if (!micf) { return; } micf->change_input(_("Press Button")); m_input_manager.joystick_manager->bind_next_event_to(static_cast<Controller::Control>(item->id)); } else if (item->id == MNID_AUTO_JOYSTICK_CFG) { //m_input_manager.use_game_controller(!item->toggled); m_input_manager.use_game_controller(!m_auto_joystick_cfg); m_input_manager.reset(); recreate_menu(); } else if(item->id == MNID_SCAN_JOYSTICKS) { m_input_manager.reset(); recreate_menu(); } }
void KeyboardMenu::menu_action(MenuItem* item) { if(item->id >= 0 && item->id < Controller::CONTROLCOUNT){ ItemControlField* itemcf = dynamic_cast<ItemControlField*>(item); if (!itemcf) { return; } itemcf->change_input(_("Press Key")); m_input_manager.keyboard_manager->bind_next_event_to(static_cast<Controller::Control>(item->id)); } }
void KeyboardMenu::refresh() { KeyboardConfig& kbd_cfg = g_config->keyboard_config; ItemControlField* micf; micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::UP)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::UP))); micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::DOWN)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::DOWN))); micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::LEFT)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::LEFT))); micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::RIGHT)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::RIGHT))); micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::JUMP)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::JUMP))); micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::ACTION)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::ACTION))); micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::PEEK_LEFT)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::PEEK_LEFT))); micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::PEEK_RIGHT)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::PEEK_RIGHT))); micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::PEEK_UP)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::PEEK_UP))); micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::PEEK_DOWN)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::PEEK_DOWN))); if (g_config->developer_mode) { micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::CHEAT_MENU)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::CHEAT_MENU))); } if (g_config->developer_mode || g_config->console_enabled) { micf = dynamic_cast<ItemControlField*>(&get_item_by_id((int) Controller::CONSOLE)); if (micf) micf->change_input(get_key_name(kbd_cfg.reversemap_key(Controller::CONSOLE))); } }
void JoystickMenu::refresh_menu_item(Controller::Control id) { ItemControlField* itemcf = dynamic_cast<ItemControlField*>(&get_item_by_id(static_cast<int>(id))); if (!itemcf) { return; } int button = g_config->joystick_config.reversemap_joybutton(id); int axis = g_config->joystick_config.reversemap_joyaxis(id); int hat_dir = g_config->joystick_config.reversemap_joyhat(id); if (button != -1) { itemcf->change_input(get_button_name(button)); } else if (axis != 0) { std::ostringstream name; name << "Axis "; if (axis < 0) name << "-"; else name << "+"; if (abs(axis) == 1) name << "X"; else if (abs(axis) == 2) name << "Y"; else if (abs(axis) == 3) name << "X2"; else if (abs(axis) == 4) name << "Y2"; else name << abs(axis); itemcf->change_input(name.str()); } else if (hat_dir != -1) { std::string name; switch (hat_dir) { case SDL_HAT_UP: name = "Hat Up"; break; case SDL_HAT_DOWN: name = "Hat Down"; break; case SDL_HAT_LEFT: name = "Hat Left"; break; case SDL_HAT_RIGHT: name = "Hat Right"; break; default: name = "Unknown hat_dir"; break; } itemcf->change_input(name); } else { itemcf->change_input("None"); } }