GUI: several mobile changes

This commit is contained in:
tildearrow 2022-12-03 00:51:57 -05:00
parent f84469e4fd
commit 69059dc702
12 changed files with 50 additions and 35 deletions

View file

@ -74,6 +74,7 @@ SOFTWARE.
#define IMGUI_DEFINE_MATH_OPERATORS #define IMGUI_DEFINE_MATH_OPERATORS
#endif // IMGUI_DEFINE_MATH_OPERATORS #endif // IMGUI_DEFINE_MATH_OPERATORS
#include "imgui_internal.h" #include "imgui_internal.h"
#include <IconsFontAwesome4.h>
#include <cstdlib> #include <cstdlib>
#include <algorithm> #include <algorithm>
@ -119,7 +120,7 @@ namespace IGFD
#endif // IMGUI_BUTTON #endif // IMGUI_BUTTON
// locales // locales
#ifndef createDirButtonString #ifndef createDirButtonString
#define createDirButtonString "+" #define createDirButtonString ICON_FA_PLUS
#endif // createDirButtonString #endif // createDirButtonString
#ifndef okButtonString #ifndef okButtonString
#define okButtonString "OK" #define okButtonString "OK"
@ -128,13 +129,13 @@ namespace IGFD
#define cancelButtonString "Cancel" #define cancelButtonString "Cancel"
#endif // cancelButtonString #endif // cancelButtonString
#ifndef resetButtonString #ifndef resetButtonString
#define resetButtonString "R" #define resetButtonString ICON_FA_REPEAT
#endif // resetButtonString #endif // resetButtonString
#ifndef drivesButtonString #ifndef drivesButtonString
#define drivesButtonString "Drives" #define drivesButtonString "Drives"
#endif // drivesButtonString #endif // drivesButtonString
#ifndef editPathButtonString #ifndef editPathButtonString
#define editPathButtonString "E" #define editPathButtonString ICON_FA_PENCIL
#endif // editPathButtonString #endif // editPathButtonString
#ifndef searchString #ifndef searchString
#define searchString "Search" #define searchString "Search"
@ -149,10 +150,10 @@ namespace IGFD
#define fileEntryString "[File]" #define fileEntryString "[File]"
#endif // fileEntryString #endif // fileEntryString
#ifndef fileNameString #ifndef fileNameString
#define fileNameString "File Name:" #define fileNameString "Name:"
#endif // fileNameString #endif // fileNameString
#ifndef dirNameString #ifndef dirNameString
#define dirNameString "Directory Path:" #define dirNameString "Path:"
#endif // dirNameString #endif // dirNameString
#ifndef buttonResetSearchString #ifndef buttonResetSearchString
#define buttonResetSearchString "Reset search" #define buttonResetSearchString "Reset search"
@ -3321,7 +3322,7 @@ namespace IGFD
//// FILE DIALOG CONSTRUCTOR / DESTRUCTOR /////////////////////////////////////////// //// FILE DIALOG CONSTRUCTOR / DESTRUCTOR ///////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////
IGFD::FileDialog::FileDialog() : BookMarkFeature(), KeyExplorerFeature(), ThumbnailFeature() {DpiScale=1.0f; singleClickSel=false;} IGFD::FileDialog::FileDialog() : BookMarkFeature(), KeyExplorerFeature(), ThumbnailFeature() {DpiScale=1.0f; singleClickSel=false; mobileMode=false;}
IGFD::FileDialog::~FileDialog() = default; IGFD::FileDialog::~FileDialog() = default;
////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////
@ -3938,7 +3939,7 @@ namespace IGFD
vsnprintf(fdi.puVariadicBuffer, MAX_FILE_DIALOG_NAME_BUFFER, vFmt, args); vsnprintf(fdi.puVariadicBuffer, MAX_FILE_DIALOG_NAME_BUFFER, vFmt, args);
va_end(args); va_end(args);
float h = 0.0f; float h = /*mobileMode?(ImGui::GetFontSize()+10.0f*DpiScale):*/0.0f;
#ifdef USE_THUMBNAILS #ifdef USE_THUMBNAILS
if (prDisplayMode == DisplayModeEnum::THUMBNAILS_LIST) if (prDisplayMode == DisplayModeEnum::THUMBNAILS_LIST)
h = DisplayMode_ThumbailsList_ImageHeight; h = DisplayMode_ThumbailsList_ImageHeight;

