private void OnInlayRemoved(object sender, InlayConfiguration config) { var inlay = inlays[config.Guid]; inlays.Remove(config.Guid); inlay.Dispose(); }
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); }
private void NavigateInlay(InlayConfiguration inlayConfig) { if (inlayConfig.Url == "") { inlayConfig.Url = "about:blank"; } InlayNavigated?.Invoke(this, inlayConfig); }
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); }
private void OnInlayDebugged(object sender, InlayConfiguration config) { var inlay = inlays[config.Guid]; inlay.Debug(); }
private void OnInlayNavigated(object sender, InlayConfiguration config) { var inlay = inlays[config.Guid]; inlay.Navigate(config.Url); }
private void OnInlayAdded(object sender, InlayConfiguration inlayConfig) { var inlay = new Inlay(renderProcess, settings.Config, inlayConfig); inlays.Add(inlayConfig.Guid, inlay); }
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(); }
private void RemoveInlay(InlayConfiguration inlayConfig) { InlayRemoved?.Invoke(this, inlayConfig); Config.Inlays.Remove(inlayConfig); SaveSettings(); }
private void DebugInlay(InlayConfiguration inlayConfig) { InlayDebugged?.Invoke(this, inlayConfig); }
private void ReloadInlay(InlayConfiguration inlayConfig) { NavigateInlay(inlayConfig); }
public Inlay(RenderProcess renderProcess, Configuration config, InlayConfiguration inlayConfig) { this.renderProcess = renderProcess; this.config = config; this.inlayConfig = inlayConfig; }