GUI: scroll instrument/wave/sample list when
selecting item
This commit is contained in:
parent
2ada4ee393
commit
769a89852f
4 changed files with 47 additions and 7 deletions
|
|
@ -116,10 +116,16 @@ void FurnaceGUI::doAction(int what) {
|
|||
}
|
||||
break;
|
||||
case GUI_ACTION_INS_UP:
|
||||
if (--curIns<-1) curIns=-1;
|
||||
if (--curIns<-1) {
|
||||
curIns=-1;
|
||||
}
|
||||
wantScrollList=true;
|
||||
break;
|
||||
case GUI_ACTION_INS_DOWN:
|
||||
if (++curIns>=(int)e->song.ins.size()) curIns=((int)e->song.ins.size())-1;
|
||||
if (++curIns>=(int)e->song.ins.size()) {
|
||||
curIns=((int)e->song.ins.size())-1;
|
||||
}
|
||||
wantScrollList=true;
|
||||
break;
|
||||
case GUI_ACTION_STEP_UP:
|
||||
if (++editStep>64) editStep=64;
|
||||
|
|
@ -528,6 +534,7 @@ void FurnaceGUI::doAction(int what) {
|
|||
if (curIns==-1) {
|
||||
showError("too many instruments!");
|
||||
} else {
|
||||
wantScrollList=true;
|
||||
MARK_MODIFIED;
|
||||
}
|
||||
break;
|
||||
|
|
@ -539,6 +546,7 @@ void FurnaceGUI::doAction(int what) {
|
|||
showError("too many instruments!");
|
||||
} else {
|
||||
(*e->song.ins[curIns])=(*e->song.ins[prevIns]);
|
||||
wantScrollList=true;
|
||||
MARK_MODIFIED;
|
||||
}
|
||||
}
|
||||
|
|
@ -553,14 +561,21 @@ void FurnaceGUI::doAction(int what) {
|
|||
if (curIns>=0 && curIns<(int)e->song.ins.size()) openFileDialog(GUI_FILE_INS_SAVE);
|
||||
break;
|
||||
case GUI_ACTION_INS_LIST_MOVE_UP:
|
||||
if (e->moveInsUp(curIns)) curIns--;
|
||||
if (e->moveInsUp(curIns)) {
|
||||
curIns--;
|
||||
wantScrollList=true;
|
||||
}
|
||||
break;
|
||||
case GUI_ACTION_INS_LIST_MOVE_DOWN:
|
||||
if (e->moveInsDown(curIns)) curIns++;
|
||||
if (e->moveInsDown(curIns)) {
|
||||
curIns++;
|
||||
wantScrollList=true;
|
||||
}
|
||||
break;
|
||||
case GUI_ACTION_INS_LIST_DELETE:
|
||||
if (curIns>=0 && curIns<(int)e->song.ins.size()) {
|
||||
e->delInstrument(curIns);
|
||||
wantScrollList=true;
|
||||
MARK_MODIFIED;
|
||||
if (curIns>=(int)e->song.ins.size()) {
|
||||
curIns--;
|
||||
|
|
@ -572,9 +587,11 @@ void FurnaceGUI::doAction(int what) {
|
|||
break;
|
||||
case GUI_ACTION_INS_LIST_UP:
|
||||
if (--curIns<0) curIns=0;
|
||||
wantScrollList=true;
|
||||
break;
|
||||
case GUI_ACTION_INS_LIST_DOWN:
|
||||
if (++curIns>=(int)e->song.ins.size()) curIns=((int)e->song.ins.size())-1;
|
||||
wantScrollList=true;
|
||||
break;
|
||||
|
||||
case GUI_ACTION_WAVE_LIST_ADD:
|
||||
|
|
@ -582,6 +599,7 @@ void FurnaceGUI::doAction(int what) {
|
|||
if (curWave==-1) {
|
||||
showError("too many wavetables!");
|
||||
} else {
|
||||
wantScrollList=true;
|
||||
MARK_MODIFIED;
|
||||
}
|
||||
break;
|
||||
|
|
@ -593,6 +611,7 @@ void FurnaceGUI::doAction(int what) {
|
|||
showError("too many wavetables!");
|
||||
} else {
|
||||
(*e->song.wave[curWave])=(*e->song.wave[prevWave]);
|
||||
wantScrollList=true;
|
||||
MARK_MODIFIED;
|
||||
}
|
||||
}
|
||||
|
|
@ -604,15 +623,22 @@ void FurnaceGUI::doAction(int what) {
|
|||
if (curWave>=0 && curWave<(int)e->song.wave.size()) openFileDialog(GUI_FILE_WAVE_SAVE);
|
||||
break;
|
||||
case GUI_ACTION_WAVE_LIST_MOVE_UP:
|
||||
if (e->moveWaveUp(curWave)) curWave--;
|
||||
if (e->moveWaveUp(curWave)) {
|
||||
curWave--;
|
||||
wantScrollList=true;
|
||||
}
|
||||
break;
|
||||
case GUI_ACTION_WAVE_LIST_MOVE_DOWN:
|
||||
if (e->moveWaveDown(curWave)) curWave++;
|
||||
if (e->moveWaveDown(curWave)) {
|
||||
curWave++;
|
||||
wantScrollList=true;
|
||||
}
|
||||
break;
|
||||
case GUI_ACTION_WAVE_LIST_DELETE:
|
||||
if (curWave>=0 && curWave<(int)e->song.wave.size()) {
|
||||
e->delWave(curWave);
|
||||
MARK_MODIFIED;
|
||||
wantScrollList=true;
|
||||
if (curWave>=(int)e->song.wave.size()) {
|
||||
curWave--;
|
||||
}
|
||||
|
|
@ -623,9 +649,11 @@ void FurnaceGUI::doAction(int what) {
|
|||
break;
|
||||
case GUI_ACTION_WAVE_LIST_UP:
|
||||
if (--curWave<0) curWave=0;
|
||||
wantScrollList=true;
|
||||
break;
|
||||
case GUI_ACTION_WAVE_LIST_DOWN:
|
||||
if (++curWave>=(int)e->song.wave.size()) curWave=((int)e->song.wave.size())-1;
|
||||
wantScrollList=true;
|
||||
break;
|
||||
|
||||
case GUI_ACTION_SAMPLE_LIST_ADD:
|
||||
|
|
@ -633,6 +661,7 @@ void FurnaceGUI::doAction(int what) {
|
|||
if (curSample==-1) {
|
||||
showError("too many samples!");
|
||||
} else {
|
||||
wantScrollList=true;
|
||||
MARK_MODIFIED;
|
||||
}
|
||||
updateSampleTex=true;
|
||||
|
|
@ -660,6 +689,7 @@ void FurnaceGUI::doAction(int what) {
|
|||
}
|
||||
e->renderSamples();
|
||||
});
|
||||
wantScrollList=true;
|
||||
MARK_MODIFIED;
|
||||
}
|
||||
updateSampleTex=true;
|
||||
|
|
@ -674,17 +704,20 @@ void FurnaceGUI::doAction(int what) {
|
|||
case GUI_ACTION_SAMPLE_LIST_MOVE_UP:
|
||||
if (e->moveSampleUp(curSample)) {
|
||||
curSample--;
|
||||
wantScrollList=true;
|
||||
updateSampleTex=true;
|
||||
}
|
||||
break;
|
||||
case GUI_ACTION_SAMPLE_LIST_MOVE_DOWN:
|
||||
if (e->moveSampleDown(curSample)) {
|
||||
curSample++;
|
||||
wantScrollList=true;
|
||||
updateSampleTex=true;
|
||||
}
|
||||
break;
|
||||
case GUI_ACTION_SAMPLE_LIST_DELETE:
|
||||
e->delSample(curSample);
|
||||
wantScrollList=true;
|
||||
MARK_MODIFIED;
|
||||
if (curSample>=(int)e->song.sample.size()) {
|
||||
curSample--;
|
||||
|
|
@ -696,10 +729,12 @@ void FurnaceGUI::doAction(int what) {
|
|||
break;
|
||||
case GUI_ACTION_SAMPLE_LIST_UP:
|
||||
if (--curSample<0) curSample=0;
|
||||
wantScrollList=true;
|
||||
updateSampleTex=true;
|
||||
break;
|
||||
case GUI_ACTION_SAMPLE_LIST_DOWN:
|
||||
if (++curSample>=(int)e->song.sample.size()) curSample=((int)e->song.sample.size())-1;
|
||||
wantScrollList=true;
|
||||
updateSampleTex=true;
|
||||
break;
|
||||
case GUI_ACTION_SAMPLE_LIST_PREVIEW:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue