public override Widget build(BuildContext context) { ClipRRect child = new ClipRRect ( borderRadius: BorderRadius.circular(scrollBarSize / 2), child: new Container(padding: EdgeInsets.fromLTRB(2, 2, 2, 2), color: Theme.of(context).indicatorColor) ); float width = widget.direction == NodeEditorScrollBarDirection.X ? widget.scrollViewSize.x * Math.Min(widget.scrollViewSize.x / widget.scrollContentSize.x, 1) : scrollBarSize; float height = widget.direction == NodeEditorScrollBarDirection.X ? scrollBarSize : widget.scrollViewSize.y * Math.Min(widget.scrollViewSize.y / widget.scrollContentSize.y, 1); return(widget.direction == NodeEditorScrollBarDirection.X ? new Positioned ( child: child, width: width, bottom: 2, height: height, left: (widget.scrollViewSize.x - width) * widget.scrollViewOffset.x / (widget.scrollViewSize.x - widget.scrollContentSize.x) ): new Positioned ( child: child, width: width, top: (widget.scrollViewSize.y - height) * widget.scrollViewOffset.y / (widget.scrollViewSize.y - widget.scrollContentSize.y), height: height, right: 2 )); }
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.widget.tipMenuItems.ForEach(tipMenuItem => { items.Add(_buildToolbarButton(text: tipMenuItem.title, onPressed: tipMenuItem.onTap)); var index = this.widget.tipMenuItems.IndexOf(item: tipMenuItem); if (this.widget.tipMenuItems.Count > 1 && index < this.widget.tipMenuItems.Count) { items.Add(item: onePhysicalPixelVerticalDivider); } }); 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) ) ); return(new AnimatedBuilder( animation: this._animationController, builder: (cxt, child) => new Opacity( opacity: this._animationOpacity.value, child: toolbar ) )); }
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) { 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) { D.assert(material_.debugCheckHasMaterial(context)); Color currentColor = null; Color currentFillColor = null; Color currentFocusColor = null; Color currentHoverColor = null; Color currentSplashColor = null; ThemeData theme = Theme.of(context); ToggleButtonsThemeData toggleButtonsTheme = ToggleButtonsTheme.of(context); if (onPressed != null && selected) { currentColor = selectedColor ?? toggleButtonsTheme.selectedColor ?? theme.colorScheme.primary; currentFillColor = fillColor ?? theme.colorScheme.primary.withOpacity(0.12f); currentFocusColor = focusColor ?? toggleButtonsTheme.focusColor ?? theme.colorScheme.primary.withOpacity(0.12f); currentHoverColor = hoverColor ?? toggleButtonsTheme.hoverColor ?? theme.colorScheme.primary.withOpacity(0.04f); currentSplashColor = splashColor ?? toggleButtonsTheme.splashColor ?? theme.colorScheme.primary.withOpacity(0.16f); } else if (onPressed != null && !selected) { currentColor = color ?? toggleButtonsTheme.color ?? theme.colorScheme.onSurface.withOpacity(0.87f); currentFillColor = theme.colorScheme.surface.withOpacity(0.0f); currentFocusColor = focusColor ?? toggleButtonsTheme.focusColor ?? theme.colorScheme.onSurface.withOpacity(0.12f); currentHoverColor = hoverColor ?? toggleButtonsTheme.hoverColor ?? theme.colorScheme.onSurface.withOpacity(0.04f); currentSplashColor = splashColor ?? toggleButtonsTheme.splashColor ?? theme.colorScheme.onSurface.withOpacity(0.16f); } else { currentColor = disabledColor ?? toggleButtonsTheme.disabledColor ?? theme.colorScheme.onSurface.withOpacity(0.38f); currentFillColor = theme.colorScheme.surface.withOpacity(0.0f); } TextStyle currentTextStyle = textStyle ?? toggleButtonsTheme.textStyle ?? theme.textTheme.bodyText2; BoxConstraints currentConstraints = constraints ?? toggleButtonsTheme.constraints ?? new BoxConstraints(minWidth: material_.kMinInteractiveDimension, minHeight: material_.kMinInteractiveDimension); Widget result = new ClipRRect( borderRadius: clipRadius, child: new RawMaterialButton( textStyle: currentTextStyle.copyWith( color: currentColor ), constraints: currentConstraints, elevation: 0.0f, highlightElevation: 0.0f, fillColor: currentFillColor, focusColor: currentFocusColor, highlightColor: highlightColor ?? theme.colorScheme.surface.withOpacity(0.0f), hoverColor: currentHoverColor, splashColor: currentSplashColor, focusNode: focusNode, materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, onPressed: onPressed, child: child ) ); return(new _SelectToggleButton( key: key, leadingBorderSide: leadingBorderSide, horizontalBorderSide: horizontalBorderSide, trailingBorderSide: trailingBorderSide, borderRadius: borderRadius, isFirstButton: isFirstButton, isLastButton: isLastButton, child: result )); }