예제 #1
0
        internal override async Task Changed(bool e)
        {
            Collapsing = true;

            BSCollapseEvent = new BSCollapseEvent()
            {
                Target = this
            };
            if (e)
            {
                await ShowEvent.InvokeAsync(BSCollapseEvent).ConfigureAwait(false);

                EventQue.Add(ShownEvent);
            }
            else
            {
                if (IsNavbar && Navbar != null)
                {
                    if (Navbar.HasCollapsed == false)
                    {
                        Navbar.HasCollapsed = true;
                        Navbar.Visible      = false;
                    }
                }
                await HideEvent.InvokeAsync(BSCollapseEvent).ConfigureAwait(false);

                EventQue.Add(HiddenEvent);
            }
        }
 internal override void Changed(bool e)
 {
     BSCollapseEvent = new BSCollapseEvent()
     {
         Target = this
     };
     if (e)
     {
         ShowEvent.InvokeAsync(BSCollapseEvent);
         EventQue.Add(ShownEvent);
     }
     else
     {
         if (IsNavbar && Navbar != null)
         {
             if (Navbar.HasCollapsed == false)
             {
                 Navbar.HasCollapsed = true;
                 Navbar.Visable      = false;
             }
         }
         HideEvent.InvokeAsync(BSCollapseEvent);
         EventQue.Add(HiddenEvent);
     }
 }
예제 #3
0
        internal override async Task Changed(bool e)
        {
            if (!_isInitialized)
            {
                return;
            }
            OnChanged?.Invoke(e);
            BSModalEvent = new BSModalEvent()
            {
                Target = this
            };
            if (e)
            {
                if (!IsInline)
                {
                    _ = await _jsRuntime.InvokeAsync <string>("blazorStrap.modal.open", Me.Id).ConfigureAwait(false);

                    _ = await _jsRuntime.InvokeAsync <string>("blazorStrap.modal.initOnEscape", Me.Id).ConfigureAwait(false);
                }
                _onEscapeCallback += OnEscapeCallback;
                //await BlazorStrapInterop.ModalEscapeKey(this);
                new Task(async() =>
                {
                    _toggleModel = true;
                    await InvokeAsync(StateHasChanged).ConfigureAwait(false);
                    await Task.Delay(300).ConfigureAwait(false);
                    _toggleShow = e;
                    await InvokeAsync(StateHasChanged).ConfigureAwait(false);
                }).Start();
                await ShowEvent.InvokeAsync(BSModalEvent).ConfigureAwait(false);
            }
            else
            {
                new Task(async() =>
                {
                    _toggleShow = e;
                    await InvokeAsync(StateHasChanged).ConfigureAwait(false);
                    await Task.Delay(300).ConfigureAwait(false);
                    _toggleModel = false;
                    await InvokeAsync(StateHasChanged).ConfigureAwait(false);
                }).Start();
                await HideEvent.InvokeAsync(BSModalEvent).ConfigureAwait(false);

                if (!IsInline)
                {
                    _onEscapeCallback -= OnEscapeCallback;
                    _ = await _jsRuntime.InvokeAsync <string>("blazorStrap.modal.close", Me.Id).ConfigureAwait(false);
                }
                //await BlazorStrapInterop.RemoveBodyClass("modal-open");
            }
        }
예제 #4
0
        IEnumerator HideCoroutine(bool fast)
        {
            IsMoving = true;

            _backCloseImage.raycastTarget = false;

            if (_animType == PopupAnimTypes.Move)
            {
                Vector2 pos = _initPos;

                if (!_moveHor)
                {
                    pos.y += _moveDir * _backCloseRect.height;
                }
                else
                {
                    pos.x += _moveDir * _backCloseRect.height;
                }

                if (!fast)
                {
                    _frameRectTr.DOAnchorPos(pos, _animTime).SetEase(Ease.InBack);
                }
                else
                {
                    _frameRectTr.anchoredPosition = pos;
                }
            }

            if (_animType == PopupAnimTypes.Scale)
            {
                _frameRectTr.localScale = Vector3.one;
                _frameRectTr.DOScale(Vector3.one * .1f, _animTime).SetEase(Ease.InBack);
            }

            _backCloseImage.DOFade(0, !fast ? _animTime : 0).SetEase(Ease.Linear);

            yield return(new WaitForSeconds(_animTime));

            IsBusy = false;

            s_popupsList.Remove(this);

            IsMoving = false;

            gameObject.SetActive(_avtiveWhenHidden);

            HideEvent?.Invoke();
        }
예제 #5
0
 void Update()
 {
     transform.position = Input.mousePosition;
     if (collideObj != null)
     {
         collideObj.transform.position = _cameraMain.ScreenToWorldPoint(transform.position);
     }
     if (Input.GetMouseButtonUp(0))
     {
         // StartCoroutine(DestroyInNextFrame());
         collideObj.GetComponent <RangeIndicatorCollideObj>().Run(useAction);
         Destroy(gameObject);
         HideEvent?.Invoke();
     }
 }
