Expand description

Rust Handy bindings

This library contains safe Rust bindings for Handy, a library that offers building blocks for modern adaptive GNOME applications.

See also


use gtk::prelude::*;
use gtk::{Application, Box, ListBox, Orientation};
use libhandy::prelude::*;
use libhandy::{ActionRow, ApplicationWindow, HeaderBar};

fn main() {
    let application = Application::builder()

    application.connect_activate(|app| {

        // ActionRows are only available in Handy
        let row = ActionRow::builder()
            .title("Click me")
        row.connect_activated(|_| {

        let list = ListBox::builder().child(&row).build();
        // the content class makes the list look nicer

        // Combine the content in a box
        let content = Box::new(Orientation::Vertical, 0);
        // Handy's ApplicationWindow does not include a HeaderBar
                .title("First Handy Program")

        let window = ApplicationWindow::builder()
            // add content to window




A gtk::ListBoxRow used to present actions.

A freeform application window.

A widget displaying an image, with a generated fallback.

A paginated scrolling widget.

A dots indicator for Carousel.

A lines indicator for Carousel.

A widget constraining its child to a given size.

A gtk::ListBoxRow used to choose from a list of items.

A swipeable widget showing one of the visible children at a time.

An object representing an GObject::EnumValue.

A gtk::ListBoxRow used to reveal widgets.

An adaptive container acting like a box or an overlay.

A title bar widget.

An object handling composite title bars.

A child object for HeaderGroup.

A keypad for dialing numbers

An adaptive container acting like a box or a stack.

A group of preference rows.

A gtk::ListBoxRow used to present preferences.

A window to present an application’s preferences.

A toolbar to integrate a search entry with.

A best fit container.

A page used for empty/error states and similar use-cases.

A class for managing application-wide styling.

An object for syncing swipeable widgets.

Swipe tracker used in Carousel and Leaflet.

An interface for swipeable widgets.

A tab bar for TabView.

An auxiliary class used by TabView.

A dynamic tabbed container.

A simple title bar container.

An object representing a glib::Value.

An adaptive view switcher.

A view switcher action bar.

A view switcher title.

A freeform window.

A bin that acts like a titlebar.


Describes title centering behavior of a gtk::HeaderBar widget.

Application color schemes for property::StyleManager::color-scheme.

Describes the possible transitions in a Deck widget.

Describes the possible folding behavior of a Flap widget.

Describes transitions types of a Flap widget.

Describes the child types handled by HeaderGroup.

Describes the possible transitions in a Leaflet widget.

Describes the direction of a swipe navigation gesture.

Describes the possible transitions in a Squeezer widget.

Describes the adaptive modes of ViewSwitcher.



Computes the ease out for a value.

Checks whether animations are enabled for @widget.

Initializes Libhandy.