summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorleo2005-03-08 20:12:51 +0000
committerleo2005-03-08 20:12:51 +0000
commit342008b552f16892b5abfe86eadce9feee4d0da0 (patch)
treef7a6c0bc9c492fdc228f815e1a9098887f3ec57b /common
parent5430dc9b0c6ea433458cac5999fc7dea58778d56 (diff)
Allowed more commands to have their shortcuts changed,
Fixed a memory leak in the BMP Menu class. git-svn-id: http://svn.leocad.org/trunk@387 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'common')
-rw-r--r--common/keyboard.cpp30
-rw-r--r--common/project.cpp174
-rw-r--r--common/typedefs.h28
3 files changed, 161 insertions, 71 deletions
diff --git a/common/keyboard.cpp b/common/keyboard.cpp
index da2cf88..0a83bc8 100644
--- a/common/keyboard.cpp
+++ b/common/keyboard.cpp
@@ -63,10 +63,15 @@ LC_KEYBOARD_COMMAND DefaultKeyboardShortcuts[] =
{ LC_VIEW_STEP_LAST, "Step Last", 0, 0, 0 },
// { LC_VIEW_STEP_CHOOSE, "", 0, 0, 0 },
// { LC_VIEW_STEP_SET, "", 0, 0, 0 },
- { LC_VIEW_STEP_INSERT, "Step Insert", 0, 0, 0 },
- { LC_VIEW_STEP_DELETE, "Step Delete", 0, 0, 0 },
// { LC_VIEW_STOP, "", 0, 0, 0 },
// { LC_VIEW_PLAY, "", 0, 0, 0 },
+ { LC_VIEW_CAMERA_FRONT, "Camera Front", 0, LC_KEY_F, 0 },
+ { LC_VIEW_CAMERA_BACK, "Camera Back", 0, LC_KEY_B, 0 },
+ { LC_VIEW_CAMERA_TOP, "Camera Top", 0, LC_KEY_T, 0 },
+ { LC_VIEW_CAMERA_BOTTOM, "Camera Bottom", 0, LC_KEY_U, 0 },
+ { LC_VIEW_CAMERA_LEFT, "Camera Left", 0, LC_KEY_L, 0 },
+ { LC_VIEW_CAMERA_RIGHT, "Camera Right", 0, LC_KEY_R, 0 },
+ { LC_VIEW_CAMERA_MAIN, "Camera Main", 0, LC_KEY_M, 0 },
// { LC_VIEW_CAMERA_MENU, "", 0, 0, 0 },
// { LC_VIEW_CAMERA_RESET, "", 0, 0, 0 },
// { LC_VIEW_AUTOPAN, "", 0, 0, 0 },
@@ -78,6 +83,27 @@ LC_KEYBOARD_COMMAND DefaultKeyboardShortcuts[] =
// { LC_TOOLBAR_SNAPMOVEMENU, "", 0, 0, 0 },
// { LC_TOOLBAR_FASTRENDER, "", 0, 0, 0 },
// { LC_TOOLBAR_BACKGROUND, "", 0, 0, 0 },
+ { LC_VIEW_STEP_INSERT, "Step Insert", 0, 0, 0 },
+ { LC_VIEW_STEP_DELETE, "Step Delete", 0, 0, 0 },
+ { LC_EDIT_MOVE_SNAP_0, "Move Snap 0", 0, LC_KEY_0, 0 },
+ { LC_EDIT_MOVE_SNAP_1, "Move Snap 1", 0, LC_KEY_1, 0 },
+ { LC_EDIT_MOVE_SNAP_2, "Move Snap 2", 0, LC_KEY_2, 0 },
+ { LC_EDIT_MOVE_SNAP_3, "Move Snap 3", 0, LC_KEY_3, 0 },
+ { LC_EDIT_MOVE_SNAP_4, "Move Snap 4", 0, LC_KEY_4, 0 },
+ { LC_EDIT_MOVE_SNAP_5, "Move Snap 5", 0, LC_KEY_5, 0 },
+ { LC_EDIT_MOVE_SNAP_6, "Move Snap 6", 0, LC_KEY_6, 0 },
+ { LC_EDIT_MOVE_SNAP_7, "Move Snap 7", 0, LC_KEY_7, 0 },
+ { LC_EDIT_MOVE_SNAP_8, "Move Snap 8", 0, LC_KEY_8, 0 },
+ { LC_EDIT_MOVE_SNAP_9, "Move Snap 9", 0, LC_KEY_9, 0 },
+ { LC_EDIT_ANGLE_SNAP_0, "Angle Snap 1", LC_KEYMOD1_SHIFT, LC_KEY_0, 0 },
+ { LC_EDIT_ANGLE_SNAP_1, "Angle Snap 5", LC_KEYMOD1_SHIFT, LC_KEY_1, 0 },
+ { LC_EDIT_ANGLE_SNAP_2, "Angle Snap 10", LC_KEYMOD1_SHIFT, LC_KEY_2, 0 },
+ { LC_EDIT_ANGLE_SNAP_3, "Angle Snap 15", LC_KEYMOD1_SHIFT, LC_KEY_3, 0 },
+ { LC_EDIT_ANGLE_SNAP_4, "Angle Snap 30", LC_KEYMOD1_SHIFT, LC_KEY_4, 0 },
+ { LC_EDIT_ANGLE_SNAP_5, "Angle Snap 45", LC_KEYMOD1_SHIFT, LC_KEY_5, 0 },
+ { LC_EDIT_ANGLE_SNAP_6, "Angle Snap 60", LC_KEYMOD1_SHIFT, LC_KEY_6, 0 },
+ { LC_EDIT_ANGLE_SNAP_7, "Angle Snap 90", LC_KEYMOD1_SHIFT, LC_KEY_7, 0 },
+ { LC_EDIT_ANGLE_SNAP_8, "Angle Snap 180", LC_KEYMOD1_SHIFT, LC_KEY_8, 0 },
};
const int KeyboardShortcutsCount = sizeof(DefaultKeyboardShortcuts)/sizeof(KeyboardShortcuts[0]);
diff --git a/common/project.cpp b/common/project.cpp
index 2729f53..884c7b1 100644
--- a/common/project.cpp
+++ b/common/project.cpp
@@ -1496,7 +1496,7 @@ bool Project::DoSave(char* lpszPathName, bool bReplace)
pPiece->GetRotation(rotation);
Matrix mat(rotation, position);
mat.ToLDraw(f);
- sprintf (buf, " 1 %d %.2g %.2g %.2g %.2g %.2g %.2g %.2g %.2g %.2g %.2g %.2g %.2g %s.DAT\r\n",
+ sprintf (buf, " 1 %d %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %.2f %s.DAT\r\n",
col[pPiece->GetColor()], f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7], f[8], f[9], f[10], f[11], pPiece->GetPieceInfo()->m_strName);
file.Write(buf, strlen(buf));
}
@@ -6011,6 +6011,41 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
SystemUpdateFocus(NULL);
} break;
+ case LC_VIEW_CAMERA_FRONT:
+ {
+ HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_FRONT);
+ } break;
+
+ case LC_VIEW_CAMERA_BACK:
+ {
+ HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_BACK);
+ } break;
+
+ case LC_VIEW_CAMERA_TOP:
+ {
+ HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_TOP);
+ } break;
+
+ case LC_VIEW_CAMERA_BOTTOM:
+ {
+ HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_UNDER);
+ } break;
+
+ case LC_VIEW_CAMERA_LEFT:
+ {
+ HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_LEFT);
+ } break;
+
+ case LC_VIEW_CAMERA_RIGHT:
+ {
+ HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_RIGHT);
+ } break;
+
+ case LC_VIEW_CAMERA_MAIN:
+ {
+ HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_MAIN);
+ } break;
+
case LC_VIEW_CAMERA_MENU:
{
Camera* pCamera = m_pCameras;
@@ -6214,6 +6249,75 @@ void Project::HandleCommand(LC_COMMANDS id, unsigned long nParam)
SystemUpdateRenderingMode((m_nDetail & LC_DET_BACKGROUND) != 0, (m_nDetail & LC_DET_FAST) != 0);
} break;
+
+ case LC_EDIT_MOVE_SNAP_0:
+ case LC_EDIT_MOVE_SNAP_1:
+ case LC_EDIT_MOVE_SNAP_2:
+ case LC_EDIT_MOVE_SNAP_3:
+ case LC_EDIT_MOVE_SNAP_4:
+ case LC_EDIT_MOVE_SNAP_5:
+ case LC_EDIT_MOVE_SNAP_6:
+ case LC_EDIT_MOVE_SNAP_7:
+ case LC_EDIT_MOVE_SNAP_8:
+ case LC_EDIT_MOVE_SNAP_9:
+ {
+ m_nMoveSnap = id - LC_EDIT_MOVE_SNAP_0;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
+
+ case LC_EDIT_ANGLE_SNAP_0:
+ {
+ m_nAngleSnap = 1;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
+
+ case LC_EDIT_ANGLE_SNAP_1:
+ {
+ m_nAngleSnap = 5;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
+
+ case LC_EDIT_ANGLE_SNAP_2:
+ {
+ m_nAngleSnap = 10;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
+
+ case LC_EDIT_ANGLE_SNAP_3:
+ {
+ m_nAngleSnap = 15;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
+
+ case LC_EDIT_ANGLE_SNAP_4:
+ {
+ m_nAngleSnap = 30;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
+
+ case LC_EDIT_ANGLE_SNAP_5:
+ {
+ m_nAngleSnap = 45;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
+
+ case LC_EDIT_ANGLE_SNAP_6:
+ {
+ m_nAngleSnap = 60;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
+
+ case LC_EDIT_ANGLE_SNAP_7:
+ {
+ m_nAngleSnap = 90;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
+
+ case LC_EDIT_ANGLE_SNAP_8:
+ {
+ m_nAngleSnap = 180;
+ SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
+ } break;
}
}
@@ -7019,76 +7123,10 @@ bool Project::OnKeyDown(char nKey, bool bControl, bool bShift)
{
m_nCurClipboard = nKey - 0x30;
SystemUpdatePaste(m_pClipboard[m_nCurClipboard] != NULL);
+ ret = true;
}
- else
- {
- if (bShift)
- {
- switch (nKey)
- {
- case '0': m_nAngleSnap = 1; break;
- case '1': m_nAngleSnap = 5; break;
- case '2': m_nAngleSnap = 10; break;
- case '3': m_nAngleSnap = 15; break;
- case '4': m_nAngleSnap = 30; break;
- case '5': m_nAngleSnap = 45; break;
- case '6': m_nAngleSnap = 60; break;
- case '7': m_nAngleSnap = 90; break;
- case '8': m_nAngleSnap = 180; break;
- }
- }
- else
- {
- m_nMoveSnap = nKey - 0x30;
- }
-
- SystemUpdateSnap(m_nMoveSnap, m_nAngleSnap);
- }
- ret = true;
} break;
- case 'F':
- if (!bControl)
- {
- HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_FRONT);
- ret = true;
- } break;
- case 'B':
- if (!bControl)
- {
- HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_BACK); break;
- ret = true;
- } break;
- case 'T':
- if (!bControl)
- {
- HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_TOP); break;
- ret = true;
- } break;
- case 'U':
- if (!bControl)
- {
- HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_UNDER); break;
- ret = true;
- } break;
- case 'L':
- if (!bControl)
- {
- HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_LEFT); break;
- ret = true;
- } break;
- case 'R':
- if (!bControl)
- {
- HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_RIGHT); break;
- ret = true;
- } break;
- case 'M':
- if (!bControl)
- {
- HandleCommand(LC_VIEW_CAMERA_MENU, LC_CAMERA_MAIN); break;
- ret = true;
- } break;
case KEY_PLUS: // case '+': case '=':
{
diff --git a/common/typedefs.h b/common/typedefs.h
index 0f15b6e..89df4d8 100644
--- a/common/typedefs.h
+++ b/common/typedefs.h
@@ -74,6 +74,13 @@ typedef enum {
LC_VIEW_STEP_DELETE,
LC_VIEW_STOP,
LC_VIEW_PLAY,
+ LC_VIEW_CAMERA_FRONT,
+ LC_VIEW_CAMERA_BACK,
+ LC_VIEW_CAMERA_TOP,
+ LC_VIEW_CAMERA_BOTTOM,
+ LC_VIEW_CAMERA_LEFT,
+ LC_VIEW_CAMERA_RIGHT,
+ LC_VIEW_CAMERA_MAIN,
LC_VIEW_CAMERA_MENU,
LC_VIEW_CAMERA_RESET,
LC_VIEW_AUTOPAN,
@@ -84,7 +91,26 @@ typedef enum {
LC_TOOLBAR_LOCKMENU,
LC_TOOLBAR_SNAPMOVEMENU,
LC_TOOLBAR_FASTRENDER,
- LC_TOOLBAR_BACKGROUND
+ LC_TOOLBAR_BACKGROUND,
+ LC_EDIT_MOVE_SNAP_0,
+ LC_EDIT_MOVE_SNAP_1,
+ LC_EDIT_MOVE_SNAP_2,
+ LC_EDIT_MOVE_SNAP_3,
+ LC_EDIT_MOVE_SNAP_4,
+ LC_EDIT_MOVE_SNAP_5,
+ LC_EDIT_MOVE_SNAP_6,
+ LC_EDIT_MOVE_SNAP_7,
+ LC_EDIT_MOVE_SNAP_8,
+ LC_EDIT_MOVE_SNAP_9,
+ LC_EDIT_ANGLE_SNAP_0,
+ LC_EDIT_ANGLE_SNAP_1,
+ LC_EDIT_ANGLE_SNAP_2,
+ LC_EDIT_ANGLE_SNAP_3,
+ LC_EDIT_ANGLE_SNAP_4,
+ LC_EDIT_ANGLE_SNAP_5,
+ LC_EDIT_ANGLE_SNAP_6,
+ LC_EDIT_ANGLE_SNAP_7,
+ LC_EDIT_ANGLE_SNAP_8,
} LC_COMMANDS;
typedef enum {