From bef5a35fd9f769a8a7d5642aace3478aacdf64ef Mon Sep 17 00:00:00 2001 From: goat Date: Mon, 24 Feb 2020 02:30:35 +0900 Subject: [PATCH] fix: update lumina, flash window --- Dalamud.Injector/Dalamud.Injector.csproj | 6 +- Dalamud/Dalamud.cs | 1 + Dalamud/Dalamud.csproj | 6 +- .../TransientSheet/ContentFinderCondition.cs | 4 +- Dalamud/Game/Network/NetworkHandlers.cs | 13 +++- Dalamud/NativeFunctions.cs | 65 +++++++++++++++++++ 6 files changed, 85 insertions(+), 10 deletions(-) create mode 100644 Dalamud/NativeFunctions.cs diff --git a/Dalamud.Injector/Dalamud.Injector.csproj b/Dalamud.Injector/Dalamud.Injector.csproj index 3d0421dd9..c617a333f 100644 --- a/Dalamud.Injector/Dalamud.Injector.csproj +++ b/Dalamud.Injector/Dalamud.Injector.csproj @@ -14,10 +14,10 @@ true - 4.7.7.0 - 4.7.7.0 + 4.7.8.0 + 4.7.8.0 XIVLauncher addon injection - 4.7.7.0 + 4.7.8.0 diff --git a/Dalamud/Dalamud.cs b/Dalamud/Dalamud.cs index 10497c33d..d183f7afd 100644 --- a/Dalamud/Dalamud.cs +++ b/Dalamud/Dalamud.cs @@ -202,6 +202,7 @@ namespace Dalamud { } ImGui.Separator(); ImGui.MenuItem(this.assemblyVersion, false); + ImGui.MenuItem(this.StartInfo.GameVersion, false); ImGui.EndMenu(); } diff --git a/Dalamud/Dalamud.csproj b/Dalamud/Dalamud.csproj index 6f2e29277..e1fd9aa11 100644 --- a/Dalamud/Dalamud.csproj +++ b/Dalamud/Dalamud.csproj @@ -14,9 +14,9 @@ true - 4.7.7.0 - 4.7.7.0 - 4.7.7.0 + 4.7.8.0 + 4.7.8.0 + 4.7.8.0 diff --git a/Dalamud/Data/TransientSheet/ContentFinderCondition.cs b/Dalamud/Data/TransientSheet/ContentFinderCondition.cs index c8b56bfd2..20d589024 100644 --- a/Dalamud/Data/TransientSheet/ContentFinderCondition.cs +++ b/Dalamud/Data/TransientSheet/ContentFinderCondition.cs @@ -7,7 +7,7 @@ using Lumina.Excel; namespace Dalamud.Data.TransientSheet { - [SheetName("ContentFinderCondition")] + [Sheet("ContentFinderCondition")] public class ContentFinderCondition : IExcelRow { // column defs from Thu, 13 Feb 2020 20:46:12 GMT @@ -595,7 +595,7 @@ namespace Dalamud.Data.TransientSheet public int RowId { get; set; } public int SubRowId { get; set; } - public void PopulateData(RowParser parser) + public void PopulateData(RowParser parser, Lumina.Lumina lumina) { RowId = parser.Row; SubRowId = parser.SubRow; diff --git a/Dalamud/Game/Network/NetworkHandlers.cs b/Dalamud/Game/Network/NetworkHandlers.cs index 46dd613a9..714dff1d5 100644 --- a/Dalamud/Game/Network/NetworkHandlers.cs +++ b/Dalamud/Game/Network/NetworkHandlers.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Runtime.InteropServices; using System.Threading.Tasks; @@ -64,11 +65,19 @@ namespace Dalamud.Game.Network { contentFinderCondition.Image = 112324; } + var flashInfo = new NativeFunctions.FLASHWINFO(); + flashInfo.cbSize = (uint) Marshal.SizeOf(); + flashInfo.uCount = uint.MaxValue; + flashInfo.dwTimeout = 0; + flashInfo.dwFlags = NativeFunctions.FlashWindow.FLASHW_ALL | + NativeFunctions.FlashWindow.FLASHW_TIMERNOFG; + flashInfo.hwnd = Process.GetCurrentProcess().MainWindowHandle; + NativeFunctions.FlashWindowEx(ref flashInfo); + Task.Run(async () => { - this.dalamud.Framework.Gui.Chat.Print($"Duty pop: " + contentFinderCondition.Name); + this.dalamud.Framework.Gui.Chat.Print("Duty pop: " + contentFinderCondition.Name); await this.ProcessCfPop?.Invoke(contentFinderCondition); - }); return; diff --git a/Dalamud/NativeFunctions.cs b/Dalamud/NativeFunctions.cs new file mode 100644 index 000000000..b880940f4 --- /dev/null +++ b/Dalamud/NativeFunctions.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace Dalamud +{ + static class NativeFunctions + { + #region Enums and Structs + + [StructLayout(LayoutKind.Sequential)] + public struct FLASHWINFO + { + public UInt32 cbSize; + public IntPtr hwnd; + public FlashWindow dwFlags; + public UInt32 uCount; + public UInt32 dwTimeout; + } + + public enum FlashWindow : uint + { + /// + /// Stop flashing. The system restores the window to its original state. + /// + FLASHW_STOP = 0, + + /// + /// Flash the window caption + /// + FLASHW_CAPTION = 1, + + /// + /// Flash the taskbar button. + /// + FLASHW_TRAY = 2, + + /// + /// Flash both the window caption and taskbar button. + /// This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags. + /// + FLASHW_ALL = 3, + + /// + /// Flash continuously, until the FLASHW_STOP flag is set. + /// + FLASHW_TIMER = 4, + + /// + /// Flash continuously until the window comes to the foreground. + /// + FLASHW_TIMERNOFG = 12 + } + + + #endregion + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool FlashWindowEx(ref FLASHWINFO pwfi); + } +}