pingus-cvs
[Top][All Lists]
Advanced

[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;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]