Merge pull request #1130 from YohananDiamond/piano-nitpicks

Add option to prevent piano input
This commit is contained in:
tildearrow 2023-06-12 22:34:20 -05:00 committed by GitHub
commit d066b5b5a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 1 deletions

View File

@ -5984,6 +5984,7 @@ bool FurnaceGUI::init() {
pianoOptions=e->getConfBool("pianoOptions",pianoOptions); pianoOptions=e->getConfBool("pianoOptions",pianoOptions);
pianoSharePosition=e->getConfBool("pianoSharePosition",pianoSharePosition); pianoSharePosition=e->getConfBool("pianoSharePosition",pianoSharePosition);
pianoOptionsSet=e->getConfBool("pianoOptionsSet",pianoOptionsSet); pianoOptionsSet=e->getConfBool("pianoOptionsSet",pianoOptionsSet);
pianoReadonly=e->getConfBool("pianoReadonly",false);
pianoOffset=e->getConfInt("pianoOffset",pianoOffset); pianoOffset=e->getConfInt("pianoOffset",pianoOffset);
pianoOffsetEdit=e->getConfInt("pianoOffsetEdit",pianoOffsetEdit); pianoOffsetEdit=e->getConfInt("pianoOffsetEdit",pianoOffsetEdit);
pianoView=e->getConfInt("pianoView",pianoView); pianoView=e->getConfInt("pianoView",pianoView);
@ -6475,6 +6476,7 @@ void FurnaceGUI::commitState() {
e->setConf("pianoOptions",pianoOptions); e->setConf("pianoOptions",pianoOptions);
e->setConf("pianoSharePosition",pianoSharePosition); e->setConf("pianoSharePosition",pianoSharePosition);
e->setConf("pianoOptionsSet",pianoOptionsSet); e->setConf("pianoOptionsSet",pianoOptionsSet);
e->setConf("pianoReadonly",pianoReadonly);
e->setConf("pianoOffset",pianoOffset); e->setConf("pianoOffset",pianoOffset);
e->setConf("pianoOffsetEdit",pianoOffsetEdit); e->setConf("pianoOffsetEdit",pianoOffsetEdit);
e->setConf("pianoView",pianoView); e->setConf("pianoView",pianoView);
@ -6926,6 +6928,7 @@ FurnaceGUI::FurnaceGUI():
pianoOptions(true), pianoOptions(true),
pianoSharePosition(false), pianoSharePosition(false),
pianoOptionsSet(false), pianoOptionsSet(false),
pianoReadonly(false),
pianoOffset(6), pianoOffset(6),
pianoOffsetEdit(9), pianoOffsetEdit(9),
pianoView(PIANO_LAYOUT_AUTOMATIC), pianoView(PIANO_LAYOUT_AUTOMATIC),
@ -6935,6 +6938,7 @@ FurnaceGUI::FurnaceGUI():
pianoOctavesEdit(4), pianoOctavesEdit(4),
pianoOptions(false), pianoOptions(false),
pianoSharePosition(true), pianoSharePosition(true),
pianoReadonly(false),
pianoOffset(6), pianoOffset(6),
pianoOffsetEdit(6), pianoOffsetEdit(6),
pianoView(PIANO_LAYOUT_STANDARD), pianoView(PIANO_LAYOUT_STANDARD),

View File

@ -1996,6 +1996,7 @@ class FurnaceGUI {
bool pianoOptions, pianoSharePosition, pianoOptionsSet; bool pianoOptions, pianoSharePosition, pianoOptionsSet;
float pianoKeyHit[180]; float pianoKeyHit[180];
bool pianoKeyPressed[180]; bool pianoKeyPressed[180];
bool pianoReadonly;
int pianoOffset, pianoOffsetEdit; int pianoOffset, pianoOffsetEdit;
int pianoView, pianoInputPadMode; int pianoView, pianoInputPadMode;

View File

@ -123,6 +123,7 @@ void FurnaceGUI::drawPiano() {
pianoInputPadMode=PIANO_INPUT_PAD_SPLIT_VISIBLE; pianoInputPadMode=PIANO_INPUT_PAD_SPLIT_VISIBLE;
} }
ImGui::Checkbox("Share play/edit offset/range",&pianoSharePosition); ImGui::Checkbox("Share play/edit offset/range",&pianoSharePosition);
ImGui::Checkbox("Read-only (can't input notes)",&pianoReadonly);
ImGui::EndPopup(); ImGui::EndPopup();
} }
@ -223,7 +224,7 @@ void FurnaceGUI::drawPiano() {
//ImGui::ItemSize(size,ImGui::GetStyle().FramePadding.y); //ImGui::ItemSize(size,ImGui::GetStyle().FramePadding.y);
if (ImGui::ItemAdd(rect,ImGui::GetID("pianoDisplay"))) { if (ImGui::ItemAdd(rect,ImGui::GetID("pianoDisplay"))) {
bool canInput=false; bool canInput=false;
if (ImGui::ItemHoverable(rect,ImGui::GetID("pianoDisplay"))) { if (!pianoReadonly && ImGui::ItemHoverable(rect,ImGui::GetID("pianoDisplay"))) {
canInput=true; canInput=true;
ImGui::InhibitInertialScroll(); ImGui::InhibitInertialScroll();
} }