Struct conrod::Ui[][src]

pub struct Ui {
    pub theme: Theme,
    pub window: Id,
    pub fonts: Map,
    pub win_w: f64,
    pub win_h: f64,
    // some fields omitted
}

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::Id.
  • 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.

Fields

The theme used to set default styling for widgets.

An index into the root widget of the graph, representing the entire window.

Manages all fonts that have been loaded by the user.

Window width.

Window height.

Methods

impl Ui
[src]

Returns a input::Widget for the given widget

The Rect for the widget at the given index.

Returns None if there is no widget for the given index.

The absolute width of the widget at the given index.

Returns None if there is no widget for the given index.

The absolute height of the widget at the given index.

Returns None if there is no widget for the given index.

The absolute dimensions for the widget at the given index.

Returns None if there is no widget for the given index.

The coordinates for the widget at the given index.

Returns None if there is no widget for the given index.

The kid_area of the widget at the given index.

Returns None if there is no widget for the given index.

An index to the previously updated widget if there is one.

Borrow the Ui's widget_graph.

Borrow the Ui's set of updated widgets.

This set indicates which widgets have been instantiated since the beginning of the most recent Ui::set_widgets call.

Borrow the Ui's set of updated widgets.

This set indicates which widgets have were instantiated during the previous call to Ui::set_widgets.

Produces a type that may be used to generate new unique widget::Ids.

See the widget::id::Generator docs for details on how to use this correctly.

Scroll the widget at the given index by the given offset amount.

The produced Scroll event will be applied upon the next call to Ui::set_widgets.

Handle raw window events and update the Ui state accordingly.

This occurs within several stages:

  1. Convert the user's given event to a RawEvent so that the Ui may use it.
  2. Interpret the RawEvent for higher-level Events such as DoubleClick, WidgetCapturesKeyboard, etc.
  3. Update the Ui's global_input State accordingly, depending on the RawEvent.
  4. Store newly produced event::Uis within the global_input so that they may be filtered and fed to Widgets next time Ui::set_widget is called.

This method drives the Ui forward, and is what allows for using conrod's Ui with any window event stream.

The given event must implement the ToRawEvent trait so that it can be converted to a RawEvent that can be used by the Ui.

Get an immutable reference to global input. Handles aggregation of events and providing them to Widgets

Can be used to access the current input state, e.g. which widgets are currently capturing inputs.

Get the centred xy coords for some given Dimensions, Position and alignment.

If getting the xy for a specific widget, its widget::Id should be specified so that we can also consider the scroll offset of the scrollable parent widgets.

The place_on_kid_area argument specifies whether or not Place Position variants should target a Widget's kid_area, or simply the Widget's total area.

A function within which all widgets are instantiated by the user, normally situated within the "update" stage of an event loop.

Set the number of frames that the Ui should draw in the case that needs_redraw is called. The default is 3 (see the SAFE_REDRAW_COUNT docs for details).

Tells the Ui that it needs to re-draw everything. It does this by setting the redraw count to num_redraw_frames. See the docs for set_num_redraw_frames, SAFE_REDRAW_COUNT or draw_if_changed for more info on how/why the redraw count is used.

The first of the Primitives yielded by Ui::draw or Ui::draw_if_changed will always be a Rectangle the size of the window in which conrod is hosted.

This method sets the colour with which this Rectangle is drawn (the default being conrod::color::TRANSPARENT.

Draw the Ui in it's current state.

NOTE: If you don't need to redraw your conrod GUI every frame, it is recommended to use the Ui::draw_if_changed method instead.

Same as the Ui::draw method, but only draws if the redraw_count is greater than 0.

The redraw_count is set to SAFE_REDRAW_COUNT whenever a Widget indicates that it needs to be re-drawn.

It can also be triggered manually by the user using the Ui::needs_redraw method.

This method is generally preferred over Ui::draw as it requires far less CPU usage, only redrawing to the screen if necessary.

Note that when Ui::needs_redraw is triggered, it sets the redraw_count to 3 by default. This ensures that conrod is drawn to each buffer in the case that there is buffer swapping happening. Let us know if you need finer control over this and we'll expose a way for you to set the redraw count manually.

The Rect that bounds the kids of the widget with the given index.

The Rect that represents the maximum fully visible area for the widget with the given index, including consideration of cropped scroll area.

Otherwise, return None if the widget is not visible.

Get mouse cursor state.

Trait Implementations

impl<'a> AsRef<Ui> for UiCell<'a>
[src]

Performs the conversion.

Auto Trait Implementations

impl Send for Ui

impl !Sync for Ui