mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-15 21:24:16 +01:00
Merge pull request #170 from karashiiro/work
This commit is contained in:
commit
dd55d5cf3e
4 changed files with 45 additions and 13 deletions
|
|
@ -32,6 +32,8 @@ namespace Dalamud
|
||||||
|
|
||||||
public float GlobalUiScale { get; set; } = 1.0f;
|
public float GlobalUiScale { get; set; } = 1.0f;
|
||||||
public bool ToggleUiHide { get; set; } = true;
|
public bool ToggleUiHide { get; set; } = true;
|
||||||
|
public bool ToggleUiHideDuringCutscenes { get; set; } = true;
|
||||||
|
public bool ToggleUiHideDuringGpose { get; set; } = true;
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public string ConfigPath;
|
public string ConfigPath;
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,8 @@ namespace Dalamud.Interface
|
||||||
|
|
||||||
this.globalUiScale = this.dalamud.Configuration.GlobalUiScale;
|
this.globalUiScale = this.dalamud.Configuration.GlobalUiScale;
|
||||||
this.doToggleUiHide = this.dalamud.Configuration.ToggleUiHide;
|
this.doToggleUiHide = this.dalamud.Configuration.ToggleUiHide;
|
||||||
|
this.doToggleUiHideDuringCutscenes = this.dalamud.Configuration.ToggleUiHideDuringCutscenes;
|
||||||
|
this.doToggleUiHideDuringGpose = this.dalamud.Configuration.ToggleUiHideDuringGpose;
|
||||||
|
|
||||||
this.doPluginTest = this.dalamud.Configuration.DoPluginTest;
|
this.doPluginTest = this.dalamud.Configuration.DoPluginTest;
|
||||||
this.doDalamudTest = this.dalamud.Configuration.DoDalamudTest;
|
this.doDalamudTest = this.dalamud.Configuration.DoDalamudTest;
|
||||||
|
|
@ -45,6 +47,8 @@ namespace Dalamud.Interface
|
||||||
private const float MaxScale = 2.0f;
|
private const float MaxScale = 2.0f;
|
||||||
private float globalUiScale;
|
private float globalUiScale;
|
||||||
private bool doToggleUiHide;
|
private bool doToggleUiHide;
|
||||||
|
private bool doToggleUiHideDuringCutscenes;
|
||||||
|
private bool doToggleUiHideDuringGpose;
|
||||||
|
|
||||||
#region Experimental
|
#region Experimental
|
||||||
|
|
||||||
|
|
@ -97,10 +101,18 @@ namespace Dalamud.Interface
|
||||||
|
|
||||||
ImGui.TextColored(this.hintTextColor, Loc.Localize("DalamudSettingsGlobalUiScaleHint", "Scale all XIVLauncher UI elements - useful for 4K displays."));
|
ImGui.TextColored(this.hintTextColor, Loc.Localize("DalamudSettingsGlobalUiScaleHint", "Scale all XIVLauncher UI elements - useful for 4K displays."));
|
||||||
|
|
||||||
ImGui.Dummy(new Vector2(10f, 10f));
|
ImGui.Dummy(new Vector2(10f, 16f));
|
||||||
|
|
||||||
ImGui.Checkbox(Loc.Localize("DalamudSettingToggleUiHide", "Hide plugin UI when the game UI is hidden and during cutscenes and gpose"), ref this.doToggleUiHide);
|
ImGui.TextColored(this.hintTextColor, Loc.Localize("DalamudSettingToggleUiHideOptOutNote", "Plugins may independently opt out of the settings below."));
|
||||||
ImGui.TextColored(this.hintTextColor, Loc.Localize("DalamudSettingToggleUiHideHint", "Check this box to hide any open windows by plugins when toggling the game overlay, or upon entering gpose or a cutscene."));
|
|
||||||
|
ImGui.Checkbox(Loc.Localize("DalamudSettingToggleUiHide", "Hide plugin UI when the game UI is toggled off."), ref this.doToggleUiHide);
|
||||||
|
ImGui.TextColored(this.hintTextColor, Loc.Localize("DalamudSettingToggleUiHideHint", "Check this box to hide any open windows by plugins when toggling the game overlay."));
|
||||||
|
|
||||||
|
ImGui.Checkbox(Loc.Localize("DalamudSettingToggleUiHideDuringCutscenes", "Hide plugin UI during cutscenes."), ref this.doToggleUiHideDuringCutscenes);
|
||||||
|
ImGui.TextColored(this.hintTextColor, Loc.Localize("DalamudSettingToggleUiHideDuringCutscenesHint", "Check this box to hide any open windows by plugins during cutscenes."));
|
||||||
|
|
||||||
|
ImGui.Checkbox(Loc.Localize("DalamudSettingToggleUiHideDuringGpose", "Hide plugin UI while gpose is active."), ref this.doToggleUiHideDuringGpose);
|
||||||
|
ImGui.TextColored(this.hintTextColor, Loc.Localize("DalamudSettingToggleUiHideDuringGposeHint", "Check this box to hide any open windows by plugins while gpose is active."));
|
||||||
|
|
||||||
ImGui.EndTabItem();
|
ImGui.EndTabItem();
|
||||||
}
|
}
|
||||||
|
|
@ -150,6 +162,8 @@ namespace Dalamud.Interface
|
||||||
|
|
||||||
this.dalamud.Configuration.GlobalUiScale = this.globalUiScale;
|
this.dalamud.Configuration.GlobalUiScale = this.globalUiScale;
|
||||||
this.dalamud.Configuration.ToggleUiHide = this.doToggleUiHide;
|
this.dalamud.Configuration.ToggleUiHide = this.doToggleUiHide;
|
||||||
|
this.dalamud.Configuration.ToggleUiHideDuringCutscenes = this.doToggleUiHideDuringCutscenes;
|
||||||
|
this.dalamud.Configuration.ToggleUiHideDuringGpose = this.doToggleUiHideDuringGpose;
|
||||||
|
|
||||||
this.dalamud.Configuration.DoPluginTest = this.doPluginTest;
|
this.dalamud.Configuration.DoPluginTest = this.doPluginTest;
|
||||||
this.dalamud.Configuration.DoDalamudTest = this.doDalamudTest;
|
this.dalamud.Configuration.DoDalamudTest = this.doDalamudTest;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,9 @@
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
|
||||||
using CheapLoc;
|
|
||||||
using Dalamud.Game;
|
using Dalamud.Game;
|
||||||
using Dalamud.Game.Internal.DXGI;
|
using Dalamud.Game.Internal.DXGI;
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
|
|
|
||||||
|
|
@ -35,14 +35,32 @@ namespace Dalamud.Interface
|
||||||
public event RawDX11Scene.BuildUIDelegate OnBuildUi;
|
public event RawDX11Scene.BuildUIDelegate OnBuildUi;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Choose if this plugin should hide its UI automatically when the whole game hides its UI.
|
/// Choose if this plugin should hide its UI automatically when the game's UI is hidden.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool DisableAutomaticUiHide { get; set; } = false;
|
public bool DisableAutomaticUiHide { get; set; } = false;
|
||||||
|
|
||||||
private bool CutsceneOrGposeActive => this.dalamud.ClientState != null && this.dalamud.ClientState.Condition[ConditionFlag.OccupiedInCutSceneEvent] ||
|
/// <summary>
|
||||||
this.dalamud.ClientState.Condition[ConditionFlag.WatchingCutscene] ||
|
/// Choose if this plugin should hide its UI automatically when the user toggles the UI.
|
||||||
|
/// </summary>
|
||||||
|
public bool DisableUserUiHide { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Choose if this plugin should hide its UI automatically during cutscenes.
|
||||||
|
/// </summary>
|
||||||
|
public bool DisableCutsceneUiHide { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Choose if this plugin should hide its UI automatically while gpose is active.
|
||||||
|
/// </summary>
|
||||||
|
public bool DisableGposeUiHide { get; set; } = false;
|
||||||
|
|
||||||
|
private bool CutsceneActive => this.dalamud.ClientState != null &&
|
||||||
|
this.dalamud.ClientState.Condition[ConditionFlag.OccupiedInCutSceneEvent] ||
|
||||||
this.dalamud.ClientState.Condition[ConditionFlag.WatchingCutscene78];
|
this.dalamud.ClientState.Condition[ConditionFlag.WatchingCutscene78];
|
||||||
|
|
||||||
|
private bool GposeActive => this.dalamud.ClientState != null &&
|
||||||
|
this.dalamud.ClientState.Condition[ConditionFlag.WatchingCutscene];
|
||||||
|
|
||||||
private Dalamud dalamud;
|
private Dalamud dalamud;
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
|
@ -107,7 +125,7 @@ namespace Dalamud.Interface
|
||||||
/// Any ImFontPtr objects that you store <strong>can be invalidated</strong> when fonts are rebuilt
|
/// Any ImFontPtr objects that you store <strong>can be invalidated</strong> when fonts are rebuilt
|
||||||
/// (at any time), so you should both reload your custom fonts and restore those
|
/// (at any time), so you should both reload your custom fonts and restore those
|
||||||
/// pointers inside this handler.<br/>
|
/// pointers inside this handler.<br/>
|
||||||
/// <strong>PLEASE remove this handler inside Dipose, or when you no longer need your fonts!</strong>
|
/// <strong>PLEASE remove this handler inside Dispose, or when you no longer need your fonts!</strong>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Action OnBuildFonts
|
public Action OnBuildFonts
|
||||||
{
|
{
|
||||||
|
|
@ -135,7 +153,9 @@ namespace Dalamud.Interface
|
||||||
|
|
||||||
private void OnDraw() {
|
private void OnDraw() {
|
||||||
|
|
||||||
if ((this.dalamud.Framework.Gui.GameUiHidden || CutsceneOrGposeActive) && this.dalamud.Configuration.ToggleUiHide && !DisableAutomaticUiHide)
|
if (this.dalamud.Framework.Gui.GameUiHidden && this.dalamud.Configuration.ToggleUiHide && !(DisableUserUiHide || DisableAutomaticUiHide) ||
|
||||||
|
CutsceneActive && this.dalamud.Configuration.ToggleUiHideDuringCutscenes && !(DisableCutsceneUiHide || DisableAutomaticUiHide) ||
|
||||||
|
GposeActive && this.dalamud.Configuration.ToggleUiHideDuringGpose && !(DisableGposeUiHide || DisableAutomaticUiHide))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ImGui.PushID(this.namespaceName);
|
ImGui.PushID(this.namespaceName);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue