示例#1
0
		public ViewModel(IDeploymentAppSettings appSettings, IWindowWrapper windowWrapper)
		{
			_windowWrapper = windowWrapper;
			IsBusy = false;

			ProjectFolder = appSettings.ProjectFolder;
			LogFolder = appSettings.LogFolder;
			SqlServer = appSettings.SqlServer;
			NoTransaction = appSettings.NoTransaction;
			ForceRollback = appSettings.ForceRollback;
			CheckFilesOnly = appSettings.CheckFilesOnly;
			BypassCheck = appSettings.BypassCheck;

			_serversList = new List<ComboBoxItem>
			{
				new ComboBoxItem { Content = "localhost" },
				new ComboBoxItem { Content = "searching for servers...", IsEnabled = false}
			};

			_projectFolderCommand = new DelegateCommand<string>(s =>
			{
				string selectedPath;
				if (_windowWrapper.ShowFolderDialog("Select Project Folder", s, out selectedPath))
					ProjectFolder = selectedPath;
			}, s => IsAvailable);

			_logFolderCommand = new DelegateCommand<string>(s =>
			{
				string selectedPath;
				if (_windowWrapper.ShowFolderDialog("Select Log Folder", s, out selectedPath))
					LogFolder = selectedPath;

			}, s => IsAvailable);
		}
示例#2
0
        public void AlignTop(IWindowWrapper toView, int pixels)
        {
            var toViewWindow = toView.NativeObject as NSWindow;
            var frame        = Frame;

            frame.Location = new CGPoint(toViewWindow.Frame.Left, toViewWindow.AccessibilityFrame.Y + toViewWindow.Frame.Height + pixels);
            SetFrame(frame, true);
        }
示例#3
0
        public void AlignLeft(IWindowWrapper toView, int pixels)
        {
            var toViewWindow = toView.NativeObject as NSWindow;
            var frame        = window.Frame;

            frame.Location = new CGPoint(toViewWindow.Frame.Left - window.Frame.Width - pixels, toViewWindow.Frame.Bottom - frame.Height);
            window.SetFrame(frame, true);
        }
示例#4
0
        public void AlignRight(IWindowWrapper toView, int pixels)
        {
            var toViewWindow = toView.NativeObject as NSWindow;
            var frame        = Frame;

            frame.Location = new CGPoint(toViewWindow.Frame.Right + pixels, toViewWindow.Frame.Bottom - frame.Height);
            SetFrame(frame, true);
        }
示例#5
0
        public void RemoveAllErrorWindows(IWindowWrapper windowWrapper)
        {
            var window      = windowWrapper.NativeObject as NSWindow;
            var childWindro = window.ChildWindows.OfType <BorderedWindow>();

            foreach (var item in childWindro)
            {
                item.Close();
            }
        }
        // public INavigationService NavigationService { get; set; }
        #endregion

        private ViewLifetimeControl(CoreWindow newWindow)
        {
            CoreDispatcher = newWindow.Dispatcher;
            WindowWrapper  = Services.WindowWrapper.WindowWrapper.Current();
            Id             = ApplicationView.GetApplicationViewIdForWindow(newWindow);

            // This class will automatically tell the view when its time to close
            // or stay alive in a few cases
            RegisterForEvents();
        }
示例#7
0
        public void StartHoverSelection(IWindowWrapper currentWindow)
        {
            StopHoverSelection();

            var nativeWindow = currentWindow.NativeObject as NSWindow;

            endSelection = false;

            clickMonitor = NSEvent.AddLocalMonitorForEventsMatchingMask(NSEventMask.LeftMouseDown, (NSEvent theEvent) => {
                StopHoverSelection();
                var selected = GetHoverSelectedView();
                if (selected != null)
                {
                    HoverSelectionEnded?.Invoke(this, new ViewWrapper(selected));
                }
                else
                {
                    HoverSelectionEnded?.Invoke(this, null);
                }

                return(null);
            });

            moveMonitor = NSEvent.AddLocalMonitorForEventsMatchingMask(NSEventMask.MouseMoved, (NSEvent theEvent) => {
                if (endSelection)
                {
                    return(null);
                }
                var point = nativeWindow.ConvertBaseToScreen(theEvent.LocationInWindow);
                if (!nativeWindow.AccessibilityFrame.Contains(point))
                {
                    return(null);
                }
                containerViews.Clear();
                AddContainerViews(nativeWindow.ContentView, point, containerViews);

                if (containerViews.Count > 0)
                {
                    index = containerViews.Count - 1;
                }
                else
                {
                    index = -1;
                }

                var selectedView = GetHoverSelectedView();
                if (selectedView != null)
                {
                    HoverSelecting?.Invoke(this, new ViewWrapper(selectedView));
                }
                return(null);
            });
        }
示例#8
0
        public Shell(INavigationService navigationService)
        {
            Instance = this;
            this.InitializeComponent();

            // setup for static calls
            Window = WindowWrapper.Current();
            MyHamburgerMenu.NavigationService = navigationService;

            // any nav change, reset to normal
            navigationService.FrameFacade.Navigated += (s, e) =>
                                                       BusyModal.IsModal = SearchModal.IsModal = LoginModal.IsModal = false;
        }
示例#9
0
 public static MonitorUtils Current(IWindowWrapper windowWrapper = null)
 {
     windowWrapper = windowWrapper ?? Locator.WindowWrapper.Current();
     if (!Cache.ContainsKey(windowWrapper))
     {
         var item = new MonitorUtils(windowWrapper);
         Cache.Add(windowWrapper, item);
         windowWrapper.ApplicationView().Consolidated += new WeakReference <MonitorUtils, ApplicationView, object>(item)
         {
             EventAction  = (i, s, e) => Cache.Remove(windowWrapper),
             DetachAction = (i, w) => windowWrapper.ApplicationView().Consolidated -= w.Handler
         }.Handler;
     }
     return(Cache[windowWrapper]);
 }
示例#10
0
 public static DeviceUtils Current(IWindowWrapper windowWrapper)
 {
     windowWrapper = windowWrapper ?? throw new ArgumentNullException(nameof(windowWrapper));
     if (!Cache.ContainsKey(windowWrapper))
     {
         var item = new DeviceUtils(windowWrapper);
         Cache.Add(windowWrapper, item);
         windowWrapper.ApplicationView().Consolidated += new Common.WeakReference <DeviceUtils, ApplicationView, object>(item)
         {
             EventAction  = (i, s, e) => Cache.Remove(windowWrapper),
             DetachAction = (i, w) => windowWrapper.ApplicationView().Consolidated -= w.Handler
         }.Handler;
     }
     return(Cache[windowWrapper]);
 }
示例#11
0
 public static DeviceUtils Current(IWindowWrapper windowWrapper = null)
 {
     windowWrapper = windowWrapper ?? Common.WindowWrapper.Current();
     if (!Cache.ContainsKey(windowWrapper))
     {
         var item = new DeviceUtils(windowWrapper);
         Cache.Add(windowWrapper, item);
         windowWrapper.ApplicationView().Consolidated += new Common.WeakReference<DeviceUtils, ApplicationView, object>(item)
         {
             EventAction = (i, s, e) => Cache.Remove(windowWrapper),
             DetachAction = (i, w) => windowWrapper.ApplicationView().Consolidated -= w.Handler
         }.Handler;
     }
     return Cache[windowWrapper];
 }
示例#12
0
        private DeviceUtils(IWindowWrapper windowWrapper)
        {
            MonitorUtils = MonitorUtils.Current(windowWrapper);
            WindowWrapper = windowWrapper ?? Common.WindowWrapper.Current();

            var di = windowWrapper.DisplayInformation();
            di.OrientationChanged += new Common.WeakReference<DeviceUtils, DisplayInformation, object>(this)
            {
                EventAction = (i, s, e) => i.Changed?.Invoke(i, EventArgs.Empty),
                DetachAction = (i, w) => di.OrientationChanged -= w.Handler
            }.Handler;

            var av = windowWrapper.ApplicationView();
            av.VisibleBoundsChanged += new Common.WeakReference<DeviceUtils, ApplicationView, object>(this)
            {
                EventAction = (i, s, e) => i.Changed?.Invoke(i, EventArgs.Empty),
                DetachAction = (i, w) => av.VisibleBoundsChanged -= w.Handler
            }.Handler;
        }
示例#13
0
        private MonitorUtils(IWindowWrapper windowWrapper)
        {
            var di = windowWrapper.DisplayInformation();
            di.OrientationChanged += new WeakReference<MonitorUtils, DisplayInformation, object>(this)
            {
                EventAction = (i, s, e) => i.Changed?.Invoke(i, EventArgs.Empty),
                DetachAction = (i, w) => di.OrientationChanged -= w.Handler
            }.Handler;

            var av = windowWrapper.ApplicationView();
            av.VisibleBoundsChanged += new WeakReference<MonitorUtils, ApplicationView, object>(this)
            {
                EventAction = (i, s, e) => i.Changed?.Invoke(i, EventArgs.Empty),
                DetachAction = (i, w) => av.VisibleBoundsChanged -= w.Handler
            }.Handler;

            Inches = new InchesInfo(windowWrapper);
            Pixels = new PixelsInfo(windowWrapper);
        }
示例#14
0
        public ViewModel(IDeploymentAppSettings appSettings, IWindowWrapper windowWrapper)
        {
            _windowWrapper = windowWrapper;
            IsBusy         = false;

            ProjectFolder  = appSettings.ProjectFolder;
            LogFolder      = appSettings.LogFolder;
            SqlServer      = appSettings.SqlServer;
            NoTransaction  = appSettings.NoTransaction;
            ForceRollback  = appSettings.ForceRollback;
            CheckFilesOnly = appSettings.CheckFilesOnly;
            BypassCheck    = appSettings.BypassCheck;

            _serversList = new List <ComboBoxItem>
            {
                new ComboBoxItem {
                    Content = "localhost"
                },
                new ComboBoxItem {
                    Content = "searching for servers...", IsEnabled = false
                }
            };

            _projectFolderCommand = new DelegateCommand <string>(s =>
            {
                string selectedPath;
                if (_windowWrapper.ShowFolderDialog("Select Project Folder", s, out selectedPath))
                {
                    ProjectFolder = selectedPath;
                }
            }, s => IsAvailable);

            _logFolderCommand = new DelegateCommand <string>(s =>
            {
                string selectedPath;
                if (_windowWrapper.ShowFolderDialog("Select Log Folder", s, out selectedPath))
                {
                    LogFolder = selectedPath;
                }
            }, s => IsAvailable);
        }
示例#15
0
        public async Task InvokeImageChanged(IViewWrapper view, IWindowWrapper selectedWindow)
        {
            if (view.NativeObject is NSImageView imageView)
            {
                var image = await OpenDialogSelectImage(selectedWindow);

                if (image != null)
                {
                    SetButton(new MacImageViewWrapper(imageView), image);
                }
            }
            else if (view.NativeObject is NSButton btn)
            {
                var image = await OpenDialogSelectImage(selectedWindow);

                if (image != null)
                {
                    SetButton(new MacButtonWrapper(btn), image);
                }
            }
        }
示例#16
0
        private MonitorUtils(IWindowWrapper windowWrapper)
        {
            var di = windowWrapper.DisplayInformation();

            di.OrientationChanged += new WeakReference <MonitorUtils, DisplayInformation, object>(this)
            {
                EventAction  = (i, s, e) => i.Changed?.Invoke(i, EventArgs.Empty),
                DetachAction = (i, w) => di.OrientationChanged -= w.Handler
            }.Handler;

            var av = windowWrapper.ApplicationView();

            av.VisibleBoundsChanged += new WeakReference <MonitorUtils, ApplicationView, object>(this)
            {
                EventAction  = (i, s, e) => i.Changed?.Invoke(i, EventArgs.Empty),
                DetachAction = (i, w) => av.VisibleBoundsChanged -= w.Handler
            }.Handler;

            Inches = new InchesInfo(windowWrapper);
            Pixels = new PixelsInfo(windowWrapper);
        }
示例#17
0
        private DeviceUtils(IWindowWrapper windowWrapper)
        {
            MonitorUtils  = MonitorUtils.Current(windowWrapper);
            WindowWrapper = windowWrapper ?? Locator.WindowWrapper.Current();

            var di = windowWrapper.DisplayInformation();

            di.OrientationChanged += new Common.WeakReference <DeviceUtils, DisplayInformation, object>(this)
            {
                EventAction  = (i, s, e) => i.Changed?.Invoke(i, EventArgs.Empty),
                DetachAction = (i, w) => di.OrientationChanged -= w.Handler
            }.Handler;

            var av = windowWrapper.ApplicationView();

            av.VisibleBoundsChanged += new Common.WeakReference <DeviceUtils, ApplicationView, object>(this)
            {
                EventAction  = (i, s, e) => i.Changed?.Invoke(i, EventArgs.Empty),
                DetachAction = (i, w) => av.VisibleBoundsChanged -= w.Handler
            }.Handler;
        }
示例#18
0
        //public NSImage ToNSImage(BitmapImage img)
        //{
        //	System.IO.MemoryStream s = new System.IO.MemoryStream();
        //	img.Save(s, ImageFileType.Png);
        //	byte[] b = s.ToArray();
        //	CGDataProvider dp = new CGDataProvider(b, 0, (int)s.Length);
        //	s.Flush();
        //	s.Close();
        //	CGImage img2 = CGImage.FromPNG(dp, null, false, CGColorRenderingIntent.Default);
        //	return new NSImage(img2, new CGSize (img2.Width, img2.Height));
        //}

        public async Task <IImageWrapper> OpenDialogSelectImage(IWindowWrapper selectedWindow)
        {
            var panel = new NSOpenPanel();

            panel.AllowedFileTypes = new[] { "png" };
            panel.Prompt           = "Select a image";
            IImageWrapper rtrn = null;

            processingCompletion = new TaskCompletionSource <object>();

            panel.BeginSheet(selectedWindow.NativeObject as NSWindow, result =>
            {
                if (result == 1 && panel.Url != null)
                {
                    rtrn = new MacImageWrapper(new NSImage(panel.Url.Path));// Xwt.Drawing.Image.FromFile(panel.Url.Path);
                }
                processingCompletion.TrySetResult(null);
            });
            await processingCompletion.Task;

            return(rtrn);
        }
示例#19
0
 public bool ContainsChildWindow(IWindowWrapper debugOverlayWindow)
 {
     return(window.ChildWindows.Contains(debugOverlayWindow.NativeObject as NSWindow));
 }
示例#20
0
 public void AddChildWindow(IWindowWrapper borderer)
 {
     window.AddChildWindow(borderer.NativeObject as NSWindow, NSWindowOrderingMode.Above);
 }
示例#21
0
 public InchesInfo(IWindowWrapper windowWrapper)
 {
     WindowWrapper = windowWrapper;
 }
示例#22
0
 public PixelsInfo(IWindowWrapper windowWrapper)
 {
     WindowWrapper = windowWrapper;
 }
示例#23
0
 public PixelsInfo(IWindowWrapper windowWrapper)
 {
     WindowWrapper = windowWrapper;
 }
示例#24
0
 public InchesInfo(IWindowWrapper windowWrapper)
 {
     WindowWrapper = windowWrapper;
 }
示例#25
0
 public Task <Image> OpenDialogSelectImage(IWindowWrapper selectedWindow)
 {
     throw new NotImplementedException();
 }
示例#26
0
 public void RemoveAllErrorWindows(IWindowWrapper windowWrapper)
 {
     throw new NotImplementedException();
 }
示例#27
0
 public void GenerateTree(IWindowWrapper window, InspectorViewMode viewMode)
 {
     data = new NodeView(window.ContentView);
     inspectorDelegate.ConvertToNodes(window.ContentView, new MacNodeWrapper(data), viewMode);
     outlineView.SetData(data);
 }
示例#28
0
 public void SetCultureInfo(IWindowWrapper selectedWindow, CultureInfo e)
 {
 }
示例#29
0
 public NSFirstResponderWatcher(IWindowWrapper window)
 {
     this.window = window;
 }
示例#30
0
 public Task InvokeImageChanged(IViewWrapper view, IWindowWrapper selectedWindow)
 {
     throw new NotImplementedException();
 }