2021-02-17 23:21:59 +01:00
# include "style.h"
# include "imgui/imgui.h"
# include "imgui/imgui_internal.h"
//#include <config.h>
//#include <options.h>
# include <spdlog/spdlog.h>
# include <filesystem>
2022-03-05 12:44:19 +01:00
# include "core/module.h"
2022-09-07 18:44:52 +02:00
# include "resources.h"
2021-02-17 23:21:59 +01:00
2021-06-12 21:14:32 +02:00
namespace style
{
ImFont * baseFont ;
ImFont * bigFont ;
ImFont * hugeFont ;
2022-09-07 18:44:52 +02:00
bool setDefaultStyle ( )
2021-06-12 21:14:32 +02:00
{
2022-09-04 20:33:58 +02:00
float round = 2.0f ;
ImGui : : GetStyle ( ) . WindowRounding = round ;
ImGui : : GetStyle ( ) . ChildRounding = round ;
ImGui : : GetStyle ( ) . FrameRounding = round ;
ImGui : : GetStyle ( ) . GrabRounding = round ;
ImGui : : GetStyle ( ) . PopupRounding = round ;
ImGui : : GetStyle ( ) . ScrollbarRounding = round ;
2021-02-17 23:21:59 +01:00
2022-09-07 18:44:52 +02:00
setFonts ( resources : : getResourcePath ( " fonts/Roboto-Medium.tff " ) ) ;
2021-02-17 23:21:59 +01:00
ImGui : : StyleColorsDark ( ) ;
2022-09-08 21:51:50 +02:00
// ImGui::StyleColorsLight();
2021-02-17 23:21:59 +01:00
return true ;
}
2022-09-07 18:44:52 +02:00
bool setLightStyle ( float dpi_scaling )
2021-06-12 21:14:32 +02:00
{
2022-09-04 20:33:58 +02:00
float round = 2.0f ;
ImGui : : GetStyle ( ) . WindowRounding = round ;
ImGui : : GetStyle ( ) . ChildRounding = round ;
ImGui : : GetStyle ( ) . FrameRounding = round ;
ImGui : : GetStyle ( ) . GrabRounding = round ;
ImGui : : GetStyle ( ) . PopupRounding = round ;
ImGui : : GetStyle ( ) . ScrollbarRounding = round ;
2021-06-12 21:14:32 +02:00
2022-09-07 18:44:52 +02:00
setFonts ( resources : : getResourcePath ( " fonts/Roboto-Medium.ttf " ) ) ;
2021-06-12 21:14:32 +02:00
ImGui : : StyleColorsLight ( ) ;
/*auto &style = ImGui::GetStyle();
ImVec4 * colors = style . Colors ;
colors [ ImGuiCol_Text ] = ImVec4 ( 1.00f , 1.00f , 1.00f , 1.00f ) ;
colors [ ImGuiCol_TextDisabled ] = ImVec4 ( 0.50f , 0.50f , 0.50f , 1.00f ) ;
colors [ ImGuiCol_WindowBg ] = ImVec4 ( 0.06f , 0.06f , 0.06f , 0.94f ) ;
colors [ ImGuiCol_ChildBg ] = ImVec4 ( 1.00f , 1.00f , 1.00f , 0.00f ) ;
colors [ ImGuiCol_PopupBg ] = ImVec4 ( 0.08f , 0.08f , 0.08f , 0.94f ) ;
colors [ ImGuiCol_Border ] = ImVec4 ( 0.43f , 0.43f , 0.50f , 0.50f ) ;
colors [ ImGuiCol_BorderShadow ] = ImVec4 ( 0.00f , 0.00f , 0.00f , 0.00f ) ;
colors [ ImGuiCol_FrameBg ] = ImVec4 ( 0.20f , 0.21f , 0.22f , 0.54f ) ;
colors [ ImGuiCol_FrameBgHovered ] = ImVec4 ( 0.20f , 0.21f , 0.22f , 0.54f ) ;
colors [ ImGuiCol_FrameBgActive ] = ImVec4 ( 0.20f , 0.21f , 0.22f , 0.54f ) ;
colors [ ImGuiCol_TitleBg ] = ImVec4 ( 0.04f , 0.04f , 0.04f , 1.00f ) ;
colors [ ImGuiCol_TitleBgActive ] = ImVec4 ( 0.29f , 0.29f , 0.29f , 1.00f ) ;
colors [ ImGuiCol_TitleBgCollapsed ] = ImVec4 ( 0.00f , 0.00f , 0.00f , 0.51f ) ;
colors [ ImGuiCol_MenuBarBg ] = ImVec4 ( 0.14f , 0.14f , 0.14f , 1.00f ) ;
colors [ ImGuiCol_ScrollbarBg ] = ImVec4 ( 0.02f , 0.02f , 0.02f , 0.53f ) ;
colors [ ImGuiCol_ScrollbarGrab ] = ImVec4 ( 0.31f , 0.31f , 0.31f , 1.00f ) ;
colors [ ImGuiCol_ScrollbarGrabHovered ] = ImVec4 ( 0.41f , 0.41f , 0.41f , 1.00f ) ;
colors [ ImGuiCol_ScrollbarGrabActive ] = ImVec4 ( 0.51f , 0.51f , 0.51f , 1.00f ) ;
colors [ ImGuiCol_CheckMark ] = ImVec4 ( 0.24f , 0.52f , 0.88f , 1.00f ) ;
colors [ ImGuiCol_SliderGrab ] = ImVec4 ( 0.24f , 0.52f , 0.88f , 1.00f ) ;
colors [ ImGuiCol_SliderGrabActive ] = ImVec4 ( 0.26f , 0.59f , 0.98f , 1.00f ) ;
colors [ ImGuiCol_Button ] = ImVec4 ( 0.44f , 0.44f , 0.44f , 0.40f ) ;
colors [ ImGuiCol_ButtonHovered ] = ImVec4 ( 0.44f , 0.44f , 0.44f , 0.45f ) ;
colors [ ImGuiCol_ButtonActive ] = ImVec4 ( 0.44f , 0.44f , 0.44f , 0.40f ) ;
colors [ ImGuiCol_Header ] = ImVec4 ( 0.63f , 0.63f , 0.70f , 0.31f ) ;
colors [ ImGuiCol_HeaderHovered ] = ImVec4 ( 0.63f , 0.63f , 0.70f , 0.40f ) ;
colors [ ImGuiCol_HeaderActive ] = ImVec4 ( 0.63f , 0.63f , 0.70f , 0.31f ) ;
colors [ ImGuiCol_Separator ] = ImVec4 ( 0.43f , 0.43f , 0.50f , 0.50f ) ;
colors [ ImGuiCol_SeparatorHovered ] = ImVec4 ( 0.72f , 0.72f , 0.72f , 0.78f ) ;
colors [ ImGuiCol_SeparatorActive ] = ImVec4 ( 0.51f , 0.51f , 0.51f , 1.00f ) ;
colors [ ImGuiCol_ResizeGrip ] = ImVec4 ( 0.91f , 0.91f , 0.91f , 0.25f ) ;
colors [ ImGuiCol_ResizeGripHovered ] = ImVec4 ( 0.81f , 0.81f , 0.81f , 0.67f ) ;
colors [ ImGuiCol_ResizeGripActive ] = ImVec4 ( 0.46f , 0.46f , 0.46f , 0.95f ) ;
colors [ ImGuiCol_PlotLines ] = ImVec4 ( 0.4f , 0.9f , 1.0f , 1.00f ) ;
colors [ ImGuiCol_PlotLinesHovered ] = ImVec4 ( 1.00f , 0.43f , 0.35f , 1.00f ) ;
colors [ ImGuiCol_PlotHistogram ] = ImVec4 ( 0.73f , 0.60f , 0.15f , 1.00f ) ;
colors [ ImGuiCol_PlotHistogramHovered ] = ImVec4 ( 1.00f , 0.60f , 0.00f , 1.00f ) ;
colors [ ImGuiCol_TextSelectedBg ] = ImVec4 ( 0.87f , 0.87f , 0.87f , 0.35f ) ;
colors [ ImGuiCol_ModalWindowDimBg ] = ImVec4 ( 0.80f , 0.80f , 0.80f , 0.35f ) ;
colors [ ImGuiCol_DragDropTarget ] = ImVec4 ( 1.00f , 1.00f , 0.00f , 0.90f ) ;
colors [ ImGuiCol_NavHighlight ] = ImVec4 ( 0.60f , 0.60f , 0.60f , 1.00f ) ;
colors [ ImGuiCol_NavWindowingHighlight ] = ImVec4 ( 1.00f , 1.00f , 1.00f , 0.70f ) ; */
2021-06-16 13:30:22 +02:00
ImGui : : GetStyle ( ) . ScaleAllSizes ( dpi_scaling ) ;
ui_scale = dpi_scaling ;
2021-06-12 21:14:32 +02:00
return true ;
}
2022-09-07 18:44:52 +02:00
bool setDarkStyle ( float dpi_scaling )
2021-06-12 21:14:32 +02:00
{
2022-09-04 20:33:58 +02:00
float round = 2.0f ;
ImGui : : GetStyle ( ) . WindowRounding = round ;
ImGui : : GetStyle ( ) . ChildRounding = round ;
ImGui : : GetStyle ( ) . FrameRounding = round ;
ImGui : : GetStyle ( ) . GrabRounding = round ;
ImGui : : GetStyle ( ) . PopupRounding = round ;
ImGui : : GetStyle ( ) . ScrollbarRounding = round ;
2021-02-17 23:21:59 +01:00
2022-09-07 18:44:52 +02:00
setFonts ( resources : : getResourcePath ( " fonts/Roboto-Medium.ttf " ) ) ;
2021-02-17 23:21:59 +01:00
ImGui : : StyleColorsDark ( ) ;
2021-06-12 21:14:32 +02:00
auto & style = ImGui : : GetStyle ( ) ;
ImVec4 * colors = style . Colors ;
colors [ ImGuiCol_Text ] = ImVec4 ( 1.00f , 1.00f , 1.00f , 1.00f ) ;
colors [ ImGuiCol_TextDisabled ] = ImVec4 ( 0.50f , 0.50f , 0.50f , 1.00f ) ;
colors [ ImGuiCol_WindowBg ] = ImVec4 ( 0.06f , 0.06f , 0.06f , 0.94f ) ;
colors [ ImGuiCol_ChildBg ] = ImVec4 ( 1.00f , 1.00f , 1.00f , 0.00f ) ;
colors [ ImGuiCol_PopupBg ] = ImVec4 ( 0.08f , 0.08f , 0.08f , 0.94f ) ;
colors [ ImGuiCol_Border ] = ImVec4 ( 0.43f , 0.43f , 0.50f , 0.50f ) ;
colors [ ImGuiCol_BorderShadow ] = ImVec4 ( 0.00f , 0.00f , 0.00f , 0.00f ) ;
colors [ ImGuiCol_FrameBg ] = ImVec4 ( 0.20f , 0.21f , 0.22f , 0.54f ) ;
colors [ ImGuiCol_FrameBgHovered ] = ImVec4 ( 0.20f , 0.21f , 0.22f , 0.54f ) ;
colors [ ImGuiCol_FrameBgActive ] = ImVec4 ( 0.20f , 0.21f , 0.22f , 0.54f ) ;
colors [ ImGuiCol_TitleBg ] = ImVec4 ( 0.04f , 0.04f , 0.04f , 1.00f ) ;
colors [ ImGuiCol_TitleBgActive ] = ImVec4 ( 0.29f , 0.29f , 0.29f , 1.00f ) ;
colors [ ImGuiCol_TitleBgCollapsed ] = ImVec4 ( 0.00f , 0.00f , 0.00f , 0.51f ) ;
colors [ ImGuiCol_MenuBarBg ] = ImVec4 ( 0.14f , 0.14f , 0.14f , 1.00f ) ;
colors [ ImGuiCol_ScrollbarBg ] = ImVec4 ( 0.02f , 0.02f , 0.02f , 0.53f ) ;
colors [ ImGuiCol_ScrollbarGrab ] = ImVec4 ( 0.31f , 0.31f , 0.31f , 1.00f ) ;
colors [ ImGuiCol_ScrollbarGrabHovered ] = ImVec4 ( 0.41f , 0.41f , 0.41f , 1.00f ) ;
colors [ ImGuiCol_ScrollbarGrabActive ] = ImVec4 ( 0.51f , 0.51f , 0.51f , 1.00f ) ;
colors [ ImGuiCol_CheckMark ] = ImVec4 ( 0.24f , 0.52f , 0.88f , 1.00f ) ;
colors [ ImGuiCol_SliderGrab ] = ImVec4 ( 0.24f , 0.52f , 0.88f , 1.00f ) ;
colors [ ImGuiCol_SliderGrabActive ] = ImVec4 ( 0.26f , 0.59f , 0.98f , 1.00f ) ;
colors [ ImGuiCol_Button ] = ImVec4 ( 0.44f , 0.44f , 0.44f , 0.40f ) ;
colors [ ImGuiCol_ButtonHovered ] = ImVec4 ( 0.44f , 0.44f , 0.44f , 0.45f ) ;
colors [ ImGuiCol_ButtonActive ] = ImVec4 ( 0.44f , 0.44f , 0.44f , 0.40f ) ;
colors [ ImGuiCol_Header ] = ImVec4 ( 0.63f , 0.63f , 0.70f , 0.31f ) ;
colors [ ImGuiCol_HeaderHovered ] = ImVec4 ( 0.63f , 0.63f , 0.70f , 0.40f ) ;
colors [ ImGuiCol_HeaderActive ] = ImVec4 ( 0.63f , 0.63f , 0.70f , 0.31f ) ;
colors [ ImGuiCol_Separator ] = ImVec4 ( 0.43f , 0.43f , 0.50f , 0.50f ) ;
colors [ ImGuiCol_SeparatorHovered ] = ImVec4 ( 0.72f , 0.72f , 0.72f , 0.78f ) ;
colors [ ImGuiCol_SeparatorActive ] = ImVec4 ( 0.51f , 0.51f , 0.51f , 1.00f ) ;
colors [ ImGuiCol_ResizeGrip ] = ImVec4 ( 0.91f , 0.91f , 0.91f , 0.25f ) ;
colors [ ImGuiCol_ResizeGripHovered ] = ImVec4 ( 0.81f , 0.81f , 0.81f , 0.67f ) ;
colors [ ImGuiCol_ResizeGripActive ] = ImVec4 ( 0.46f , 0.46f , 0.46f , 0.95f ) ;
colors [ ImGuiCol_PlotLines ] = ImVec4 ( 0.4f , 0.9f , 1.0f , 1.00f ) ;
colors [ ImGuiCol_PlotLinesHovered ] = ImVec4 ( 1.00f , 0.43f , 0.35f , 1.00f ) ;
colors [ ImGuiCol_PlotHistogram ] = ImVec4 ( 0.73f , 0.60f , 0.15f , 1.00f ) ;
colors [ ImGuiCol_PlotHistogramHovered ] = ImVec4 ( 1.00f , 0.60f , 0.00f , 1.00f ) ;
colors [ ImGuiCol_TextSelectedBg ] = ImVec4 ( 0.87f , 0.87f , 0.87f , 0.35f ) ;
colors [ ImGuiCol_ModalWindowDimBg ] = ImVec4 ( 0.80f , 0.80f , 0.80f , 0.35f ) ;
colors [ ImGuiCol_DragDropTarget ] = ImVec4 ( 1.00f , 1.00f , 0.00f , 0.90f ) ;
colors [ ImGuiCol_NavHighlight ] = ImVec4 ( 0.60f , 0.60f , 0.60f , 1.00f ) ;
colors [ ImGuiCol_NavWindowingHighlight ] = ImVec4 ( 1.00f , 1.00f , 1.00f , 0.70f ) ;
2021-02-17 23:21:59 +01:00
2021-06-16 13:30:22 +02:00
ImGui : : GetStyle ( ) . ScaleAllSizes ( dpi_scaling ) ;
ui_scale = dpi_scaling ;
2021-02-17 23:21:59 +01:00
return true ;
}
2021-06-12 21:14:32 +02:00
void beginDisabled ( )
{
2021-02-17 23:21:59 +01:00
ImGui : : PushItemFlag ( ImGuiItemFlags_Disabled , true ) ;
ImGui : : PushStyleColor ( ImGuiCol_Button , ImVec4 ( 0.44f , 0.44f , 0.44f , 0.15f ) ) ;
ImGui : : PushStyleColor ( ImGuiCol_FrameBg , ImVec4 ( 0.20f , 0.21f , 0.22f , 0.30f ) ) ;
ImGui : : PushStyleColor ( ImGuiCol_Text , ImVec4 ( 1.00f , 1.00f , 1.00f , 0.65f ) ) ;
}
2021-06-12 21:14:32 +02:00
void endDisabled ( )
{
2021-02-17 23:21:59 +01:00
ImGui : : PopItemFlag ( ) ;
ImGui : : PopStyleColor ( 3 ) ;
}
2022-09-07 18:44:52 +02:00
2022-09-08 21:51:50 +02:00
void setFonts ( std : : string fontName )
{
static const ImWchar icons_ranges [ ] = { 0xe000 , 0xfd46 , 0 } ;
2022-09-07 18:44:52 +02:00
ImFontConfig config ;
config . MergeMode = true ;
2022-09-08 21:51:50 +02:00
baseFont = ImGui : : GetIO ( ) . Fonts - > AddFontFromFileTTF ( fontName . c_str ( ) , 16.0f * ui_scale ) ;
baseFont = ImGui : : GetIO ( ) . Fonts - > AddFontFromFileTTF ( resources : : getResourcePath ( " fonts/3270-Medium Nerd Font Complete.ttf " ) . c_str ( ) , 16.0f * ui_scale , & config , icons_ranges ) ;
bigFont = ImGui : : GetIO ( ) . Fonts - > AddFontFromFileTTF ( fontName . c_str ( ) , 45.0f * ui_scale ) ;
// bigFont = ImGui::GetIO().Fonts->AddFontFromFileTTF(resources::getResourcePath("fonts/3270-Medium Nerd Font Complete.ttf").c_str(), 45.0f, &config, icons_ranges);
hugeFont = ImGui : : GetIO ( ) . Fonts - > AddFontFromFileTTF ( fontName . c_str ( ) , 128.0f * ui_scale ) ;
// hugeFont = ImGui::GetIO().Fonts->AddFontFromFileTTF(resources::getResourcePath("fonts/3270-Medium Nerd Font Complete.ttf").c_str(), 128.0f, &config, icons_ranges);
2022-09-07 18:44:52 +02:00
}
2021-02-17 23:21:59 +01:00
}