1
0
Fork 0
mirror of https://github.com/hawkeye-stan/msfs-popout-panel-manager.git synced 2024-10-16 14:10:45 +00:00

Merged v3.4.6.0321 Release

This commit is contained in:
hawkeye 2023-05-21 10:32:15 -04:00
parent 5743caf8ec
commit f4c8abe148
15 changed files with 54 additions and 78 deletions

View file

@ -10,9 +10,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl> <PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.ArduinoAgent</RootNamespace> <RootNamespace>MSFSPopoutPanelManager.ArduinoAgent</RootNamespace>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>3.4.5.0</Version> <Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion> <AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion> <FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType> <DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations> <Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -10,9 +10,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl> <PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.Orchestration</RootNamespace> <RootNamespace>MSFSPopoutPanelManager.Orchestration</RootNamespace>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>3.4.5.0</Version> <Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion> <AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion> <FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType> <DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations> <Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -14,7 +14,7 @@ namespace MSFSPopoutPanelManager.Orchestration
public class PanelPopOutOrchestrator : ObservableObject public class PanelPopOutOrchestrator : ObservableObject
{ {
// This will be replaced by a signal from Ready to Fly Skipper into webserver in version 4.0 // This will be replaced by a signal from Ready to Fly Skipper into webserver in version 4.0
private const int READY_TO_FLY_BUTTON_APPEARANCE_DELAY = 2000; private const int READY_TO_FLY_BUTTON_APPEARANCE_DELAY = 4000;
private int _builtInPanelConfigDelay; private int _builtInPanelConfigDelay;
internal ProfileData ProfileData { get; set; } internal ProfileData ProfileData { get; set; }
@ -177,7 +177,7 @@ namespace MSFSPopoutPanelManager.Orchestration
if (AppSetting.UseAutoPanning) if (AppSetting.UseAutoPanning)
InputEmulationManager.LoadCustomView(AppSetting.AutoPanningKeyBinding); InputEmulationManager.LoadCustomView(AppSetting.AutoPanningKeyBinding);
var panelResults = ExecutePopoutAndSeparation(); var panelResults = ExecutePopout();
if (panelResults == null) if (panelResults == null)
return; return;
@ -203,24 +203,12 @@ namespace MSFSPopoutPanelManager.Orchestration
if (panelResults != null) if (panelResults != null)
panelConfigs.AddRange(panelResults); panelConfigs.AddRange(panelResults);
} }
if (panelConfigs.Count == 0) if (panelConfigs.Count == 0)
{ {
StatusMessageWriter.WriteMessage("No panels have been found. Please select at least one in-game panel.", StatusMessageType.Error, true); StatusMessageWriter.WriteMessage("No panels have been found. Please select at least one in-game panel.", StatusMessageType.Error, true);
return; return;
} }
// Line up all the panels
for (var i = panelConfigs.Count - 1; i >= 0; i--)
{
if (panelConfigs[i].PanelType == PanelType.CustomPopout)
{
WindowActionManager.MoveWindow(panelConfigs[i].PanelHandle, panelConfigs[i].Top, panelConfigs[i].Left, panelConfigs[i].Width, panelConfigs[i].Height);
PInvoke.SetForegroundWindow(panelConfigs[i].PanelHandle);
Thread.Sleep(200);
}
}
if (panelConfigs.Count > 0) if (panelConfigs.Count > 0)
{ {
if (ActiveProfile.PanelConfigs.Count > 0) if (ActiveProfile.PanelConfigs.Count > 0)
@ -245,7 +233,7 @@ namespace MSFSPopoutPanelManager.Orchestration
} }
} }
private List<PanelConfig> ExecutePopoutAndSeparation() private List<PanelConfig> ExecutePopout()
{ {
List<PanelConfig> panels = new List<PanelConfig>(); List<PanelConfig> panels = new List<PanelConfig>();
@ -261,18 +249,13 @@ namespace MSFSPopoutPanelManager.Orchestration
InputEmulationManager.PopOutPanel(x, y, AppSetting.UseLeftRightControlToPopOut); InputEmulationManager.PopOutPanel(x, y, AppSetting.UseLeftRightControlToPopOut);
// Get an AceApp window with empty title // Get an AceApp window with non Microsoft Flight Simulator as window title
var handle = PInvoke.FindWindow("AceApp", String.Empty); var handle = PInvoke.FindWindow("AceApp", null);
// Need to move the window to upper left corner first. There is a possible bug in the game that panel pop out to full screen that prevents further clicking. // Unable to find pop out window because of application delay
if (handle != IntPtr.Zero) var simulatorProcess = WindowProcessManager.GetSimulatorProcess();
WindowActionManager.MoveWindow(handle, 0, 0, 1000, 500); if (handle.Equals(simulatorProcess.Handle))
handle = IntPtr.Zero;
// The joined panel is always the first panel that got popped out
if (i > 1)
SeparatePanel(panels[0].PanelHandle);
handle = PInvoke.FindWindow("AceApp", String.Empty);
if (handle == IntPtr.Zero && i == 1) if (handle == IntPtr.Zero && i == 1)
{ {
@ -285,9 +268,7 @@ namespace MSFSPopoutPanelManager.Orchestration
return null; return null;
} }
// Fix SU10+ bug where pop out window after separation is huge var clientRect = WindowActionManager.GetClientRect(handle);
if (i > 1)
WindowActionManager.MoveWindow(handle, -8, 0, 800, 600);
var panel = new PanelConfig(); var panel = new PanelConfig();
panel.PanelHandle = handle; panel.PanelHandle = handle;
@ -296,8 +277,8 @@ namespace MSFSPopoutPanelManager.Orchestration
panel.PanelName = $"Panel{i}"; panel.PanelName = $"Panel{i}";
panel.Top = (i - 1) * 30; panel.Top = (i - 1) * 30;
panel.Left = (i - 1) * 30; panel.Left = (i - 1) * 30;
panel.Width = 800; panel.Width = clientRect.Width;
panel.Height = 600; panel.Height = clientRect.Height;
panels.Add(panel); panels.Add(panel);
PInvoke.SetWindowText(panel.PanelHandle, panel.PanelName + " (Custom)"); PInvoke.SetWindowText(panel.PanelHandle, panel.PanelName + " (Custom)");
@ -313,18 +294,6 @@ namespace MSFSPopoutPanelManager.Orchestration
return panels; return panels;
} }
private void SeparatePanel(IntPtr hwnd)
{
// ToDo: Need to figure mouse click code to separate window
PInvoke.SetForegroundWindow(hwnd);
Thread.Sleep(500);
// Find the magnifying glass coordinate
var point = PanelAnalyzer.GetMagnifyingGlassIconCoordinate(hwnd);
InputEmulationManager.LeftClick(point.X, point.Y);
}
private List<PanelConfig> AddBuiltInPanels() private List<PanelConfig> AddBuiltInPanels()
{ {
List<PanelConfig> builtinPanels = new List<PanelConfig>(); List<PanelConfig> builtinPanels = new List<PanelConfig>();
@ -436,7 +405,14 @@ namespace MSFSPopoutPanelManager.Orchestration
else if (panel.PanelType == PanelType.BuiltInPopout) else if (panel.PanelType == PanelType.BuiltInPopout)
savedPanelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(s => s.PanelName == panel.PanelName); savedPanelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(s => s.PanelName == panel.PanelName);
if (savedPanelConfig == null) return; // Apply MSFS saved panel location if available since this panel is newly profiled
if (savedPanelConfig == null)
{
var rect = WindowActionManager.GetWindowRect(panel.PanelHandle);
panel.Top = rect.Top;
panel.Left = rect.Left;
return;
}
// Assign window handle to panel config // Assign window handle to panel config
savedPanelConfig.PanelHandle = panel.PanelHandle; savedPanelConfig.PanelHandle = panel.PanelHandle;

View file

@ -171,7 +171,7 @@ Perform your regular panel selection and once your touch capable panel has been
## User Profile Data Files ## User Profile Data Files
The user plane profile data and application settings data are stored as JSON files under your "Documents" folder. (%userprofile%\Documents\MSFS Pop Out Panel Manager) The user plane profile data and application settings data are stored as JSON files under your "Documents" folder. (%userprofile%\Documents\MSFS Pop Out Manager)
* userprofiledata.json * userprofiledata.json

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl> <PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.Shared</RootNamespace> <RootNamespace>MSFSPopoutPanelManager.Shared</RootNamespace>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>3.4.5.0</Version> <Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion> <AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion> <FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType> <DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations> <Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl> <PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.SimConnectAgent</RootNamespace> <RootNamespace>MSFSPopoutPanelManager.SimConnectAgent</RootNamespace>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>3.4.5.0</Version> <Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion> <AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion> <FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType> <DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations> <Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl> <PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.TouchPanelAgent</RootNamespace> <RootNamespace>MSFSPopoutPanelManager.TouchPanelAgent</RootNamespace>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>3.4.5.0</Version> <Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion> <AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion> <FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType> <DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations> <Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -10,9 +10,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl> <PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.UserDataAgent</RootNamespace> <RootNamespace>MSFSPopoutPanelManager.UserDataAgent</RootNamespace>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>3.4.5.0</Version> <Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion> <AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion> <FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType> <DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations> <Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -1,6 +1,9 @@
# Version History # Version History
<hr/> <hr/>
## Version 3.4.6.0321
* Added SU12 compatibility. This version is required for MSFS SU12 and is not compatible with earlier MSFS releases.
## Version 3.4.5 ## Version 3.4.5
* Added new preference option by default to auto close MSFS Pop Out Manager when MSFS exits. * Added new preference option by default to auto close MSFS Pop Out Manager when MSFS exits.

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl> <PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.WebServer</RootNamespace> <RootNamespace>MSFSPopoutPanelManager.WebServer</RootNamespace>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>3.4.5.0</Version> <Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion> <AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion> <FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType> <DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations> <Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -43,7 +43,6 @@ namespace MSFSPopoutPanelManager.WindowsAgent
public static void LeftClick(int x, int y) public static void LeftClick(int x, int y)
{ {
PInvoke.SetCursorPos(x, y); // Need to do this twice to overcome MSFS bug for separating pop out panels
PInvoke.SetCursorPos(x, y); PInvoke.SetCursorPos(x, y);
Thread.Sleep(300); Thread.Sleep(300);
@ -77,8 +76,7 @@ namespace MSFSPopoutPanelManager.WindowsAgent
Thread.Sleep(300); Thread.Sleep(300);
PInvoke.SetCursorPos(x, y); PInvoke.SetCursorPos(x, y);
PInvoke.SetCursorPos(x, y); Thread.Sleep(500);
Thread.Sleep(300);
if (useSecondaryKeys) if (useSecondaryKeys)
{ {

View file

@ -141,10 +141,9 @@ namespace MSFSPopoutPanelManager.WindowsAgent
PInvoke.mouse_event(MOUSEEVENTF_LEFTUP, info.pt.X, info.pt.Y, 0, 0); PInvoke.mouse_event(MOUSEEVENTF_LEFTUP, info.pt.X, info.pt.Y, 0, 0);
if (_isDragged) if (_isDragged)
{ {
// Override GTN750 bug - must execute this to fix GTN750 cursor moving offscreen issue when doing touch and drag
Thread.Sleep(AppSetting.TouchScreenSettings.TouchDownUpDelay + 50); Thread.Sleep(AppSetting.TouchScreenSettings.TouchDownUpDelay + 50);
PInvoke.SetCursorPos(info.pt.X, info.pt.Y); PInvoke.SetCursorPos(info.pt.X, info.pt.Y);
Thread.Sleep(100); Thread.Sleep(AppSetting.TouchScreenSettings.TouchDownUpDelay + 50);
InputEmulationManager.LeftClickFast(info.pt.X, info.pt.Y); InputEmulationManager.LeftClickFast(info.pt.X, info.pt.Y);
_isDragged = false; _isDragged = false;
} }

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl> <PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.WindowsAgent</RootNamespace> <RootNamespace>MSFSPopoutPanelManager.WindowsAgent</RootNamespace>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>3.4.5.0</Version> <Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion> <AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion> <FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType> <DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations> <Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -14,9 +14,9 @@
<RootNamespace>MSFSPopoutPanelManager.WpfApp</RootNamespace> <RootNamespace>MSFSPopoutPanelManager.WpfApp</RootNamespace>
<ApplicationIcon>logo.ico</ApplicationIcon> <ApplicationIcon>logo.ico</ApplicationIcon>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<Version>3.4.5.0</Version> <Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion> <AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion> <FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>embedded</DebugType> <DebugType>embedded</DebugType>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages> <SatelliteResourceLanguages>en</SatelliteResourceLanguages>