[Super-tux-commit] supertux/src leveleditor.cpp,1.69,1.70 menu.cpp,1.58,1.59 menu.h,1.50,1.51
Brought to you by:
wkendrick
From: Ricardo C. <rm...@us...> - 2004-04-29 10:01:07
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21537/src Modified Files: leveleditor.cpp menu.cpp menu.h Log Message: Created a simple confirm_dialog. Currently only used by the level editor, but can be used, for instance, by slot delete confirmation. Index: menu.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/menu.cpp,v retrieving revision 1.58 retrieving revision 1.59 diff -u -d -r1.58 -r1.59 --- menu.cpp 28 Apr 2004 20:51:24 -0000 1.58 +++ menu.cpp 29 Apr 2004 10:00:51 -0000 1.59 @@ -60,6 +60,44 @@ std::vector<Menu*> Menu::last_menus; Menu* Menu::current_ = 0; +/* just displays a Yes/No text that can be used to confirm stuff */ +bool confirm_dialog(char *text) +{ +white_text->drawf(text,0,0,A_HMIDDLE,A_VMIDDLE,2); +red_text->drawf("(Y)es/(N)o",0,20,A_HMIDDLE,A_VMIDDLE,2); +flipscreen(); +SDL_Event event; +int done = 0; +bool confirm = false; +while(done == 0) + { + while(SDL_PollEvent(&event)) + switch(event.type) + { + case SDL_KEYDOWN: // key pressed + switch(event.key.keysym.sym) + { + case SDLK_y: + done = 1; + confirm = true; + break; + case SDLK_n: + done = 1; + break; + default: + break; + } + break; + case SDL_QUIT: // quit signal + done = 1; + default: + break; + } + SDL_Delay(50); + } +return confirm; +} + void Menu::push_current(Menu* pmenu) { Index: menu.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/menu.h,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- menu.h 25 Apr 2004 21:55:39 -0000 1.50 +++ menu.h 29 Apr 2004 10:00:51 -0000 1.51 @@ -67,6 +67,8 @@ MNID_APPLY }; +bool confirm_dialog(char *text); + /* Kinds of menu items */ enum MenuItemKind { MN_ACTION, Index: leveleditor.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/leveleditor.cpp,v retrieving revision 1.69 retrieving revision 1.70 diff -u -d -r1.69 -r1.70 --- leveleditor.cpp 28 Apr 2004 20:07:20 -0000 1.69 +++ leveleditor.cpp 29 Apr 2004 10:00:50 -0000 1.70 @@ -970,38 +970,13 @@ { Level new_lev; char str[1024]; - int d = 0; - sprintf(str,"Level %d doesn't exist.",le_level+1); - white_text->drawf(str,0,-18,A_HMIDDLE,A_VMIDDLE,2); - white_text->drawf("Do you want to create it?",0,0,A_HMIDDLE,A_VMIDDLE,2); - red_text->drawf("(Y)es/(N)o",0,20,A_HMIDDLE,A_VMIDDLE,2); - flipscreen(); - while(d == 0) + sprintf(str,"Level %d doesn't exist. Create it?",le_level+1); + if(confirm_dialog(str)) { - while(SDL_PollEvent(&event)) - switch(event.type) - { - case SDL_KEYDOWN: // key pressed - switch(event.key.keysym.sym) - { - case SDLK_y: - new_lev.init_defaults(); - new_lev.save(le_level_subset.name.c_str(),++le_level); - le_level_subset.levels = le_level; - le_goto_level(le_level); - d = 1; - break; - case SDLK_n: - d = 1; - break; - default: - break; - } - break; - default: - break; - } - SDL_Delay(50); + new_lev.init_defaults(); + new_lev.save(le_level_subset.name.c_str(),++le_level); + le_level_subset.levels = le_level; + le_goto_level(le_level); } } } |