Ejemplo n.º 1
0
        private void OnInlayRemoved(object sender, InlayConfiguration config)
        {
            var inlay = inlays[config.Guid];

            inlays.Remove(config.Guid);
            inlay.Dispose();
        }
Ejemplo n.º 2
0
        private bool RenderInlaySettings(InlayConfiguration inlayConfig)
        {
            var dirty = false;

            ImGui.PushID(inlayConfig.Guid.ToString());

            dirty |= ImGui.InputText("Name", ref inlayConfig.Name, 100);

            dirty |= ImGui.InputText("URL", ref inlayConfig.Url, 1000);
            if (ImGui.IsItemDeactivatedAfterEdit())
            {
                NavigateInlay(inlayConfig);
            }

            var true_ = true;

            if (inlayConfig.ClickThrough)
            {
                ImGui.PushStyleVar(ImGuiStyleVar.Alpha, 0.5f);
            }
            dirty |= ImGui.Checkbox("Locked", ref inlayConfig.ClickThrough ? ref true_ : ref inlayConfig.Locked);
            if (inlayConfig.ClickThrough)
            {
                ImGui.PopStyleVar();
            }
            if (ImGui.IsItemHovered())
            {
                ImGui.SetTooltip("Prevent the inlay from being resized or moved. This is implicitly set by Click Through.");
            }

            ImGui.SameLine();
            dirty |= ImGui.Checkbox("Click Through", ref inlayConfig.ClickThrough);
            if (ImGui.IsItemHovered())
            {
                ImGui.SetTooltip("Prevent the inlay from intecepting any mouse events.");
            }

            ImGui.SameLine();
            dirty |= ImGui.Checkbox("Visible", ref inlayConfig.Visible);
            if (ImGui.IsItemHovered())
            {
                ImGui.SetTooltip("Show the inlay.");
            }

            if (ImGui.Button("Reload"))
            {
                ReloadInlay(inlayConfig);
            }

            ImGui.SameLine();
            if (ImGui.Button("Open Dev Tools"))
            {
                DebugInlay(inlayConfig);
            }

            ImGui.PopID();

            return(dirty);
        }
Ejemplo n.º 3
0
 private void NavigateInlay(InlayConfiguration inlayConfig)
 {
     if (inlayConfig.Url == "")
     {
         inlayConfig.Url = "about:blank";
     }
     InlayNavigated?.Invoke(this, inlayConfig);
 }
Ejemplo n.º 4
0
        private InlayConfiguration AddNewInlay()
        {
            var inlayConfig = new InlayConfiguration()
            {
                Guid = Guid.NewGuid(),
                Name = "New inlay",
                Url  = "about:blank",
            };

            Config.Inlays.Add(inlayConfig);
            InlayAdded?.Invoke(this, inlayConfig);
            SaveSettings();

            return(inlayConfig);
        }
Ejemplo n.º 5
0
        private void OnInlayDebugged(object sender, InlayConfiguration config)
        {
            var inlay = inlays[config.Guid];

            inlay.Debug();
        }
Ejemplo n.º 6
0
        private void OnInlayNavigated(object sender, InlayConfiguration config)
        {
            var inlay = inlays[config.Guid];

            inlay.Navigate(config.Url);
        }
Ejemplo n.º 7
0
        private void OnInlayAdded(object sender, InlayConfiguration inlayConfig)
        {
            var inlay = new Inlay(renderProcess, settings.Config, inlayConfig);

            inlays.Add(inlayConfig.Guid, inlay);
        }
Ejemplo n.º 8
0
        private void RenderPaneSelector()
        {
            // Selector pane
            ImGui.BeginGroup();
            ImGui.PushStyleVar(ImGuiStyleVar.ItemSpacing, new Vector2(0, 0));

            var selectorWidth = 100;

            ImGui.BeginChild("panes", new Vector2(selectorWidth, -ImGui.GetFrameHeightWithSpacing()), true);

            // General settings
            if (ImGui.Selectable($"General", selectedInlay == null))
            {
                selectedInlay = null;
            }

            // Inlay selector list
            ImGui.Dummy(new Vector2(0, 5));
            ImGui.PushStyleVar(ImGuiStyleVar.Alpha, 0.5f);
            ImGui.Text("- Inlays -");
            ImGui.PopStyleVar();
            foreach (var inlayConfig in Config.Inlays)
            {
                if (ImGui.Selectable($"{inlayConfig.Name}##{inlayConfig.Guid}", selectedInlay == inlayConfig))
                {
                    selectedInlay = inlayConfig;
                }
            }
            ImGui.EndChild();

            // Selector controls
            ImGui.PushStyleVar(ImGuiStyleVar.FrameRounding, 0);
            ImGui.PushFont(UiBuilder.IconFont);

            var buttonWidth = selectorWidth / 2;

            if (ImGui.Button(FontAwesomeIcon.Plus.ToIconString(), new Vector2(buttonWidth, 0)))
            {
                selectedInlay = AddNewInlay();
            }

            ImGui.SameLine();
            if (selectedInlay != null)
            {
                if (ImGui.Button(FontAwesomeIcon.Trash.ToIconString(), new Vector2(buttonWidth, 0)))
                {
                    var toRemove = selectedInlay;
                    selectedInlay = null;
                    RemoveInlay(toRemove);
                }
            }
            else
            {
                ImGui.PushStyleVar(ImGuiStyleVar.Alpha, 0.5f);
                ImGui.Button(FontAwesomeIcon.Trash.ToIconString(), new Vector2(buttonWidth, 0));
                ImGui.PopStyleVar();
            }

            ImGui.PopFont();
            ImGui.PopStyleVar(2);

            ImGui.EndGroup();
        }
Ejemplo n.º 9
0
 private void RemoveInlay(InlayConfiguration inlayConfig)
 {
     InlayRemoved?.Invoke(this, inlayConfig);
     Config.Inlays.Remove(inlayConfig);
     SaveSettings();
 }
Ejemplo n.º 10
0
 private void DebugInlay(InlayConfiguration inlayConfig)
 {
     InlayDebugged?.Invoke(this, inlayConfig);
 }
Ejemplo n.º 11
0
 private void ReloadInlay(InlayConfiguration inlayConfig)
 {
     NavigateInlay(inlayConfig);
 }
Ejemplo n.º 12
0
 public Inlay(RenderProcess renderProcess, Configuration config, InlayConfiguration inlayConfig)
 {
     this.renderProcess = renderProcess;
     this.config        = config;
     this.inlayConfig   = inlayConfig;
 }