X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgui%2Fmenu.cpp;h=5993bf4ddd6ca9f554ccd5bc1331837f69141bd6;hb=86181b0a14d89cf45daf97199c3556c4dd1ee7b7;hp=87d083d08feb72f4cd869097237532c5a3b0c14c;hpb=523d415707de9f777729534f467779d4c5acdf6e;p=supertux.git diff --git a/src/gui/menu.cpp b/src/gui/menu.cpp index 87d083d08..5993bf4dd 100644 --- a/src/gui/menu.cpp +++ b/src/gui/menu.cpp @@ -29,14 +29,14 @@ #include #include -#include "menu.h" -#include "video/screen.h" -#include "video/drawing_context.h" -#include "gettext.h" -#include "math/vector.h" -#include "main.h" -#include "resources.h" -#include "control/joystickkeyboardcontroller.h" +#include "menu.hpp" +#include "video/screen.hpp" +#include "video/drawing_context.hpp" +#include "gettext.hpp" +#include "math/vector.hpp" +#include "main.hpp" +#include "resources.hpp" +#include "control/joystickkeyboardcontroller.hpp" static const int MENU_REPEAT_INITIAL = 400; static const int MENU_REPEAT_RATE = 200; @@ -76,16 +76,16 @@ bool confirm_dialog(Surface *background, std::string text) while(true) { SDL_Event event; - - if(event.type == SDL_QUIT) - throw std::runtime_error("received window close event"); - while (SDL_PollEvent(&event)) { + if(event.type == SDL_QUIT) + throw std::runtime_error("received window close event"); + main_controller->process_event(event); dialog->event(event); } if(background == NULL) - context.draw_gradient(Color(200,240,220), Color(200,200,220), LAYER_BACKGROUND0); + context.draw_gradient(Color(0.8, 0.95, 0.85), Color(0.8, 0.8, 0.8), + LAYER_BACKGROUND0); else context.draw_surface(background, Vector(0,0), LAYER_BACKGROUND0); @@ -538,9 +538,11 @@ Menu::draw_item(DrawingContext& context, int index) int y = y_pos - 12 - effect_offset; /* Draw a horizontal line with a little 3d effect */ context.draw_filled_rect(Vector(x, y + 6), - Vector(menu_width, 4), Color(150,200,255,225), LAYER_GUI); + Vector(menu_width, 4), + Color(0.6f, 0.7f, 1.0f, 1.0f), LAYER_GUI); context.draw_filled_rect(Vector(x, y + 6), - Vector(menu_width, 2), Color(255,255,255,255), LAYER_GUI); + Vector(menu_width, 2), + Color(1.0f, 1.0f, 1.0f, 1.0f), LAYER_GUI); break; } case MN_LABEL: @@ -561,11 +563,11 @@ Menu::draw_item(DrawingContext& context, int index) context.draw_filled_rect( Vector(input_pos - 5, y_pos - 10), Vector(input_width + 10, 20), - Color(255,255,255,255), LAYER_GUI-5); + Color(1.0f, 1.0f, 1.0f, 1.0f), LAYER_GUI-5); context.draw_filled_rect( Vector(input_pos - 4, y_pos - 9), Vector(input_width + 8, 18), - Color(0,0,0,128), LAYER_GUI-4); + Color(0, 0, 0, 0.5f), LAYER_GUI-4); if(pitem.kind == MN_TEXTFIELD || pitem.kind == MN_NUMFIELD) { @@ -608,11 +610,11 @@ Menu::draw_item(DrawingContext& context, int index) context.draw_filled_rect( Vector(x_pos - list_pos + text_pos - 1, y_pos - 10), Vector(list_pos_2 + 2, 20), - Color(255,255,255,255), LAYER_GUI - 4); + Color(1.0f, 1.0f, 1.0f, 1.0f), LAYER_GUI - 4); context.draw_filled_rect( Vector(x_pos - list_pos + text_pos, y_pos - 9), Vector(list_pos_2, 18), - Color(0,0,0,128), LAYER_GUI - 5); + Color(0, 0, 0, 0.5f), LAYER_GUI - 5); context.draw_text(text_font, pitem.list[pitem.selected], Vector(SCREEN_WIDTH/2 + text_pos, y_pos - int(text_font->get_height()/2)), @@ -691,6 +693,10 @@ int Menu::get_height() const void Menu::draw(DrawingContext& context) { + if(MouseCursor::current()) { + MouseCursor::current()->draw(context); + } + int menu_height = get_height(); int menu_width = get_width(); @@ -698,7 +704,7 @@ Menu::draw(DrawingContext& context) context.draw_filled_rect( Vector(pos_x - menu_width/2, pos_y - 24*items.size()/2 - 10), Vector(menu_width,menu_height + 20), - Color(150,180,200,125), LAYER_GUI-10); + Color(0.6f, 0.7f, 0.8f, 0.5f), LAYER_GUI-10); for(unsigned int i = 0; i < items.size(); ++i) {