Exemplo n.º 1
0
        public Task ShowModalAsync(Control parent)
        {
            var tcs = new TaskCompletionSource <bool>();

            session = null;
            if (parent != null && parent.ParentWindow != null)
            {
                var nswindow = parent.ParentWindow.ControlObject as NSWindow;
                if (nswindow != null)
                {
                    Control.ParentWindow = nswindow;
                }
            }
            Callback.OnShown(Widget, EventArgs.Empty);

            Widget.Closed += HandleClosed;
            if (DisplayMode.HasFlag(DialogDisplayMode.Attached))
            {
                MacModal.BeginSheet(Control, out session, () => tcs.SetResult(true));
            }
            else
            {
                Control.MakeKeyWindow();
                Application.Instance.AsyncInvoke(() =>
                {
                    MacModal.Run(Control, out session);
                    tcs.SetResult(true);
                });
            }
            return(tcs.Task);
        }
Exemplo n.º 2
0
        public void ShowModal(Control parent)
        {
            session = null;
            if (parent != null && parent.ParentWindow != null)
            {
                var nswindow = parent.ParentWindow.ControlObject as NSWindow;
                if (nswindow != null)
                {
                    Control.ParentWindow = nswindow;
                }
            }
            Callback.OnShown(Widget, EventArgs.Empty);

            Widget.Closed += HandleClosed;
            if (DisplayMode.HasFlag(DialogDisplayMode.Attached))
            {
                MacModal.RunSheet(Control, out session);
            }
            else
            {
                Control.MakeKeyWindow();
                MacModal.Run(Control, out session);
            }
        }