Crate conrod [] [src]

Conrod

An easy-to-use, immediate-mode, 2D GUI library featuring a range of useful widgets.

If you are new to Conrod, we recommend checking out The Guide.

Reexports

pub use color::{Color, Colorable};
pub use graph::NodeIndex;
pub use theme::Theme;

Modules

backend

Feature-gated, backend-specific functionality.

color

A library providing simple Color and Gradient types along with useful transformations and presets.

event

Contains all the structs and enums to describe all of the input events that Widgets can handle.

graph

Conrod uses a directed acyclic graph to manage both storing widgets and describing their relationships.

guide

The Conrod Guide

image

A type used to manage a user's image data and map them to Image widgets:

input

This module contains all the logic for handling input events and providing them to widgets.

render

Conrod's generic graphics backend.

scroll

Scroll related types and logic.

text

Text layout logic.

theme

Types a functionality for handling Canvas and Widget theming.

utils

Various utility functions used throughout Conrod.

Macros

builder_method!

A macro for simplifying implementation of methods for the builder pattern.

builder_methods!

A macro to simplify implementation of "builder-pattern" methods.

image_map!

A macro for simplifying the instantiation of an image::Map.

widget_ids!

Generate a list of unique IDs given a list of identifiers.

widget_style!

A macro for vastly simplifying the definition and implementation of a widget's associated Style type.

Structs

Button

A pressable button widget whose reaction is triggered upon release.

ButtonStyle

Unique styling for the Button.

Canvas

Canvas is designed to be a "container"-like "parent" widget that simplifies placement of "children" widgets.

CanvasStyle

Unique styling for the Canvas.

Circle

A tiny wrapper around the Oval widget type.

CommonBuilder

A struct containing builder data common to all Widget types.

CommonState

A wrapper around state that is common to all Widget types.

CommonStyle

Styling and positioning data that is common between all widget types.

DropDownList

Displays a given Vec<String> as a selectable drop down menu. It's reaction is triggered upon selection of a list item.

DropDownListStyle

Styling for the DropDownList, necessary for constructing its renderable Element.

EnvelopeEditor

Used for editing a series of 2D Points on a cartesian (X, Y) plane within some given range.

EnvelopeEditorStyle

Styling for the EnvelopeEditor, necessary for constructing its renderable Element.

FileNavigator

A widget for navigating and interacting with a file system.

FileNavigatorStyle

Unique styling for the widget.

Floating

State necessary for "floating" (pop-up style) widgets.

FramedRectangle

A filled rectangle widget that may or may not have some frame.

FramedRectangleStyle

Unique styling for the FramedRectangle widget.

Image

A primitive and basic widget for drawing an Image.

ImageStyle

Unique styling for the Image widget.

IndexSlot

A small cache for a single unique NodeIndex.

KidArea

The area upon which a Widget's child widgets will be placed.

KidAreaArgs

Arguments to the Widget::kid_area method in a struct to simplify the method signature.

Line

A simple, non-interactive widget for drawing a single straight Line.

LineStyle

Unique styling for a Line widget.

List

A helper widget, useful for instantiating a sequence of widgets in a vertical list.

ListStyle

Unique styling for the List.

NumberDialer

A widget for precision control over any digit within a value.

NumberDialerStyle

Unique graphical styling for the NumberDialer.

Oval

A simple, non-interactive widget for drawing a single Oval.

Padding

The distance between the inner edge of a frame and the outer edge of the inner content.

PlotPath

A widget that plots a series of lines using the given function x -> y.

PlotPathStyle

Unique styling parameters for the PlotPath widget.

PointPath

A simple, non-interactive widget for drawing a series of lines and/or points.

Polygon

A basic, non-interactive, arbitarry Polygon widget.

Range

Some start and end position along a single axis.

RangeSlider

Linear range selection.

RangeSliderStyle

Graphical styling unique to the RangeSlider widget.

Rect

Defines a Rectangle's bounds across the x and y axes.

Rectangle

A basic, non-interactive rectangle shape widget.

Scrollbar

