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);
}
}
}
|