public override Widget buildHandle(BuildContext context, TextSelectionHandleType type, float textLineHeight) { Size desiredSize = getHandleSize(textLineHeight); Widget handle = SizedBox.fromSize( size: desiredSize, child: new CustomPaint( painter: new _TextSelectionHandlePainter(CupertinoTheme.of(context).primaryColor) ) ); var result = Matrix4.identity(); result.translate(desiredSize.width / 2, desiredSize.height / 2); result.rotateZ(Mathf.PI); result.translate(-desiredSize.width / 2, -desiredSize.height / 2); switch (type) { case TextSelectionHandleType.left: return(handle); case TextSelectionHandleType.right: return(new Transform( transform: result, child: handle )); case TextSelectionHandleType.collapsed: return(new SizedBox()); } D.assert(type != null); return(null); }
public override Widget build(BuildContext context) { return(new CustomPaint( foregroundPainter: new _MaterialPainter( SrcOffset, SrcSize, GameMaterial.GetMaterial(context) ), child: SizedBox.fromSize(size: Size) )); }
static Widget _buildTriangle() { return(SizedBox.fromSize( size: triangleSize, child: new CustomPaint( painter: new TrianglePainter( arrowDirection: ArrowDirection.up, color: CColors.PrimaryBlue ) ) )); }
public override Widget buildHandle(BuildContext context, TextSelectionHandleType type, float textLineHeight) { Size desiredSize = new Size( 2.0f * CustomTextSelectionControlsUtils._kHandlesPadding, textLineHeight + 2.0f * CustomTextSelectionControlsUtils._kHandlesPadding ); Widget handle = SizedBox.fromSize( size: desiredSize, child: new CustomPaint( painter: new _TextSelectionHandlePainter( new Offset( CustomTextSelectionControlsUtils._kHandlesPadding, textLineHeight + CustomTextSelectionControlsUtils._kHandlesPadding ) ) ) ); switch (type) { case TextSelectionHandleType.left: { Matrix3 matrix3 = Matrix3.makeRotate(Mathf.PI); matrix3.preConcat( Matrix3.makeTrans( -CustomTextSelectionControlsUtils._kHandlesPadding, -CustomTextSelectionControlsUtils._kHandlesPadding ) ); return(new Transform( transform: matrix3, child: handle )); } case TextSelectionHandleType.right: { return(new Transform( transform: Matrix3.makeTrans( -CustomTextSelectionControlsUtils._kHandlesPadding, -(textLineHeight + CustomTextSelectionControlsUtils._kHandlesPadding) ), child: handle )); } case TextSelectionHandleType.collapsed: return(new Container()); default: return(null); } }
public override Widget build(BuildContext context) { List <Widget> items = new List <Widget>(); Widget onePhysicalPixelVerticalDivider = new SizedBox(width: 1.0f / MediaQuery.of(context: context).devicePixelRatio); this.tipMenuItems.ForEach(tipMenuItem => { items.Add(_buildToolbarButton(text: tipMenuItem.title, onPressed: tipMenuItem.onTap)); var index = this.tipMenuItems.IndexOf(item: tipMenuItem); if (this.tipMenuItems.Count > 1 && index < this.tipMenuItems.Count) { items.Add(item: onePhysicalPixelVerticalDivider); } }); Widget triangle = SizedBox.fromSize( size: CustomTextSelectionControlsUtils._kToolbarTriangleSize, child: new CustomPaint( painter: new TrianglePainter( arrowDirection: this.arrowDirection ) ) ); Widget toolbar = new ClipRRect( borderRadius: CustomTextSelectionControlsUtils._kToolbarBorderRadius, child: new DecoratedBox( decoration: new BoxDecoration( color: CustomTextSelectionControlsUtils._kToolbarDividerColor, borderRadius: CustomTextSelectionControlsUtils._kToolbarBorderRadius, border: Border.all(color: CustomTextSelectionControlsUtils._kToolbarBackgroundColor, 0) ), child: new Row(mainAxisSize: MainAxisSize.min, children: items) ) ); List <Widget> menus = this.arrowDirection == ArrowDirection.down ? new List <Widget> { toolbar, triangle } : new List <Widget> { triangle, toolbar }; return(new Column( mainAxisSize: MainAxisSize.min, children: menus )); }
public override Widget build(BuildContext context) { return(SizedBox.fromSize(size: AppConstants.DIRECTION_BUTTON_SIZE * 2.8f, child: Transform.rotate( origin: new Offset(90, 90), degree: Mathf.PI / 4, child: new Column( mainAxisSize: MainAxisSize.min, children: new List <Widget>() { new SizedBox(height: AppConstants.DIRECTION_BUTTON_SPACE), new Row( children: new List <Widget>() { new SizedBox(width: AppConstants.DIRECTION_BUTTON_SPACE), new GBButton( size: AppConstants.DIRECTION_BUTTON_SIZE, () => { Game.of(context).Drop(); } ), new SizedBox(width: AppConstants.DIRECTION_BUTTON_SPACE), new GBButton( size: AppConstants.DIRECTION_BUTTON_SIZE, () => { Game.of(context).Right(); } ) } ), new SizedBox(height: AppConstants.DIRECTION_BUTTON_SPACE), new Row( children: new List <Widget>() { new SizedBox(width: AppConstants.DIRECTION_BUTTON_SPACE), new GBButton( size: AppConstants.DIRECTION_BUTTON_SIZE, () => { Game.of(context).Left(); } ), new SizedBox(width: AppConstants.DIRECTION_BUTTON_SPACE), new GBButton( size: AppConstants.DIRECTION_BUTTON_SIZE, () => { Game.of(context).Down(); } ) } ), new SizedBox(height: AppConstants.DIRECTION_BUTTON_SPACE) } ) ) )); }
public override Widget buildHandle(BuildContext context, TextSelectionHandleType type, float textLineHeight) { Size desiredSize = new Size( 2.0f * CupertinoTextSelectionUtils._kHandlesPadding, textLineHeight + 2.0f * CupertinoTextSelectionUtils._kHandlesPadding ); Widget handle = SizedBox.fromSize( size: desiredSize, child: new CustomPaint( painter: new _TextSelectionHandlePainter( origin: new Offset(CupertinoTextSelectionUtils._kHandlesPadding, textLineHeight + CupertinoTextSelectionUtils._kHandlesPadding) ) ) ); switch (type) { case TextSelectionHandleType.left: Matrix4 matrix = new Matrix4().rotationZ(Mathf.PI); matrix.translate(-CupertinoTextSelectionUtils._kHandlesPadding, -CupertinoTextSelectionUtils._kHandlesPadding); return(new Transform( transform: matrix, child: handle )); case TextSelectionHandleType.right: return(new Transform( transform: new Matrix4().translationValues( -CupertinoTextSelectionUtils._kHandlesPadding, -(textLineHeight + CupertinoTextSelectionUtils._kHandlesPadding), 0 ), child: handle )); case TextSelectionHandleType.collapsed: return(new Container()); } return(null); }
public override Widget build(BuildContext context) { Widget triangle = SizedBox.fromSize( size: CustomTextSelectionControlsUtils._kToolbarTriangleSize, child: new CustomPaint( painter: new TrianglePainter( arrowDirection: this.widget.arrowDirection ) ) ); return(new AnimatedBuilder( animation: this._animationController, builder: (cxt, child) => new Opacity( opacity: this._animationOpacity.value, child: triangle ) )); }
public override Widget build(BuildContext context) { var width = BrickSize.of(context).Size.width; return(SizedBox.fromSize( size: new Size(width, width), child: new Container( margin: EdgeInsets.all(width * 0.05f), padding: EdgeInsets.all(width * 0.1f), decoration: new BoxDecoration( border: Border.all( color: mColor, width: width * 0.1f ) ), child: new Container( color: mColor ) ) )); }
public override Widget build(BuildContext context) { List <Widget> items = new List <Widget>(); Widget onePhysicalPixelVerticalDivider = new SizedBox(width: 1.0f / MediaQuery.of(context).devicePixelRatio); if (this.handleCut != null) { items.Add(_buildToolbarButton("剪切", this.handleCut)); } if (this.handleCopy != null) { if (items.isNotEmpty()) { items.Add(onePhysicalPixelVerticalDivider); } items.Add(_buildToolbarButton("拷贝", this.handleCopy)); } if (this.handlePaste != null) { if (items.isNotEmpty()) { items.Add(onePhysicalPixelVerticalDivider); } items.Add(_buildToolbarButton("粘贴", this.handlePaste)); } if (this.handleSelectAll != null) { if (items.isNotEmpty()) { items.Add(onePhysicalPixelVerticalDivider); } items.Add(_buildToolbarButton("全选", this.handleSelectAll)); } Widget padding = new Padding(padding: EdgeInsets.only(bottom: 10.0f)); Widget triangle = SizedBox.fromSize( size: CustomTextSelectionControlsUtils._kToolbarTriangleSize, child: new CustomPaint( painter: new _TextSelectionToolbarNotchPainter((_ArrowDirection)this.arrowDirection) ) ); Widget toolbar = new ClipRRect( borderRadius: CustomTextSelectionControlsUtils._kToolbarBorderRadius, child: new DecoratedBox( decoration: new BoxDecoration( color: CustomTextSelectionControlsUtils._kToolbarDividerColor, borderRadius: CustomTextSelectionControlsUtils._kToolbarBorderRadius, border: Border.all(color: CustomTextSelectionControlsUtils._kToolbarBackgroundColor, 0) ), child: new Row(mainAxisSize: MainAxisSize.min, children: items) ) ); List <Widget> menus = this.arrowDirection == _ArrowDirection.down ? new List <Widget> { toolbar, triangle, padding } : new List <Widget> { padding, triangle, toolbar }; return(new Column( mainAxisSize: MainAxisSize.min, children: menus )); }
public override Widget build(BuildContext context) { List <Widget> items = new List <Widget>(); Widget onePhysicalPixelVerticalDivider = new SizedBox(width: 1.0f / MediaQuery.of(context).devicePixelRatio); CupertinoLocalizations localizations = CupertinoLocalizations.of(context); if (this.handleCut != null) { items.Add(this._buildToolbarButton(localizations.cutButtonLabel, this.handleCut)); } if (this.handleCopy != null) { if (items.isNotEmpty()) { items.Add(onePhysicalPixelVerticalDivider); } items.Add(this._buildToolbarButton(localizations.copyButtonLabel, this.handleCopy)); } if (this.handlePaste != null) { if (items.isNotEmpty()) { items.Add(onePhysicalPixelVerticalDivider); } items.Add(this._buildToolbarButton(localizations.pasteButtonLabel, this.handlePaste)); } if (this.handleSelectAll != null) { if (items.isNotEmpty()) { items.Add(onePhysicalPixelVerticalDivider); } items.Add(this._buildToolbarButton(localizations.selectAllButtonLabel, this.handleSelectAll)); } Widget triangle = SizedBox.fromSize( size: CupertinoTextSelectionUtils._kToolbarTriangleSize, child: new CustomPaint( painter: new _TextSelectionToolbarNotchPainter() ) ); return(new Column( mainAxisSize: MainAxisSize.min, children: new List <Widget> { new ClipRRect( borderRadius: CupertinoTextSelectionUtils._kToolbarBorderRadius, child: new DecoratedBox( decoration: new BoxDecoration( color: CupertinoTextSelectionUtils._kToolbarDividerColor, borderRadius: CupertinoTextSelectionUtils._kToolbarBorderRadius, border: Border.all(color: CupertinoTextSelectionUtils._kToolbarBackgroundColor, width: 0) ), child: new Row(mainAxisSize: MainAxisSize.min, children: items) ) ), triangle, new Padding(padding: EdgeInsets.only(bottom: 10.0f)) } )); }
public override Widget build(BuildContext context) { return(new Material( color: mColor, elevation: 2, shape: new CircleBorder(), child: new GestureDetector( behavior: HitTestBehavior.opaque, onTapDown: details => { this.setState(() => { mColor = widget.Color.withOpacity(0.5f); }); if (mTimer != null) { return; } mTapEnd = false; widget.OnTap(); if (!widget.EnableLongPress) { return; } Promise.Delayed(TimeSpan.FromMilliseconds(300)) .Then(() => { if (!mTapEnd) { mTimer = Window.instance.periodic(TimeSpan.FromMilliseconds(60), () => { if (mTapEnd) { mTimer?.cancel(); mTimer = null; } else { widget.OnTap(); } }); } }); }, onTapCancel: () => { mTimer?.cancel(); mTimer = null; mTapEnd = true; this.setState(() => { mColor = widget.Color; }); }, onTapUp: details => { mTimer?.cancel(); mTimer = null; mTapEnd = true; this.setState(() => { mColor = widget.Color; }); }, child: SizedBox.fromSize( size: widget.Size ) ) )); }