[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] r3208 - in trunk/pingus: . data/images/core/editor src/edit
From: |
grumbel at BerliOS |
Subject: |
[Pingus-CVS] r3208 - in trunk/pingus: . data/images/core/editor src/editor |
Date: |
Fri, 21 Sep 2007 22:06:31 +0200 |
Author: grumbel
Date: 2007-09-21 22:06:30 +0200 (Fri, 21 Sep 2007)
New Revision: 3208
Modified:
trunk/pingus/TODO
trunk/pingus/data/images/core/editor/play.png
trunk/pingus/src/editor/editor_viewport.cpp
trunk/pingus/src/editor/editor_viewport.hpp
Log:
- added keyboard shortcuts to the editor (the simple way, not using input
subsystem)
Modified: trunk/pingus/TODO
===================================================================
--- trunk/pingus/TODO 2007-09-21 19:09:43 UTC (rev 3207)
+++ trunk/pingus/TODO 2007-09-21 20:06:30 UTC (rev 3208)
@@ -186,20 +186,9 @@
- implement proper tmpfile Support (save tmp levels to ~/.pingus/tmp/
for backup purpose in case of editor crash or so)
-- keyboard shortcuts need to be implemented (use input framework, but
- how without support for keymaps?)
+- keyboard shortcuts need to be implemented with input framework, but
+ how without support for keymaps?
- a - select all
- shift+click - add object to selection/remove from selection
- d - duplicate
- delete - delete object
- insert - show/hide objectselector
- cursor - pixel width moves (alternative: hold a button for slow moves)
- f - hflip
- shift+f - vflip
- r - rotate90
- shift+r - rotate270
-
- ObjectSelector need to support more object types, missing types:
all kinds of traps, weather, special objects
Modified: trunk/pingus/data/images/core/editor/play.png
===================================================================
(Binary files differ)
Modified: trunk/pingus/src/editor/editor_viewport.cpp
===================================================================
--- trunk/pingus/src/editor/editor_viewport.cpp 2007-09-21 19:09:43 UTC (rev
3207)
+++ trunk/pingus/src/editor/editor_viewport.cpp 2007-09-21 20:06:30 UTC (rev
3208)
@@ -208,7 +208,102 @@
void
EditorViewport::on_key_pressed(const unsigned short c)
{
- std::cout << "EditorViewport::on_key_pressed: " << int(c) << " " << c <<
std::endl;
+ if (c < 256)
+ {
+ switch(c)
+ {
+ case 'A':
+ clear_selection();
+ selection_changed(selected_objs);
+ break;
+
+ case 'a':
+ if (selected_objs == objs)
+ {
+ clear_selection();
+ }
+ else
+ {
+ clear_selection();
+ selected_objs = objs;
+ for (unsigned i = 0; i < selected_objs.size(); i++)
+ selected_objs[i]->select();
+ }
+ selection_changed(selected_objs);
+ break;
+
+ case ']':
+ case 'w':
+ raise_objects();
+ break;
+
+ case '}':
+ case 'W':
+ raise_objects_to_top();
+ break;
+
+ case '{':
+ case 'S':
+ lower_objects_to_bottom();
+ break;
+
+ case '[':
+ case 's':
+ lower_objects();
+ break;
+
+ case 'r':
+ rotate_90_selected_objects();
+ break;
+
+ case 'R':
+ rotate_270_selected_objects();
+ break;
+
+ case 8: // backspace
+ case 127: // delete
+ delete_selected_objects();
+ break;
+
+ case 'd':
+ duplicate_selected_objects();
+ break;
+
+ case 'V':
+ case 'f':
+ hflip_selected_objects();
+ break;
+
+ case 'F':
+ case 'v':
+ vflip_selected_objects();
+ break;
+
+ case 'c': // dvorak-up
+ case 'i': // up
+ move_objects(Vector2i(0,-1));
+ break;
+
+ case 't': // dvorak-down
+ case 'k': // down
+ move_objects(Vector2i(0,1));
+ break;
+
+ case 'h': // dvorak-left
+ case 'j': // left
+ move_objects(Vector2i(-1,0));
+ break;
+
+ case 'n': // dvorak-right
+ case 'l': // right
+ move_objects(Vector2i(1,0));
+ break;
+
+ default:
+ std::cout << "EditorViewport::on_key_pressed: " << int(c) << " "
<< (char)c << std::endl;
+ break;
+ }
+ }
}
// Draws all of the objects in the viewport and the background (if any)
@@ -485,6 +580,16 @@
}
void
+EditorViewport::move_objects(const Vector2i& offset)
+{
+ for (unsigned i = 0; i < selected_objs.size(); i++)
+ {
+ Vector3f p = selected_objs[i]->get_pos();
+ selected_objs[i]->set_pos(Vector3f(p.x + offset.x, p.y + offset.y, p.z));
+ }
+}
+
+void
EditorViewport::clear()
{
selected_objs.clear();
Modified: trunk/pingus/src/editor/editor_viewport.hpp
===================================================================
--- trunk/pingus/src/editor/editor_viewport.hpp 2007-09-21 19:09:43 UTC (rev
3207)
+++ trunk/pingus/src/editor/editor_viewport.hpp 2007-09-21 20:06:30 UTC (rev
3208)
@@ -146,6 +146,8 @@
void raise_objects_to_top();
void lower_objects_to_bottom();
+ void move_objects(const Vector2i& offset);
+
Vector2i screen2world(int x, int y) const;
void update_layout();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] r3208 - in trunk/pingus: . data/images/core/editor src/editor,
grumbel at BerliOS <=