Add tooltips in GUI, enum-ize piano mode/Special notes

This commit is contained in:
cam900 2022-12-11 04:32:51 +09:00
parent e4ef9f46f7
commit c561ceceaf
9 changed files with 291 additions and 27 deletions

View file

@ -188,16 +188,25 @@ void FurnaceGUI::drawMobileControls() {
if (ImGui::Button(ICON_FA_PLAY "##Play",buttonSize)) {
play();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Play");
}
popToggleColors();
if (portrait) ImGui::SameLine();
if (ImGui::Button(ICON_FA_STOP "##Stop",buttonSize)) {
stop();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Stop");
}
if (portrait) ImGui::SameLine();
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne",buttonSize)) {
e->stepOne(cursor.y);
pendingStepUpdate=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Step 1 row");
}
bool repeatPattern=e->getRepeatPattern();
pushToggleColors(repeatPattern);
@ -205,6 +214,9 @@ void FurnaceGUI::drawMobileControls() {
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern",buttonSize)) {
e->setRepeatPattern(!repeatPattern);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Repeat pattern");
}
popToggleColors();
pushToggleColors(edit);
@ -212,6 +224,9 @@ void FurnaceGUI::drawMobileControls() {
if (ImGui::Button(ICON_FA_CIRCLE "##Edit",buttonSize)) {
edit=!edit;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Edit");
}
popToggleColors();
bool metro=e->getMetronome();
@ -220,6 +235,9 @@ void FurnaceGUI::drawMobileControls() {
if (ImGui::Button(ICON_FA_BELL_O "##Metronome",buttonSize)) {
e->setMetronome(!metro);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Metronome");
}
popToggleColors();
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
@ -445,11 +463,17 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
play();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Play");
}
popToggleColors();
ImGui::SameLine();
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
stop();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Stop");
}
ImGui::SameLine();
ImGui::Checkbox("Edit",&edit);
ImGui::SameLine();
@ -473,6 +497,9 @@ void FurnaceGUI::drawEditControls() {
e->stepOne(cursor.y);
pendingStepUpdate=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Step 1 row");
}
ImGui::SameLine();
pushToggleColors(noteInputPoly);
@ -480,6 +507,9 @@ void FurnaceGUI::drawEditControls() {
noteInputPoly=!noteInputPoly;
e->setAutoNotePoly(noteInputPoly);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Polyphony");
}
popToggleColors();
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
@ -490,17 +520,26 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
stop();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Stop");
}
ImGui::SameLine();
pushToggleColors(e->isPlaying());
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
play();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Play");
}
popToggleColors();
ImGui::SameLine();
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne")) {
e->stepOne(cursor.y);
pendingStepUpdate=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Step 1 row");
}
ImGui::SameLine();
bool repeatPattern=e->getRepeatPattern();
@ -508,6 +547,9 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern")) {
e->setRepeatPattern(!repeatPattern);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Repeat pattern");
}
popToggleColors();
ImGui::SameLine();
@ -515,6 +557,9 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_CIRCLE "##Edit")) {
edit=!edit;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Edit");
}
popToggleColors();
ImGui::SameLine();
@ -523,6 +568,9 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_BELL_O "##Metronome")) {
e->setMetronome(!metro);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Metronome");
}
popToggleColors();
ImGui::SameLine();
@ -565,6 +613,9 @@ void FurnaceGUI::drawEditControls() {
noteInputPoly=!noteInputPoly;
e->setAutoNotePoly(noteInputPoly);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Polyphony");
}
popToggleColors();
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
@ -577,26 +628,41 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_PLAY "##Play",buttonSize)) {
play();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Play");
}
popToggleColors();
if (ImGui::Button(ICON_FA_STOP "##Stop",buttonSize)) {
stop();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Stop");
}
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne",buttonSize)) {
e->stepOne(cursor.y);
pendingStepUpdate=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Step 1 row");
}
bool repeatPattern=e->getRepeatPattern();
pushToggleColors(repeatPattern);
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern",buttonSize)) {
e->setRepeatPattern(!repeatPattern);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Repeat pattern");
}
popToggleColors();
pushToggleColors(edit);
if (ImGui::Button(ICON_FA_CIRCLE "##Edit",buttonSize)) {
edit=!edit;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Edit");
}
popToggleColors();
bool metro=e->getMetronome();
@ -604,9 +670,15 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_BELL_O "##Metronome",buttonSize)) {
e->setMetronome(!metro);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Metronome");
}
popToggleColors();
ImGui::Text("Oct.");
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Octave");
}
float avail=ImGui::GetContentRegionAvail().x;
ImGui::SetNextItemWidth(avail);
if (ImGui::InputInt("##Octave",&curOctave,0,0)) {
@ -631,15 +703,24 @@ void FurnaceGUI::drawEditControls() {
}
ImGui::Text("Foll.");
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Follow");
}
pushToggleColors(followOrders);
if (ImGui::Button("Ord##FollowOrders",buttonSize)) { handleUnimportant
followOrders=!followOrders;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Orders");
}
popToggleColors();
pushToggleColors(followPattern);
if (ImGui::Button("Pat##FollowPattern",buttonSize)) { handleUnimportant
followPattern=!followPattern;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Pattern");
}
popToggleColors();
pushToggleColors(noteInputPoly);
@ -647,6 +728,9 @@ void FurnaceGUI::drawEditControls() {
noteInputPoly=!noteInputPoly;
e->setAutoNotePoly(noteInputPoly);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Polyphony");
}
popToggleColors();
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
@ -659,33 +743,51 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
stop();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Stop");
}
popToggleColors();
} else {
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
play(oldRow);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Play");
}
}
ImGui::SameLine();
if (ImGui::Button(ICON_FA_PLAY_CIRCLE "##PlayAgain")) {
e->setRepeatPattern(false);
play();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Play from the beginning of this pattern");
}
ImGui::SameLine();
if (ImGui::Button(ICON_FA_STEP_FORWARD "##PlayRepeat")) {
e->setRepeatPattern(true);
play();
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Repeat from the beginning of this pattern");
}
ImGui::SameLine();
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne")) {
e->stepOne(cursor.y);
pendingStepUpdate=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Step 1 row");
}
ImGui::SameLine();
pushToggleColors(edit);
if (ImGui::Button(ICON_FA_CIRCLE "##Edit")) {
edit=!edit;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Edit");
}
popToggleColors();
bool metro=e->getMetronome();
@ -694,6 +796,9 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_BELL_O "##Metronome")) {
e->setMetronome(!metro);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Metronome");
}
popToggleColors();
ImGui::SameLine();
@ -702,6 +807,9 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern")) {
e->setRepeatPattern(!repeatPattern);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Repeat pattern");
}
popToggleColors();
ImGui::SameLine();
@ -710,6 +818,9 @@ void FurnaceGUI::drawEditControls() {
noteInputPoly=!noteInputPoly;
e->setAutoNotePoly(noteInputPoly);
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Polyphony");
}
popToggleColors();
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;