[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] r3739 - trunk/pingus/src
From: |
grumbel at BerliOS |
Subject: |
[Pingus-CVS] r3739 - trunk/pingus/src |
Date: |
Tue, 8 Jul 2008 11:41:53 +0200 |
Author: grumbel
Date: 2008-07-08 11:41:52 +0200 (Tue, 08 Jul 2008)
New Revision: 3739
Modified:
trunk/pingus/src/level_menu.cpp
trunk/pingus/src/level_menu.hpp
Log:
Implemented proper resize handling for LevelsetMenu
Modified: trunk/pingus/src/level_menu.cpp
===================================================================
--- trunk/pingus/src/level_menu.cpp 2008-07-08 08:11:48 UTC (rev 3738)
+++ trunk/pingus/src/level_menu.cpp 2008-07-08 09:41:52 UTC (rev 3739)
@@ -33,7 +33,7 @@
#include "globals.hpp"
#include "gui/surface_button.hpp"
#include "sound/sound.hpp"
-
+
class LevelMenuAbortButton
: public GUI::SurfaceButton
{
@@ -41,9 +41,8 @@
LevelMenu* parent;
public:
- LevelMenuAbortButton(LevelMenu* p)
- : GUI::SurfaceButton(Display::get_width()/2 - 300,
- Display::get_height()/2 + 144,
+ LevelMenuAbortButton(LevelMenu* p, int x, int y)
+ : GUI::SurfaceButton(x, y,
ResDescriptor("core/start/back"),
ResDescriptor("core/start/back_clicked"),
ResDescriptor("core/start/back_hover")),
@@ -340,34 +339,34 @@
LevelMenu::LevelMenu()
: x_pos((Display::get_width() - default_screen_width)/2),
- y_pos((Display::get_height() - default_screen_height)/2)
+ y_pos((Display::get_height() - default_screen_height)/2),
+ background("core/menu/wood"),
+ blackboard("core/menu/blackboard")
{
- //background = Sprite("core/menu/filedialog");
- background = Sprite("core/menu/startscreenbg");
- background.scale(Display::get_width(), Display::get_height());
-
ok_button = Sprite("core/start/ok");
levelset_selector = new LevelsetSelector(this, Rect(Vector2i(x_pos + 100,
y_pos + 140), Size(600, 285)));
level_selector = new LevelSelector(this, Rect(Vector2i(x_pos + 100, y_pos
+ 160), Size(600, 256)));
- gui_manager->add(new LevelScrollButton(Display::get_width()/2 + 160,
- Display::get_height()/2 + 145,
- "core/menu/arrow_left",
- boost::bind(&LevelMenu::prev_page,
this)));
+ gui_manager->add(prev_button = new LevelScrollButton(Display::get_width()/2
+ 160,
+ Display::get_height()/2
+ 145,
+ "core/menu/arrow_left",
+
boost::bind(&LevelMenu::prev_page, this)));
- gui_manager->add(new LevelScrollButton(Display::get_width()/2 + 230,
- Display::get_height()/2 + 145,
- "core/menu/arrow_right",
- boost::bind(&LevelMenu::next_page,
this)));
+ gui_manager->add(next_button = new LevelScrollButton(Display::get_width()/2
+ 230,
+ Display::get_height()/2
+ 145,
+ "core/menu/arrow_right",
+
boost::bind(&LevelMenu::next_page, this)));
gui_manager->add(levelset_selector);
gui_manager->add(level_selector);
- gui_manager->add(new LevelMenuAbortButton(this));
+ gui_manager->add(abort_button = new LevelMenuAbortButton(this,
+
Display::get_width()/2 - 300,
+
Display::get_height()/2 + 144));
level_selector->hide();
}
-
+
LevelMenu::~LevelMenu()
{
}
@@ -375,7 +374,12 @@
void
LevelMenu::draw_background(DrawingContext& gc)
{
- gc.draw(background, Vector2i(gc.get_width()/2, gc.get_height()/2));
+ // Paint the background wood panel
+ for(int y = 0; y < gc.get_height(); y += background.get_height())
+ for(int x = 0; x < gc.get_width(); x += background.get_width())
+ gc.draw(background, x, y);
+
+ gc.draw(blackboard, gc.get_width()/2, gc.get_height()/2);
}
void
@@ -426,5 +430,24 @@
level_selector->hide();
}
}
+
+void
+LevelMenu::resize(const Size& size)
+{
+ x_pos = (size.width - default_screen_width)/2;
+ y_pos = (size.height - default_screen_height)/2;
+
+ levelset_selector->set_rect(Rect(Vector2i(x_pos + 100, y_pos + 140),
Size(600, 285)));
+ level_selector ->set_rect(Rect(Vector2i(x_pos + 100, y_pos + 160),
Size(600, 256)));
+
+ prev_button->set_pos(size.width /2 + 160,
+ size.height/2 + 145);
+
+ next_button->set_pos(size.width /2 + 230,
+ size.height/2 + 145);
+
+ abort_button->set_pos(size.width /2 - 300,
+ size.height/2 + 144);
+}
/* EOF */
Modified: trunk/pingus/src/level_menu.hpp
===================================================================
--- trunk/pingus/src/level_menu.hpp 2008-07-08 08:11:48 UTC (rev 3738)
+++ trunk/pingus/src/level_menu.hpp 2008-07-08 09:41:52 UTC (rev 3739)
@@ -21,9 +21,13 @@
#include "sprite.hpp"
#include "screen/gui_screen.hpp"
+namespace GUI {
+class SurfaceButton;
+} // namespace GUI
+
class LevelSelector;
class LevelsetSelector;
-
+
/** */
class LevelMenu : public GUIScreen
{
@@ -32,11 +36,16 @@
int y_pos;
Sprite background;
+ Sprite blackboard;
Sprite ok_button;
LevelSelector* level_selector;
LevelsetSelector* levelset_selector;
+ GUI::SurfaceButton* abort_button;
+ GUI::SurfaceButton* next_button;
+ GUI::SurfaceButton* prev_button;
+
public:
LevelMenu();
~LevelMenu();
@@ -49,11 +58,13 @@
void next_page();
void prev_page();
+ void resize(const Size& size);
+
private:
LevelMenu (const LevelMenu&);
LevelMenu& operator= (const LevelMenu&);
};
-
+
#endif
/* EOF */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] r3739 - trunk/pingus/src,
grumbel at BerliOS <=