Example #1
0
 public static void createView(CustomToastItem toastItem)
 {
     _overlayState = Overlay.of(context: toastItem.context);
     _overlayEntry = new OverlayEntry(
         _context => new CustomToastWidget(
             gravity: toastItem.gravity,
             new Container(
                 width: MediaQuery.of(context: _context).size.width,
                 alignment: Alignment.center,
                 child: new Container(
                     decoration: new BoxDecoration(
                         color: toastItem.backgroundColor,
                         borderRadius: BorderRadius.circular(radius: toastItem.radius)
                         ),
                     margin: EdgeInsets.symmetric(horizontal: 20),
                     padding: EdgeInsets.fromLTRB(16, 10, 16, 10),
                     child: new Text(
                         data: toastItem.message,
                         style: CTextStyle.PLargeTitle.copyWith(color: toastItem.textColor)
                         )
                     )
                 )
             )
         );
     _isVisible = true;
     _overlayState.insert(entry: _overlayEntry);
     _timer = Window.instance.run((TimeSpan)toastItem.duration, callback: dismiss);
 }
Example #2
0
        void _createTipMenu(BuildContext context, ArrowDirection arrowDirection, Offset position, Size size)
        {
            dismiss();
            float triangleY = arrowDirection == ArrowDirection.up
                ? position.dy
                : position.dy - CustomTextSelectionControlsUtils._kToolbarTriangleSize.height
                              - this._getTipMenuHeight(context: context);

            _overlayState = Overlay.of(context: context);
            _overlayEntry = new OverlayEntry(
                _context => Positioned.fill(
                    new GestureDetector(
                        onTap: dismiss,
                        child: new Container(
                            color: CColors.Transparent,
                            child: new Stack(
                                children: new List <Widget> {
                new Positioned(
                    top: triangleY,
                    left: size.width / 2.0f + position.dx - 25 * this.tipMenuItems.Count,
                    child: new _TipMenuContent(
                        tipMenuItems: this.tipMenuItems,
                        arrowDirection: arrowDirection
                        )
                    )
            }
                                )
                            )
                        )
                    )
                );
            _isVisible = true;
            _overlayState.insert(entry: _overlayEntry);
        }
Example #3
0
        void _createTipMenu(BuildContext context, ArrowDirection arrowDirection, Offset position, Size size)
        {
            dismiss();
            var   width         = MediaQuery.of(context: context).size.width - 32 * this.tipMenuItems.Count;
            float tipMenuHeight = this._getTipMenuHeight(context: context);
            float triangleY     = arrowDirection == ArrowDirection.up
                ? position.dy
                : position.dy - CustomTextSelectionControlsUtils._kToolbarTriangleSize.height
                                  - tipMenuHeight;
            float left;
            float childCenterX = size.width / 2.0f + position.dx;

            if (childCenterX >= width)
            {
                left = width - 32 * this.tipMenuItems.Count - 16;
            }
            else
            {
                left = childCenterX - 32 * this.tipMenuItems.Count;
            }

            List <Widget> children;

            if (arrowDirection == ArrowDirection.down)
            {
                children = new List <Widget> {
                    new Positioned(
                        top: triangleY,
                        left: left,
                        child: new _TipMenuContent(
                            tipMenuItems: this.tipMenuItems
                            )
                        ),
                    new Positioned(
                        top: triangleY + tipMenuHeight,
                        left: childCenterX,
                        child: new _TipMenuTriangle(
                            arrowDirection: arrowDirection
                            )
                        )
                };
            }
            else
            {
                children = new List <Widget> {
                    new Positioned(
                        top: triangleY,
                        left: childCenterX,
                        child: new _TipMenuTriangle(
                            arrowDirection: arrowDirection
                            )
                        ),
                    new Positioned(
                        top: triangleY + CustomTextSelectionControlsUtils._kToolbarTriangleSize.height,
                        left: left,
                        child: new _TipMenuContent(
                            tipMenuItems: this.tipMenuItems
                            )
                        )
                };
            }

            _overlayState = Overlay.of(context: context);
            _overlayEntry = new OverlayEntry(
                _context => Positioned.fill(
                    new GestureDetector(
                        onTap: dismiss,
                        child: new Container(
                            color: CColors.Transparent,
                            child: new Stack(
                                children: children
                                )
                            )
                        )
                    )
                );
            _isVisible = true;
            _overlayState.insert(entry: _overlayEntry);
        }