Browse Source

Add initial popup implementation

repro-window-close
Nelson Carrillo 8 years ago
parent
commit
d912b2b16d
  1. 18
      src/Avalonia.Windowing/PopupImpl.cs
  2. 12
      src/Avalonia.Windowing/WIndowingPlatform.cs
  3. 4
      src/Avalonia.Windowing/WindowImpl.cs

18
src/Avalonia.Windowing/PopupImpl.cs

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Input.Raw;
using Avalonia.Platform;
using Avalonia.Rendering;
using Avalonia.Windowing.Bindings;
namespace Avalonia.Windowing
{
public class PopupImpl : WindowImpl, IPopupImpl
{
public PopupImpl(IWindowWrapper wrapper) : base(wrapper)
{
}
}
}

12
src/Avalonia.Windowing/WIndowingPlatform.cs

@ -36,7 +36,7 @@ namespace Avalonia.Windowing
{
internal static WindowingPlatform Instance { get; private set; }
private readonly EventsLoop _eventsLoop;
private readonly Dictionary<IntPtr, Window> _windows;
private readonly Dictionary<IntPtr, WindowImpl> _windows;
public WindowingPlatform()
{
@ -44,7 +44,7 @@ namespace Avalonia.Windowing
_eventsLoop.MouseEvent += _eventsLoop_MouseEvent;
_eventsLoop.Awakened += _eventsLoop_Awakened;
_eventsLoop.Resized += _eventsLoop_Resized;
_windows = new Dictionary<IntPtr, Window>();
_windows = new Dictionary<IntPtr, WindowImpl>();
}
void _eventsLoop_Resized(IntPtr windowId, ResizeEvent resizeEvent)
@ -100,13 +100,17 @@ namespace Avalonia.Windowing
public IPopupImpl CreatePopup()
{
throw new NotImplementedException();
var windowWrapper = new GlWindowWrapper(_eventsLoop);
var window = new PopupImpl(windowWrapper);
_windows.Add(windowWrapper.Id, window);
return window;
}
public IWindowImpl CreateWindow()
{
var windowWrapper = new GlWindowWrapper(_eventsLoop);
var window = new Window(windowWrapper);
var window = new WindowImpl(windowWrapper);
_windows.Add(windowWrapper.Id, window);
return window;

4
src/Avalonia.Windowing/WindowImpl.cs

@ -10,12 +10,12 @@ using Avalonia.Windowing.Bindings;
namespace Avalonia.Windowing
{
public class Window : IWindowImpl
public class WindowImpl : IWindowImpl
{
IWindowWrapper _windowWrapper;
private LogicalPosition _lastPosition;
public Window(IWindowWrapper wrapper)
public WindowImpl(IWindowWrapper wrapper)
{
_windowWrapper = wrapper;
}

Loading…
Cancel
Save