Browse Source

Merge branch 'windowing-prototype' of https://github.com/nc4rrillo/Avalonia into windowing-prototype

repro-window-close
Nelson Carrillo 8 years ago
parent
commit
5f9913b4d9
  1. 84
      Avalonia.sln
  2. 2
      src/Avalonia.Windowing/Bindings/EventNotifier.cs
  3. 11
      src/Avalonia.Windowing/Bindings/Events.cs
  4. 2
      src/Avalonia.Windowing/Bindings/EventsLoop.cs
  5. 9
      src/Avalonia.Windowing/WIndowingPlatform.cs
  6. 7
      src/Avalonia.Windowing/WindowImpl.cs

84
Avalonia.sln

@ -187,6 +187,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Designer.HostApp.N
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia.UnitTests", "tests\Avalonia.Skia.UnitTests\Avalonia.Skia.UnitTests.csproj", "{E1240B49-7B4B-4371-A00E-068778C5CF0B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Windowing", "src\Avalonia.Windowing\Avalonia.Windowing.csproj", "{1A74298A-C9DF-4442-945E-B5151DFB121E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Gpu", "src\Avalonia.Gpu\Avalonia.Gpu.csproj", "{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Shared\RenderHelpers\RenderHelpers.projitems*{3c4c0cb4-0c0f-4450-a37b-148c84ff905f}*SharedItemsImports = 13
@ -2514,6 +2518,86 @@ Global
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Release|x86.ActiveCfg = Release|Any CPU
{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Release|x86.Build.0 = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|NetCoreOnly.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|iPhone.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|NetCoreOnly.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|x86.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.AppStore|x86.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|iPhone.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|x86.ActiveCfg = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Debug|x86.Build.0 = Debug|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|Any CPU.Build.0 = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|iPhone.ActiveCfg = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|iPhone.Build.0 = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|x86.ActiveCfg = Release|Any CPU
{1A74298A-C9DF-4442-945E-B5151DFB121E}.Release|x86.Build.0 = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|NetCoreOnly.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|Any CPU.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|iPhone.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|NetCoreOnly.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|x86.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.AppStore|x86.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|iPhone.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|x86.ActiveCfg = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Debug|x86.Build.0 = Debug|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|Any CPU.Build.0 = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|iPhone.ActiveCfg = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|iPhone.Build.0 = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|x86.ActiveCfg = Release|Any CPU
{FB8A415F-9C72-44C9-96D1-D76DEFF5ECBB}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

2
src/Avalonia.Windowing/Bindings/EventNotifier.cs

@ -5,6 +5,7 @@ namespace Avalonia.Windowing.Bindings
{
public delegate void MouseEventCallback(IntPtr windowId, MouseEvent mouseEvent);
public delegate void ResizeEventCallback(IntPtr windowId, ResizeEvent resizeEvent);
public delegate void KeyboardEventCallback(IntPtr windowId, KeyboardEvent keyboardEvent);
public delegate void AwakenedEventCallback();
[StructLayout(LayoutKind.Sequential)]
@ -13,5 +14,6 @@ namespace Avalonia.Windowing.Bindings
public MouseEventCallback OnMouseEvent;
public AwakenedEventCallback OnAwakened;
public ResizeEventCallback OnResized;
public KeyboardEventCallback OnKeyboardEvent;
}
}

11
src/Avalonia.Windowing/Bindings/Events.cs

@ -24,6 +24,17 @@ namespace Avalonia.Windowing.Bindings
public LogicalPosition Position { get; set; }
}
[StructLayout(LayoutKind.Sequential)]
public struct KeyboardEvent
{
public bool Pressed { get; set; }
public bool Shift { get; set; }
public bool Control { get; set; }
public bool Alt { get; set; }
public bool Logo { get; set; }
UInt32 VirtualKeyCode { get; set; }
}
[StructLayout(LayoutKind.Sequential)]
public struct ResizeEvent
{

2
src/Avalonia.Windowing/Bindings/EventsLoop.cs

@ -31,6 +31,7 @@ namespace Avalonia.Windowing.Bindings
private readonly EventsLoopProxy _eventsLoopProxy;
private readonly EventNotifier _notifier;
public event KeyboardEventCallback OnKeyboardEvent;
public event MouseEventCallback OnMouseEvent;
public event AwakenedEventCallback OnAwakened;
public event ResizeEventCallback OnResized;
@ -42,6 +43,7 @@ namespace Avalonia.Windowing.Bindings
_notifier = new EventNotifier()
{
OnMouseEvent = (IntPtr windowId, MouseEvent mouseEvent) => OnMouseEvent?.Invoke(windowId, mouseEvent),
OnKeyboardEvent = (IntPtr windowId, KeyboardEvent keyboardEvent) => OnKeyboardEvent?.Invoke(windowId, keyboardEvent),
OnResized = (IntPtr windowId, ResizeEvent resizeEvent) => OnResized?.Invoke(windowId, resizeEvent),
OnAwakened = () => OnAwakened?.Invoke()
};

9
src/Avalonia.Windowing/WIndowingPlatform.cs

@ -37,6 +37,7 @@ namespace Avalonia.Windowing
{
_eventsLoop = new EventsLoop();
_eventsLoop.OnMouseEvent += _eventsLoop_MouseEvent;
_eventsLoop.OnKeyboardEvent += _eventsLoop_OnKeyboardEvent;
_eventsLoop.OnAwakened += _eventsLoop_Awakened;
_eventsLoop.OnResized += _eventsLoop_Resized;
_windows = new Dictionary<IntPtr, WindowImpl>();
@ -60,6 +61,14 @@ namespace Avalonia.Windowing
}
}
void _eventsLoop_OnKeyboardEvent(IntPtr windowId, KeyboardEvent keyboardEvent)
{
if(_windows.ContainsKey(windowId))
{
_windows[windowId].OnKeyboardEvent(keyboardEvent);
}
}
private void _eventsLoop_Awakened()
{
Signaled?.Invoke(DispatcherPriority.Input);

7
src/Avalonia.Windowing/WindowImpl.cs

@ -169,6 +169,11 @@ namespace Avalonia.Windowing
{
}
public void OnKeyboardEvent (KeyboardEvent evt)
{
}
public void OnMouseEvent(MouseEvent evt)
{
Dispatcher.UIThread.RunJobs(DispatcherPriority.Input);
@ -180,7 +185,7 @@ namespace Avalonia.Windowing
break;
case MouseEventType.Wheel:
Input(new RawMouseWheelEventArgs(MouseDevice, (uint)Environment.TickCount, _inputRoot, new Point(_lastPosition.X, _lastPosition.Y), new Point(evt.Position.X, evt.Position.Y / 2), InputModifiers.None));
Input(new RawMouseWheelEventArgs(MouseDevice, (uint)Environment.TickCount, _inputRoot, new Point(_lastPosition.X, _lastPosition.Y), new Point(evt.Position.X / 50, evt.Position.Y / 50), InputModifiers.None));
return;
}

Loading…
Cancel
Save