switch(*item->int_p)
{
case SDLK_UP:
- strcpy(item->input, "Up cursor");
+ item->change_input("Up cursor");
break;
case SDLK_DOWN:
- strcpy(item->input, "Down cursor");
+ item->change_input("Down cursor");
break;
case SDLK_LEFT:
- strcpy(item->input, "Left cursor");
+ item->change_input("Left cursor");
break;
case SDLK_RIGHT:
- strcpy(item->input, "Right cursor");
+ item->change_input("Right cursor");
break;
case SDLK_RETURN:
- strcpy(item->input, "Return");
+ item->change_input("Return");
break;
case SDLK_SPACE:
- strcpy(item->input, "Space");
+ item->change_input("Space");
break;
case SDLK_RSHIFT:
- strcpy(item->input, "Right Shift");
+ item->change_input("Right Shift");
break;
case SDLK_LSHIFT:
- strcpy(item->input, "Left Shift");
+ item->change_input("Left Shift");
break;
case SDLK_RCTRL:
- strcpy(item->input, "Right Control");
+ item->change_input("Right Control");
break;
case SDLK_LCTRL:
- strcpy(item->input, "Left Control");
+ item->change_input("Left Control");
break;
case SDLK_RALT:
- strcpy(item->input, "Right Alt");
+ item->change_input("Right Alt");
break;
case SDLK_LALT:
- strcpy(item->input, "Left Alt");
+ item->change_input("Left Alt");
break;
default:
- strcpy(item->input, (char*)item->int_p);
+ {
+ char tmp[64];
+ snprintf(tmp, 64, "%d", *item->int_p);
+ item->change_input(tmp);
+ }
break;
}
}
pos_x = screen->w/2;
pos_y = screen->h/2;
- has_backitem = false;
- last_id = 0;
arrange_left = 0;
active_item = 0;
effect.init(false);
void
Menu::additem(MenuItemKind kind_, const std::string& text_, int toggle_, Menu* menu_, int id, int* int_p)
{
- if(kind_ == MN_BACK)
- has_backitem = true;
-
- if(id == -1 && item.size() == (unsigned)last_id)
- {
- id = last_id;
- last_id++;
- }
-
additem(MenuItem::create(kind_, text_.c_str(), toggle_, menu_, id, int_p));
}
void
Menu::additem(MenuItem* pmenu_item)
{
- if(pmenu_item->kind == MN_BACK)
- has_backitem = true;
-
item.push_back(*pmenu_item);
delete pmenu_item;
}