Merge pull request #781 from tildearrow/tooltip_enum
Add tooltips in GUI, enum-ize piano mode/Special notes
This commit is contained in:
commit
b8784d93ce
|
@ -47,6 +47,9 @@ void FurnaceGUI::drawInsList(bool asChild) {
|
||||||
if (ImGui::Button(ICON_FA_PLUS "##InsAdd")) {
|
if (ImGui::Button(ICON_FA_PLUS "##InsAdd")) {
|
||||||
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_ADD);
|
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_ADD);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Add");
|
||||||
|
}
|
||||||
if (settings.unifiedDataView) {
|
if (settings.unifiedDataView) {
|
||||||
if (ImGui::BeginPopupContextItem("UnifiedAdd",ImGuiMouseButton_Left)) {
|
if (ImGui::BeginPopupContextItem("UnifiedAdd",ImGuiMouseButton_Left)) {
|
||||||
if (ImGui::MenuItem("instrument")) {
|
if (ImGui::MenuItem("instrument")) {
|
||||||
|
@ -70,6 +73,9 @@ void FurnaceGUI::drawInsList(bool asChild) {
|
||||||
if (ImGui::Button(ICON_FA_FILES_O "##InsClone")) {
|
if (ImGui::Button(ICON_FA_FILES_O "##InsClone")) {
|
||||||
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_DUPLICATE);
|
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_DUPLICATE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Duplicate");
|
||||||
|
}
|
||||||
if (settings.unifiedDataView) {
|
if (settings.unifiedDataView) {
|
||||||
if (ImGui::BeginPopupContextItem("UnifiedClone",ImGuiMouseButton_Left)) {
|
if (ImGui::BeginPopupContextItem("UnifiedClone",ImGuiMouseButton_Left)) {
|
||||||
if (ImGui::MenuItem("instrument")) {
|
if (ImGui::MenuItem("instrument")) {
|
||||||
|
@ -88,6 +94,9 @@ void FurnaceGUI::drawInsList(bool asChild) {
|
||||||
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##InsLoad")) {
|
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##InsLoad")) {
|
||||||
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_OPEN);
|
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_OPEN);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Open");
|
||||||
|
}
|
||||||
if (settings.unifiedDataView) {
|
if (settings.unifiedDataView) {
|
||||||
if (ImGui::BeginPopupContextItem("UnifiedLoad",ImGuiMouseButton_Left)) {
|
if (ImGui::BeginPopupContextItem("UnifiedLoad",ImGuiMouseButton_Left)) {
|
||||||
if (ImGui::MenuItem("instrument")) {
|
if (ImGui::MenuItem("instrument")) {
|
||||||
|
@ -127,6 +136,9 @@ void FurnaceGUI::drawInsList(bool asChild) {
|
||||||
if (ImGui::Button(ICON_FA_FLOPPY_O "##InsSave")) {
|
if (ImGui::Button(ICON_FA_FLOPPY_O "##InsSave")) {
|
||||||
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_SAVE);
|
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_SAVE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Save");
|
||||||
|
}
|
||||||
if (settings.unifiedDataView) {
|
if (settings.unifiedDataView) {
|
||||||
if (ImGui::BeginPopupContextItem("UnifiedSave",ImGuiMouseButton_Left)) {
|
if (ImGui::BeginPopupContextItem("UnifiedSave",ImGuiMouseButton_Left)) {
|
||||||
if (ImGui::MenuItem("instrument")) {
|
if (ImGui::MenuItem("instrument")) {
|
||||||
|
@ -166,15 +178,24 @@ void FurnaceGUI::drawInsList(bool asChild) {
|
||||||
if (ImGui::ArrowButton("InsUp",ImGuiDir_Up)) {
|
if (ImGui::ArrowButton("InsUp",ImGuiDir_Up)) {
|
||||||
doAction(GUI_ACTION_INS_LIST_MOVE_UP);
|
doAction(GUI_ACTION_INS_LIST_MOVE_UP);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Move up");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::ArrowButton("InsDown",ImGuiDir_Down)) {
|
if (ImGui::ArrowButton("InsDown",ImGuiDir_Down)) {
|
||||||
doAction(GUI_ACTION_INS_LIST_MOVE_DOWN);
|
doAction(GUI_ACTION_INS_LIST_MOVE_DOWN);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Move down");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_TIMES "##InsDelete")) {
|
if (ImGui::Button(ICON_FA_TIMES "##InsDelete")) {
|
||||||
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_DELETE);
|
if (!settings.unifiedDataView) doAction(GUI_ACTION_INS_LIST_DELETE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Delete");
|
||||||
|
}
|
||||||
if (settings.unifiedDataView) {
|
if (settings.unifiedDataView) {
|
||||||
if (ImGui::BeginPopupContextItem("UnifiedDelete",ImGuiMouseButton_Left)) {
|
if (ImGui::BeginPopupContextItem("UnifiedDelete",ImGuiMouseButton_Left)) {
|
||||||
if (ImGui::MenuItem("instrument")) {
|
if (ImGui::MenuItem("instrument")) {
|
||||||
|
@ -521,14 +542,23 @@ void FurnaceGUI::drawWaveList(bool asChild) {
|
||||||
if (ImGui::Button(ICON_FA_PLUS "##WaveAdd")) {
|
if (ImGui::Button(ICON_FA_PLUS "##WaveAdd")) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_ADD);
|
doAction(GUI_ACTION_WAVE_LIST_ADD);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Add");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_FILES_O "##WaveClone")) {
|
if (ImGui::Button(ICON_FA_FILES_O "##WaveClone")) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_DUPLICATE);
|
doAction(GUI_ACTION_WAVE_LIST_DUPLICATE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Duplicate");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##WaveLoad")) {
|
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##WaveLoad")) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_OPEN);
|
doAction(GUI_ACTION_WAVE_LIST_OPEN);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Open");
|
||||||
|
}
|
||||||
if (ImGui::BeginPopupContextItem("WaveOpenOpt")) {
|
if (ImGui::BeginPopupContextItem("WaveOpenOpt")) {
|
||||||
if (ImGui::MenuItem("replace...")) {
|
if (ImGui::MenuItem("replace...")) {
|
||||||
doAction((curWave>=0 && curWave<(int)e->song.wave.size())?GUI_ACTION_WAVE_LIST_OPEN_REPLACE:GUI_ACTION_WAVE_LIST_OPEN);
|
doAction((curWave>=0 && curWave<(int)e->song.wave.size())?GUI_ACTION_WAVE_LIST_OPEN_REPLACE:GUI_ACTION_WAVE_LIST_OPEN);
|
||||||
|
@ -539,6 +569,9 @@ void FurnaceGUI::drawWaveList(bool asChild) {
|
||||||
if (ImGui::Button(ICON_FA_FLOPPY_O "##WaveSave")) {
|
if (ImGui::Button(ICON_FA_FLOPPY_O "##WaveSave")) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_SAVE);
|
doAction(GUI_ACTION_WAVE_LIST_SAVE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Save");
|
||||||
|
}
|
||||||
if (!settings.unifiedDataView) {
|
if (!settings.unifiedDataView) {
|
||||||
if (ImGui::BeginPopupContextItem("WaveSaveFormats",ImGuiMouseButton_Right)) {
|
if (ImGui::BeginPopupContextItem("WaveSaveFormats",ImGuiMouseButton_Right)) {
|
||||||
if (ImGui::MenuItem("save as .dmw...")) {
|
if (ImGui::MenuItem("save as .dmw...")) {
|
||||||
|
@ -554,14 +587,23 @@ void FurnaceGUI::drawWaveList(bool asChild) {
|
||||||
if (ImGui::ArrowButton("WaveUp",ImGuiDir_Up)) {
|
if (ImGui::ArrowButton("WaveUp",ImGuiDir_Up)) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_MOVE_UP);
|
doAction(GUI_ACTION_WAVE_LIST_MOVE_UP);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Move up");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::ArrowButton("WaveDown",ImGuiDir_Down)) {
|
if (ImGui::ArrowButton("WaveDown",ImGuiDir_Down)) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_MOVE_DOWN);
|
doAction(GUI_ACTION_WAVE_LIST_MOVE_DOWN);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Move down");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_TIMES "##WaveDelete")) {
|
if (ImGui::Button(ICON_FA_TIMES "##WaveDelete")) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_DELETE);
|
doAction(GUI_ACTION_WAVE_LIST_DELETE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Delete");
|
||||||
|
}
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
if (ImGui::BeginTable("WaveListScroll",1,ImGuiTableFlags_ScrollY)) {
|
if (ImGui::BeginTable("WaveListScroll",1,ImGuiTableFlags_ScrollY)) {
|
||||||
actualWaveList();
|
actualWaveList();
|
||||||
|
@ -598,14 +640,23 @@ void FurnaceGUI::drawSampleList(bool asChild) {
|
||||||
if (ImGui::Button(ICON_FA_FILE "##SampleAdd")) {
|
if (ImGui::Button(ICON_FA_FILE "##SampleAdd")) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_ADD);
|
doAction(GUI_ACTION_SAMPLE_LIST_ADD);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Add");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_FILES_O "##SampleClone")) {
|
if (ImGui::Button(ICON_FA_FILES_O "##SampleClone")) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_DUPLICATE);
|
doAction(GUI_ACTION_SAMPLE_LIST_DUPLICATE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Duplicate");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##SampleLoad")) {
|
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##SampleLoad")) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_OPEN);
|
doAction(GUI_ACTION_SAMPLE_LIST_OPEN);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Open");
|
||||||
|
}
|
||||||
if (ImGui::BeginPopupContextItem("SampleOpenOpt")) {
|
if (ImGui::BeginPopupContextItem("SampleOpenOpt")) {
|
||||||
if (ImGui::MenuItem("replace...")) {
|
if (ImGui::MenuItem("replace...")) {
|
||||||
doAction((curSample>=0 && curSample<(int)e->song.sample.size())?GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE:GUI_ACTION_SAMPLE_LIST_OPEN);
|
doAction((curSample>=0 && curSample<(int)e->song.sample.size())?GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE:GUI_ACTION_SAMPLE_LIST_OPEN);
|
||||||
|
@ -623,26 +674,44 @@ void FurnaceGUI::drawSampleList(bool asChild) {
|
||||||
if (ImGui::Button(ICON_FA_FLOPPY_O "##SampleSave")) {
|
if (ImGui::Button(ICON_FA_FLOPPY_O "##SampleSave")) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_SAVE);
|
doAction(GUI_ACTION_SAMPLE_LIST_SAVE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Save");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::ArrowButton("SampleUp",ImGuiDir_Up)) {
|
if (ImGui::ArrowButton("SampleUp",ImGuiDir_Up)) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_MOVE_UP);
|
doAction(GUI_ACTION_SAMPLE_LIST_MOVE_UP);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Move up");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::ArrowButton("SampleDown",ImGuiDir_Down)) {
|
if (ImGui::ArrowButton("SampleDown",ImGuiDir_Down)) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_MOVE_DOWN);
|
doAction(GUI_ACTION_SAMPLE_LIST_MOVE_DOWN);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Move down");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_TIMES "##SampleDelete")) {
|
if (ImGui::Button(ICON_FA_TIMES "##SampleDelete")) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_DELETE);
|
doAction(GUI_ACTION_SAMPLE_LIST_DELETE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Delete");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_VOLUME_UP "##PreviewSampleL")) {
|
if (ImGui::Button(ICON_FA_VOLUME_UP "##PreviewSampleL")) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_PREVIEW);
|
doAction(GUI_ACTION_SAMPLE_LIST_PREVIEW);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Preview");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_VOLUME_OFF "##StopSampleL")) {
|
if (ImGui::Button(ICON_FA_VOLUME_OFF "##StopSampleL")) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_STOP_PREVIEW);
|
doAction(GUI_ACTION_SAMPLE_LIST_STOP_PREVIEW);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Stop preview");
|
||||||
|
}
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
if (ImGui::BeginTable("SampleListScroll",1,ImGuiTableFlags_ScrollY)) {
|
if (ImGui::BeginTable("SampleListScroll",1,ImGuiTableFlags_ScrollY)) {
|
||||||
actualSampleList();
|
actualSampleList();
|
||||||
|
|
|
@ -446,11 +446,17 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
|
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
|
||||||
play();
|
play();
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Play");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
|
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
|
||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Stop");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
ImGui::Checkbox("Edit",&edit);
|
ImGui::Checkbox("Edit",&edit);
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
@ -474,6 +480,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
e->stepOne(cursor.y);
|
e->stepOne(cursor.y);
|
||||||
pendingStepUpdate=true;
|
pendingStepUpdate=true;
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Step one row");
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
pushToggleColors(noteInputPoly);
|
pushToggleColors(noteInputPoly);
|
||||||
|
@ -481,6 +490,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
noteInputPoly=!noteInputPoly;
|
noteInputPoly=!noteInputPoly;
|
||||||
e->setAutoNotePoly(noteInputPoly);
|
e->setAutoNotePoly(noteInputPoly);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Polyphony");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
}
|
}
|
||||||
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
|
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
|
||||||
|
@ -491,17 +503,26 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
|
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
|
||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Stop");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
pushToggleColors(e->isPlaying());
|
pushToggleColors(e->isPlaying());
|
||||||
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
|
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
|
||||||
play();
|
play();
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Play");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne")) {
|
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne")) {
|
||||||
e->stepOne(cursor.y);
|
e->stepOne(cursor.y);
|
||||||
pendingStepUpdate=true;
|
pendingStepUpdate=true;
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Step one row");
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
bool repeatPattern=e->getRepeatPattern();
|
bool repeatPattern=e->getRepeatPattern();
|
||||||
|
@ -509,6 +530,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern")) {
|
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern")) {
|
||||||
e->setRepeatPattern(!repeatPattern);
|
e->setRepeatPattern(!repeatPattern);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Repeat pattern");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
@ -516,6 +540,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_CIRCLE "##Edit")) {
|
if (ImGui::Button(ICON_FA_CIRCLE "##Edit")) {
|
||||||
edit=!edit;
|
edit=!edit;
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Edit");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
@ -524,6 +551,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_BELL_O "##Metronome")) {
|
if (ImGui::Button(ICON_FA_BELL_O "##Metronome")) {
|
||||||
e->setMetronome(!metro);
|
e->setMetronome(!metro);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Metronome");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
@ -566,6 +596,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
noteInputPoly=!noteInputPoly;
|
noteInputPoly=!noteInputPoly;
|
||||||
e->setAutoNotePoly(noteInputPoly);
|
e->setAutoNotePoly(noteInputPoly);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Polyphony");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
}
|
}
|
||||||
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
|
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
|
||||||
|
@ -578,26 +611,41 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_PLAY "##Play",buttonSize)) {
|
if (ImGui::Button(ICON_FA_PLAY "##Play",buttonSize)) {
|
||||||
play();
|
play();
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Play");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
if (ImGui::Button(ICON_FA_STOP "##Stop",buttonSize)) {
|
if (ImGui::Button(ICON_FA_STOP "##Stop",buttonSize)) {
|
||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Stop");
|
||||||
|
}
|
||||||
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne",buttonSize)) {
|
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne",buttonSize)) {
|
||||||
e->stepOne(cursor.y);
|
e->stepOne(cursor.y);
|
||||||
pendingStepUpdate=true;
|
pendingStepUpdate=true;
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Step one row");
|
||||||
|
}
|
||||||
|
|
||||||
bool repeatPattern=e->getRepeatPattern();
|
bool repeatPattern=e->getRepeatPattern();
|
||||||
pushToggleColors(repeatPattern);
|
pushToggleColors(repeatPattern);
|
||||||
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern",buttonSize)) {
|
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern",buttonSize)) {
|
||||||
e->setRepeatPattern(!repeatPattern);
|
e->setRepeatPattern(!repeatPattern);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Repeat pattern");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
pushToggleColors(edit);
|
pushToggleColors(edit);
|
||||||
if (ImGui::Button(ICON_FA_CIRCLE "##Edit",buttonSize)) {
|
if (ImGui::Button(ICON_FA_CIRCLE "##Edit",buttonSize)) {
|
||||||
edit=!edit;
|
edit=!edit;
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Edit");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
bool metro=e->getMetronome();
|
bool metro=e->getMetronome();
|
||||||
|
@ -605,9 +653,15 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_BELL_O "##Metronome",buttonSize)) {
|
if (ImGui::Button(ICON_FA_BELL_O "##Metronome",buttonSize)) {
|
||||||
e->setMetronome(!metro);
|
e->setMetronome(!metro);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Metronome");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
ImGui::Text("Oct.");
|
ImGui::Text("Oct.");
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Octave");
|
||||||
|
}
|
||||||
float avail=ImGui::GetContentRegionAvail().x;
|
float avail=ImGui::GetContentRegionAvail().x;
|
||||||
ImGui::SetNextItemWidth(avail);
|
ImGui::SetNextItemWidth(avail);
|
||||||
if (ImGui::InputInt("##Octave",&curOctave,0,0)) {
|
if (ImGui::InputInt("##Octave",&curOctave,0,0)) {
|
||||||
|
@ -632,15 +686,24 @@ void FurnaceGUI::drawEditControls() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::Text("Foll.");
|
ImGui::Text("Foll.");
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Follow");
|
||||||
|
}
|
||||||
pushToggleColors(followOrders);
|
pushToggleColors(followOrders);
|
||||||
if (ImGui::Button("Ord##FollowOrders",buttonSize)) { handleUnimportant
|
if (ImGui::Button("Ord##FollowOrders",buttonSize)) { handleUnimportant
|
||||||
followOrders=!followOrders;
|
followOrders=!followOrders;
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Orders");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
pushToggleColors(followPattern);
|
pushToggleColors(followPattern);
|
||||||
if (ImGui::Button("Pat##FollowPattern",buttonSize)) { handleUnimportant
|
if (ImGui::Button("Pat##FollowPattern",buttonSize)) { handleUnimportant
|
||||||
followPattern=!followPattern;
|
followPattern=!followPattern;
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Pattern");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
pushToggleColors(noteInputPoly);
|
pushToggleColors(noteInputPoly);
|
||||||
|
@ -648,6 +711,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
noteInputPoly=!noteInputPoly;
|
noteInputPoly=!noteInputPoly;
|
||||||
e->setAutoNotePoly(noteInputPoly);
|
e->setAutoNotePoly(noteInputPoly);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Polyphony");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
}
|
}
|
||||||
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
|
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
|
||||||
|
@ -660,33 +726,51 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
|
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
|
||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Stop");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
} else {
|
} else {
|
||||||
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
|
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
|
||||||
play(oldRow);
|
play(oldRow);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Play");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_PLAY_CIRCLE "##PlayAgain")) {
|
if (ImGui::Button(ICON_FA_PLAY_CIRCLE "##PlayAgain")) {
|
||||||
e->setRepeatPattern(false);
|
e->setRepeatPattern(false);
|
||||||
play();
|
play();
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Play from the beginning of this pattern");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_STEP_FORWARD "##PlayRepeat")) {
|
if (ImGui::Button(ICON_FA_STEP_FORWARD "##PlayRepeat")) {
|
||||||
e->setRepeatPattern(true);
|
e->setRepeatPattern(true);
|
||||||
play();
|
play();
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Repeat from the beginning of this pattern");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne")) {
|
if (ImGui::Button(ICON_FA_ARROW_DOWN "##StepOne")) {
|
||||||
e->stepOne(cursor.y);
|
e->stepOne(cursor.y);
|
||||||
pendingStepUpdate=true;
|
pendingStepUpdate=true;
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Step one row");
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
pushToggleColors(edit);
|
pushToggleColors(edit);
|
||||||
if (ImGui::Button(ICON_FA_CIRCLE "##Edit")) {
|
if (ImGui::Button(ICON_FA_CIRCLE "##Edit")) {
|
||||||
edit=!edit;
|
edit=!edit;
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Edit");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
bool metro=e->getMetronome();
|
bool metro=e->getMetronome();
|
||||||
|
@ -695,6 +779,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_BELL_O "##Metronome")) {
|
if (ImGui::Button(ICON_FA_BELL_O "##Metronome")) {
|
||||||
e->setMetronome(!metro);
|
e->setMetronome(!metro);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Metronome");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
@ -703,6 +790,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern")) {
|
if (ImGui::Button(ICON_FA_REPEAT "##RepeatPattern")) {
|
||||||
e->setRepeatPattern(!repeatPattern);
|
e->setRepeatPattern(!repeatPattern);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Repeat pattern");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
@ -711,6 +801,9 @@ void FurnaceGUI::drawEditControls() {
|
||||||
noteInputPoly=!noteInputPoly;
|
noteInputPoly=!noteInputPoly;
|
||||||
e->setAutoNotePoly(noteInputPoly);
|
e->setAutoNotePoly(noteInputPoly);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Polyphony");
|
||||||
|
}
|
||||||
popToggleColors();
|
popToggleColors();
|
||||||
}
|
}
|
||||||
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
|
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
|
||||||
|
|
|
@ -1040,13 +1040,13 @@ void FurnaceGUI::noteInput(int num, int key, int vol) {
|
||||||
|
|
||||||
prepareUndo(GUI_UNDO_PATTERN_EDIT);
|
prepareUndo(GUI_UNDO_PATTERN_EDIT);
|
||||||
|
|
||||||
if (key==100) { // note off
|
if (key==GUI_NOTE_OFF) { // note off
|
||||||
pat->data[cursor.y][0]=100;
|
pat->data[cursor.y][0]=100;
|
||||||
pat->data[cursor.y][1]=0;
|
pat->data[cursor.y][1]=0;
|
||||||
} else if (key==101) { // note off + env release
|
} else if (key==GUI_NOTE_OFF_RELEASE) { // note off + env release
|
||||||
pat->data[cursor.y][0]=101;
|
pat->data[cursor.y][0]=101;
|
||||||
pat->data[cursor.y][1]=0;
|
pat->data[cursor.y][1]=0;
|
||||||
} else if (key==102) { // env release only
|
} else if (key==GUI_NOTE_RELEASE) { // env release only
|
||||||
pat->data[cursor.y][0]=102;
|
pat->data[cursor.y][0]=102;
|
||||||
pat->data[cursor.y][1]=0;
|
pat->data[cursor.y][1]=0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -5979,8 +5979,8 @@ FurnaceGUI::FurnaceGUI():
|
||||||
pianoOptionsSet(false),
|
pianoOptionsSet(false),
|
||||||
pianoOffset(6),
|
pianoOffset(6),
|
||||||
pianoOffsetEdit(9),
|
pianoOffsetEdit(9),
|
||||||
pianoView(2),
|
pianoView(PIANO_LAYOUT_AUTOMATIC),
|
||||||
pianoInputPadMode(2),
|
pianoInputPadMode(PIANO_INPUT_PAD_SPLIT_AUTO),
|
||||||
#else
|
#else
|
||||||
pianoOctaves(7),
|
pianoOctaves(7),
|
||||||
pianoOctavesEdit(4),
|
pianoOctavesEdit(4),
|
||||||
|
@ -5988,8 +5988,8 @@ FurnaceGUI::FurnaceGUI():
|
||||||
pianoSharePosition(true),
|
pianoSharePosition(true),
|
||||||
pianoOffset(6),
|
pianoOffset(6),
|
||||||
pianoOffsetEdit(6),
|
pianoOffsetEdit(6),
|
||||||
pianoView(0),
|
pianoView(PIANO_LAYOUT_STANDARD),
|
||||||
pianoInputPadMode(0),
|
pianoInputPadMode(PIANO_INPUT_PAD_DISABLE),
|
||||||
#endif
|
#endif
|
||||||
hasACED(false),
|
hasACED(false),
|
||||||
waveGenBaseShape(0),
|
waveGenBaseShape(0),
|
||||||
|
|
|
@ -653,6 +653,12 @@ enum PasteMode {
|
||||||
GUI_PASTE_MODE_INS_BG
|
GUI_PASTE_MODE_INS_BG
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum NoteCtrl {
|
||||||
|
GUI_NOTE_OFF=100,
|
||||||
|
GUI_NOTE_OFF_RELEASE=101,
|
||||||
|
GUI_NOTE_RELEASE=102
|
||||||
|
};
|
||||||
|
|
||||||
#define FURKMOD_CTRL (1U<<31)
|
#define FURKMOD_CTRL (1U<<31)
|
||||||
#define FURKMOD_SHIFT (1<<29)
|
#define FURKMOD_SHIFT (1<<29)
|
||||||
#define FURKMOD_META (1<<28)
|
#define FURKMOD_META (1<<28)
|
||||||
|
@ -1677,6 +1683,21 @@ class FurnaceGUI {
|
||||||
bool followLog;
|
bool followLog;
|
||||||
|
|
||||||
// piano
|
// piano
|
||||||
|
enum PianoLayoutMode {
|
||||||
|
PIANO_LAYOUT_STANDARD = 0,
|
||||||
|
PIANO_LAYOUT_CONTINUOUS,
|
||||||
|
PIANO_LAYOUT_AUTOMATIC,
|
||||||
|
PIANO_LAYOUT_MAX
|
||||||
|
};
|
||||||
|
|
||||||
|
enum PianoInputPadMode {
|
||||||
|
PIANO_INPUT_PAD_DISABLE = 0,
|
||||||
|
PIANO_INPUT_PAD_REPLACE,
|
||||||
|
PIANO_INPUT_PAD_SPLIT_AUTO,
|
||||||
|
PIANO_INPUT_PAD_SPLIT_VISIBLE,
|
||||||
|
PIANO_INPUT_PAD_MAX
|
||||||
|
};
|
||||||
|
|
||||||
int pianoOctaves, pianoOctavesEdit;
|
int pianoOctaves, pianoOctavesEdit;
|
||||||
bool pianoOptions, pianoSharePosition, pianoOptionsSet;
|
bool pianoOptions, pianoSharePosition, pianoOptionsSet;
|
||||||
float pianoKeyHit[180];
|
float pianoKeyHit[180];
|
||||||
|
|
|
@ -2166,10 +2166,16 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##IELoad")) {
|
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##IELoad")) {
|
||||||
doAction(GUI_ACTION_INS_LIST_OPEN_REPLACE);
|
doAction(GUI_ACTION_INS_LIST_OPEN_REPLACE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Open");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_FLOPPY_O "##IESave")) {
|
if (ImGui::Button(ICON_FA_FLOPPY_O "##IESave")) {
|
||||||
doAction(GUI_ACTION_INS_LIST_SAVE);
|
doAction(GUI_ACTION_INS_LIST_SAVE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Save");
|
||||||
|
}
|
||||||
if (ImGui::BeginPopupContextItem("InsSaveFormats",ImGuiMouseButton_Right)) {
|
if (ImGui::BeginPopupContextItem("InsSaveFormats",ImGuiMouseButton_Right)) {
|
||||||
if (ImGui::MenuItem("save in legacy format...")) {
|
if (ImGui::MenuItem("save in legacy format...")) {
|
||||||
doAction(GUI_ACTION_INS_LIST_SAVE_OLD);
|
doAction(GUI_ACTION_INS_LIST_SAVE_OLD);
|
||||||
|
|
|
@ -63,7 +63,7 @@ void FurnaceGUI::drawPiano() {
|
||||||
if (ImGui::BeginTable("PianoLayout",((pianoOptions && (!mobileUI || !portrait))?2:1),ImGuiTableFlags_BordersInnerV)) {
|
if (ImGui::BeginTable("PianoLayout",((pianoOptions && (!mobileUI || !portrait))?2:1),ImGuiTableFlags_BordersInnerV)) {
|
||||||
int& off=(e->isPlaying() || pianoSharePosition)?pianoOffset:pianoOffsetEdit;
|
int& off=(e->isPlaying() || pianoSharePosition)?pianoOffset:pianoOffsetEdit;
|
||||||
int& oct=(e->isPlaying() || pianoSharePosition)?pianoOctaves:pianoOctavesEdit;
|
int& oct=(e->isPlaying() || pianoSharePosition)?pianoOctaves:pianoOctavesEdit;
|
||||||
bool view=(pianoView==2)?(!e->isPlaying()):pianoView;
|
bool view=(pianoView==PIANO_LAYOUT_AUTOMATIC)?(!e->isPlaying()):pianoView;
|
||||||
if (pianoOptions && (!mobileUI || !portrait)) {
|
if (pianoOptions && (!mobileUI || !portrait)) {
|
||||||
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed);
|
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed);
|
||||||
}
|
}
|
||||||
|
@ -76,11 +76,11 @@ void FurnaceGUI::drawPiano() {
|
||||||
ImVec2 optionSize=ImVec2((mobileUI && portrait)?((ImGui::GetContentRegionAvail().x-ImGui::GetStyle().ItemSpacing.x*5.0f)/6.0f):(1.2f*optionSizeY),optionSizeY);
|
ImVec2 optionSize=ImVec2((mobileUI && portrait)?((ImGui::GetContentRegionAvail().x-ImGui::GetStyle().ItemSpacing.x*5.0f)/6.0f):(1.2f*optionSizeY),optionSizeY);
|
||||||
if (pianoOptionsSet) {
|
if (pianoOptionsSet) {
|
||||||
if (ImGui::Button("OFF##PianoNOff",optionSize)) {
|
if (ImGui::Button("OFF##PianoNOff",optionSize)) {
|
||||||
if (edit) noteInput(0,100);
|
if (edit) noteInput(0,GUI_NOTE_OFF);
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button("===##PianoNRel",optionSize)) {
|
if (ImGui::Button("===##PianoNRel",optionSize)) {
|
||||||
if (edit) noteInput(0,101);
|
if (edit) noteInput(0,GUI_NOTE_OFF_RELEASE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (ImGui::Button(ICON_FA_ARROW_LEFT "##PianoLeft",optionSize)) {
|
if (ImGui::Button(ICON_FA_ARROW_LEFT "##PianoLeft",optionSize)) {
|
||||||
|
@ -95,29 +95,32 @@ void FurnaceGUI::drawPiano() {
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
ImGui::Button(ICON_FA_ELLIPSIS_V "##PianoOptions",optionSize);
|
ImGui::Button(ICON_FA_ELLIPSIS_V "##PianoOptions",optionSize);
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Options");
|
||||||
|
}
|
||||||
if (ImGui::BeginPopupContextItem("PianoOptions",ImGuiPopupFlags_MouseButtonLeft)) {
|
if (ImGui::BeginPopupContextItem("PianoOptions",ImGuiPopupFlags_MouseButtonLeft)) {
|
||||||
ImGui::Text("Key layout:");
|
ImGui::Text("Key layout:");
|
||||||
if (ImGui::RadioButton("Automatic",pianoView==2)) {
|
if (ImGui::RadioButton("Automatic",pianoView==PIANO_LAYOUT_AUTOMATIC)) {
|
||||||
pianoView=2;
|
pianoView=PIANO_LAYOUT_AUTOMATIC;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton("Standard",pianoView==0)) {
|
if (ImGui::RadioButton("Standard",pianoView==PIANO_LAYOUT_STANDARD)) {
|
||||||
pianoView=0;
|
pianoView=PIANO_LAYOUT_STANDARD;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton("Continuous",pianoView==1)) {
|
if (ImGui::RadioButton("Continuous",pianoView==PIANO_LAYOUT_CONTINUOUS)) {
|
||||||
pianoView=1;
|
pianoView=PIANO_LAYOUT_CONTINUOUS;
|
||||||
}
|
}
|
||||||
ImGui::Text("Value input pad:");
|
ImGui::Text("Value input pad:");
|
||||||
if (ImGui::RadioButton("Disabled",pianoInputPadMode==0)) {
|
if (ImGui::RadioButton("Disabled",pianoInputPadMode==PIANO_INPUT_PAD_DISABLE)) {
|
||||||
pianoInputPadMode=0;
|
pianoInputPadMode=PIANO_INPUT_PAD_DISABLE;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton("Replace piano",pianoInputPadMode==1)) {
|
if (ImGui::RadioButton("Replace piano",pianoInputPadMode==PIANO_INPUT_PAD_REPLACE)) {
|
||||||
pianoInputPadMode=1;
|
pianoInputPadMode=PIANO_INPUT_PAD_REPLACE;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton("Split (automatic)",pianoInputPadMode==2)) {
|
if (ImGui::RadioButton("Split (automatic)",pianoInputPadMode==PIANO_INPUT_PAD_SPLIT_AUTO)) {
|
||||||
pianoInputPadMode=2;
|
pianoInputPadMode=PIANO_INPUT_PAD_SPLIT_AUTO;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton("Split (always visible)",pianoInputPadMode==3)) {
|
if (ImGui::RadioButton("Split (always visible)",pianoInputPadMode==PIANO_INPUT_PAD_SPLIT_VISIBLE)) {
|
||||||
pianoInputPadMode=3;
|
pianoInputPadMode=PIANO_INPUT_PAD_SPLIT_VISIBLE;
|
||||||
}
|
}
|
||||||
ImGui::Checkbox("Share play/edit offset/range",&pianoSharePosition);
|
ImGui::Checkbox("Share play/edit offset/range",&pianoSharePosition);
|
||||||
ImGui::EndPopup();
|
ImGui::EndPopup();
|
||||||
|
@ -129,7 +132,7 @@ void FurnaceGUI::drawPiano() {
|
||||||
|
|
||||||
if (pianoOptionsSet) {
|
if (pianoOptionsSet) {
|
||||||
if (ImGui::Button("REL##PianoNMRel",optionSize)) {
|
if (ImGui::Button("REL##PianoNMRel",optionSize)) {
|
||||||
if (edit) noteInput(0,102);
|
if (edit) noteInput(0,GUI_NOTE_RELEASE);
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_TIMES "##PianoDelP",optionSize)) {
|
if (ImGui::Button(ICON_FA_TIMES "##PianoDelP",optionSize)) {
|
||||||
|
@ -158,7 +161,7 @@ void FurnaceGUI::drawPiano() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
if (pianoInputPadMode==1 && cursor.xFine>0 && curWindow==GUI_WINDOW_PATTERN) {
|
if (pianoInputPadMode==PIANO_INPUT_PAD_REPLACE && cursor.xFine>0 && curWindow==GUI_WINDOW_PATTERN) {
|
||||||
ImVec2 buttonSize=ImGui::GetContentRegionAvail();
|
ImVec2 buttonSize=ImGui::GetContentRegionAvail();
|
||||||
if (ImGui::BeginTable("InputPadP",8,ImGuiTableFlags_SizingFixedSame)) {
|
if (ImGui::BeginTable("InputPadP",8,ImGuiTableFlags_SizingFixedSame)) {
|
||||||
ImGui::TableNextRow();
|
ImGui::TableNextRow();
|
||||||
|
@ -431,7 +434,7 @@ void FurnaceGUI::drawPiano() {
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
|
|
||||||
// draw input pad if necessary
|
// draw input pad if necessary
|
||||||
if (curWindow==GUI_WINDOW_PATTERN && ((pianoInputPadMode==2 && cursor.xFine>0) || pianoInputPadMode==3)) {
|
if (curWindow==GUI_WINDOW_PATTERN && ((pianoInputPadMode==PIANO_INPUT_PAD_SPLIT_AUTO && cursor.xFine>0) || pianoInputPadMode==PIANO_INPUT_PAD_SPLIT_VISIBLE)) {
|
||||||
if (ImGui::Begin("Input Pad",NULL,ImGuiWindowFlags_NoTitleBar)) {
|
if (ImGui::Begin("Input Pad",NULL,ImGuiWindowFlags_NoTitleBar)) {
|
||||||
ImGui::BeginDisabled(cursor.xFine==0);
|
ImGui::BeginDisabled(cursor.xFine==0);
|
||||||
if (ImGui::BeginTable("InputPad",3,ImGuiTableFlags_Borders)) {
|
if (ImGui::BeginTable("InputPad",3,ImGuiTableFlags_Borders)) {
|
||||||
|
|
|
@ -118,10 +118,16 @@ void FurnaceGUI::drawSampleEdit() {
|
||||||
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##SELoad")) {
|
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##SELoad")) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE);
|
doAction(GUI_ACTION_SAMPLE_LIST_OPEN_REPLACE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Open");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_FLOPPY_O "##SESave")) {
|
if (ImGui::Button(ICON_FA_FLOPPY_O "##SESave")) {
|
||||||
doAction(GUI_ACTION_SAMPLE_LIST_SAVE);
|
doAction(GUI_ACTION_SAMPLE_LIST_SAVE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Save");
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
|
||||||
|
|
|
@ -50,10 +50,16 @@ void FurnaceGUI::drawSubSongs() {
|
||||||
if (ImGui::SmallButton(ICON_FA_ARROW_UP "##SubUp")) {
|
if (ImGui::SmallButton(ICON_FA_ARROW_UP "##SubUp")) {
|
||||||
e->moveSubSongUp(i);
|
e->moveSubSongUp(i);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Move up");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::SmallButton(ICON_FA_ARROW_DOWN "##SubDown")) {
|
if (ImGui::SmallButton(ICON_FA_ARROW_DOWN "##SubDown")) {
|
||||||
e->moveSubSongDown(i);
|
e->moveSubSongDown(i);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Move down");
|
||||||
|
}
|
||||||
ImGui::PopID();
|
ImGui::PopID();
|
||||||
}
|
}
|
||||||
ImGui::EndTable();
|
ImGui::EndTable();
|
||||||
|
@ -79,6 +85,9 @@ void FurnaceGUI::drawSubSongs() {
|
||||||
MARK_MODIFIED;
|
MARK_MODIFIED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Add");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_MINUS "##SubSongDel")) {
|
if (ImGui::Button(ICON_FA_MINUS "##SubSongDel")) {
|
||||||
if (e->song.subsong.size()<=1) {
|
if (e->song.subsong.size()<=1) {
|
||||||
|
@ -87,6 +96,9 @@ void FurnaceGUI::drawSubSongs() {
|
||||||
showWarning("are you sure you want to remove this subsong?",GUI_WARN_SUBSONG_DEL);
|
showWarning("are you sure you want to remove this subsong?",GUI_WARN_SUBSONG_DEL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Remove");
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::Text("Name");
|
ImGui::Text("Name");
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
|
|
@ -241,10 +241,16 @@ void FurnaceGUI::drawWaveEdit() {
|
||||||
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##WELoad")) {
|
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##WELoad")) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_OPEN_REPLACE);
|
doAction(GUI_ACTION_WAVE_LIST_OPEN_REPLACE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Open");
|
||||||
|
}
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_FLOPPY_O "##WESave")) {
|
if (ImGui::Button(ICON_FA_FLOPPY_O "##WESave")) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_SAVE);
|
doAction(GUI_ACTION_WAVE_LIST_SAVE);
|
||||||
}
|
}
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("Save");
|
||||||
|
}
|
||||||
if (ImGui::BeginPopupContextItem("WaveSaveFormats",ImGuiMouseButton_Right)) {
|
if (ImGui::BeginPopupContextItem("WaveSaveFormats",ImGuiMouseButton_Right)) {
|
||||||
if (ImGui::MenuItem("save as .dmw...")) {
|
if (ImGui::MenuItem("save as .dmw...")) {
|
||||||
doAction(GUI_ACTION_WAVE_LIST_SAVE_DMW);
|
doAction(GUI_ACTION_WAVE_LIST_SAVE_DMW);
|
||||||
|
|
Loading…
Reference in New Issue