[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] r3258 - in trunk/pingus/src: editor input
From: |
grumbel at BerliOS |
Subject: |
[Pingus-CVS] r3258 - in trunk/pingus/src: editor input |
Date: |
Sat, 29 Sep 2007 16:26:55 +0200 |
Author: grumbel
Date: 2007-09-29 16:26:55 +0200 (Sat, 29 Sep 2007)
New Revision: 3258
Modified:
trunk/pingus/src/editor/editor_screen.cpp
trunk/pingus/src/editor/editor_screen.hpp
trunk/pingus/src/editor/editor_viewport.cpp
trunk/pingus/src/editor/editor_viewport.hpp
trunk/pingus/src/editor/minimap.cpp
trunk/pingus/src/input/evdev_device.cpp
Log:
- added scroller support to the editor
Modified: trunk/pingus/src/editor/editor_screen.cpp
===================================================================
--- trunk/pingus/src/editor/editor_screen.cpp 2007-09-29 13:29:04 UTC (rev
3257)
+++ trunk/pingus/src/editor/editor_screen.cpp 2007-09-29 14:26:55 UTC (rev
3258)
@@ -252,6 +252,25 @@
{
GUIScreen::update(delta);
+ const Input::EventLst& events = delta.get_events ();
+ for (Input::EventLst::const_iterator i = events.begin ();
+ i != events.end ();
+ ++i)
+ {
+ switch (i->type)
+ {
+ case Input::SCROLLER_EVENT_TYPE:
+ viewport->set_scroll_pos(viewport->get_scroll_pos() -
+ Vector2f(i->scroll.x_delta,
+ i->scroll.y_delta));
+ break;
+
+ default:
+ // other events are for most part handled by the
GUIScreen/GUIManager
+ break;
+ }
+ }
+
SDL_Delay(10); // FIXME: Brute force delay to get CPU usage down
}
@@ -456,12 +475,18 @@
}
void
-EditorScreen::resize(const Size& size)
+EditorScreen::update_layout()
{
- gui_manager->set_rect(Rect(Vector2i(0, 0), size));
+ Size size(gui_manager->get_rect().get_width(),
+ gui_manager->get_rect().get_height());
- object_selector->set_rect(Rect(size.width-244, 38, size.width, size.height));
+ minimap->set_rect(Rect(Vector2i(size.width-244, size.height-183), Size(244,
183)));
+ if (minimap->is_visible())
+ object_selector->set_rect(Rect(size.width-244, 38, size.width, size.height
- 183));
+ else
+ object_selector->set_rect(Rect(size.width-244, 38, size.width,
size.height));
+
if (object_selector->is_visible())
viewport->set_rect(Rect(0, 38, size.width - 244, size.height));
else
@@ -471,8 +496,15 @@
Size(object_properties->get_rect().get_width(),
object_properties->get_rect().get_height())));
- level_properties->set_rect(Rect(Vector2i(0,38), Size(size.width-244,302)));
+ level_properties->set_rect(Rect(Vector2i(0,38), Size(size.width-244,302)));
}
+
+void
+EditorScreen::resize(const Size& size)
+{
+ gui_manager->set_rect(Rect(Vector2i(0, 0), size));
+ update_layout();
+}
} // namespace Editor
Modified: trunk/pingus/src/editor/editor_screen.hpp
===================================================================
--- trunk/pingus/src/editor/editor_screen.hpp 2007-09-29 13:29:04 UTC (rev
3257)
+++ trunk/pingus/src/editor/editor_screen.hpp 2007-09-29 14:26:55 UTC (rev
3258)
@@ -142,6 +142,7 @@
void resize(const Size&);
+ void update_layout();
private:
EditorScreen (const EditorScreen&);
EditorScreen& operator= (const EditorScreen&);
Modified: trunk/pingus/src/editor/editor_viewport.cpp
===================================================================
--- trunk/pingus/src/editor/editor_viewport.cpp 2007-09-29 13:29:04 UTC (rev
3257)
+++ trunk/pingus/src/editor/editor_viewport.cpp 2007-09-29 14:26:55 UTC (rev
3258)
@@ -606,14 +606,14 @@
selection_changed(selected_objs);
}
-Vector2i
+Vector2f
EditorViewport::get_scroll_pos() const
{
- return Vector2i(state.get_pos());
+ return state.get_pos();
}
void
-EditorViewport::set_scroll_pos(Vector2i pos)
+EditorViewport::set_scroll_pos(const Vector2f& pos)
{
state.set_pos(pos);
}
Modified: trunk/pingus/src/editor/editor_viewport.hpp
===================================================================
--- trunk/pingus/src/editor/editor_viewport.hpp 2007-09-29 13:29:04 UTC (rev
3257)
+++ trunk/pingus/src/editor/editor_viewport.hpp 2007-09-29 14:26:55 UTC (rev
3258)
@@ -114,8 +114,8 @@
/** Return a pointer to the EditorScreen object */
EditorScreen* get_screen() { return editor; }
- Vector2i get_scroll_pos() const;
- void set_scroll_pos(Vector2i pos);
+ Vector2f get_scroll_pos() const;
+ void set_scroll_pos(const Vector2f& pos);
/// Mouse actions
void on_primary_button_press(int x, int y);
Modified: trunk/pingus/src/editor/minimap.cpp
===================================================================
--- trunk/pingus/src/editor/minimap.cpp 2007-09-29 13:29:04 UTC (rev 3257)
+++ trunk/pingus/src/editor/minimap.cpp 2007-09-29 14:26:55 UTC (rev 3258)
@@ -85,14 +85,14 @@
dc.draw_rect(r, color, (*i)->get_pos().z);
}
- Vector2i viewport_pos = editor->get_viewport()->get_scroll_pos();
+ Vector2f viewport_pos = editor->get_viewport()->get_scroll_pos();
Rect viewport_rect = editor->get_viewport()->get_rect();
viewport_pos.x -= viewport_rect.get_width()/2;
viewport_pos.y -= viewport_rect.get_height()/2;
- Rect view(Vector2i(viewport_pos.x * minimap_rect.get_width() /
levelsize.width,
- viewport_pos.y * minimap_rect.get_height() /
levelsize.height),
+ Rect view(Vector2i(int(viewport_pos.x * minimap_rect.get_width() /
levelsize.width),
+ int(viewport_pos.y * minimap_rect.get_height() /
levelsize.height)),
Size(viewport_rect.get_width() * minimap_rect.get_width() /
levelsize.width,
viewport_rect.get_height() * minimap_rect.get_height() /
levelsize.height));
dc.draw_fillrect(view, Color(255, 255, 0, 150), 1000000.0f);
Modified: trunk/pingus/src/input/evdev_device.cpp
===================================================================
--- trunk/pingus/src/input/evdev_device.cpp 2007-09-29 13:29:04 UTC (rev
3257)
+++ trunk/pingus/src/input/evdev_device.cpp 2007-09-29 14:26:55 UTC (rev
3258)
@@ -231,10 +231,10 @@
void
EvdevDevice::update(float delta)
{
- struct input_event ev[64];
-
- int rd = read(fd, ev, sizeof(struct input_event) * 64);
-
+ struct input_event ev[128];
+ // FIXME: turn this into a while loop so all events get processed
+ int rd = read(fd, ev, sizeof(struct input_event) * 128);
+ //std::cout << rd / sizeof(struct input_event) << std::endl;
if (rd >= (int) sizeof(struct input_event))
{
for (int i = 0; i < rd / (int)sizeof(struct input_event); ++i)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] r3258 - in trunk/pingus/src: editor input,
grumbel at BerliOS <=