From: <sag...@us...> - 2010-07-27 21:55:33
|
Revision: 662 http://modplug.svn.sourceforge.net/modplug/?rev=662&view=rev Author: saga-games Date: 2010-07-27 21:55:26 +0000 (Tue, 27 Jul 2010) Log Message: ----------- [New] Sample Editor / Sample Drawing: Horizontal lines can now be drawn by holding down the shift key. Modified Paths: -------------- trunk/OpenMPT/mptrack/View_smp.cpp trunk/OpenMPT/mptrack/View_smp.h Modified: trunk/OpenMPT/mptrack/View_smp.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_smp.cpp 2010-07-26 20:09:53 UTC (rev 661) +++ trunk/OpenMPT/mptrack/View_smp.cpp 2010-07-27 21:55:26 UTC (rev 662) @@ -107,6 +107,7 @@ memset(m_dwNotifyPos, 0, sizeof(m_dwNotifyPos)); memset(m_NcButtonState, 0, sizeof(m_NcButtonState)); m_bmpEnvBar.Create(IDB_SMPTOOLBAR, 20, 0, RGB(192,192,192)); + m_lastDrawPoint.SetPoint(-1, -1); } @@ -1310,6 +1311,17 @@ { if(m_dwEndDrag < len) { + // Shift = draw horizontal lines + if(CMainFrame::GetInputHandler()->ShiftPressed()) + { + if(m_lastDrawPoint.y != -1) + point.y = m_lastDrawPoint.y; + m_lastDrawPoint = point; + } else + { + m_lastDrawPoint.SetPoint(-1, -1); + } + if(pSndFile->Samples[m_nSample].GetElementarySampleSize() == 2) SetSampleData<int16, uint16>(pSndFile->Samples[m_nSample].pSample, point, old); else if(pSndFile->Samples[m_nSample].GetElementarySampleSize() == 1) @@ -1364,6 +1376,7 @@ // set initial point for sample drawing if (m_bDrawingEnabled) { + m_lastDrawPoint = point; pModDoc->GetSampleUndo()->PrepareUndo(m_nSample, sundo_replace); if(pSndFile->Samples[m_nSample].GetElementarySampleSize() == 2) SetInitialDrawPoint<int16, uint16>(pSndFile->Samples[m_nSample].pSample, point); @@ -1390,6 +1403,7 @@ m_dwStatus &= ~SMPSTATUS_MOUSEDRAG; ReleaseCapture(); } + m_lastDrawPoint.SetPoint(-1, -1); } Modified: trunk/OpenMPT/mptrack/View_smp.h =================================================================== --- trunk/OpenMPT/mptrack/View_smp.h 2010-07-26 20:09:53 UTC (rev 661) +++ trunk/OpenMPT/mptrack/View_smp.h 2010-07-27 21:55:26 UTC (rev 662) @@ -21,8 +21,10 @@ DWORD m_dwMenuParam; DWORD m_NcButtonState[SMP_LEFTBAR_BUTTONS]; DWORD m_dwNotifyPos[MAX_CHANNELS]; - bool m_bDrawingEnabled; + bool m_bDrawingEnabled; // sample drawing mode enabled? + CPoint m_lastDrawPoint; // for drawing horizontal lines + public: CViewSample(); DECLARE_SERIAL(CViewSample) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |