dev92 - GUI: customizable channel collapsing!

This commit is contained in:
tildearrow 2022-05-04 23:36:03 -05:00
parent c3e55ae117
commit 202a528477
5 changed files with 25 additions and 11 deletions

View file

@ -83,10 +83,10 @@ void FurnaceGUI::finishSelection() {
if (cursor.y<0) cursor.y=0;
if (cursor.y>=e->song.patLen) cursor.y=e->song.patLen-1;
if (e->song.chanCollapse[selEnd.xCoarse]) {
if (e->song.chanCollapse[selStart.xCoarse]==3) {
selStart.xFine=0;
}
if (e->song.chanCollapse[selEnd.xCoarse]) {
if (e->song.chanCollapse[selEnd.xCoarse] && selEnd.xFine>=(3-e->song.chanCollapse[selEnd.xCoarse])) {
selEnd.xFine=2+e->song.pat[cursor.xCoarse].effectCols*2;
}
@ -105,7 +105,7 @@ void FurnaceGUI::moveCursor(int x, int y, bool select) {
demandScrollX=true;
if (x>0) {
for (int i=0; i<x; i++) {
if (++cursor.xFine>=(e->song.chanCollapse[cursor.xCoarse]?1:(3+e->song.pat[cursor.xCoarse].effectCols*2))) {
if (++cursor.xFine>=(e->song.chanCollapse[cursor.xCoarse]?(4-e->song.chanCollapse[cursor.xCoarse]):(3+e->song.pat[cursor.xCoarse].effectCols*2))) {
cursor.xFine=0;
if (++cursor.xCoarse>=lastChannel) {
if (settings.wrapHorizontal!=0 && !select) {
@ -113,7 +113,7 @@ void FurnaceGUI::moveCursor(int x, int y, bool select) {
if (settings.wrapHorizontal==2) y++;
} else {
cursor.xCoarse=lastChannel-1;
cursor.xFine=e->song.chanCollapse[cursor.xCoarse]?0:(2+e->song.pat[cursor.xCoarse].effectCols*2);
cursor.xFine=e->song.chanCollapse[cursor.xCoarse]?(3-e->song.chanCollapse[cursor.xCoarse]):(2+e->song.pat[cursor.xCoarse].effectCols*2);
}
} else {
while (!e->song.chanShow[cursor.xCoarse]) {
@ -141,7 +141,7 @@ void FurnaceGUI::moveCursor(int x, int y, bool select) {
if (cursor.xCoarse<0) break;
}
if (e->song.chanCollapse[cursor.xCoarse]) {
cursor.xFine=0;
cursor.xFine=3-e->song.chanCollapse[cursor.xCoarse];
} else {
cursor.xFine=2+e->song.pat[cursor.xCoarse].effectCols*2;
}