[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] r3114 - trunk/pingus/src/editor
From: |
grumbel at BerliOS |
Subject: |
[Pingus-CVS] r3114 - trunk/pingus/src/editor |
Date: |
Sun, 9 Sep 2007 00:13:27 +0200 |
Author: grumbel
Date: 2007-09-09 00:13:26 +0200 (Sun, 09 Sep 2007)
New Revision: 3114
Modified:
trunk/pingus/src/editor/editor_screen.cpp
trunk/pingus/src/editor/editor_viewport.cpp
trunk/pingus/src/editor/editor_viewport.hpp
Log:
- added object raise and lowering (doesn't work well for selections)
Modified: trunk/pingus/src/editor/editor_screen.cpp
===================================================================
--- trunk/pingus/src/editor/editor_screen.cpp 2007-09-08 20:46:22 UTC (rev
3113)
+++ trunk/pingus/src/editor/editor_screen.cpp 2007-09-08 22:13:26 UTC (rev
3114)
@@ -254,25 +254,25 @@
void
EditorScreen::objects_raise_to_top()
{
- std::cout << "Function at '" << __FILE__ << ":" << __LINE__ << "' is
unimplemented" << std::endl;
+ viewport->raise_objects_to_top();
}
void
EditorScreen::objects_raise()
{
- std::cout << "Function at '" << __FILE__ << ":" << __LINE__ << "' is
unimplemented" << std::endl;
+ viewport->raise_objects();
}
void
EditorScreen::objects_lower()
{
- std::cout << "Function at '" << __FILE__ << ":" << __LINE__ << "' is
unimplemented" << std::endl;
+ viewport->lower_objects();
}
void
EditorScreen::objects_lower_to_bottom()
{
- std::cout << "Function at '" << __FILE__ << ":" << __LINE__ << "' is
unimplemented" << std::endl;
+ viewport->lower_objects_to_bottom();
}
Modified: trunk/pingus/src/editor/editor_viewport.cpp
===================================================================
--- trunk/pingus/src/editor/editor_viewport.cpp 2007-09-08 20:46:22 UTC (rev
3113)
+++ trunk/pingus/src/editor/editor_viewport.cpp 2007-09-08 22:13:26 UTC (rev
3114)
@@ -326,9 +326,8 @@
EditorViewport::delete_selected_objects()
{
for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
- {
- (*i)->remove();
- }
+ (*i)->remove();
+
selected_objs.clear();
selection_changed(selected_objs);
}
@@ -366,7 +365,7 @@
for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
{
(*i)->set_modifier(ResourceModifierNS::rotate_270((*i)->get_modifier()));
- }
+ }
}
Vector2i
@@ -374,6 +373,96 @@
{
return
Vector2i(state.screen2world(drawing_context->screen_to_world(Vector2i(x, y))));
}
+
+void
+EditorViewport::raise_object(LevelObj* obj)
+{
+ for(std::vector<LevelObj*>::size_type i = 0; i < objs.size(); ++i)
+ {
+ if (objs[i] == obj)
+ {
+ if (i != objs.size()-1)
+ std::swap(objs[i], objs[i+1]);
+ break;
+ }
+ }
+}
+
+void
+EditorViewport::lower_object(LevelObj* obj)
+{
+ for(std::vector<LevelObj*>::size_type i = 0; i < objs.size(); ++i)
+ {
+ if (objs[i] == obj)
+ {
+ if (i != 0)
+ std::swap(objs[i], objs[i-1]);
+ break;
+ }
+ }
+}
+
+void
+EditorViewport::raise_object_to_top(LevelObj* obj)
+{
+ for(std::vector<LevelObj*>::size_type i = 0; i < objs.size(); ++i)
+ {
+ if (objs[i] == obj)
+ {
+ for(int j = i; j < int(objs.size()-1); ++j)
+ std::swap(objs[j], objs[j+1]);
+
+ break;
+ }
+ }
+}
+
+void
+EditorViewport::lower_object_to_bottom(LevelObj* obj)
+{
+ for(std::vector<LevelObj*>::size_type i = 0; i < objs.size(); ++i)
+ {
+ if (objs[i] == obj)
+ {
+ for(int j = i; j >= 1; --j)
+ std::swap(objs[j], objs[j-1]);
+
+ break;
+ }
+ }
+}
+
+void
+EditorViewport::raise_objects()
+{
+ for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
+ {
+ raise_object(*i);
+ }
+}
+
+void
+EditorViewport::lower_objects()
+{
+ for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
+ {
+ lower_object(*i);
+ }
+}
+
+void
+EditorViewport::raise_objects_to_top()
+{
+ for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
+ raise_object_to_top(*i);
+}
+
+void
+EditorViewport::lower_objects_to_bottom()
+{
+ for(std::vector<LevelObj*>::iterator i = selected_objs.begin(); i !=
selected_objs.end(); ++i)
+ lower_object_to_bottom(*i);
+}
} // namespace Editor
Modified: trunk/pingus/src/editor/editor_viewport.hpp
===================================================================
--- trunk/pingus/src/editor/editor_viewport.hpp 2007-09-08 20:46:22 UTC (rev
3113)
+++ trunk/pingus/src/editor/editor_viewport.hpp 2007-09-08 22:13:26 UTC (rev
3114)
@@ -135,6 +135,18 @@
void rotate_90_selected_objects();
void rotate_270_selected_objects();
+ void raise_object(LevelObj* obj);
+ void lower_object(LevelObj* obj);
+
+ void raise_object_to_top(LevelObj* obj);
+ void lower_object_to_bottom(LevelObj* obj);
+
+ void raise_objects();
+ void lower_objects();
+
+ void raise_objects_to_top();
+ void lower_objects_to_bottom();
+
Vector2i screen2world(int x, int y) const;
boost::signal<void (const std::vector<LevelObj*>&)> selection_changed;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] r3114 - trunk/pingus/src/editor,
grumbel at BerliOS <=