Move keyboard hooks to parent
This commit is contained in:
parent
b2c898be6c
commit
a50e8acc2a
2 changed files with 33 additions and 37 deletions
|
|
@ -28,6 +28,7 @@ either expressed or implied, of the FreeBSD Project.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using MatterHackers.Agg;
|
using MatterHackers.Agg;
|
||||||
using MatterHackers.Agg.UI;
|
using MatterHackers.Agg.UI;
|
||||||
using MatterHackers.GCodeVisualizer;
|
using MatterHackers.GCodeVisualizer;
|
||||||
|
|
@ -66,6 +67,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
||||||
private Vector3 viewerVolume;
|
private Vector3 viewerVolume;
|
||||||
private Vector2 bedCenter;
|
private Vector2 bedCenter;
|
||||||
|
|
||||||
|
private SystemWindow parentSystemWindow;
|
||||||
|
|
||||||
public PrinterTabPage(PrinterSettings activeSettings, PrintItemWrapper printItem)
|
public PrinterTabPage(PrinterSettings activeSettings, PrintItemWrapper printItem)
|
||||||
{
|
{
|
||||||
printer = ApplicationController.Instance.Printer;
|
printer = ApplicationController.Instance.Printer;
|
||||||
|
|
@ -473,9 +476,33 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
||||||
{
|
{
|
||||||
ApplicationController.Instance.ActiveView3DWidget = modelViewer;
|
ApplicationController.Instance.ActiveView3DWidget = modelViewer;
|
||||||
LoadActivePrintItem();
|
LoadActivePrintItem();
|
||||||
|
|
||||||
|
// Find and hook the parent system window KeyDown event
|
||||||
|
if (this.Parents<SystemWindow>().FirstOrDefault() is SystemWindow systemWindow)
|
||||||
|
{
|
||||||
|
systemWindow.KeyDown += Parent_KeyDown;
|
||||||
|
parentSystemWindow = systemWindow;
|
||||||
|
}
|
||||||
|
|
||||||
base.OnLoad(args);
|
base.OnLoad(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Parent_KeyDown(object sender, KeyEventArgs keyEvent)
|
||||||
|
{
|
||||||
|
if (gcodeViewer.Visible)
|
||||||
|
{
|
||||||
|
switch (keyEvent.KeyCode)
|
||||||
|
{
|
||||||
|
case Keys.Up:
|
||||||
|
printer.BedPlate.ActiveLayerIndex += 1;
|
||||||
|
break;
|
||||||
|
case Keys.Down:
|
||||||
|
printer.BedPlate.ActiveLayerIndex -= 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnDraw(Graphics2D graphics2D)
|
public override void OnDraw(Graphics2D graphics2D)
|
||||||
{
|
{
|
||||||
bool printerIsRunningPrint = PrinterConnection.Instance.PrinterIsPaused || PrinterConnection.Instance.PrinterIsPrinting;
|
bool printerIsRunningPrint = PrinterConnection.Instance.PrinterIsPaused || PrinterConnection.Instance.PrinterIsPrinting;
|
||||||
|
|
@ -502,6 +529,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
||||||
modelViewer.meshViewerWidget.TrackballTumbleWidget.DrawGlContent -= TrackballTumbleWidget_DrawGlContent;
|
modelViewer.meshViewerWidget.TrackballTumbleWidget.DrawGlContent -= TrackballTumbleWidget_DrawGlContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Find and unhook the parent system window KeyDown event
|
||||||
|
if (parentSystemWindow != null)
|
||||||
|
{
|
||||||
|
parentSystemWindow.KeyDown -= Parent_KeyDown;
|
||||||
|
}
|
||||||
|
|
||||||
printer.BedPlate.ActiveLayerChanged -= ActiveLayer_Changed;
|
printer.BedPlate.ActiveLayerChanged -= ActiveLayer_Changed;
|
||||||
printer.BedPlate.LoadedGCodeChanged -= BedPlate_LoadedGCodeChanged;
|
printer.BedPlate.LoadedGCodeChanged -= BedPlate_LoadedGCodeChanged;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,8 +68,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
||||||
private PrinterConfig printer;
|
private PrinterConfig printer;
|
||||||
private ViewControls3D viewControls3D;
|
private ViewControls3D viewControls3D;
|
||||||
|
|
||||||
private SystemWindow parentSystemWindow;
|
|
||||||
|
|
||||||
public ViewGcodeBasic(Vector3 viewerVolume, Vector2 bedCenter, BedShape bedShape, ViewControls3D viewControls3D)
|
public ViewGcodeBasic(Vector3 viewerVolume, Vector2 bedCenter, BedShape bedShape, ViewControls3D viewControls3D)
|
||||||
{
|
{
|
||||||
printer = ApplicationController.Instance.Printer;
|
printer = ApplicationController.Instance.Printer;
|
||||||
|
|
@ -97,34 +95,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
||||||
ApplicationController.Instance.AdvancedControlsPanelReloading.RegisterEvent((s, e) => printer.BedPlate.GCodeRenderer?.Clear3DGCode(), ref unregisterEvents);
|
ApplicationController.Instance.AdvancedControlsPanelReloading.RegisterEvent((s, e) => printer.BedPlate.GCodeRenderer?.Clear3DGCode(), ref unregisterEvents);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnLoad(EventArgs args)
|
|
||||||
{
|
|
||||||
// Find and hook the parent system window KeyDown event
|
|
||||||
if (this.Parents<SystemWindow>().FirstOrDefault() is SystemWindow systemWindow)
|
|
||||||
{
|
|
||||||
systemWindow.KeyDown += Parent_KeyDown;
|
|
||||||
parentSystemWindow = systemWindow;
|
|
||||||
}
|
|
||||||
|
|
||||||
base.OnLoad(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Parent_KeyDown(object sender, KeyEventArgs keyEvent)
|
|
||||||
{
|
|
||||||
if (this.Visible)
|
|
||||||
{
|
|
||||||
switch(keyEvent.KeyCode)
|
|
||||||
{
|
|
||||||
case Keys.Up:
|
|
||||||
printer.BedPlate.ActiveLayerIndex += 1;
|
|
||||||
break;
|
|
||||||
case Keys.Down:
|
|
||||||
printer.BedPlate.ActiveLayerIndex -= 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private GCodeFile loadedGCode => printer.BedPlate.LoadedGCode;
|
private GCodeFile loadedGCode => printer.BedPlate.LoadedGCode;
|
||||||
|
|
||||||
internal void CreateAndAddChildren()
|
internal void CreateAndAddChildren()
|
||||||
|
|
@ -248,13 +218,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
||||||
public override void OnClosed(ClosedEventArgs e)
|
public override void OnClosed(ClosedEventArgs e)
|
||||||
{
|
{
|
||||||
unregisterEvents?.Invoke(this, null);
|
unregisterEvents?.Invoke(this, null);
|
||||||
|
|
||||||
// Find and unhook the parent system window KeyDown event
|
|
||||||
if (parentSystemWindow != null)
|
|
||||||
{
|
|
||||||
parentSystemWindow.KeyDown -= Parent_KeyDown;
|
|
||||||
}
|
|
||||||
|
|
||||||
base.OnClosed(e);
|
base.OnClosed(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue