{"id":15497968,"url":"https://github.com/rodydavis/golden_layout","last_synced_at":"2025-04-22T22:04:20.446Z","repository":{"id":53044503,"uuid":"261404819","full_name":"rodydavis/golden_layout","owner":"rodydavis","description":"Flutter Golden Layout","archived":false,"fork":false,"pushed_at":"2021-09-27T18:14:34.000Z","size":2191,"stargazers_count":51,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-18T17:30:38.713Z","etag":null,"topics":["dart","flutter","layout-engine","tiling-window-manager","window-management"],"latest_commit_sha":null,"homepage":"https://rodydavis.github.io/golden_layout/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rodydavis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-05T08:49:07.000Z","updated_at":"2024-06-19T20:19:15.000Z","dependencies_parsed_at":"2022-09-05T07:10:59.723Z","dependency_job_id":null,"html_url":"https://github.com/rodydavis/golden_layout","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodydavis%2Fgolden_layout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodydavis%2Fgolden_layout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodydavis%2Fgolden_layout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodydavis%2Fgolden_layout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rodydavis","download_url":"https://codeload.github.com/rodydavis/golden_layout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250331804,"owners_count":21413100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","flutter","layout-engine","tiling-window-manager","window-management"],"created_at":"2024-10-02T08:41:30.669Z","updated_at":"2025-04-22T22:04:20.397Z","avatar_url":"https://github.com/rodydavis.png","language":"Dart","funding_links":["https://www.buymeacoffee.com/rodydavis","https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=WSH3GVC49GNNJ"],"categories":[],"sub_categories":[],"readme":"[![Buy Me A Coffee](https://img.shields.io/badge/Donate-Buy%20Me%20A%20Coffee-yellow.svg)](https://www.buymeacoffee.com/rodydavis)\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=WSH3GVC49GNNJ)\n[![golden_layout](https://img.shields.io/pub/v/golden_layout.svg)](https://pub.dev/packages/golden_layout)\n\n# golden_layout\n\nA Flutter inspired package from http://golden-layout.com/\n\nDemo: https://rodydavis.github.io/golden_layout/\n\n![screenshot](https://github.com/rodydavis/golden_layout/blob/master/doc/screenshot.png?raw=true)\n\n## Example\n\n```dart\nimport 'package:flutter/material.dart';\nimport 'package:golden_layout/golden_layout.dart';\n\nvoid main() {\n  runApp(MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      debugShowCheckedModeBanner: false,\n      title: 'Flutter Demo',\n      theme: ThemeData(\n        primarySwatch: Colors.blue,\n        visualDensity: VisualDensity.adaptivePlatformDensity,\n      ),\n      home: MyHomePage(title: 'Flutter Golden Layout'),\n    );\n  }\n}\n\nclass MyHomePage extends StatefulWidget {\n  MyHomePage({Key key, this.title}) : super(key: key);\n\n  final String title;\n\n  @override\n  _MyHomePageState createState() =\u003e _MyHomePageState();\n}\n\nclass _MyHomePageState extends State\u003cMyHomePage\u003e {\n  final _controller = WindowController();\n  int _count = 0;\n\n  @override\n  void initState() {\n    final _group = WindowGroup();\n    _group.addTab(_getTab(_count++));\n    (_controller.base as WindowColumn).children.add(_group);\n    super.initState();\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        title: Text(widget.title),\n        actions: [\n          IconButton(\n            tooltip: 'Add Window',\n            icon: Icon(Icons.restore),\n            onPressed: () {\n              if (mounted)\n                setState(() {\n                  _controller.base =\n                      WindowColumn([WindowGroup()..addTab(_getTab(_count++))]);\n                });\n            },\n          ),\n          IconButton(\n            tooltip: 'Add Group',\n            icon: Icon(Icons.list),\n            onPressed: () {\n              if (mounted)\n                setState(() {\n                  final _group = WindowGroup();\n                  _group.addTab(_getTab(_count++));\n                  (_controller.base as WindowColumn).children.add(_group);\n                });\n            },\n          ),\n          IconButton(\n            tooltip: 'Add Row',\n            icon: Icon(Icons.category),\n            onPressed: () {\n              if (mounted)\n                setState(() {\n                  final _group1 = WindowGroup()..addTab(_getTab(_count++));\n                  final _group2 = WindowGroup()..addTab(_getTab(_count++));\n                  (_controller.base as WindowColumn)\n                      .children\n                      .add(WindowRow([_group1, _group2]));\n                });\n            },\n          ),\n        ],\n      ),\n      body: GoldenLayout(\n        controller: _controller,\n      ),\n    );\n  }\n\n  WindowTab _getTab(int count) {\n    return WindowTab(\n        title: 'Window $count',\n        child: Container(color: Colors.red[100 * count]));\n  }\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodydavis%2Fgolden_layout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodydavis%2Fgolden_layout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodydavis%2Fgolden_layout/lists"}