wrap MiniMenu input
fixed Transforms AreaMenu action
This commit is contained in:
@@ -138,12 +138,13 @@ MiniMenuDefinition g_AreaMenu =
|
|||||||
{
|
{
|
||||||
{ "Cut", true, 1, 0, {""} },
|
{ "Cut", true, 1, 0, {""} },
|
||||||
{ "Copy", true, 1, 0, {""} },
|
{ "Copy", true, 1, 0, {""} },
|
||||||
{ "Paste", true, 1, 0, {""} },
|
{ "Paste at current beat", true, 1, 0, {""} },
|
||||||
|
{ "Paste at begin marker", true, 1, 0, {""} },
|
||||||
{ "Clear", true, 1, 0, {""} },
|
{ "Clear", true, 1, 0, {""} },
|
||||||
{ "Quantize", true, NUM_NOTE_TYPES, 0, {"4TH","8TH","12TH","16TH","24TH","32ND"} },
|
{ "Quantize", true, NUM_NOTE_TYPES, 0, {"4TH","8TH","12TH","16TH","24TH","32ND"} },
|
||||||
{ "Transform", true, ScreenEdit::NUM_TRANSFORM_TYPES, 0, {"Little","Wide","Big","Quick","Left","Right","Mirror","Shuffle","Super Shuffle","Backwards","Swap Sides"} },
|
{ "Transform", true, ScreenEdit::NUM_TRANSFORM_TYPES, 0, {"Little","Wide","Big","Quick","Left","Right","Mirror","Shuffle","Super Shuffle","Backwards","Swap Sides"} },
|
||||||
{ "Play selection", true, 1, 0, {""} },
|
{ "Play selection", true, 1, 0, {""} },
|
||||||
{ "Record in selection",true, 1, 0, {""} },
|
{ "Record in selection", true, 1, 0, {""} },
|
||||||
{ "Insert blank beat and shift down", true, 1, 0, {""} },
|
{ "Insert blank beat and shift down", true, 1, 0, {""} },
|
||||||
{ "Delete blank beat and shift up", true, 1, 0, {""} },
|
{ "Delete blank beat and shift up", true, 1, 0, {""} },
|
||||||
}
|
}
|
||||||
@@ -755,7 +756,8 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
|||||||
bool bAreaSelected = m_NoteFieldEdit.m_fBeginMarker!=-1 && m_NoteFieldEdit.m_fEndMarker!=-1;
|
bool bAreaSelected = m_NoteFieldEdit.m_fBeginMarker!=-1 && m_NoteFieldEdit.m_fEndMarker!=-1;
|
||||||
g_AreaMenu.lines[cut].bEnabled = bAreaSelected;
|
g_AreaMenu.lines[cut].bEnabled = bAreaSelected;
|
||||||
g_AreaMenu.lines[copy].bEnabled = bAreaSelected;
|
g_AreaMenu.lines[copy].bEnabled = bAreaSelected;
|
||||||
g_AreaMenu.lines[paste].bEnabled = this->m_Clipboard.GetLastBeat() != 0;
|
g_AreaMenu.lines[paste_at_current_beat].bEnabled = this->m_Clipboard.GetLastBeat() != 0;
|
||||||
|
g_AreaMenu.lines[paste_at_begin_marker].bEnabled = this->m_Clipboard.GetLastBeat() != 0 && m_NoteFieldEdit.m_fBeginMarker!=-1;
|
||||||
g_AreaMenu.lines[clear].bEnabled = bAreaSelected;
|
g_AreaMenu.lines[clear].bEnabled = bAreaSelected;
|
||||||
g_AreaMenu.lines[quantize].bEnabled = bAreaSelected;
|
g_AreaMenu.lines[quantize].bEnabled = bAreaSelected;
|
||||||
g_AreaMenu.lines[transform].bEnabled = bAreaSelected;
|
g_AreaMenu.lines[transform].bEnabled = bAreaSelected;
|
||||||
@@ -1224,8 +1226,8 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers )
|
|||||||
{
|
{
|
||||||
case cut:
|
case cut:
|
||||||
{
|
{
|
||||||
HandleAreaMenuChoice( copy, iAnswers );
|
HandleAreaMenuChoice( copy, NULL );
|
||||||
HandleAreaMenuChoice( clear, iAnswers );
|
HandleAreaMenuChoice( clear, NULL );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case copy:
|
case copy:
|
||||||
@@ -1237,7 +1239,7 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers )
|
|||||||
m_Clipboard.CopyRange( &m_NoteFieldEdit, iFirstRow, iLastRow );
|
m_Clipboard.CopyRange( &m_NoteFieldEdit, iFirstRow, iLastRow );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case paste:
|
case paste_at_current_beat:
|
||||||
{
|
{
|
||||||
int iSrcFirstRow = 0;
|
int iSrcFirstRow = 0;
|
||||||
int iSrcLastRow = BeatToNoteRow( m_Clipboard.GetLastBeat() );
|
int iSrcLastRow = BeatToNoteRow( m_Clipboard.GetLastBeat() );
|
||||||
@@ -1245,6 +1247,15 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers )
|
|||||||
m_NoteFieldEdit.CopyRange( &m_Clipboard, iSrcFirstRow, iSrcLastRow, iDestFirstRow );
|
m_NoteFieldEdit.CopyRange( &m_Clipboard, iSrcFirstRow, iSrcLastRow, iDestFirstRow );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case paste_at_begin_marker:
|
||||||
|
{
|
||||||
|
ASSERT( m_NoteFieldEdit.m_fBeginMarker!=-1 );
|
||||||
|
int iSrcFirstRow = 0;
|
||||||
|
int iSrcLastRow = BeatToNoteRow( m_Clipboard.GetLastBeat() );
|
||||||
|
int iDestFirstRow = BeatToNoteRow( m_NoteFieldEdit.m_fBeginMarker );
|
||||||
|
m_NoteFieldEdit.CopyRange( &m_Clipboard, iSrcFirstRow, iSrcLastRow, iDestFirstRow );
|
||||||
|
}
|
||||||
|
break;
|
||||||
case clear:
|
case clear:
|
||||||
{
|
{
|
||||||
ASSERT( m_NoteFieldEdit.m_fBeginMarker!=-1 && m_NoteFieldEdit.m_fEndMarker!=-1 );
|
ASSERT( m_NoteFieldEdit.m_fBeginMarker!=-1 && m_NoteFieldEdit.m_fEndMarker!=-1 );
|
||||||
@@ -1261,7 +1272,7 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers )
|
|||||||
break;
|
break;
|
||||||
case transform:
|
case transform:
|
||||||
{
|
{
|
||||||
HandleAreaMenuChoice( cut, iAnswers );
|
HandleAreaMenuChoice( cut, NULL );
|
||||||
|
|
||||||
TransformType tt = (TransformType)iAnswers[c];
|
TransformType tt = (TransformType)iAnswers[c];
|
||||||
switch( tt )
|
switch( tt )
|
||||||
@@ -1280,7 +1291,7 @@ void ScreenEdit::HandleAreaMenuChoice( AreaMenuChoice c, int* iAnswers )
|
|||||||
default: ASSERT(0);
|
default: ASSERT(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
HandleAreaMenuChoice( paste, iAnswers );
|
HandleAreaMenuChoice( paste_at_begin_marker, NULL );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case play:
|
case play:
|
||||||
|
|||||||
@@ -123,7 +123,8 @@ public:
|
|||||||
enum AreaMenuChoice {
|
enum AreaMenuChoice {
|
||||||
cut,
|
cut,
|
||||||
copy,
|
copy,
|
||||||
paste,
|
paste_at_current_beat,
|
||||||
|
paste_at_begin_marker,
|
||||||
clear,
|
clear,
|
||||||
quantize,
|
quantize,
|
||||||
transform,
|
transform,
|
||||||
|
|||||||
@@ -250,7 +250,12 @@ void ScreenMiniMenu::AfterAnswerChanged()
|
|||||||
|
|
||||||
int ScreenMiniMenu::GetGoUpSpot()
|
int ScreenMiniMenu::GetGoUpSpot()
|
||||||
{
|
{
|
||||||
for( int i=m_iCurLine-1; i>=0; i-- )
|
int i;
|
||||||
|
for( i=m_iCurLine-1; i>=0; i-- )
|
||||||
|
if( m_Def.lines[i].bEnabled )
|
||||||
|
return i;
|
||||||
|
// wrap
|
||||||
|
for( i=m_Def.iNumLines-1; i>=0; i-- )
|
||||||
if( m_Def.lines[i].bEnabled )
|
if( m_Def.lines[i].bEnabled )
|
||||||
return i;
|
return i;
|
||||||
return -1;
|
return -1;
|
||||||
@@ -258,7 +263,12 @@ int ScreenMiniMenu::GetGoUpSpot()
|
|||||||
|
|
||||||
int ScreenMiniMenu::GetGoDownSpot()
|
int ScreenMiniMenu::GetGoDownSpot()
|
||||||
{
|
{
|
||||||
for( int i=m_iCurLine+1; i<m_Def.iNumLines; i++ )
|
int i;
|
||||||
|
for( i=m_iCurLine+1; i<m_Def.iNumLines; i++ )
|
||||||
|
if( m_Def.lines[i].bEnabled )
|
||||||
|
return i;
|
||||||
|
// wrap
|
||||||
|
for( i=0; i<m_Def.iNumLines; i++ )
|
||||||
if( m_Def.lines[i].bEnabled )
|
if( m_Def.lines[i].bEnabled )
|
||||||
return i;
|
return i;
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user