mirror of
https://github.com/tildearrow/furnace.git
synced 2024-12-04 10:17:26 +00:00
proper note selector
its only a lil bit janky
This commit is contained in:
parent
2e2796c245
commit
1333be8da7
1 changed files with 44 additions and 13 deletions
|
@ -620,27 +620,44 @@ void FurnaceGUI::drawFindReplace() {
|
||||||
snprintf(tempID,1024,"???");
|
snprintf(tempID,1024,"???");
|
||||||
i.note=0;
|
i.note=0;
|
||||||
}
|
}
|
||||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x/2);
|
||||||
|
bool updateNote1=false;
|
||||||
|
bool showOct=i.note<128;
|
||||||
|
int note1=i.note%12;
|
||||||
|
int oct1=i.note/12;
|
||||||
if (ImGui::BeginCombo("##NN1",tempID)) {
|
if (ImGui::BeginCombo("##NN1",tempID)) {
|
||||||
for (int j=0; j<180; j++) {
|
for (int j=0; j<12; j++) {
|
||||||
snprintf(tempID,1024,"%s",noteNames[j]);
|
snprintf(tempID,1024,"%c%c",noteNames[j+72][0],(noteNames[j+72][1]=='-')?' ':noteNames[j+72][1]);
|
||||||
if (ImGui::Selectable(tempID,i.note==(j-60))) {
|
if (ImGui::Selectable(tempID,note1==j)) {
|
||||||
i.note=j-60;
|
note1=j;
|
||||||
|
updateNote1=true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i.noteMode!=GUI_QUERY_RANGE && i.noteMode!=GUI_QUERY_RANGE_NOT) {
|
if (i.noteMode!=GUI_QUERY_RANGE && i.noteMode!=GUI_QUERY_RANGE_NOT) {
|
||||||
if (ImGui::Selectable(noteOffLabel,i.note==128)) {
|
if (ImGui::Selectable(noteOffLabel,note1==13)) {
|
||||||
i.note=128;
|
i.note=128;
|
||||||
}
|
}
|
||||||
if (ImGui::Selectable(noteRelLabel,i.note==129)) {
|
if (ImGui::Selectable(noteRelLabel,note1==14)) {
|
||||||
i.note=129;
|
i.note=129;
|
||||||
}
|
}
|
||||||
if (ImGui::Selectable(macroRelLabel,i.note==130)) {
|
if (ImGui::Selectable(macroRelLabel,note1==15)) {
|
||||||
i.note=130;
|
i.note=130;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ImGui::EndCombo();
|
ImGui::EndCombo();
|
||||||
}
|
}
|
||||||
|
ImGui::SameLine();
|
||||||
|
if (showOct) {
|
||||||
|
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x/2);
|
||||||
|
if (ImGui::InputScalar("##NNO1",ImGuiDataType_S32,&oct1)) {
|
||||||
|
if (oct1<-5) oct1=-5;
|
||||||
|
if (oct1>9) oct1=9;
|
||||||
|
updateNote1=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (updateNote1) {
|
||||||
|
i.note=oct1*12+note1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
if (SECOND_VISIBLE(i.noteMode)) {
|
if (SECOND_VISIBLE(i.noteMode)) {
|
||||||
|
@ -652,16 +669,30 @@ void FurnaceGUI::drawFindReplace() {
|
||||||
} else {
|
} else {
|
||||||
snprintf(tempID,1024,"???");
|
snprintf(tempID,1024,"???");
|
||||||
}
|
}
|
||||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x/2);
|
||||||
|
bool updateNote2=false;
|
||||||
|
int note2=i.noteMax%12;
|
||||||
|
int oct2=i.noteMax/12;
|
||||||
if (ImGui::BeginCombo("##NN2",tempID)) {
|
if (ImGui::BeginCombo("##NN2",tempID)) {
|
||||||
for (int j=0; j<180; j++) {
|
for (int j=0; j<12; j++) {
|
||||||
snprintf(tempID,1024,"%s",noteNames[j]);
|
snprintf(tempID,1024,"%c%c",noteNames[j+72][0],(noteNames[j+72][1]=='-')?' ':noteNames[j+72][1]);
|
||||||
if (ImGui::Selectable(tempID,i.noteMax==(j-60))) {
|
if (ImGui::Selectable(tempID,note2==j)) {
|
||||||
i.noteMax=j-60;
|
note2=j;
|
||||||
|
updateNote2=true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ImGui::EndCombo();
|
ImGui::EndCombo();
|
||||||
}
|
}
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x/2);
|
||||||
|
if (ImGui::InputScalar("##NNO2",ImGuiDataType_S32,&oct2)) {
|
||||||
|
if (oct2<-5) oct2=-5;
|
||||||
|
if (oct2>9) oct2=9;
|
||||||
|
updateNote2=true;
|
||||||
|
}
|
||||||
|
if (updateNote2) {
|
||||||
|
i.noteMax=oct2*12+note2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::TableNextRow();
|
ImGui::TableNextRow();
|
||||||
|
|
Loading…
Reference in a new issue