GUI: add "note preview behavior" setting
This commit is contained in:
parent
b4ac5c7e6a
commit
330171edc3
5
TODO.md
5
TODO.md
|
@ -1,7 +1,11 @@
|
||||||
# to-do for 0.6pre1
|
# to-do for 0.6pre1
|
||||||
|
|
||||||
- panning macro
|
- panning macro
|
||||||
|
- single macro for hard-panned chips
|
||||||
|
- two macros for soft-panned ones
|
||||||
- pitch macro
|
- pitch macro
|
||||||
|
- relative mode
|
||||||
|
- test
|
||||||
- piano/input pad
|
- piano/input pad
|
||||||
- note input via piano
|
- note input via piano
|
||||||
- input pad
|
- input pad
|
||||||
|
@ -43,3 +47,4 @@
|
||||||
- settings: OK/Cancel buttons should be always visible
|
- settings: OK/Cancel buttons should be always visible
|
||||||
- Apply button in settings
|
- Apply button in settings
|
||||||
- better FM chip names (number and codename)
|
- better FM chip names (number and codename)
|
||||||
|
- find and replace
|
||||||
|
|
|
@ -1960,6 +1960,7 @@ int _processEvent(void* instance, SDL_Event* event) {
|
||||||
int FurnaceGUI::processEvent(SDL_Event* ev) {
|
int FurnaceGUI::processEvent(SDL_Event* ev) {
|
||||||
if (ev->type==SDL_KEYDOWN) {
|
if (ev->type==SDL_KEYDOWN) {
|
||||||
if (!ev->key.repeat && !wantCaptureKeyboard && (ev->key.keysym.mod&(~(KMOD_NUM|KMOD_CAPS|KMOD_SCROLL)))==0) {
|
if (!ev->key.repeat && !wantCaptureKeyboard && (ev->key.keysym.mod&(~(KMOD_NUM|KMOD_CAPS|KMOD_SCROLL)))==0) {
|
||||||
|
if (settings.notePreviewBehavior==0) return 1;
|
||||||
switch (curWindow) {
|
switch (curWindow) {
|
||||||
case GUI_WINDOW_SAMPLE_EDIT:
|
case GUI_WINDOW_SAMPLE_EDIT:
|
||||||
case GUI_WINDOW_SAMPLE_LIST:
|
case GUI_WINDOW_SAMPLE_LIST:
|
||||||
|
@ -1991,6 +1992,13 @@ int FurnaceGUI::processEvent(SDL_Event* ev) {
|
||||||
break;
|
break;
|
||||||
case GUI_WINDOW_ORDERS: // ignore here
|
case GUI_WINDOW_ORDERS: // ignore here
|
||||||
break;
|
break;
|
||||||
|
case GUI_WINDOW_PATTERN:
|
||||||
|
if (settings.notePreviewBehavior==1) {
|
||||||
|
if (cursor.xFine!=0) break;
|
||||||
|
} else if (settings.notePreviewBehavior==2) {
|
||||||
|
if (edit && cursor.xFine!=0) break;
|
||||||
|
}
|
||||||
|
// fall-through
|
||||||
default:
|
default:
|
||||||
try {
|
try {
|
||||||
int key=noteKeys.at(ev->key.keysym.scancode);
|
int key=noteKeys.at(ev->key.keysym.scancode);
|
||||||
|
|
|
@ -819,6 +819,7 @@ class FurnaceGUI {
|
||||||
int oplStandardWaveNames;
|
int oplStandardWaveNames;
|
||||||
int cursorMoveNoScroll;
|
int cursorMoveNoScroll;
|
||||||
int lowLatency;
|
int lowLatency;
|
||||||
|
int notePreviewBehavior;
|
||||||
unsigned int maxUndoSteps;
|
unsigned int maxUndoSteps;
|
||||||
String mainFontPath;
|
String mainFontPath;
|
||||||
String patFontPath;
|
String patFontPath;
|
||||||
|
@ -891,6 +892,7 @@ class FurnaceGUI {
|
||||||
oplStandardWaveNames(0),
|
oplStandardWaveNames(0),
|
||||||
cursorMoveNoScroll(0),
|
cursorMoveNoScroll(0),
|
||||||
lowLatency(0),
|
lowLatency(0),
|
||||||
|
notePreviewBehavior(1),
|
||||||
maxUndoSteps(100),
|
maxUndoSteps(100),
|
||||||
mainFontPath(""),
|
mainFontPath(""),
|
||||||
patFontPath(""),
|
patFontPath(""),
|
||||||
|
|
|
@ -301,6 +301,20 @@ void FurnaceGUI::drawSettings() {
|
||||||
settings.sysFileDialog=sysFileDialogB;
|
settings.sysFileDialog=sysFileDialogB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui::Text("Note preview behavioe:");
|
||||||
|
if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) {
|
||||||
|
settings.notePreviewBehavior=0;
|
||||||
|
}
|
||||||
|
if (ImGui::RadioButton("When cursor is in Note column##npb1",settings.notePreviewBehavior==1)) {
|
||||||
|
settings.notePreviewBehavior=1;
|
||||||
|
}
|
||||||
|
if (ImGui::RadioButton("When cursor is in Note column or not in edit mode##npb2",settings.notePreviewBehavior==2)) {
|
||||||
|
settings.notePreviewBehavior=2;
|
||||||
|
}
|
||||||
|
if (ImGui::RadioButton("Always##npb3",settings.notePreviewBehavior==3)) {
|
||||||
|
settings.notePreviewBehavior=3;
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::Text("Wrap pattern cursor horizontally:");
|
ImGui::Text("Wrap pattern cursor horizontally:");
|
||||||
if (ImGui::RadioButton("No##wrapH0",settings.wrapHorizontal==0)) {
|
if (ImGui::RadioButton("No##wrapH0",settings.wrapHorizontal==0)) {
|
||||||
settings.wrapHorizontal=0;
|
settings.wrapHorizontal=0;
|
||||||
|
@ -1609,6 +1623,7 @@ void FurnaceGUI::syncSettings() {
|
||||||
settings.oplStandardWaveNames=e->getConfInt("oplStandardWaveNames",0);
|
settings.oplStandardWaveNames=e->getConfInt("oplStandardWaveNames",0);
|
||||||
settings.cursorMoveNoScroll=e->getConfInt("cursorMoveNoScroll",0);
|
settings.cursorMoveNoScroll=e->getConfInt("cursorMoveNoScroll",0);
|
||||||
settings.lowLatency=e->getConfInt("lowLatency",0);
|
settings.lowLatency=e->getConfInt("lowLatency",0);
|
||||||
|
settings.notePreviewBehavior=e->getConfInt("notePreviewBehavior",1);
|
||||||
|
|
||||||
clampSetting(settings.mainFontSize,2,96);
|
clampSetting(settings.mainFontSize,2,96);
|
||||||
clampSetting(settings.patFontSize,2,96);
|
clampSetting(settings.patFontSize,2,96);
|
||||||
|
@ -1670,6 +1685,7 @@ void FurnaceGUI::syncSettings() {
|
||||||
clampSetting(settings.oplStandardWaveNames,0,1);
|
clampSetting(settings.oplStandardWaveNames,0,1);
|
||||||
clampSetting(settings.cursorMoveNoScroll,0,1);
|
clampSetting(settings.cursorMoveNoScroll,0,1);
|
||||||
clampSetting(settings.lowLatency,0,1);
|
clampSetting(settings.lowLatency,0,1);
|
||||||
|
clampSetting(settings.notePreviewBehavior,0,3);
|
||||||
|
|
||||||
// keybinds
|
// keybinds
|
||||||
for (int i=0; i<GUI_ACTION_MAX; i++) {
|
for (int i=0; i<GUI_ACTION_MAX; i++) {
|
||||||
|
@ -1758,6 +1774,7 @@ void FurnaceGUI::commitSettings() {
|
||||||
e->setConf("oplStandardWaveNames",settings.oplStandardWaveNames);
|
e->setConf("oplStandardWaveNames",settings.oplStandardWaveNames);
|
||||||
e->setConf("cursorMoveNoScroll",settings.cursorMoveNoScroll);
|
e->setConf("cursorMoveNoScroll",settings.cursorMoveNoScroll);
|
||||||
e->setConf("lowLatency",settings.lowLatency);
|
e->setConf("lowLatency",settings.lowLatency);
|
||||||
|
e->setConf("notePreviewBehavior",settings.notePreviewBehavior);
|
||||||
|
|
||||||
// colors
|
// colors
|
||||||
for (int i=0; i<GUI_COLOR_MAX; i++) {
|
for (int i=0; i<GUI_COLOR_MAX; i++) {
|
||||||
|
|
Loading…
Reference in a new issue