summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/project.cpp18
-rw-r--r--common/project.h1
-rw-r--r--win/cadbar.cpp9
3 files changed, 22 insertions, 6 deletions
diff --git a/common/project.cpp b/common/project.cpp
index 84556f3..7c402b1 100644
--- a/common/project.cpp
+++ b/common/project.cpp
@@ -7059,14 +7059,20 @@ void Project::StartTracking(int mode)
FileSave(m_pTrackFile, true);
}
-void Project::GetSnapDistance(float* SnapXY, float* SnapZ) const
+void Project::GetSnapIndex(int* SnapXY, int* SnapZ) const
{
- int SXY = (m_nMoveSnap & 0xff);
- int SZ = ((m_nMoveSnap >> 8) & 0xff);
+ *SnapXY = (m_nMoveSnap & 0xff);
+ *SnapZ = ((m_nMoveSnap >> 8) & 0xff);
+}
+void Project::GetSnapDistance(float* SnapXY, float* SnapZ) const
+{
const float SnapXYTable[] = { 0.01f, 0.04f, 0.2f, 0.32f, 0.4f, 0.8f, 1.6f, 2.4f, 3.2f, 6.4f };
const float SnapZTable[] = { 0.01f, 0.04f, 0.2f, 0.32f, 0.4f, 0.8f, 0.96f, 1.92f, 3.84f, 7.68f };
+ int SXY, SZ;
+ GetSnapIndex(&SXY, &SZ);
+
SXY = min(SXY, 9);
SZ = min(SZ, 9);
@@ -7087,12 +7093,12 @@ void Project::GetSnapDistanceText(char* SnapXY, char* SnapZ) const
}
else
{
- int SXY = (m_nMoveSnap & 0xff);
- int SZ = ((m_nMoveSnap >> 8) & 0xff);
-
const char* SnapXYText[] = { "0", "1/20S", "1/4S", "1F", "1/2S", "1S", "2S", "3S", "4S", "8S" };
const char* SnapZText[] = { "0", "1/20S", "1/4S", "1F", "1/2S", "1S", "1B", "2B", "4B", "8B" };
+ int SXY, SZ;
+ GetSnapIndex(&SXY, &SZ);
+
SXY = min(SXY, 9);
SZ = min(SZ, 9);
diff --git a/common/project.h b/common/project.h
index dd495c6..614a584 100644
--- a/common/project.h
+++ b/common/project.h
@@ -83,6 +83,7 @@ public:
{ return m_nCurAction; }
int GetOverlayMode() const
{ return m_OverlayMode; }
+ void GetSnapIndex(int* SnapXY, int* SnapZ) const;
void GetSnapDistance(float* SnapXY, float* SnapZ) const;
void GetSnapDistanceText(char* SnapXY, char* SnapZ) const;
Camera* GetCamera(int i);
diff --git a/win/cadbar.cpp b/win/cadbar.cpp
index 80a1df3..25da26c 100644
--- a/win/cadbar.cpp
+++ b/win/cadbar.cpp
@@ -6,6 +6,8 @@
#include "leocad.h"
#include "CADBar.h"
#include "StepPop.h"
+#include "project.h"
+#include "lc_application.h"
#ifdef _DEBUG
#undef THIS_FILE
@@ -70,6 +72,13 @@ void CCADStatusBar::OnLButtonDown(UINT nFlags, CPoint point)
CMenu menuPopups;
menuPopups.LoadMenu(IDR_POPUPS);
CMenu* pMenu = menuPopups.GetSubMenu(7);
+
+ int SXY, SZ;
+ lcGetActiveProject()->GetSnapIndex(&SXY, &SZ);
+
+ pMenu->CheckMenuRadioItem(0, 9, SXY, MF_BYPOSITION);
+ pMenu->CheckMenuRadioItem(10, 19, 10 + SZ, MF_BYPOSITION);
+
pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd());
}