Skip to content

Instantly share code, notes, and snippets.

View gladimdim's full-sized avatar
💭
Unreal Engine

Dmytro Gladkyi gladimdim

💭
Unreal Engine
View GitHub Profile
@gladimdim
gladimdim / form_example.dart
Created December 11, 2019 20:19
Form example
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:gladstoriesengine/gladstoriesengine.dart';
import 'package:locadeserta/InheritedAuth.dart';
import 'package:locadeserta/components/app_bar_custom.dart';
import 'package:locadeserta/components/bordered_container.dart';
import 'package:locadeserta/components/narrow_scaffold.dart';
import 'package:locadeserta/creator/components/edit_story.dart';
import 'package:locadeserta/creator/story/persistence.dart';
@gladimdim
gladimdim / revolver-page-view.dart
Last active December 5, 2019 09:40
Revolver scroll animation for the PageView Flutter widget.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
Expanded(
child: SingleChildScrollView(
controller: _passageScrollController,
child: Column(
children: [
...widget.currentStory.storyHistory.getHistory().map((var passageItem) {
if (passageItem == null) {
return Container();
}
Widget container;
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Call Center'),
),
body: StreamBuilder(
stream: callCenter.changes,
builder: (context, snapshot) {
return Column(
children: _buildBody() +
Widget _buildQueueView(List<Call> queueCalls) {
return Column(
// mainAxisAlignment: MainAxisAlignment.center,
children: queueCalls.map((call) => Text(call.msg)).toList());
}
Widget _buildResponderRow(List<Responder> group) {
return Container(
height: 100.0,
child: ListView.builder(
itemCount: group.length,
scrollDirection: Axis.horizontal,
itemBuilder: (context, index) {
return _buildResponderView(group[index]);
},
),
Widget _buildButton() {
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(right: 8.0),
child: RaisedButton.icon(
icon: Icon(Icons.call),
onPressed: addCall,
label: Text("Add Call"),
Widget _buildResponderView(Responder responder) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Text(
responder.name,
style: TextStyle(
color: responder.isBusy() ? Colors.red : Colors.green,
callEnded() {
if (queueCalls.length > 0) {
dispatchCall(queueCalls[0]);
queueCalls.removeAt(0);
}
}
dispatchCall(Call call) {
Responder processor;
for (var i = 0; i < allProcessors.length; i++) {
try {
processor = allProcessors[i].firstWhere((Responder p) => !p.isBusy());
} catch (e) {
print('Switching to next level');
continue;
}
if (processor != null) {