Merge pull request #1422 from Eknous-P/guimprove

Numerous GUI improvements
This commit is contained in:
tildearrow 2023-08-28 03:02:50 -05:00 committed by GitHub
commit 7ea7f72b45
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 189 additions and 138 deletions

View file

@ -282,10 +282,12 @@ void FurnaceGUI::drawChanOsc() {
updateChanOscGradTex=true; updateChanOscGradTex=true;
} }
pushDestColor();
if (ImGui::Button("Remove")) { if (ImGui::Button("Remove")) {
removePoint=index; removePoint=index;
ImGui::CloseCurrentPopup(); ImGui::CloseCurrentPopup();
} }
popDestColor();
ImGui::EndPopup(); ImGui::EndPopup();
} }

View file

@ -172,10 +172,12 @@ void FurnaceGUI::waveListItem(int i, float* wavePreview, int dir, int asset) {
wavePreview[i]=wave->data[i]; wavePreview[i]=wave->data[i];
} }
if (wave->len>0) wavePreview[wave->len]=wave->data[wave->len-1]; if (wave->len>0) wavePreview[wave->len]=wave->data[wave->len-1];
if (ImGui::Selectable(fmt::sprintf("%d##_WAVE%d\n",i,i).c_str(),curWave==i)) { ImGui::PushStyleVar(ImGuiStyleVar_SelectableTextAlign, ImVec2(0,0.5f));
if (ImGui::Selectable(fmt::sprintf(" %d##_WAVE%d\n",i,i).c_str(),curWave==i,0,ImVec2(0,23*dpiScale))) { // i didnt think that the 0 would work, but it does
curWave=i; curWave=i;
lastAssetType=1; lastAssetType=1;
} }
ImGui::PopStyleVar();
if (wantScrollList && curWave==i) ImGui::SetScrollHereY(); if (wantScrollList && curWave==i) ImGui::SetScrollHereY();
if (ImGui::IsItemHovered()) { if (ImGui::IsItemHovered()) {
if (ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left)) { if (ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left)) {

View file

@ -811,9 +811,14 @@ void FurnaceGUI::drawFindReplace() {
} }
ImGui::TableNextRow(); ImGui::TableNextRow();
ImGui::TableNextColumn(); ImGui::TableNextColumn();
pushDestColor();
if (ImGui::Button(ICON_FA_MINUS "##DelQuery")) { if (ImGui::Button(ICON_FA_MINUS "##DelQuery")) {
eraseIndex=index; eraseIndex=index;
} }
popDestColor();
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Delete query");
}
ImGui::TableNextColumn(); ImGui::TableNextColumn();
if (i.effectCount<8) { if (i.effectCount<8) {
if (ImGui::Button("Add effect")) { if (ImGui::Button("Add effect")) {
@ -822,9 +827,11 @@ void FurnaceGUI::drawFindReplace() {
} }
ImGui::TableNextColumn(); ImGui::TableNextColumn();
if (i.effectCount>0) { if (i.effectCount>0) {
pushDestColor();
if (ImGui::Button("Remove effect")) { if (ImGui::Button("Remove effect")) {
i.effectCount--; i.effectCount--;
} }
popDestColor();
} }
ImGui::EndTable(); ImGui::EndTable();
} }
@ -1103,9 +1110,11 @@ void FurnaceGUI::drawFindReplace() {
} }
ImGui::TableNextColumn(); ImGui::TableNextColumn();
if (queryReplaceEffectCount>0) { if (queryReplaceEffectCount>0) {
pushDestColor();
if (ImGui::Button("Remove effect")) { if (ImGui::Button("Remove effect")) {
queryReplaceEffectCount--; queryReplaceEffectCount--;
} }
popDestColor();
} }
ImGui::EndTable(); ImGui::EndTable();

View file