예제 #6
0
        internal override async Task Changed(bool e)
        {
            if (!_isInitialized)
            {
                return;
            }
            if (!DisableAnimations)
            {
                _drawing = true;
                await new BlazorStrapInterop(JSRuntime).AddEventAnimationEnd(MyRef);
            }
            else
            {
                _canShow = true;
                return;
            }
            BSModalEvent = new BSModalEvent()
            {
                Target = this
            };
            if (e)
            {
                await new BlazorStrapInterop(JSRuntime).AddBodyClass("modal-open");
                if (!IgnoreEscape)
                {
                    await new BlazorStrapInterop(JSRuntime).ModalEscapeKey();
                    BlazorStrapInterop.OnEscapeEvent += OnEscape;
                }
                new Task(async() =>
                {
                    await Task.Delay(300).ConfigureAwait(false);
                    _canShow = true;
                    await InvokeAsync(StateHasChanged).ConfigureAwait(false);
                }).Start();
                await ShowEvent.InvokeAsync(BSModalEvent).ConfigureAwait(false);
            }
            else
            {
                await new BlazorStrapInterop(JSRuntime).RemoveClass(MyRef, "show");
                new Task(async() =>
                {
                    await Task.Delay(300).ConfigureAwait(false);
                    await new BlazorStrapInterop(JSRuntime).RemoveBodyClass("modal-open");
                }).Start();

                await HideEvent.InvokeAsync(BSModalEvent).ConfigureAwait(false);
            }
        }
예제 #7
0
 internal override void Changed(bool e)
 {
     BSDropdownEvent = new BSDropdownEvent()
     {
         Target = this
     };
     if (e)
     {
         ShowEvent.InvokeAsync(BSDropdownEvent);
         EventQue.Add(ShownEvent);
     }
     else
     {
         HideEvent.InvokeAsync(BSDropdownEvent);
         EventQue.Add(HiddenEvent);
     }
 }
예제 #8
0
 public void Hide()
 {
     if (HookCursor)
     {
         Cursor.visible = _wasCursorVisible;
     }
     if (LockInput)
     {
         if (_wasLocked)
         {
             InputUtil.Instance.UnlockInput(this);
         }
         _wasLocked = false;
     }
     Draw = false;
     HideEvent.Invoke();
 }
예제 #9
0
        internal override async Task Changed(bool e)
        {
            if (!_isInitialized)
            {
                return;
            }

            BSModalEvent = new BSModalEvent()
            {
                Target = this
            };
            if (e)
            {
                await new BlazorStrapInterop(JSRuntime).AddBodyClass("modal-open");
                if (!IgnoreEscape)
                {
                    //TODO: This sucks make it better
                    await new BlazorStrapInterop(JSRuntime).ModalEscapeKey();
                    BlazorStrapInterop.OnEscapeEvent += OnEscape;
                }
                new Task(async() =>
                {
                    _toggleModel = true;
                    await InvokeAsync(StateHasChanged).ConfigureAwait(false);
                    await Task.Delay(300).ConfigureAwait(false);
                    _toggleShow = e;
                    await InvokeAsync(StateHasChanged).ConfigureAwait(false);
                }).Start();
                await ShowEvent.InvokeAsync(BSModalEvent).ConfigureAwait(false);
            }
            else
            {
                new Task(async() =>
                {
                    _toggleShow = e;
                    await InvokeAsync(StateHasChanged).ConfigureAwait(false);
                    await Task.Delay(300).ConfigureAwait(false);
                    _toggleModel = false;
                    await InvokeAsync(StateHasChanged).ConfigureAwait(false);
                }).Start();
                await HideEvent.InvokeAsync(BSModalEvent).ConfigureAwait(false);

                await new BlazorStrapInterop(JSRuntime).RemoveBodyClass("modal-open");
            }
        }
예제 #10
0
 internal override void Changed(bool e)
 {
     BSModalEvent = new BSModalEvent()
     {
         Target = this
     };
     if (e)
     {
         ShowEvent.InvokeAsync(BSModalEvent);
         EventQue.Add(ShownEvent);
     }
     else
     {
         Closed = true;
         HideEvent.InvokeAsync(BSModalEvent);
         EventQue.Add(HiddenEvent);
     }
 }
