jump_with_up_joy(),
jump_with_up_kbd(),
wait_for_key(-1),
- wait_for_joystick(-1)
+ wait_for_joystick(-1),
+ key_options_menu(0),
+ joystick_options_menu(0)
{
// initialize default keyboard map
keymap[SDLK_LEFT] = LEFT;
if(*i != 0)
SDL_JoystickClose(*i);
}
+ delete key_options_menu;
+ delete joystick_options_menu;
}
void
}
}
+KeyboardMenu*
+JoystickKeyboardController::get_key_options_menu()
+{
+ if (!key_options_menu)
+ key_options_menu = new KeyboardMenu(this);
+ return key_options_menu;
+}
+
+JoystickMenu*
+JoystickKeyboardController::get_joystick_options_menu()
+{
+ if (!joystick_options_menu)
+ joystick_options_menu = new JoystickMenu(this);
+ return joystick_options_menu;
+}
+
void
JoystickKeyboardController::read(const Reader& lisp)
{
if(jbutton.state == SDL_PRESSED)
{
bind_joybutton(jbutton.button, (Control)wait_for_joystick);
- MenuStorage::get_joystick_options_menu()->update();
+ get_joystick_options_menu()->update();
reset();
wait_for_joystick = -1;
}
else
bind_joyaxis(jaxis.axis + 1, Control(wait_for_joystick));
- MenuStorage::get_joystick_options_menu()->update();
+ get_joystick_options_menu()->update();
wait_for_joystick = -1;
}
}
if (changed & SDL_HAT_RIGHT && jhat.value & SDL_HAT_RIGHT)
bind_joyhat(SDL_HAT_RIGHT, (Control)wait_for_joystick);
- MenuStorage::get_joystick_options_menu()->update();
+ get_joystick_options_menu()->update();
wait_for_joystick = -1;
}
else
bind_key(event.key.keysym.sym, (Control) wait_for_key);
}
reset();
- MenuStorage::get_key_options_menu()->update();
+ get_key_options_menu()->update();
wait_for_key = -1;
return;
}
if(wait_for_joystick >= 0) {
if(event.key.keysym.sym == SDLK_ESCAPE) {
reset();
- MenuStorage::get_joystick_options_menu()->update();
+ get_joystick_options_menu()->update();
wait_for_joystick = -1;
}
return;
void read(const Reader& lisp);
void reset();
- Menu* get_key_options_menu();
- Menu* get_joystick_options_menu();
+ KeyboardMenu* get_key_options_menu();
+ JoystickMenu* get_joystick_options_menu();
void updateAvailableJoysticks();
private:
int wait_for_key;
int wait_for_joystick;
+ KeyboardMenu* key_options_menu;
+ JoystickMenu* joystick_options_menu;
+
private:
JoystickKeyboardController(const JoystickKeyboardController&);
JoystickKeyboardController& operator=(const JoystickKeyboardController&);
OptionsMenu* MenuStorage::options_menu = 0;
ProfileMenu* MenuStorage::profile_menu = 0;
-KeyboardMenu* MenuStorage::key_options_menu = 0;
-JoystickMenu* MenuStorage::joystick_options_menu = 0;
OptionsMenu*
MenuStorage::get_options_menu()
return profile_menu;
}
-KeyboardMenu*
-MenuStorage::get_key_options_menu()
-{
- if (!key_options_menu)
- { // FIXME: this in never freed
- key_options_menu = new KeyboardMenu(g_main_controller);
- }
-
- return key_options_menu;
-}
-
-JoystickMenu*
-MenuStorage::get_joystick_options_menu()
-{
- if (!joystick_options_menu)
- { // FIXME: this in never freed
- joystick_options_menu = new JoystickMenu(g_main_controller);
- }
-
- return joystick_options_menu;
-}
-
/* EOF */
static OptionsMenu* get_options_menu();
static ProfileMenu* get_profile_menu();
- static KeyboardMenu* get_key_options_menu();
- static JoystickMenu* get_joystick_options_menu();
private:
static OptionsMenu* options_menu;
static ProfileMenu* profile_menu;
- static KeyboardMenu* key_options_menu;
- static JoystickMenu* joystick_options_menu;
private:
MenuStorage(const MenuStorage&);
add_inactive(MNID_MUSIC, _("Music (disabled)"));
}
- add_submenu(_("Setup Keyboard"), MenuStorage::get_key_options_menu())
+ add_submenu(_("Setup Keyboard"), g_main_controller->get_key_options_menu())
->set_help(_("Configure key-action mappings"));
- add_submenu(_("Setup Joystick"), MenuStorage::get_joystick_options_menu())
+ add_submenu(_("Setup Joystick"), g_main_controller->get_joystick_options_menu())
->set_help(_("Configure joystick control-action mappings"));
add_hl();
add_back(_("Back"));