initSidebarItems({"enum":[["Align","The orientation of **Align**ment 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**."],["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."],["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`,"]],"fn":[["default_x_dimension","Determines the default **Dimension** for a **Widget**."],["default_y_dimension","Determines the default **Dimension** for a **Widget**."]],"macro":[["builder_method!","A macro for simplifying implementation of methods for the `builder pattern`."],["builder_methods!","A macro to simplify implementation of \"builder-pattern\" methods."],["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."]],"mod":[["backend","Traits and functionality related to Conrod's generic backend."],["color",""],["drag",""],["events","This module contains all the logic for handling input events and providing them to widgets. All user input is provided to the `Ui` in the form of `input::Input` events, which are continuously polled from the backend window implementation. These raw input events tend to be fairly low level. The `Ui` passes each of these events off to it's `GlobalInput`, which keeps track of the state of affairs for the entire `Ui`. `GlobalInput` will also aggregate the low level events into higher level ones. For instance, two events indicating that a mouse button was pressed then released would cause a new `UiEvent::MouseClick` to be generated. This saves individual widgets from having to interpret these themselves, thus freeing them from also having to store input state."],["glyph_cache","Conrod's character caching API."],["graph","Conrod uses a directed acyclic graph to manage both storing widgets and describing their relationships."],["guide","**The Conrod Guide**"],["scroll","Scroll related types and logic."],["theme",""],["utils",""]],"struct":[["Background","A type for drawing a colored window background."],["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` 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."],["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."],["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","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."],["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."],["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","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","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","Unique graphical styling for the TextBox."],["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. # Ui Handles the following: * Contains the state of all widgets which can be indexed via their widget::Index. * Stores rendering state for each widget until the end of each render cycle. * Contains the theme used for default styling of the widgets. * Maintains the latest user input state (for mouse and keyboard). * Maintains the latest window dimensions."],["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 `Widget`s' `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."],["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 `Node`s 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."]],"trait":[["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."]],"type":[["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 `Place`ment on either end of an axis."],["Point","General use 2D spatial point."],["Scalar","An alias over the Scalar type used throughout Conrod."],["WidgetKind","A unique identifier for a **Widget** type."]]});