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); }
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); }
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); }