diff options
Diffstat (limited to 'ShiftOS.Wpf/WpfWindowManager.cs')
| -rw-r--r-- | ShiftOS.Wpf/WpfWindowManager.cs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/ShiftOS.Wpf/WpfWindowManager.cs b/ShiftOS.Wpf/WpfWindowManager.cs new file mode 100644 index 0000000..ee7c598 --- /dev/null +++ b/ShiftOS.Wpf/WpfWindowManager.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using ShiftOS.Engine; + +namespace ShiftOS.Wpf +{ + public class WpfWindowManager : WindowManager + { + public override void Close(IShiftOSWindow win) + { + IWindowBorder brdrToClose = null; + + foreach(WpfWindowBorder brdr in AppearanceManager.OpenForms) + { + if(brdr.ParentWindow == win) + { + brdrToClose = brdr; + } + } + + if (brdrToClose != null) + { + brdrToClose.Close(); + AppearanceManager.OpenForms.Remove(brdrToClose); + } + + } + + public override void InvokeAction(Action act) + { + App.Current.Dispatcher.Invoke(act); + } + + public override void Maximize(IWindowBorder border) + { + var wb = (WpfWindowBorder)border; + } + + public override void Minimize(IWindowBorder border) + { + throw new NotImplementedException(); + } + + public override void SetupDialog(IShiftOSWindow win) + { + var brdr = new WpfWindowBorder(win); + brdr.IsDialog = true; + AppearanceManager.OpenForms.Add(brdr); + } + + public override void SetupWindow(IShiftOSWindow win) + { + var brdr = new WpfWindowBorder(win); + + AppearanceManager.OpenForms.Add(brdr); + } + } +} |