@ -47,13 +47,14 @@ void FurnaceGUI::drawGrooves() {
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::Text("pattern"); ImGui::Text("pattern");
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::Text("remove"); // ImGui::Text("remove"); removed because the text clips from the fixed width
int index=0; int index=0;
for (DivGroovePattern& i: e->song.grooves) { for (DivGroovePattern& i: e->song.grooves) {
ImGui::TableNextRow(); ImGui::TableNextRow();
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::PushFont(patFont); ImGui::PushFont(patFont);
ImGui::AlignTextToFramePadding();
ImGui::Text("%.2X",index); ImGui::Text("%.2X",index);
ImGui::PopFont(); ImGui::PopFont();
@ -79,6 +80,7 @@ void FurnaceGUI::drawGrooves() {
ImGui::SetKeyboardFocusHere(); ImGui::SetKeyboardFocusHere();
} }
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
ImGui::AlignTextToFramePadding();
if (ImGui::InputText(grooveStr.c_str(),&grooveListString)) { if (ImGui::InputText(grooveStr.c_str(),&grooveListString)) {
decodeMMLStr(grooveListString,intVersion,intVersionLen,ignoredLoop,1,255,ignoredRel); decodeMMLStr(grooveListString,intVersion,intVersionLen,ignoredLoop,1,255,ignoredRel);
if (intVersionLen<1) { if (intVersionLen<1) {
@ -120,10 +122,15 @@ void FurnaceGUI::drawGrooves() {
} }
ImGui::TableNextColumn(); ImGui::TableNextColumn();
pushDestColor();
String grooveID=fmt::sprintf(ICON_FA_TIMES "##GRR%d",index); String grooveID=fmt::sprintf(ICON_FA_TIMES "##GRR%d",index);
if (ImGui::Button(grooveID.c_str())) { if (ImGui::Button(grooveID.c_str())) {
delGroove=index; delGroove=index;
} }
popDestColor();
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("remove");
}
index++; index++;
} }

View file

@ -4333,6 +4333,7 @@ void FurnaceGUI::drawInsEdit() {
MARK_MODIFIED; MARK_MODIFIED;
} }
ImGui::SameLine(); ImGui::SameLine();
pushDestColor();
if (ImGui::Button(ICON_FA_TIMES "##HWCmdDel")) { if (ImGui::Button(ICON_FA_TIMES "##HWCmdDel")) {
for (int j=i; j<ins->gb.hwSeqLen-1; j++) { for (int j=i; j<ins->gb.hwSeqLen-1; j++) {
ins->gb.hwSeq[j].cmd=ins->gb.hwSeq[j+1].cmd; ins->gb.hwSeq[j].cmd=ins->gb.hwSeq[j+1].cmd;
@ -4340,6 +4341,7 @@ void FurnaceGUI::drawInsEdit() {
} }
ins->gb.hwSeqLen--; ins->gb.hwSeqLen--;
} }
popDestColor();
ImGui::PopID(); ImGui::PopID();
} }
ImGui::EndTable(); ImGui::EndTable();

View file

@ -115,10 +115,12 @@ void FurnaceGUI::drawOrderButtons() {
} }
NEXT_BUTTON; NEXT_BUTTON;
pushDestColor();
if (ImGui::Button(ICON_FA_MINUS)) { handleUnimportant if (ImGui::Button(ICON_FA_MINUS)) { handleUnimportant
// remove this order row // remove this order row
doAction(GUI_ACTION_ORDERS_REMOVE); doAction(GUI_ACTION_ORDERS_REMOVE);
} }
popDestColor();
if (ImGui::IsItemHovered()) { if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Remove order"); ImGui::SetTooltip("Remove order");
} }

View file