A widget that allows for scrolling via dragging the mouse.

ScrollbarStyle

Styling for the DropDownList, necessary for constructing its renderable Element.

Slider

Linear value selection.

SliderStyle

Graphical styling unique to the Slider widget.

Tabs

A wrapper around a list of canvasses that displays thema s a list of selectable tabs.

TabsStyle

Unique styling for the Tabs widget.

Text

Displays some given text centred within a rectangular area.

TextBox

A widget for displaying and mutating a small, one-line field of text, given by the user in the form of a String.

TextBoxStyle

Unique graphical styling for the TextBox.

TextEdit

A widget for displaying and mutating multi-line text, given as a String.

TextEditStyle

Unique graphical styling for the TextEdit.

TextStyle

The styling for a Text's graphics.

TitleBar

A simple title bar widget that automatically sizes itself to the top of some other widget.

TitleBarStyle

Unique styling for the TitleBar widget.

Toggle

A pressable widget for toggling the state of a bool.

ToggleStyle

Styling for the Toggle including coloring, framing and labelling.

Ui

Ui is the most important type within Conrod and is necessary for rendering and maintaining widget state.

UiCell

A wrapper around the Ui that restricts the user from mutating the Ui in certain ways while in the scope of the Ui::set_widgets function and within Widgets' update methods. Using the UiCell, users may access the Ui immutably (via Deref) however they wish, however they may only mutate the Ui via the &mut self methods provided by the UiCell.

UpdateArgs

Arguments for the Widget::update method in a struct to simplify the method signature.

WidgetCommonState

A wrapper around state that is common to all Widget types.

WidgetId

Unique, public widget identifier. Each widget must use a unique WidgetId so that it's state can be cached within the Ui type. The reason we use a usize is because widgets are cached within a Graph whose max number of Nodes is indexed by usize.

WidgetMatrix

Draw a matrix of any rectangular widget type, where the matrix will provide a function with the widget number, it's rows and cols position, the width and height for the widget and the location at which the widget should be drawn.

WidgetState

A wrapper around a Widget's unique Widget::State.

XYPad

Used for displaying and controlling a 2D point on a cartesian plane within a given range.

XYPadStyle

Unique graphical styling for the XYPad.

Enums

Align

The orientation of Alignment along some Axis.

Axis

Represents either Axis in the 2-dimensional plane.

Corner

Either of the four corners of a Rect.

Dimension

The length of a Widget over either the x or y axes.

Direction

Directionally positioned, normally relative to some other widget.

Edge

Represents either the Start or End Edge of a Range.

FileNavigatorEvent

The kinds of events that the FileNavigator may react to.

Framing

To be used as a parameter for defining the aesthetic of the widget frame.

ListbarScrollPosition

If the List is scrollable, this describes how th Scrollbar should be positioned.

MaybeParent

The builder argument for the Widget's parent.

Place

Place the widget at a position on some other widget.

Position

Some Position of some Widget along a single axis.

RangeSliderEdge

Either the Start or End Edge of the RangeSlider's bar.

ShapeStyle

The style for some 2D shape.

TextWrap

The way in which text should wrap around the width.

WidgetIndex

An index either given in the form of a publicly instantiated Widget's WidgetId, or an internally instantiated Widget's NodeIndex,

Traits

EnvelopePoint

EnvPoint must be implemented for any type that is used as a 2D point within the EnvelopeEditor.

Frameable

Widgets that may display a frame.

Labelable

Widgets that may display some label.

Positionable

Widgets that are positionable.

Sizeable

Widgets that support different dimensions.

Widget

A trait to be implemented by all Widget types.

Functions

default_x_dimension

Determines the default Dimension for a Widget.

default_y_dimension

Determines the default Dimension for a Widget.

Type Definitions

Depth

The depth at which the widget will be rendered.

Dimensions

General use 2D spatial dimensions.

FontSize

Font size used throughout Conrod.

Margin

The margin for some Placement on either end of an axis.

Point

General use 2D spatial point.

Scalar

An alias over the Scalar type used throughout Conrod.