Crate conrod [] [src]

Conrod

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

Reexports

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

Modules

backend

Traits and functionality related to Conrod's generic backend.

color

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

drag

Types and functionality related to the dragging behaviour of Widgets.

glyph_cache

Conrod's character caching API.

graph

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

scroll

Types and functionality related to the scrolling behaviour of widgets.

theme

Types a functionality for handling Canvas and Widget theming.

utils

Various utility functions used throughout Conrod.

Macros

widget_ids!

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

Structs

Background

A type for drawing a colored window background.

Button

A pressable button widget whose reaction is triggered upon release.

ButtonStyle

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

Canvas

A widget designed to be a parent for other widgets.

CanvasStyle

Describes the style of a 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.

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.

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.

Margin

The distance between the dimension bound and the outer edge of the frame.

Mouse

Represents the current state of the Mouse.

MouseButtonState

The current state of a Mouse button.

MouseScroll

The amount of scrolling that has occurred since the last render event.

NumberDialer

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

NumberDialerStyle

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

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.

PointPath

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

Polygon

A basic, non-interactive, arbitarry Polygon widget.

PositionMatrix

A type to simplify placement of various widgets in a matrix or grid layout.

Range

Some start and end position along a single axis.

Rect

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

Rectangle

A basic, non-interactive rectangle shape widget.

Slider

Linear value selection. If the slider's width is greater than it's height, it will automatically become a horizontal slider, otherwise it will be a vertical slider. Its reaction is triggered if the value is updated or if the mouse button is released while the cursor is above the rectangle.

SliderStyle

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

Split

A type of Canvas for flexibly designing and guiding widget layout as splits of a window.

Tabs

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

TabsStyle

The styling for Canvas Tabs.

Text

Displays some given text centred within a rectangular area.

TextBox

A widget for displaying and mutating a given one-line text String. It's reaction is triggered upon pressing of the Enter/Return key.

TextBoxStyle

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

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 a Ui that only exposes the functionality necessary for the Widget::update method.

UpdateArgs

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

UserInput

A wrapper over the current user input state.

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

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

Enums

Align

The orientation of Alignment along some Axis.

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.

Framing

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

MaybeParent

The builder argument for the Widget's parent.

MouseButtonPosition

Represents the current state of a mouse button.

Place

Place the widget at a position on some other widget.

Position

Some Position of some Widget along a single axis.

ShapeStyle

The style for some 2D shape.

WidgetIndex

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

Traits

CharacterCache

Stores characters in a buffer and loads them by demand.

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.

Graphics

Implemented by all graphics back-ends.

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.

Point

General use 2D spatial point.

Scalar

An alias over the Scalar type used throughout Conrod.

WidgetKind

A unique identifier for a Widget type.