View file

@ -1143,6 +1143,7 @@ namespace IGFD
bool puAnyWindowsHovered = false; // not remember why haha :) todo : to check if we can remove bool puAnyWindowsHovered = false; // not remember why haha :) todo : to check if we can remove
double DpiScale; double DpiScale;
bool singleClickSel; bool singleClickSel;
bool mobileMode;
public: public:
static FileDialog* Instance() // Singleton for easier accces form anywhere but only one dialog at a time static FileDialog* Instance() // Singleton for easier accces form anywhere but only one dialog at a time

View file

@ -1580,6 +1580,7 @@ enum ImGuiConfigFlags_
// [CUSTOM] Inertial scroll // [CUSTOM] Inertial scroll
ImGuiConfigFlags_InertialScrollEnable = 1 << 7, // Docking enable flags. ImGuiConfigFlags_InertialScrollEnable = 1 << 7, // Docking enable flags.
ImGuiConfigFlags_NoHoverColors = 1 << 8, // Disable all "hovered" color changes (useful for mobile).
// [BETA] Viewports // [BETA] Viewports
// When using viewports it is recommended that your default value for ImGuiCol_WindowBg is opaque (Alpha=1.0) so transition to a viewport won't be noticeable. // When using viewports it is recommended that your default value for ImGuiCol_WindowBg is opaque (Alpha=1.0) so transition to a viewport won't be noticeable.

View file

@ -998,7 +998,7 @@ bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, ImS6
// Render // Render
const ImU32 bg_col = GetColorU32(ImGuiCol_ScrollbarBg); const ImU32 bg_col = GetColorU32(ImGuiCol_ScrollbarBg);
const ImU32 grab_col = GetColorU32(held ? ImGuiCol_ScrollbarGrabActive : hovered ? ImGuiCol_ScrollbarGrabHovered : ImGuiCol_ScrollbarGrab, alpha); const ImU32 grab_col = GetColorU32(held ? ImGuiCol_ScrollbarGrabActive : (hovered && !(g.IO.ConfigFlags&ImGuiConfigFlags_NoHoverColors)) ? ImGuiCol_ScrollbarGrabHovered : ImGuiCol_ScrollbarGrab, alpha);
window->DrawList->AddRectFilled(bb_frame.Min, bb_frame.Max, bg_col, window->WindowRounding, flags); window->DrawList->AddRectFilled(bb_frame.Min, bb_frame.Max, bg_col, window->WindowRounding, flags);
ImRect grab_rect; ImRect grab_rect;
if (axis == ImGuiAxis_X) if (axis == ImGuiAxis_X)
@ -6329,9 +6329,9 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
// Render // Render
if (held && (flags & ImGuiSelectableFlags_DrawHoveredWhenHeld)) if (held && (flags & ImGuiSelectableFlags_DrawHoveredWhenHeld))
hovered = true; hovered = true;
if (hovered || selected) if ((hovered && !(g.IO.ConfigFlags&ImGuiConfigFlags_NoHoverColors)) || selected)
{ {
const ImU32 col = GetColorU32((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); const ImU32 col = GetColorU32((held && hovered) ? ImGuiCol_HeaderActive : (hovered && !(g.IO.ConfigFlags&ImGuiConfigFlags_NoHoverColors)) ? ImGuiCol_HeaderHovered : ImGuiCol_Header);
RenderFrame(bb.Min, bb.Max, col, false, 0.0f); RenderFrame(bb.Min, bb.Max, col, false, 0.0f);
} }
RenderNavHighlight(bb, id, ImGuiNavHighlightFlags_TypeThin | ImGuiNavHighlightFlags_NoRounding); RenderNavHighlight(bb, id, ImGuiNavHighlightFlags_TypeThin | ImGuiNavHighlightFlags_NoRounding);

View file

@ -149,8 +149,9 @@ bool FurnaceGUIFileDialog::openLoad(String header, std::vector<String> filter, c
} }
#endif #endif
ImGuiFileDialog::Instance()->singleClickSel=singleClickSel; ImGuiFileDialog::Instance()->singleClickSel=mobileUI;
ImGuiFileDialog::Instance()->DpiScale=dpiScale; ImGuiFileDialog::Instance()->DpiScale=dpiScale;
ImGuiFileDialog::Instance()->mobileMode=mobileUI;
ImGuiFileDialog::Instance()->OpenModal("FileDialog",header,noSysFilter,path,allowMultiple?999:1,nullptr,0,clickCallback); ImGuiFileDialog::Instance()->OpenModal("FileDialog",header,noSysFilter,path,allowMultiple?999:1,nullptr,0,clickCallback);
} }
opened=true; opened=true;
@ -233,6 +234,7 @@ bool FurnaceGUIFileDialog::openSave(String header, std::vector<String> filter, c
ImGuiFileDialog::Instance()->singleClickSel=false; ImGuiFileDialog::Instance()->singleClickSel=false;
ImGuiFileDialog::Instance()->DpiScale=dpiScale; ImGuiFileDialog::Instance()->DpiScale=dpiScale;
ImGuiFileDialog::Instance()->mobileMode=mobileUI;
ImGuiFileDialog::Instance()->OpenModal("FileDialog",header,noSysFilter,path,1,nullptr,ImGuiFileDialogFlags_ConfirmOverwrite); ImGuiFileDialog::Instance()->OpenModal("FileDialog",header,noSysFilter,path,1,nullptr,ImGuiFileDialogFlags_ConfirmOverwrite);
} }
opened=true; opened=true;

