Exemplo n.º 1
0
        internal static void SetupImGuiStyle(ImGuiTheme theme, float alpha)
        {
            Style style = ImGui.GetStyle();

            // light style from Pacôme Danhiez (user itamago) https://github.com/ocornut/imgui/pull/511#issuecomment-175719267
            style.Alpha         = 1.0f;
            style.FrameRounding = 3.0f;
            style.SetColor(ColorTarget.Text, ThemeColor(new Color(0.00f, 0.00f, 0.00f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.TextDisabled, ThemeColor(new Color(0.60f, 0.60f, 0.60f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.WindowBg, ThemeColor(new Color(0.94f, 0.94f, 0.94f, 0.94f), theme, alpha));
            style.SetColor(ColorTarget.ChildBg, ThemeColor(new Color(0.00f, 0.00f, 0.00f, 0.00f), theme, alpha));
            style.SetColor(ColorTarget.PopupBg, ThemeColor(new Color(1.00f, 1.00f, 1.00f, 0.94f), theme, alpha));
            style.SetColor(ColorTarget.Border, ThemeColor(new Color(0.00f, 0.00f, 0.00f, 0.39f), theme, alpha));
            style.SetColor(ColorTarget.BorderShadow, ThemeColor(new Color(1.00f, 1.00f, 1.00f, 0.10f), theme, alpha));
            style.SetColor(ColorTarget.FrameBg, ThemeColor(new Color(1.00f, 1.00f, 1.00f, 0.94f), theme, alpha));
            style.SetColor(ColorTarget.FrameBgHovered, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 0.40f), theme, alpha));
            style.SetColor(ColorTarget.FrameBgActive, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 0.67f), theme, alpha));
            style.SetColor(ColorTarget.TitleBg, ThemeColor(new Color(0.96f, 0.96f, 0.96f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.TitleBgCollapsed, ThemeColor(new Color(1.00f, 1.00f, 1.00f, 0.51f), theme, alpha));
            style.SetColor(ColorTarget.TitleBgActive, ThemeColor(new Color(0.82f, 0.82f, 0.82f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.MenuBarBg, ThemeColor(new Color(0.86f, 0.86f, 0.86f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.ScrollbarBg, ThemeColor(new Color(0.98f, 0.98f, 0.98f, 0.53f), theme, alpha));
            style.SetColor(ColorTarget.ScrollbarGrab, ThemeColor(new Color(0.69f, 0.69f, 0.69f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.ScrollbarGrabHovered, ThemeColor(new Color(0.59f, 0.59f, 0.59f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.ScrollbarGrabActive, ThemeColor(new Color(0.49f, 0.49f, 0.49f, 1.00f), theme, alpha));
            //style.SetColor(ColorTarget.Combo,  ThemeColor(new Color(0.86f, 0.86f, 0.86f, 0.99f), theme, alpha));
            style.SetColor(ColorTarget.CheckMark, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.SliderGrab, ThemeColor(new Color(0.24f, 0.52f, 0.88f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.SliderGrabActive, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.Button, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 0.40f), theme, alpha));
            style.SetColor(ColorTarget.ButtonHovered, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.ButtonActive, ThemeColor(new Color(0.06f, 0.53f, 0.98f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.Header, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 0.31f), theme, alpha));
            style.SetColor(ColorTarget.HeaderHovered, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 0.80f), theme, alpha));
            style.SetColor(ColorTarget.HeaderActive, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.Separator, ThemeColor(new Color(0.39f, 0.39f, 0.39f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.SeparatorHovered, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 0.78f), theme, alpha));
            style.SetColor(ColorTarget.SeparatorActive, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.ResizeGrip, ThemeColor(new Color(1.00f, 1.00f, 1.00f, 0.50f), theme, alpha));
            style.SetColor(ColorTarget.ResizeGripHovered, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 0.67f), theme, alpha));
            style.SetColor(ColorTarget.ResizeGripActive, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 0.95f), theme, alpha));
            style.SetColor(ColorTarget.CloseButton, ThemeColor(new Color(0.59f, 0.59f, 0.59f, 0.50f), theme, alpha));
            style.SetColor(ColorTarget.CloseButtonHovered, ThemeColor(new Color(0.98f, 0.39f, 0.36f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.CloseButtonActive, ThemeColor(new Color(0.98f, 0.39f, 0.36f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.PlotLines, ThemeColor(new Color(0.39f, 0.39f, 0.39f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.PlotLinesHovered, ThemeColor(new Color(1.00f, 0.43f, 0.35f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.PlotHistogram, ThemeColor(new Color(0.90f, 0.70f, 0.00f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.PlotHistogramHovered, ThemeColor(new Color(1.00f, 0.60f, 0.00f, 1.00f), theme, alpha));
            style.SetColor(ColorTarget.TextSelectedBg, ThemeColor(new Color(0.26f, 0.59f, 0.98f, 0.35f), theme, alpha));
            style.SetColor(ColorTarget.ModalWindowDarkening, ThemeColor(new Color(0.20f, 0.20f, 0.20f, 0.35f), theme, alpha));
        }
Exemplo n.º 2
0
        private static Color ThemeColor(Color color, ImGuiTheme theme, float alpha)
        {
            switch (theme)
            {
            case ImGuiTheme.Dark:
            {
                ImGui.ColorConvertRGBToHSV(color.R, color.G, color.B, out var h, out var s, out var v);

                if (s < 0.1f)
                {
                    v = 1.0f - v;
                }

                ImGui.ColorConvertHSVToRGB(h, s, v, out var r, out var g, out var b);
                color = new Color(r, g, b, color.A);

                if (color.A < 1.00f)
                {
                    color.A *= alpha;
                }
                break;
            }

            case ImGuiTheme.Light:
            {
                if (color.A < 1.00f)
                {
                    color.R *= alpha;
                    color.G *= alpha;
                    color.B *= alpha;
                    color.A *= alpha;
                }
                break;
            }

            default:
                throw new NotImplementedException();
            }

            return(color);
        }