GUI: add setting to bring old macro vSlider back
This commit is contained in:
parent
76adccc0fc
commit
613b538fb9
|
@ -890,6 +890,7 @@ class FurnaceGUI {
|
||||||
int hiddenSystems;
|
int hiddenSystems;
|
||||||
int horizontalDataView;
|
int horizontalDataView;
|
||||||
int noMultiSystem;
|
int noMultiSystem;
|
||||||
|
int oldMacroVSlider;
|
||||||
unsigned int maxUndoSteps;
|
unsigned int maxUndoSteps;
|
||||||
String mainFontPath;
|
String mainFontPath;
|
||||||
String patFontPath;
|
String patFontPath;
|
||||||
|
@ -974,6 +975,7 @@ class FurnaceGUI {
|
||||||
hiddenSystems(0),
|
hiddenSystems(0),
|
||||||
horizontalDataView(0),
|
horizontalDataView(0),
|
||||||
noMultiSystem(0),
|
noMultiSystem(0),
|
||||||
|
oldMacroVSlider(0),
|
||||||
maxUndoSteps(100),
|
maxUndoSteps(100),
|
||||||
mainFontPath(""),
|
mainFontPath(""),
|
||||||
patFontPath(""),
|
patFontPath(""),
|
||||||
|
|
|
@ -1077,7 +1077,7 @@ void FurnaceGUI::drawMacros(std::vector<FurnaceGUIMacroDesc>& macros) {
|
||||||
float loopIndicator[256];
|
float loopIndicator[256];
|
||||||
int index=0;
|
int index=0;
|
||||||
|
|
||||||
float reservedSpace=ImGui::GetStyle().ScrollbarSize;
|
float reservedSpace=(settings.oldMacroVSlider)?(20.0f*dpiScale+ImGui::GetStyle().ItemSpacing.x):ImGui::GetStyle().ScrollbarSize;
|
||||||
|
|
||||||
if (ImGui::BeginTable("MacroSpace",2)) {
|
if (ImGui::BeginTable("MacroSpace",2)) {
|
||||||
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,0.0);
|
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,0.0);
|
||||||
|
@ -1215,24 +1215,37 @@ void FurnaceGUI::drawMacros(std::vector<FurnaceGUIMacroDesc>& macros) {
|
||||||
|
|
||||||
// slider
|
// slider
|
||||||
if (!i.isBitfield) {
|
if (!i.isBitfield) {
|
||||||
ImS64 scrollV=(i.max-i.min-i.macro->vZoom)-i.macro->vScroll;
|
if (settings.oldMacroVSlider) {
|
||||||
ImS64 availV=i.macro->vZoom;
|
ImGui::SameLine(0.0f);
|
||||||
ImS64 contentsV=(i.max-i.min);
|
if (ImGui::VSliderInt("IMacroVScroll",ImVec2(20.0f*dpiScale,i.height*dpiScale),&i.macro->vScroll,0,(i.max-i.min)-i.macro->vZoom,"")) {
|
||||||
|
if (i.macro->vScroll<0) i.macro->vScroll=0;
|
||||||
|
if (i.macro->vScroll>((i.max-i.min)-i.macro->vZoom)) i.macro->vScroll=(i.max-i.min)-i.macro->vZoom;
|
||||||
|
}
|
||||||
|
if (ImGui::IsItemHovered() && ctrlWheeling) {
|
||||||
|
i.macro->vScroll+=wheelY*(1+(i.macro->vZoom>>4));
|
||||||
|
if (i.macro->vScroll<0) i.macro->vScroll=0;
|
||||||
|
if (i.macro->vScroll>((i.max-i.min)-i.macro->vZoom)) i.macro->vScroll=(i.max-i.min)-i.macro->vZoom;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ImS64 scrollV=(i.max-i.min-i.macro->vZoom)-i.macro->vScroll;
|
||||||
|
ImS64 availV=i.macro->vZoom;
|
||||||
|
ImS64 contentsV=(i.max-i.min);
|
||||||
|
|
||||||
ImGui::SameLine(0.0f);
|
ImGui::SameLine(0.0f);
|
||||||
ImGui::SetCursorPosX(ImGui::GetCursorPosX()-ImGui::GetStyle().ItemSpacing.x);
|
ImGui::SetCursorPosX(ImGui::GetCursorPosX()-ImGui::GetStyle().ItemSpacing.x);
|
||||||
ImRect scrollbarPos=ImRect(ImGui::GetCursorScreenPos(),ImGui::GetCursorScreenPos());
|
ImRect scrollbarPos=ImRect(ImGui::GetCursorScreenPos(),ImGui::GetCursorScreenPos());
|
||||||
scrollbarPos.Max.x+=ImGui::GetStyle().ScrollbarSize;
|
scrollbarPos.Max.x+=ImGui::GetStyle().ScrollbarSize;
|
||||||
scrollbarPos.Max.y+=i.height*dpiScale;
|
scrollbarPos.Max.y+=i.height*dpiScale;
|
||||||
ImGui::Dummy(ImVec2(ImGui::GetStyle().ScrollbarSize,i.height*dpiScale));
|
ImGui::Dummy(ImVec2(ImGui::GetStyle().ScrollbarSize,i.height*dpiScale));
|
||||||
if (ImGui::IsItemHovered() && ctrlWheeling) {
|
if (ImGui::IsItemHovered() && ctrlWheeling) {
|
||||||
i.macro->vScroll+=wheelY*(1+(i.macro->vZoom>>4));
|
i.macro->vScroll+=wheelY*(1+(i.macro->vZoom>>4));
|
||||||
if (i.macro->vScroll<0) i.macro->vScroll=0;
|
if (i.macro->vScroll<0) i.macro->vScroll=0;
|
||||||
if (i.macro->vScroll>((i.max-i.min)-i.macro->vZoom)) i.macro->vScroll=(i.max-i.min)-i.macro->vZoom;
|
if (i.macro->vScroll>((i.max-i.min)-i.macro->vZoom)) i.macro->vScroll=(i.max-i.min)-i.macro->vZoom;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::ScrollbarEx(scrollbarPos,ImGui::GetID("IMacroVScroll"),ImGuiAxis_Y,&scrollV,availV,contentsV,0)) {
|
if (ImGui::ScrollbarEx(scrollbarPos,ImGui::GetID("IMacroVScroll"),ImGuiAxis_Y,&scrollV,availV,contentsV,0)) {
|
||||||
i.macro->vScroll=(i.max-i.min-i.macro->vZoom)-scrollV;
|
i.macro->vScroll=(i.max-i.min-i.macro->vZoom)-scrollV;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1147,6 +1147,11 @@ void FurnaceGUI::drawSettings() {
|
||||||
settings.sampleLayout=sampleLayoutB;
|
settings.sampleLayout=sampleLayoutB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool oldMacroVSliderB=settings.oldMacroVSlider;
|
||||||
|
if (ImGui::Checkbox("Use classic macro editor vertical slider",&oldMacroVSliderB)) {
|
||||||
|
settings.oldMacroVSlider=oldMacroVSliderB;
|
||||||
|
}
|
||||||
|
|
||||||
bool roundedWindowsB=settings.roundedWindows;
|
bool roundedWindowsB=settings.roundedWindows;
|
||||||
if (ImGui::Checkbox("Rounded window corners",&roundedWindowsB)) {
|
if (ImGui::Checkbox("Rounded window corners",&roundedWindowsB)) {
|
||||||
settings.roundedWindows=roundedWindowsB;
|
settings.roundedWindows=roundedWindowsB;
|
||||||
|
@ -1849,6 +1854,7 @@ void FurnaceGUI::syncSettings() {
|
||||||
settings.hiddenSystems=e->getConfInt("hiddenSystems",0);
|
settings.hiddenSystems=e->getConfInt("hiddenSystems",0);
|
||||||
settings.horizontalDataView=e->getConfInt("horizontalDataView",0);
|
settings.horizontalDataView=e->getConfInt("horizontalDataView",0);
|
||||||
settings.noMultiSystem=e->getConfInt("noMultiSystem",0);
|
settings.noMultiSystem=e->getConfInt("noMultiSystem",0);
|
||||||
|
settings.oldMacroVSlider=e->getConfInt("oldMacroVSlider",0);
|
||||||
|
|
||||||
clampSetting(settings.mainFontSize,2,96);
|
clampSetting(settings.mainFontSize,2,96);
|
||||||
clampSetting(settings.patFontSize,2,96);
|
clampSetting(settings.patFontSize,2,96);
|
||||||
|
@ -1920,7 +1926,8 @@ void FurnaceGUI::syncSettings() {
|
||||||
clampSetting(settings.moveWindowTitle,0,1);
|
clampSetting(settings.moveWindowTitle,0,1);
|
||||||
clampSetting(settings.hiddenSystems,0,1);
|
clampSetting(settings.hiddenSystems,0,1);
|
||||||
clampSetting(settings.horizontalDataView,0,1);
|
clampSetting(settings.horizontalDataView,0,1);
|
||||||
clampSetting(settings.noMultiSystem,0,1)
|
clampSetting(settings.noMultiSystem,0,1);
|
||||||
|
clampSetting(settings.oldMacroVSlider,0,1);
|
||||||
|
|
||||||
settings.initialSys=e->decodeSysDesc(e->getConfString("initialSys",""));
|
settings.initialSys=e->decodeSysDesc(e->getConfString("initialSys",""));
|
||||||
if (settings.initialSys.size()<4) {
|
if (settings.initialSys.size()<4) {
|
||||||
|
@ -2034,6 +2041,7 @@ void FurnaceGUI::commitSettings() {
|
||||||
e->setConf("initialSys",e->encodeSysDesc(settings.initialSys));
|
e->setConf("initialSys",e->encodeSysDesc(settings.initialSys));
|
||||||
e->setConf("horizontalDataView",settings.horizontalDataView);
|
e->setConf("horizontalDataView",settings.horizontalDataView);
|
||||||
e->setConf("noMultiSystem",settings.noMultiSystem);
|
e->setConf("noMultiSystem",settings.noMultiSystem);
|
||||||
|
e->setConf("oldMacroVSlider",settings.oldMacroVSlider);
|
||||||
|
|
||||||
// colors
|
// colors
|
||||||
for (int i=0; i<GUI_COLOR_MAX; i++) {
|
for (int i=0; i<GUI_COLOR_MAX; i++) {
|
||||||
|
|
Loading…
Reference in New Issue