OSDN Git Service

ImageDiff: Make comparing position adjustable by Shift+Arrow keys
authorsdottaka <sdottaka@users.sourceforge.net>
Mon, 29 Dec 2014 12:50:56 +0000 (21:50 +0900)
committersdottaka <sdottaka@users.sourceforge.net>
Mon, 29 Dec 2014 12:50:56 +0000 (21:50 +0900)
--HG--
branch : stable

Src/ImgMergeFrm.cpp

index 7841b38..1dcda18 100644 (file)
@@ -327,6 +327,16 @@ void CImgMergeFrame::CreateImgWndStatusBar(CStatusBar &wndStatusBar, CWnd *pwndP
 
 void CImgMergeFrame::OnChildPaneEvent(const IImgMergeWindow::Event& evt)
 {
+       if (evt.eventType == IImgMergeWindow::KEYDOWN && GetAsyncKeyState(VK_SHIFT))\r
+       {\r
+               CImgMergeFrame *pFrame = reinterpret_cast<CImgMergeFrame *>(evt.userdata);\r
+               int nActivePane = pFrame->m_pImgMergeWindow->GetActivePane();\r
+               int m = GetAsyncKeyState(VK_CONTROL) ? 8 : 1;\r
+               int dx = (-(evt.keycode == VK_LEFT) + (evt.keycode == VK_RIGHT)) * m;\r
+               int dy = (-(evt.keycode == VK_UP  ) + (evt.keycode == VK_DOWN )) * m;\r
+               pFrame->m_pImgMergeWindow->AddImageOffset(nActivePane, dx, dy);\r
+       }\r
+
 /*     if (evt.eventType == IImgMergeWindow::CONTEXTMENU)
        {
                CImgMergeFrame *pFrame = reinterpret_cast<CImgMergeFrame *>(evt.userdata);
@@ -1143,7 +1153,8 @@ void CImgMergeFrame::OnIdleUpdateCmdUI()
                                pt.x < m_pImgMergeWindow->GetImageWidth(pane) &&
                                pt.y < m_pImgMergeWindow->GetImageHeight(pane))
                        {
-                               text += string_format(_T("Pt:(%d,%d) RGBA:(%d,%d,%d,%d) "), pt.x, pt.y,
+                               POINT ptOffset = m_pImgMergeWindow->GetImageOffset(pane);\r
+                               text += string_format(_T("Pt:(%d,%d) RGBA:(%d,%d,%d,%d) "), pt.x - ptOffset.x, pt.y - ptOffset.y,
                                        color[pane].rgbRed, color[pane].rgbGreen, color[pane].rgbBlue, color[pane].rgbReserved);
                                if (pane == 1 && m_pImgMergeWindow->GetPaneCount() == 3)
                                        text += string_format(_T("Dist:%g,%g "), colorDistance01, colorDistance12);