예제 #11
0
        /// <summary>
        /// Processes the message
        /// </summary>
        /// <param name="connectionBase">The connection base</param>
        /// <param name="message">The playerio message</param>
        /// <param name="handled">Whether the message was already handled</param>
        public void Process(ConnectionBase connectionBase, Message message, bool handled)
        {
            WorldConnection worldCon = (WorldConnection)connectionBase;

            List <KeyTrigger> triggers = new List <KeyTrigger>();

            for (uint i = 0; i < message.Count; i++)
            {
                if (message[i] is string)
                {
                    Key key = (Key)Enum.Parse(typeof(Key), message.GetString(i), true);
                    if (key != Key.TimeDoor && key != Key.TimeGate)
                    {
                        i++;
                        int userId = message.GetInt(i);
                        triggers.Add(new KeyPress(key, userId));
                    }
                    else
                    {
                        triggers.Add(new KeyTrigger(key));
                    }

                    if (!handled)
                    {
                        worldCon.Keys.SetKeyHidden(key);
                    }
                }
            }

            HideEvent hideEvent = new HideEvent()
            {
                Raw      = message,
                Triggers = triggers
            };

            connectionBase.RaiseServerEvent <HideEvent>(hideEvent);
        }
예제 #12
0
 protected void OnHideEvent(WindowInfoWithHandle windowInfo)
 {
     HideEvent?.Invoke(this, new OriginalWinEventArg(windowInfo));
 }
예제 #13
0
        public PopupLayout()
        {
            // 点击手势
            var tap = new TapGestureRecognizer();

            // 点击手势响应事件
            tap.Tapped += async(sender, e) =>
            {
                HideEvent?.Invoke(sender, e);
                await HidePopup();
            };
            // 绝对布局添加点击手势
            _canvasView.GestureRecognizers.Add(tap);

            // 画布定位方式(大小按比例)
            _canvasView.SetValue(AbsoluteLayout.LayoutFlagsProperty, AbsoluteLayoutFlags.SizeProportional);
            // 画布定位
            _canvasView.SetValue(AbsoluteLayout.LayoutBoundsProperty, new Rectangle(0, 0, 1, 1));

            // 将画布添加到绝对布局中
            _absoluteLayout.Children.Add(_canvasView);

            // 弹窗列表改变事件
            PopupItems.CollectionChanged += (object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) =>
            {
                var items = (ObservableCollection <PopupItem>)sender;

                foreach (var item in items)
                {
                    var view = item.Content;
                    if (!_absoluteLayout.Children.Contains(view))
                    {
                        // 设置不可见
                        view.IsVisible = false;
                        // 设置透明度0
                        view.Opacity = 1;

                        // 弹窗定位方式(绝对定位)
                        view.SetValue(AbsoluteLayout.LayoutFlagsProperty, AbsoluteLayoutFlags.None);

                        // 将弹窗添加进绝对布局
                        _absoluteLayout.Children.Add(view);
                    }
                }
            };

            // 画布绘图事件
            _canvasView.PaintSurface += (sender, e) =>
            {
                // 获取画布实例
                var canvas = e.Surface.Canvas;
                // 清除画布
                canvas.Clear();

                if (!_isDrawTriangle)
                {
                    return;
                }

                // 计算画布上的画图区域
                var rect = new Rectangle(_rect.X / Width * e.Info.Width,
                                         _rect.Y / Height * e.Info.Height,
                                         _rect.Width / Width * e.Info.Width,
                                         _rect.Height / Height * e.Info.Height);

                _drawX = _drawX / Width * e.Info.Width;

                // 实例化刷子
                var paint = new SKPaint {
                    Style = SKPaintStyle.StrokeAndFill, Color = SKColors.Gainsboro, IsAntialias = true
                };

                // 实例化路径
                var path = new SKPath();

                // 箭头方向向上
                if (_isArrowUp)
                {
                    // 绘制路径
                    path.MoveTo((float)(_drawX + 15), (float)(rect.Y));
                    path.LineTo((float)(_drawX + 30), (float)(rect.Y - 20));
                    path.LineTo((float)(_drawX + 45), (float)(rect.Y));
                    path.LineTo((float)(rect.X + rect.Width), (float)(rect.Y));
                    path.LineTo((float)(rect.X + rect.Width), (float)(rect.Y + rect.Height));
                    path.LineTo((float)(rect.X), (float)(rect.Y + rect.Height));
                    path.LineTo((float)(rect.X), (float)(rect.Y));
                    path.Close();
                }
                else
                {
                    // 绘制路径
                    path.MoveTo((float)(_drawX + 15), (float)(rect.Y + rect.Height));
                    path.LineTo((float)(_drawX + 30), (float)(rect.Y + rect.Height + 20));
                    path.LineTo((float)(_drawX + 45), (float)(rect.Y + rect.Height));
                    path.LineTo((float)(rect.X + rect.Width), (float)(rect.Y + rect.Height));
                    path.LineTo((float)(rect.X + rect.Width), (float)(rect.Y));
                    path.LineTo((float)(rect.X), (float)(rect.Y));
                    path.LineTo((float)(rect.X), (float)(rect.Y + rect.Height));
                    path.Close();
                }

                // 按路径绘图
                canvas.DrawPath(path, paint);
            };
        }