Skip to content

Instantly share code, notes, and snippets.

@davidhicks980
davidhicks980 / main.dart
Created March 10, 2026 19:58
Button Demo
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/semantics.dart';
void main() {
runApp(const ButtonDemoApp());
}
class ButtonDemoApp extends StatelessWidget {
const ButtonDemoApp({super.key});
@davidhicks980
davidhicks980 / main.dart
Last active March 8, 2026 02:45
StackPortal
import 'dart:ui' as ui;
import 'package:flutter/foundation.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
extension type OutletPositioner._(RenderBox renderBox) {
StackOutletParentData get _parentData => renderBox.parentData! as StackOutletParentData;
Size get size => renderBox.size;
Size get anchorSize => _parentData.anchorSize ?? Size.zero;
@davidhicks980
davidhicks980 / main.dart
Last active March 28, 2026 13:50
Stack Portal demo
import 'package:flutter/material.dart' hide MenuController, RawMenuAnchor;
import 'dart:ui' as ui;
import 'package:flutter/foundation.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter/rendering.dart';
void main() {
runApp(const MaterialApp(home: CascadingMenuExample()));
@davidhicks980
davidhicks980 / main.dart
Last active March 28, 2026 13:30
RawMenuNode Animated Example
import 'dart:ui' as ui;
import 'package:flutter/foundation.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
/*** DEMO START ***/
void main() {
@davidhicks980
davidhicks980 / main.dart
Last active March 28, 2026 13:32
RawMenuNode Basic Demo
import 'dart:ui' as ui;
import 'package:flutter/foundation.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
/*** DEMO START ***/
void main() {
@davidhicks980
davidhicks980 / main.dart
Created February 28, 2026 18:03
RawMenuNode
import 'dart:ui' as ui;
import 'package:flutter/foundation.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
const bool _kDebugMenus = false;
const Map<ShortcutActivator, Intent> _kMenuTraversalShortcuts = <ShortcutActivator, Intent>{
@davidhicks980
davidhicks980 / menu_anchor.dart
Last active February 10, 2026 14:15
CupertinoMenuAnchor reland changes
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/// @docImport 'package:flutter/material.dart';
library;
import 'dart:collection';
import 'dart:math' as math;
import 'dart:ui' as ui;
@davidhicks980
davidhicks980 / main.dart
Last active November 14, 2025 09:12
WidgetStateScope demo
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const RawButtonApp());
}
class RawButtonApp extends StatelessWidget {
const RawButtonApp({super.key});
@davidhicks980
davidhicks980 / main.dart
Last active February 8, 2026 23:33
CupertinoMenuAnchor
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
/// @docImport 'package:flutter/material.dart';
library;
import 'dart:collection';
import 'dart:math' as math;
import 'dart:ui' as ui;
@davidhicks980
davidhicks980 / main.dart
Last active August 29, 2025 11:19
CupertinoMenuAnchor draft
import 'dart:async';
import 'dart:math' as math;
import 'dart:ui' as ui;
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/physics.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/scheduler.dart';