@ -577,7 +577,7 @@ void FurnaceGUI::drawSettings() {
float vol=fabs(sysVol); float vol=fabs(sysVol);
ImGui::PushID(i); ImGui::PushID(i);
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize("Invert").x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize("Invert").x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x*2.0);
if (ImGui::BeginCombo("##System",getSystemName(sysID))) { if (ImGui::BeginCombo("##System",getSystemName(sysID))) {
for (int j=0; availableSystems[j]; j++) { for (int j=0; availableSystems[j]; j++) {
if (ImGui::Selectable(getSystemName((DivSystem)availableSystems[j]),sysID==availableSystems[j])) { if (ImGui::Selectable(getSystemName((DivSystem)availableSystems[j]),sysID==availableSystems[j])) {
@ -596,11 +596,13 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::SameLine(); ImGui::SameLine();
//ImGui::BeginDisabled(settings.initialSys.size()<=4); //ImGui::BeginDisabled(settings.initialSys.size()<=4);
pushDestColor();
if (ImGui::Button(ICON_FA_MINUS "##InitSysRemove")) { if (ImGui::Button(ICON_FA_MINUS "##InitSysRemove")) {
doRemove=i; doRemove=i;
} }
popDestColor();
//ImGui::EndDisabled(); //ImGui::EndDisabled();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x*2.0);
if (CWSliderFloat("Volume",&vol,0.0f,3.0f)) { if (CWSliderFloat("Volume",&vol,0.0f,3.0f)) {
if (doInvert) { if (doInvert) {
if (vol<0.0001) vol=0.0001; if (vol<0.0001) vol=0.0001;
@ -610,13 +612,13 @@ void FurnaceGUI::drawSettings() {
sysVol=doInvert?-vol:vol; sysVol=doInvert?-vol:vol;
settings.initialSys.set(fmt::sprintf("vol%d",i),(float)sysVol); settings.initialSys.set(fmt::sprintf("vol%d",i),(float)sysVol);
} rightClickable } rightClickable
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x*2.0);
if (CWSliderFloat("Panning",&sysPan,-1.0f,1.0f)) { if (CWSliderFloat("Panning",&sysPan,-1.0f,1.0f)) {
if (sysPan<-1.0f) sysPan=-1.0f; if (sysPan<-1.0f) sysPan=-1.0f;
if (sysPan>1.0f) sysPan=1.0f; if (sysPan>1.0f) sysPan=1.0f;
settings.initialSys.set(fmt::sprintf("pan%d",i),(float)sysPan); settings.initialSys.set(fmt::sprintf("pan%d",i),(float)sysPan);
} rightClickable } rightClickable
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing()*2.0-ImGui::GetStyle().ItemSpacing.x*2.0);
if (CWSliderFloat("Front/Rear",&sysPanFR,-1.0f,1.0f)) { if (CWSliderFloat("Front/Rear",&sysPanFR,-1.0f,1.0f)) {
if (sysPanFR<-1.0f) sysPanFR=-1.0f; if (sysPanFR<-1.0f) sysPanFR=-1.0f;
if (sysPanFR>1.0f) sysPanFR=1.0f; if (sysPanFR>1.0f) sysPanFR=1.0f;
@ -719,105 +721,123 @@ void FurnaceGUI::drawSettings() {
CONFIG_SECTION("Audio") { CONFIG_SECTION("Audio") {
// SUBSECTION OUTPUT // SUBSECTION OUTPUT
CONFIG_SUBSECTION("Output"); CONFIG_SUBSECTION("Output");
if (ImGui::BeginTable("##Output",2)) {
ImGui::TableSetupColumn("##Label",ImGuiTableColumnFlags_WidthFixed);
ImGui::TableSetupColumn("##Combo",ImGuiTableColumnFlags_WidthStretch);
#ifdef HAVE_JACK #ifdef HAVE_JACK
ImGui::AlignTextToFramePadding(); ImGui::TableNextRow();
ImGui::Text("Backend"); ImGui::TableNextColumn();
ImGui::SameLine(); ImGui::AlignTextToFramePadding();
int prevAudioEngine=settings.audioEngine; ImGui::Text("Backend");
if (ImGui::Combo("##Backend",&settings.audioEngine,audioBackends,2)) { ImGui::TableNextColumn();
if (settings.audioEngine!=prevAudioEngine) { int prevAudioEngine=settings.audioEngine;
if (!isProAudio[settings.audioEngine]) settings.audioChans=2; if (ImGui::Combo("##Backend",&settings.audioEngine,audioBackends,2)) {
if (settings.audioEngine!=prevAudioEngine) {
if (!isProAudio[settings.audioEngine]) settings.audioChans=2;
}
} }
}
#endif #endif
if (settings.audioEngine==DIV_AUDIO_SDL) { if (settings.audioEngine==DIV_AUDIO_SDL) {
ImGui::AlignTextToFramePadding(); ImGui::TableNextRow();
ImGui::Text("Driver"); ImGui::TableNextColumn();
ImGui::SameLine(); ImGui::AlignTextToFramePadding();
if (ImGui::BeginCombo("##SDLADriver",settings.sdlAudioDriver.empty()?"Automatic":settings.sdlAudioDriver.c_str())) { ImGui::Text("Driver");
if (ImGui::Selectable("Automatic",settings.sdlAudioDriver.empty())) { ImGui::TableNextColumn();
settings.sdlAudioDriver=""; if (ImGui::BeginCombo("##SDLADriver",settings.sdlAudioDriver.empty()?"Automatic":settings.sdlAudioDriver.c_str())) {
if (ImGui::Selectable("Automatic",settings.sdlAudioDriver.empty())) {
settings.sdlAudioDriver="";
}
for (String& i: availAudioDrivers) {
if (ImGui::Selectable(i.c_str(),i==settings.sdlAudioDriver)) {
settings.sdlAudioDriver=i;
}
}
ImGui::EndCombo();
} }
for (String& i: availAudioDrivers) { if (ImGui::IsItemHovered()) {
if (ImGui::Selectable(i.c_str(),i==settings.sdlAudioDriver)) { ImGui::SetTooltip("you may need to restart Furnace for this setting to take effect.");
settings.sdlAudioDriver=i; }
}
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding();
ImGui::Text("Device");
ImGui::TableNextColumn();
String audioDevName=settings.audioDevice.empty()?"<System default>":settings.audioDevice;
if (ImGui::BeginCombo("##AudioDevice",audioDevName.c_str())) {
if (ImGui::Selectable("<System default>",settings.audioDevice.empty())) {
settings.audioDevice="";
}
for (String& i: e->getAudioDevices()) {
if (ImGui::Selectable(i.c_str(),i==settings.audioDevice)) {
settings.audioDevice=i;
} }
} }
ImGui::EndCombo(); ImGui::EndCombo();
} }
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("you may need to restart Furnace for this setting to take effect.");
}
}
ImGui::AlignTextToFramePadding(); ImGui::TableNextRow();
ImGui::Text("Device"); ImGui::TableNextColumn();
ImGui::SameLine();
String audioDevName=settings.audioDevice.empty()?"<System default>":settings.audioDevice;
if (ImGui::BeginCombo("##AudioDevice",audioDevName.c_str())) {
if (ImGui::Selectable("<System default>",settings.audioDevice.empty())) {
settings.audioDevice="";
}
for (String& i: e->getAudioDevices()) {
if (ImGui::Selectable(i.c_str(),i==settings.audioDevice)) {
settings.audioDevice=i;
}
}
ImGui::EndCombo();
}
ImGui::AlignTextToFramePadding();
ImGui::Text("Sample rate");
ImGui::SameLine();
String sr=fmt::sprintf("%d",settings.audioRate);
if (ImGui::BeginCombo("##SampleRate",sr.c_str())) {
SAMPLE_RATE_SELECTABLE(8000);
SAMPLE_RATE_SELECTABLE(16000);
SAMPLE_RATE_SELECTABLE(22050);
SAMPLE_RATE_SELECTABLE(32000);
SAMPLE_RATE_SELECTABLE(44100);
SAMPLE_RATE_SELECTABLE(48000);
SAMPLE_RATE_SELECTABLE(88200);
SAMPLE_RATE_SELECTABLE(96000);
SAMPLE_RATE_SELECTABLE(192000);
ImGui::EndCombo();
}
if (isProAudio[settings.audioEngine]) {
ImGui::Text("Outputs");
ImGui::SameLine();
if (ImGui::InputInt("##AudioChansI",&settings.audioChans,1,1)) {
if (settings.audioChans<1) settings.audioChans=1;
if (settings.audioChans>16) settings.audioChans=16;
}
} else {
ImGui::AlignTextToFramePadding(); ImGui::AlignTextToFramePadding();
ImGui::Text("Channels"); ImGui::Text("Sample rate");
ImGui::SameLine(); ImGui::TableNextColumn();
String chStr=(settings.audioChans<1 || settings.audioChans>8)?"What?":nonProAudioOuts[settings.audioChans-1]; String sr=fmt::sprintf("%d",settings.audioRate);
if (ImGui::BeginCombo("##AudioChans",chStr.c_str())) { if (ImGui::BeginCombo("##SampleRate",sr.c_str())) {
CHANS_SELECTABLE(1); SAMPLE_RATE_SELECTABLE(8000);
CHANS_SELECTABLE(2); SAMPLE_RATE_SELECTABLE(16000);
CHANS_SELECTABLE(4); SAMPLE_RATE_SELECTABLE(22050);
CHANS_SELECTABLE(6); SAMPLE_RATE_SELECTABLE(32000);
CHANS_SELECTABLE(8); SAMPLE_RATE_SELECTABLE(44100);
SAMPLE_RATE_SELECTABLE(48000);
SAMPLE_RATE_SELECTABLE(88200);
SAMPLE_RATE_SELECTABLE(96000);
SAMPLE_RATE_SELECTABLE(192000);
ImGui::EndCombo(); ImGui::EndCombo();
} }
}
ImGui::AlignTextToFramePadding(); ImGui::TableNextRow();
ImGui::Text("Buffer size"); ImGui::TableNextColumn();
ImGui::SameLine(); if (isProAudio[settings.audioEngine]) {
String bs=fmt::sprintf("%d (latency: ~%.1fms)",settings.audioBufSize,2000.0*(double)settings.audioBufSize/(double)MAX(1,settings.audioRate)); ImGui::AlignTextToFramePadding();
if (ImGui::BeginCombo("##BufferSize",bs.c_str())) { ImGui::Text("Outputs");
BUFFER_SIZE_SELECTABLE(64); ImGui::TableNextColumn();
BUFFER_SIZE_SELECTABLE(128); if (ImGui::InputInt("##AudioChansI",&settings.audioChans,1,1)) {
BUFFER_SIZE_SELECTABLE(256); if (settings.audioChans<1) settings.audioChans=1;
BUFFER_SIZE_SELECTABLE(512); if (settings.audioChans>16) settings.audioChans=16;
BUFFER_SIZE_SELECTABLE(1024); }
BUFFER_SIZE_SELECTABLE(2048); } else {
ImGui::EndCombo(); ImGui::AlignTextToFramePadding();
ImGui::Text("Channels");
ImGui::TableNextColumn();
String chStr=(settings.audioChans<1 || settings.audioChans>8)?"What?":nonProAudioOuts[settings.audioChans-1];
if (ImGui::BeginCombo("##AudioChans",chStr.c_str())) {
CHANS_SELECTABLE(1);
CHANS_SELECTABLE(2);
CHANS_SELECTABLE(4);
CHANS_SELECTABLE(6);
CHANS_SELECTABLE(8);
ImGui::EndCombo();
}
}
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding();
ImGui::Text("Buffer size");
ImGui::TableNextColumn();
String bs=fmt::sprintf("%d (latency: ~%.1fms)",settings.audioBufSize,2000.0*(double)settings.audioBufSize/(double)MAX(1,settings.audioRate));
if (ImGui::BeginCombo("##BufferSize",bs.c_str())) {
BUFFER_SIZE_SELECTABLE(64);
BUFFER_SIZE_SELECTABLE(128);
BUFFER_SIZE_SELECTABLE(256);
BUFFER_SIZE_SELECTABLE(512);
BUFFER_SIZE_SELECTABLE(1024);
BUFFER_SIZE_SELECTABLE(2048);
ImGui::EndCombo();
}
ImGui::EndTable();
} }
bool lowLatencyB=settings.lowLatency; bool lowLatencyB=settings.lowLatency;
@ -2015,57 +2035,62 @@ void FurnaceGUI::drawSettings() {
// SUBSECTION TEXT // SUBSECTION TEXT
CONFIG_SUBSECTION("Text"); CONFIG_SUBSECTION("Text");
ImGui::AlignTextToFramePadding(); if (ImGui::BeginTable("##Text",2)) {
ImGui::Text("Main font"); ImGui::TableSetupColumn("##Label",ImGuiTableColumnFlags_WidthFixed);
ImGui::SameLine(); ImGui::TableSetupColumn("##Combos",ImGuiTableColumnFlags_WidthStretch);
ImGui::Combo("##MainFont",&settings.mainFont,mainFonts,7); ImGui::TableNextRow();
ImGui::Indent(); ImGui::TableNextColumn();
if (settings.mainFont==6) { ImGui::AlignTextToFramePadding();
ImGui::InputText("##MainFontPath",&settings.mainFontPath); ImGui::Text("Main font");
ImGui::SameLine(); ImGui::TableNextColumn();
if (ImGui::Button(ICON_FA_FOLDER "##MainFontLoad")) { ImGui::Combo("##MainFont",&settings.mainFont,mainFonts,7);
openFileDialog(GUI_FILE_LOAD_MAIN_FONT); if (settings.mainFont==6) {
ImGui::InputText("##MainFontPath",&settings.mainFontPath);
ImGui::SameLine();
if (ImGui::Button(ICON_FA_FOLDER "##MainFontLoad")) {
openFileDialog(GUI_FILE_LOAD_MAIN_FONT);
}
} }
} if (ImGui::InputInt("Size##MainFontSize",&settings.mainFontSize)) {
if (ImGui::InputInt("Size##MainFontSize",&settings.mainFontSize)) { if (settings.mainFontSize<3) settings.mainFontSize=3;
if (settings.mainFontSize<3) settings.mainFontSize=3; if (settings.mainFontSize>96) settings.mainFontSize=96;
if (settings.mainFontSize>96) settings.mainFontSize=96;
}
ImGui::Unindent();
ImGui::AlignTextToFramePadding();
ImGui::Text("Header font");
ImGui::SameLine();
ImGui::Combo("##HeadFont",&settings.headFont,headFonts,7);
ImGui::Indent();
if (settings.headFont==6) {
ImGui::InputText("##HeadFontPath",&settings.headFontPath);
ImGui::SameLine();
if (ImGui::Button(ICON_FA_FOLDER "##HeadFontLoad")) {
openFileDialog(GUI_FILE_LOAD_HEAD_FONT);
} }
} ImGui::TableNextRow();
if (ImGui::InputInt("Size##HeadFontSize",&settings.headFontSize)) { ImGui::TableNextColumn();
if (settings.headFontSize<3) settings.headFontSize=3; ImGui::AlignTextToFramePadding();
if (settings.headFontSize>96) settings.headFontSize=96; ImGui::Text("Header font");
} ImGui::TableNextColumn();
ImGui::Unindent(); ImGui::Combo("##HeadFont",&settings.headFont,headFonts,7);
ImGui::AlignTextToFramePadding(); if (settings.headFont==6) {
ImGui::Text("Pattern font"); ImGui::InputText("##HeadFontPath",&settings.headFontPath);
ImGui::SameLine(); ImGui::SameLine();
ImGui::Combo("##PatFont",&settings.patFont,patFonts,7); if (ImGui::Button(ICON_FA_FOLDER "##HeadFontLoad")) {
ImGui::Indent(); openFileDialog(GUI_FILE_LOAD_HEAD_FONT);
if (settings.patFont==6) { }
ImGui::InputText("##PatFontPath",&settings.patFontPath);
ImGui::SameLine();
if (ImGui::Button(ICON_FA_FOLDER "##PatFontLoad")) {
openFileDialog(GUI_FILE_LOAD_PAT_FONT);
} }
if (ImGui::InputInt("Size##HeadFontSize",&settings.headFontSize)) {
if (settings.headFontSize<3) settings.headFontSize=3;
if (settings.headFontSize>96) settings.headFontSize=96;
}
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding();
ImGui::Text("Pattern font");
ImGui::TableNextColumn();
ImGui::Combo("##PatFont",&settings.patFont,patFonts,7);
if (settings.patFont==6) {
ImGui::InputText("##PatFontPath",&settings.patFontPath);
ImGui::SameLine();
if (ImGui::Button(ICON_FA_FOLDER "##PatFontLoad")) {
openFileDialog(GUI_FILE_LOAD_PAT_FONT);
}
}
if (ImGui::InputInt("Size##PatFontSize",&settings.patFontSize)) {
if (settings.patFontSize<3) settings.patFontSize=3;
if (settings.patFontSize>96) settings.patFontSize=96;
}
ImGui::EndTable();
} }
if (ImGui::InputInt("Size##PatFontSize",&settings.patFontSize)) {
if (settings.patFontSize<3) settings.patFontSize=3;
if (settings.patFontSize>96) settings.patFontSize=96;
}
ImGui::Unindent();
bool loadJapaneseB=settings.loadJapanese; bool loadJapaneseB=settings.loadJapanese;
if (ImGui::Checkbox("Display Japanese characters",&loadJapaneseB)) { if (ImGui::Checkbox("Display Japanese characters",&loadJapaneseB)) {

View file

@ -102,10 +102,12 @@ void FurnaceGUI::drawSysManager() {
} }
ImGui::SameLine(); ImGui::SameLine();
ImGui::BeginDisabled(e->song.systemLen<=1); ImGui::BeginDisabled(e->song.systemLen<=1);
pushDestColor();
if (ImGui::Button(ICON_FA_TIMES "##SysRemove")) { if (ImGui::Button(ICON_FA_TIMES "##SysRemove")) {
sysToDelete=i; sysToDelete=i;
showWarning("Are you sure you want to remove this chip?",GUI_WARN_SYSTEM_DEL); showWarning("Are you sure you want to remove this chip?",GUI_WARN_SYSTEM_DEL);
} }
popDestColor();
if (ImGui::IsItemHovered()) { if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("Remove"); ImGui::SetTooltip("Remove");
} }