diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2021-04-10 02:13:37 +0200 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2021-04-10 02:13:37 +0200 |
| commit | ba4e19bd5a09ac02a81db47f804af11ef2821014 (patch) | |
| tree | 5b2c141d6815a5169c9e6ed827501fec5c3803d9 /Samples | |
| parent | ae9c383ea4e3caccc768ca8caa7a0f6d8c875172 (diff) | |
DebugLogAnalyzer StickyMouse bug
Diffstat (limited to 'Samples')
| -rw-r--r-- | Samples/DebugLogAnalyzer/src/DebugInterface.cs | 9 | ||||
| -rw-r--r-- | Samples/DebugLogAnalyzer/src/DebugInterfaceWidget.cs | 12 | ||||
| -rw-r--r-- | Samples/DebugLogAnalyzer/src/Extensions.cs | 3 | ||||
| -rw-r--r-- | Samples/DebugLogAnalyzer/ui/main.crow | 4 |
4 files changed, 22 insertions, 6 deletions
diff --git a/Samples/DebugLogAnalyzer/src/DebugInterface.cs b/Samples/DebugLogAnalyzer/src/DebugInterface.cs index 8300abb2..26a1eddf 100644 --- a/Samples/DebugLogAnalyzer/src/DebugInterface.cs +++ b/Samples/DebugLogAnalyzer/src/DebugInterface.cs @@ -32,6 +32,7 @@ namespace Crow string source; Action delRegisterForRepaint;//call RegisterForRepaint in the container widget (DebugInterfaceWidget) Action<Exception> delSetCurrentException; + Func<object> delGetScreenCoordinate; void interfaceThread () { while (!Terminate) { @@ -68,6 +69,7 @@ namespace Crow Type t = w.GetType(); delRegisterForRepaint = (Action)Delegate.CreateDelegate(typeof(Action), w, t.GetMethod("RegisterForRepaint")); delSetCurrentException = (Action<Exception>)Delegate.CreateDelegate(typeof(Action<Exception>), w, t.GetProperty("CurrentException").GetSetMethod()); + delGetScreenCoordinate = (Func<object>)Delegate.CreateDelegate(typeof(Func<object>), w, t.GetMethod("GetScreenCoordinates")); } public void ResetDirtyState () { IsDirty = false; @@ -109,6 +111,11 @@ namespace Crow g.RegisterForLayouting (LayoutingType.All); RegisterClip (clientRectangle); } - } + } + public override void ForceMousePosition() + { + Point p = (Point)delGetScreenCoordinate(); + Glfw.Glfw3.SetCursorPosition (WindowHandle, p.X + MousePosition.X, p.Y + MousePosition.Y); + } } }
\ No newline at end of file diff --git a/Samples/DebugLogAnalyzer/src/DebugInterfaceWidget.cs b/Samples/DebugLogAnalyzer/src/DebugInterfaceWidget.cs index ee30d5ed..5432b05e 100644 --- a/Samples/DebugLogAnalyzer/src/DebugInterfaceWidget.cs +++ b/Samples/DebugLogAnalyzer/src/DebugInterfaceWidget.cs @@ -140,16 +140,19 @@ namespace Crow public bool CrowDebuggerOK => initialized; public bool CrowDebuggerNOK => !initialized; - void notifyCrowDebuggerState () { + public string CrowDebuggerErrorMessage = ""; + void notifyCrowDebuggerState (string errorMsg = null) { NotifyValueChanged("CrowDebuggerOK", CrowDebuggerOK); NotifyValueChanged("CrowDebuggerNOK", CrowDebuggerNOK); + CrowDebuggerErrorMessage = errorMsg; + NotifyValueChanged("CrowDebuggerErrorMessage", CrowDebuggerErrorMessage); } void tryStartDebugInterface () { if (initialized) return; if (!File.Exists (crowDbgAssemblyLocation)) { - notifyCrowDebuggerState(); + notifyCrowDebuggerState($"Crow.dll for debugging file not found"); return; } @@ -161,7 +164,7 @@ namespace Crow Type debuggerType = crowAssembly.GetType("Crow.DbgLogger"); if (!(bool)debuggerType.GetField("IsEnabled").GetValue(null)) { - notifyCrowDebuggerState(); + notifyCrowDebuggerState("Crow.dll must be compiled with CrowDebugLogEnabled='True'"); return; } @@ -201,6 +204,7 @@ namespace Crow dbgIfaceType.GetMethod("Run").Invoke (dbgIFace, null); initialized = true; + notifyCrowDebuggerState(); //Console.WriteLine($"DbgIFace: LoadCtx:{AssemblyLoadContext.GetLoadContext (dbgIFace.GetType().Assembly).Name})"); //} @@ -298,5 +302,7 @@ namespace Crow dla.Events = events; } } + + public virtual object GetScreenCoordinates () => ScreenCoordinates(Slot).TopLeft; } }
\ No newline at end of file diff --git a/Samples/DebugLogAnalyzer/src/Extensions.cs b/Samples/DebugLogAnalyzer/src/Extensions.cs index 6086384c..58047aaa 100644 --- a/Samples/DebugLogAnalyzer/src/Extensions.cs +++ b/Samples/DebugLogAnalyzer/src/Extensions.cs @@ -7,7 +7,8 @@ namespace DebugLogAnalyzer { public static CommandGroup GetCommands (this System.IO.DirectoryInfo di) => new CommandGroup( - new Command ("Set as root", ()=> {Program.CurrentProgramInstance.CurrentDir = di.FullName;})); + new Command ("Set as root", ()=> {Program.CurrentProgramInstance.CurrentDir = di.FullName;}) + ); public static CommandGroup GetCommands (this System.IO.FileInfo fi) => new CommandGroup( new Command ("Delete", (sender0) => { diff --git a/Samples/DebugLogAnalyzer/ui/main.crow b/Samples/DebugLogAnalyzer/ui/main.crow index 24a50a2f..913220db 100644 --- a/Samples/DebugLogAnalyzer/ui/main.crow +++ b/Samples/DebugLogAnalyzer/ui/main.crow @@ -67,7 +67,9 @@ <Widget Width="5" Height="5" Background="SeaGreen" IsVisible="{../../../../dbgIfaceWidget.HasFocus}"/> <Widget Width="5" Height="5" Background="Yellow" IsVisible="{../../../../dbgIfaceWidget.IsHover}"/> <TextBox Text="{²CrowDbgAssemblyLocation}" Margin="2"/> - </HorizontalStack> + </HorizontalStack> + <Label Background="Red" Foreground="White" Margin="5" Width="Stretched" Text="{../../../dbgIfaceWidget.CrowDebuggerErrorMessage}" + IsVisible="{../../../dbgIfaceWidget.CrowDebuggerNOK}"/> <CheckBox Name="cbFile" Caption="Record to file" IsChecked="{²DebugLogToFile}" Background="Onyx"/> <HorizontalStack Height="Fit" Width="Stretched" IsEnabled="{../cbFile.IsChecked}" Background="Onyx" Margin="5"> <Label Text="Debug log output file:" Fit="true"/> |