widgets library

Contains complex or reusable widgets.

If a widget is becoming too large or needs to be reused, separate it into its own file and put it here. Although "everything is a widget"™ in Flutter, this library is reserved for widgets that are contained to a small, logical section of the general UI. Groups of widgets spanning multiple loosely-related purposes should be considered "pages" and put in the pages library.

This library is broken out into several directories:

  • The atomic directory represent singular pieces of data, such as metric readouts.
  • The generic directory contains random pieces of UI that are reused in many locations.
  • The navigation directory is for global pieces of UI that handle navigation.
  • The utils directory contains widgets or other frontend code used by other widgets.
  • Other folders named after pages contain complex widgets used in that page.

This library may depend on the data, services, and models library.

Classes

AutonomyCommandEditor
A widget to edit an AutonomyCommand.
CameraDetailsEditor
A widget to modify CameraDetails for a given camera, backed by a CameraDetailsBuilder.
ColorEditor
A widget to edit a color, backed by ColorBuilder.
ControlsDisplay
Displays controls for the given Controller.
A widget to choose a single value from a dropdown.
The footer, responsible for showing vitals and logs.
GamepadButton
A widget to show the gamepad state and allow the user to switch its mode.
GpsEditor
A widget to edit a GPS coordinate in degree/minute/seconds or decimal format.
ImageLoader
A helper class to load and manage resources used by a ui.Image.
MessageDisplay
Displays the latest TaskbarMessage from HomeModel.message.
MetricsList
Displays metrics of all sorts in a collapsible list.
MobileControls
Drive controls for mobile devices where gamepads aren't feasible.
MobileControlsModel
Drive controls for mobile devices where gamepads aren't feasible.
NetworkStatusIcon
A network status icon for the given device.
NumberEditor
A widget to edit a number, backed by NumberBuilder.
PresetSave
A widget to save a preset backed by PresetBuilder.
ReactiveWidget<T extends ChangeNotifier>
A widget that listens to a ChangeNotifier and rebuilds when the model updates.
ReactiveWidgetInterface<T extends ChangeNotifier>
A widget that listens to a ChangeNotifier (called the view model) and updates when it does.
ReactiveWidgetState<T extends ChangeNotifier>
A state for ReactiveWidget that manages the model.
ReusableReactiveWidget<T extends ChangeNotifier>
A ReactiveWidgetInterface that "borrows" a view model and does not dispose of it.
ScienceCommandEditor
A widget to create and send a ScienceCommand.
SerialButton
Allows the user to connect to the firmware directly, over Serial.
A widget to display metrics and controls off to the side.
SliderSettings
Class that defines a slider for camera controls
SocketEditor
Creates a widget to edit a SocketInfo, backed by SocketBuilder.
StatusIcons
A few icons displaying the rover's current status.
ThrottleEditor
An AlertDialog to prompt the user for a throttle value and send it to the rover.
TimerEditor
A widget to edit a color, backed by TimerBuilder.
TimerWidget
A widget to view timer Can also stop and start timer
VideoFeed
Displays frames of a video feed.
VideoFeedState
The logic for updating a VideoFeed.
VideoSettingsState
A state for VideoSettingsWidget.
VideoSettingsWidget
A widget to edit camera settings.
ViewsCounter
A dropdown to select more or less views.
ViewsList
A list of views for the user to drag into their desired view area
ViewsSelector
A button for the user to select a new view.
ViewsSidebarModel
A simple model that just listens for changes in the network and settings.
ViewsWidget
A widget to render all the views the user selected.

Extensions

BuildContextUtils on BuildContext
Convenience functions on BuildContext.
SeverityUtil on Severity
Extension for COlors on Severity