Index: src/gui/box.cpp =================================================================== --- src/gui/box.cpp (révision 734) +++ src/gui/box.cpp (copie de travail) @@ -25,13 +25,19 @@ #include "../include/app.h" Box::Box(const Rectanglei &rect, bool _visible) : Widget( rect ){ - last_widget = NULL; visible = _visible; margin = 5; border.SetValues(5, 5); } Box::~Box(){ + std::list::iterator it; + for (it = widgets.begin(); + it != widgets.end(); + it++){ + delete *it; + *it = NULL; + } widgets.clear(); } @@ -80,8 +86,8 @@ uint _y; - if( last_widget != NULL ) - _y = last_widget->GetPositionY() + last_widget->GetSizeY(); + if(!widgets.empty()) + _y = widgets.back()->GetPositionY() + widgets.back()->GetSizeY(); else _y = position.y + border.y - margin; @@ -90,8 +96,6 @@ size.x - 2 * border.x, a_widget->GetSizeY() )); - last_widget = a_widget; - widgets.push_back(a_widget); size.y = a_widget->GetPositionY() + a_widget->GetSizeY() - position.y + border.y; @@ -126,8 +130,8 @@ uint _x; - if (last_widget != NULL) - _x = last_widget->GetPositionX() + last_widget->GetSizeX(); + if (!widgets.empty()) + _x = widgets.back()->GetPositionX() + widgets.back()->GetSizeX(); else _x = position.x + border.x - margin; @@ -136,8 +140,6 @@ a_widget->GetSizeX(), size.y - 2 * border.y) ); - last_widget = a_widget; - widgets.push_back(a_widget); size.x = a_widget->GetPositionX() + a_widget->GetSizeX() - position.x + border.x; Index: src/gui/box.h =================================================================== --- src/gui/box.h (révision 734) +++ src/gui/box.h (copie de travail) @@ -30,7 +30,6 @@ { protected: std::list widgets; - Widget * last_widget; bool visible; uint margin; Point2i border; Index: src/menu/options_menu.cpp =================================================================== --- src/menu/options_menu.cpp (révision 734) +++ src/menu/options_menu.cpp (copie de travail) @@ -175,22 +175,6 @@ OptionMenu::~OptionMenu() { - delete opt_display_name; - delete opt_duration_turn; - delete full_screen; - delete lbox_sound_freq; - delete opt_music; - delete lbox_video_mode; - delete opt_max_fps; - delete opt_duration_end_turn; - delete opt_energy_ini; - delete opt_display_energy; - delete opt_nb_characters; - delete opt_sound_effects; - delete opt_display_wind_particles; - delete graphic_options; - delete sound_options; - delete game_options; } void OptionMenu::OnClic(const Point2i &mousePosition, int button) Index: src/menu/menu.cpp =================================================================== --- src/menu/menu.cpp (révision 734) +++ src/menu/menu.cpp (copie de travail) @@ -47,10 +47,7 @@ } Menu::~Menu(){ - delete b_ok; - delete b_cancel; delete background; - delete actions_buttons; } void Menu::sig_ok(){ Index: src/menu/main_menu.cpp =================================================================== Index: src/menu/game_menu.cpp =================================================================== --- src/menu/game_menu.cpp (révision 734) +++ src/menu/game_menu.cpp (copie de travail) @@ -78,7 +78,6 @@ buttons_tmp_box->AddWidget(space_for_logo); tmp_box->AddWidget(buttons_tmp_box); - lbox_selected_teams = new ListBox( Rectanglei(0, 0, TEAMS_W, TEAMS_H - TEAM_LOGO_H - 5 )); lbox_selected_teams->always_one_selected = false; tmp_box->AddWidget(lbox_selected_teams); @@ -99,7 +98,6 @@ map_box = new VBox( Rectanglei(x, team_box->GetPositionY()+team_box->GetSizeY()+20, 475, 1) ); map_box->AddWidget(new Label(_("Select the world:"), rectZero, *normal_font)); map_box->AddWidget(tmp_box); - // Values initialization // Load Maps' list @@ -137,13 +135,6 @@ GameMenu::~GameMenu() { - delete bt_remove_team; - delete bt_add_team; - delete lbox_maps; - delete map_preview; - delete lbox_all_teams; - delete space_for_logo; - delete lbox_selected_teams; delete map_box; delete team_box; }