View file

@ -47,7 +47,7 @@ class FurnaceGUIFileDialog {
pfd::save_file* dialogS; pfd::save_file* dialogS;
#endif #endif
public: public:
bool singleClickSel; bool mobileUI;
bool openLoad(String header, std::vector<String> filter, const char* noSysFilter, String path, double dpiScale, FileDialogSelectCallback clickCallback=NULL, bool allowMultiple=false); bool openLoad(String header, std::vector<String> filter, const char* noSysFilter, String path, double dpiScale, FileDialogSelectCallback clickCallback=NULL, bool allowMultiple=false);
bool openSave(String header, std::vector<String> filter, const char* noSysFilter, String path, double dpiScale); bool openSave(String header, std::vector<String> filter, const char* noSysFilter, String path, double dpiScale);
bool accepted(); bool accepted();
@ -67,5 +67,5 @@ class FurnaceGUIFileDialog {
#endif #endif
dialogO(NULL), dialogO(NULL),
dialogS(NULL), dialogS(NULL),
singleClickSel(false) {} mobileUI(false) {}
}; };

View file

@ -2630,12 +2630,14 @@ void FurnaceGUI::toggleMobileUI(bool enable, bool force) {
if (mobileUI) { if (mobileUI) {
ImGui::GetIO().IniFilename=NULL; ImGui::GetIO().IniFilename=NULL;
ImGui::GetIO().ConfigFlags|=ImGuiConfigFlags_InertialScrollEnable; ImGui::GetIO().ConfigFlags|=ImGuiConfigFlags_InertialScrollEnable;
fileDialog->singleClickSel=true; ImGui::GetIO().ConfigFlags|=ImGuiConfigFlags_NoHoverColors;
fileDialog->mobileUI=true;
} else { } else {
ImGui::GetIO().IniFilename=NULL; ImGui::GetIO().IniFilename=NULL;
ImGui::LoadIniSettingsFromDisk(finalLayoutPath); ImGui::LoadIniSettingsFromDisk(finalLayoutPath);
ImGui::GetIO().ConfigFlags&=~ImGuiConfigFlags_InertialScrollEnable; ImGui::GetIO().ConfigFlags&=~ImGuiConfigFlags_InertialScrollEnable;
fileDialog->singleClickSel=false; ImGui::GetIO().ConfigFlags&=~ImGuiConfigFlags_NoHoverColors;
fileDialog->mobileUI=false;
} }
} }
} }
@ -2643,14 +2645,16 @@ void FurnaceGUI::toggleMobileUI(bool enable, bool force) {
void FurnaceGUI::pushToggleColors(bool status) { void FurnaceGUI::pushToggleColors(bool status) {
ImVec4 toggleColor=status?uiColors[GUI_COLOR_TOGGLE_ON]:uiColors[GUI_COLOR_TOGGLE_OFF]; ImVec4 toggleColor=status?uiColors[GUI_COLOR_TOGGLE_ON]:uiColors[GUI_COLOR_TOGGLE_OFF];
ImGui::PushStyleColor(ImGuiCol_Button,toggleColor); ImGui::PushStyleColor(ImGuiCol_Button,toggleColor);
if (settings.guiColorsBase) { if (!mobileUI) {
toggleColor.x*=0.8f; if (settings.guiColorsBase) {
toggleColor.y*=0.8f; toggleColor.x*=0.8f;
toggleColor.z*=0.8f; toggleColor.y*=0.8f;
} else { toggleColor.z*=0.8f;
toggleColor.x=CLAMP(toggleColor.x*1.3f,0.0f,1.0f); } else {
toggleColor.y=CLAMP(toggleColor.y*1.3f,0.0f,1.0f); toggleColor.x=CLAMP(toggleColor.x*1.3f,0.0f,1.0f);
toggleColor.z=CLAMP(toggleColor.z*1.3f,0.0f,1.0f); toggleColor.y=CLAMP(toggleColor.y*1.3f,0.0f,1.0f);
toggleColor.z=CLAMP(toggleColor.z*1.3f,0.0f,1.0f);
}
} }
ImGui::PushStyleColor(ImGuiCol_ButtonHovered,toggleColor); ImGui::PushStyleColor(ImGuiCol_ButtonHovered,toggleColor);
if (settings.guiColorsBase) { if (settings.guiColorsBase) {
@ -3684,6 +3688,7 @@ bool FurnaceGUI::loop() {
if (ImGui::BeginMenu("help")) { if (ImGui::BeginMenu("help")) {
if (ImGui::MenuItem("effect list",BIND_FOR(GUI_ACTION_WINDOW_EFFECT_LIST),effectListOpen)) effectListOpen=!effectListOpen; if (ImGui::MenuItem("effect list",BIND_FOR(GUI_ACTION_WINDOW_EFFECT_LIST),effectListOpen)) effectListOpen=!effectListOpen;
if (ImGui::MenuItem("debug menu",BIND_FOR(GUI_ACTION_WINDOW_DEBUG))) debugOpen=!debugOpen; if (ImGui::MenuItem("debug menu",BIND_FOR(GUI_ACTION_WINDOW_DEBUG))) debugOpen=!debugOpen;
if (ImGui::MenuItem("inspector",BIND_FOR(GUI_ACTION_WINDOW_DEBUG))) inspectorOpen=!inspectorOpen;
if (ImGui::MenuItem("panic",BIND_FOR(GUI_ACTION_PANIC))) e->syncReset(); if (ImGui::MenuItem("panic",BIND_FOR(GUI_ACTION_PANIC))) e->syncReset();
if (ImGui::MenuItem("about...",BIND_FOR(GUI_ACTION_WINDOW_ABOUT))) { if (ImGui::MenuItem("about...",BIND_FOR(GUI_ACTION_WINDOW_ABOUT))) {
aboutOpen=true; aboutOpen=true;

View file

@ -53,7 +53,7 @@
_wi->std.waveMacro.vScroll=-1; \ _wi->std.waveMacro.vScroll=-1; \
} }
#define CHECK_LONG_HOLD (mobileUI && ImGui::GetIO().MouseDown[ImGuiMouseButton_Left] && ImGui::GetIO().MouseDownDuration[ImGuiMouseButton_Left]>=longThreshold && ImGui::GetIO().MouseDownDurationPrev[ImGuiMouseButton_Left]<longThreshold && !ImGui::IsInertialScroll()) #define CHECK_LONG_HOLD (mobileUI && ImGui::GetIO().MouseDown[ImGuiMouseButton_Left] && ImGui::GetIO().MouseDownDuration[ImGuiMouseButton_Left]>=longThreshold && ImGui::GetIO().MouseDownDurationPrev[ImGuiMouseButton_Left]<longThreshold && ImGui::GetIO().MouseDragMaxDistanceSqr[ImGuiMouseButton_Left]<=ImGui::GetIO().ConfigInertialScrollToleranceSqr)
// for now // for now
#define NOTIFY_LONG_HOLD \ #define NOTIFY_LONG_HOLD \
@ -63,6 +63,7 @@
} \ } \
} else { \ } else { \
fputc(7,stderr); /* bell */ \ fputc(7,stderr); /* bell */ \
logI("beep!"); \
} }
#define BIND_FOR(x) getKeyName(actionKeys[x],true).c_str() #define BIND_FOR(x) getKeyName(actionKeys[x],true).c_str()

View file

@ -67,7 +67,7 @@ void FurnaceGUI::drawMobileOrderSel() {
String text=fmt::sprintf("%.2X",i); String text=fmt::sprintf("%.2X",i);
float targetSize=size.y-fabs(i-orderScroll)*2.0*dpiScale; float targetSize=size.y-fabs(i-orderScroll)*2.0*dpiScale;
if (targetSize<8.0*dpiScale) targetSize=8.0*dpiScale; if (targetSize<8.0*dpiScale) targetSize=8.0*dpiScale;
color.w*=MIN(1.0f,targetSize/size.y); color.w*=CLAMP(2.0f*(targetSize/size.y-0.5f),0.0f,1.0f);
ImGui::PushFont(bigFont); ImGui::PushFont(bigFont);
ImVec2 textSize=ImGui::CalcTextSize(text.c_str()); ImVec2 textSize=ImGui::CalcTextSize(text.c_str());

View file

@ -620,7 +620,7 @@ void FurnaceGUI::drawPattern() {
ImGui::ItemSize(size,ImGui::GetStyle().FramePadding.y); ImGui::ItemSize(size,ImGui::GetStyle().FramePadding.y);
if (ImGui::ItemAdd(rect,ImGui::GetID(chanID))) { if (ImGui::ItemAdd(rect,ImGui::GetID(chanID))) {
bool hovered=ImGui::ItemHoverable(rect,ImGui::GetID(chanID)); bool hovered=ImGui::ItemHoverable(rect,ImGui::GetID(chanID));
ImU32 col=hovered?ImGui::GetColorU32(ImGuiCol_HeaderHovered):ImGui::GetColorU32(ImGuiCol_Header); ImU32 col=(hovered || (!mobileUI && ImGui::IsMouseDown(ImGuiMouseButton_Left)))?ImGui::GetColorU32(ImGuiCol_HeaderHovered):ImGui::GetColorU32(ImGuiCol_Header);
dl->AddRectFilled(rect.Min,rect.Max,col); dl->AddRectFilled(rect.Min,rect.Max,col);
dl->AddText(ImVec2(minLabelArea.x,rect.Min.y),ImGui::GetColorU32(channelTextColor(i)),chanID); dl->AddText(ImVec2(minLabelArea.x,rect.Min.y),ImGui::GetColorU32(channelTextColor(i)),chanID);
} }
@ -633,13 +633,13 @@ void FurnaceGUI::drawPattern() {
chanHeadBase.x, chanHeadBase.x,
chanHeadBase.y, chanHeadBase.y,
chanHeadBase.z, chanHeadBase.z,
hovered?0.25f:0.0f (hovered && (!mobileUI || ImGui::IsMouseDown(ImGuiMouseButton_Left)))?0.25f:0.0f
)); ));
ImU32 fadeCol=ImGui::GetColorU32(ImVec4( ImU32 fadeCol=ImGui::GetColorU32(ImVec4(
chanHeadBase.x, chanHeadBase.x,
chanHeadBase.y, chanHeadBase.y,
chanHeadBase.z, chanHeadBase.z,
hovered?0.5f:MIN(1.0f,chanHeadBase.w*keyHit[i]*4.0f) (hovered && (!mobileUI || ImGui::IsMouseDown(ImGuiMouseButton_Left)))?0.5f:MIN(1.0f,chanHeadBase.w*keyHit[i]*4.0f)
)); ));
dl->AddRectFilledMultiColor(rect.Min,rect.Max,fadeCol0,fadeCol0,fadeCol,fadeCol); dl->AddRectFilledMultiColor(rect.Min,rect.Max,fadeCol0,fadeCol0,fadeCol,fadeCol);
dl->AddLine(ImVec2(rect.Min.x,rect.Max.y),ImVec2(rect.Max.x,rect.Max.y),ImGui::GetColorU32(chanHeadBase),2.0f*dpiScale); dl->AddLine(ImVec2(rect.Min.x,rect.Max.y),ImVec2(rect.Max.x,rect.Max.y),ImGui::GetColorU32(chanHeadBase),2.0f*dpiScale);
@ -655,13 +655,13 @@ void FurnaceGUI::drawPattern() {
chanHeadBase.x, chanHeadBase.x,
chanHeadBase.y, chanHeadBase.y,
chanHeadBase.z, chanHeadBase.z,
hovered?0.5f:MIN(1.0f,0.3f+chanHeadBase.w*keyHit[i]*1.5f) (hovered && (!mobileUI || ImGui::IsMouseDown(ImGuiMouseButton_Left)))?0.5f:MIN(1.0f,0.3f+chanHeadBase.w*keyHit[i]*1.5f)
)); ));
ImU32 fadeCol=ImGui::GetColorU32(ImVec4( ImU32 fadeCol=ImGui::GetColorU32(ImVec4(
chanHeadBase.x, chanHeadBase.x,
chanHeadBase.y, chanHeadBase.y,
chanHeadBase.z, chanHeadBase.z,
hovered?0.3f:MIN(1.0f,0.2f+chanHeadBase.w*keyHit[i]*1.2f) (hovered && (!mobileUI || ImGui::IsMouseDown(ImGuiMouseButton_Left)))?0.3f:MIN(1.0f,0.2f+chanHeadBase.w*keyHit[i]*1.2f)
)); ));
ImVec2 rMin=rect.Min; ImVec2 rMin=rect.Min;
ImVec2 rMax=rect.Max; ImVec2 rMax=rect.Max;
@ -691,7 +691,7 @@ void FurnaceGUI::drawPattern() {
chanHeadBase.x, chanHeadBase.x,
chanHeadBase.y, chanHeadBase.y,
chanHeadBase.z, chanHeadBase.z,
hovered?1.0f:MIN(1.0f,0.2f+chanHeadBase.w*keyHit[i]*4.0f) (hovered && (!mobileUI || ImGui::IsMouseDown(ImGuiMouseButton_Left)))?1.0f:MIN(1.0f,0.2f+chanHeadBase.w*keyHit[i]*4.0f)
)); ));
ImVec2 rMin=rect.Min; ImVec2 rMin=rect.Min;
ImVec2 rMax=rect.Max; ImVec2 rMax=rect.Max;
@ -712,7 +712,7 @@ void FurnaceGUI::drawPattern() {
chanHeadBase.x, chanHeadBase.x,
chanHeadBase.y, chanHeadBase.y,
chanHeadBase.z, chanHeadBase.z,
hovered?1.0f:MIN(1.0f,0.2f+chanHeadBase.w*keyHit[i]*4.0f) (hovered && (!mobileUI || ImGui::IsMouseDown(ImGuiMouseButton_Left)))?1.0f:MIN(1.0f,0.2f+chanHeadBase.w*keyHit[i]*4.0f)
)); ));
ImVec2 rMin=rect.Min; ImVec2 rMin=rect.Min;
ImVec2 rMax=rect.Max; ImVec2 rMax=rect.Max;

