12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- part of cool_ui;
- typedef PaintCallback = void Function(PaintingContext context, Offset offset,Size size);
- class PaintEvent extends SingleChildRenderObjectWidget{
- final PaintCallback paintBefore;
- final PaintCallback paintAfter;
- const PaintEvent({
- Key key,
- this.paintBefore,
- this.paintAfter,
- Widget child
- }) :
- super(key: key, child: child);
- @override
- PaintEventProxyBox createRenderObject(BuildContext context) {
- return PaintEventProxyBox(
- paintAfter: paintAfter,
- paintBefore: paintBefore
- );
- }
- @override
- void updateRenderObject(BuildContext context, PaintEventProxyBox renderObject) {
- renderObject..paintAfter = paintBefore
- ..paintAfter = paintAfter;
- }
- }
- class PaintEventProxyBox extends RenderProxyBox{
- PaintCallback paintBefore;
- PaintCallback paintAfter;
- PaintEventProxyBox({
- RenderBox child,
- this.paintBefore,
- this.paintAfter
- }):super(child);
- @override
- void detach() {
- super.detach();
- markNeedsPaint();
- }
- @override
- void paint(PaintingContext context, Offset offset) {
- assert(size.width != null);
- assert(size.height != null);
- if(this.paintBefore != null){
- this.paintBefore(context,offset,size);
- }
- super.paint(context, offset);
- if(this.paintAfter != null){
- this.paintAfter(context,offset,size);
- }
- }
- }
|