View file

@ -415,7 +415,7 @@ void FurnaceGUI::drawPiano() {
e->synchronized([this,note]() { e->synchronized([this,note]() {
e->autoNoteOn(-1,curIns,note); e->autoNoteOn(-1,curIns,note);
}); });
if (edit) noteInput(note,0); if (edit && curWindow!=GUI_WINDOW_INS_LIST && curWindow!=GUI_WINDOW_INS_EDIT) noteInput(note,0);
break; break;
} }
} }

View file

@ -3215,7 +3215,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) {
} }
ImVec4 secondaryActive=uiColors[GUI_COLOR_ACCENT_SECONDARY]; ImVec4 secondaryActive=uiColors[GUI_COLOR_ACCENT_SECONDARY];
ImVec4 secondaryHover, secondary, secondarySemiActive; ImVec4 secondaryHoverActual, secondaryHover, secondary, secondarySemiActive;
secondarySemiActive.w=secondaryActive.w; secondarySemiActive.w=secondaryActive.w;
secondaryHover.w=secondaryActive.w; secondaryHover.w=secondaryActive.w;
secondary.w=secondaryActive.w; secondary.w=secondaryActive.w;
@ -3231,6 +3231,8 @@ void FurnaceGUI::applyUISettings(bool updateFonts) {
ImGui::ColorConvertHSVtoRGB(hue,sat*0.9,val*0.25,secondary.x,secondary.y,secondary.z); ImGui::ColorConvertHSVtoRGB(hue,sat*0.9,val*0.25,secondary.x,secondary.y,secondary.z);
} }
secondaryHoverActual=secondaryHover;
if (mobileUI) { // disable all hovered colors if (mobileUI) { // disable all hovered colors
primaryHover=primary; primaryHover=primary;
secondaryHover=secondary; secondaryHover=secondary;
@ -3261,7 +3263,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) {
sty.Colors[ImGuiCol_SliderGrabActive]=primaryActive; sty.Colors[ImGuiCol_SliderGrabActive]=primaryActive;
sty.Colors[ImGuiCol_TitleBgActive]=primary; sty.Colors[ImGuiCol_TitleBgActive]=primary;
sty.Colors[ImGuiCol_CheckMark]=primaryActive; sty.Colors[ImGuiCol_CheckMark]=primaryActive;
sty.Colors[ImGuiCol_TextSelectedBg]=secondaryHover; sty.Colors[ImGuiCol_TextSelectedBg]=secondaryHoverActual;
sty.Colors[ImGuiCol_PlotHistogram]=uiColors[GUI_COLOR_MACRO_OTHER]; sty.Colors[ImGuiCol_PlotHistogram]=uiColors[GUI_COLOR_MACRO_OTHER];
sty.Colors[ImGuiCol_PlotHistogramHovered]=uiColors[GUI_COLOR_MACRO_OTHER]; sty.Colors[ImGuiCol_PlotHistogramHovered]=uiColors[GUI_COLOR_MACRO_OTHER];
sty.Colors[ImGuiCol_Border]=uiColors[GUI_COLOR_BORDER]; sty.Colors[ImGuiCol_Border]=uiColors[GUI_COLOR_BORDER];
@ -3492,5 +3494,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) {
if (updateFonts) { if (updateFonts) {
if (fileDialog!=NULL) delete fileDialog; if (fileDialog!=NULL) delete fileDialog;
fileDialog=new FurnaceGUIFileDialog(settings.sysFileDialog); fileDialog=new FurnaceGUIFileDialog(settings.sysFileDialog);
fileDialog->mobileUI=mobileUI;
} }
} }