--- /dev/null
+use gtk::prelude::*;
+use gtk::{
+ Application, ApplicationWindow,
+ Button,
+ Widget,
+};
+
+fn build_ui(app: &Application) {
+ let button = Button::builder()
+ .label("Click me!")
+ .margin_top(12)
+ .margin_bottom(12)
+ .margin_start(12)
+ .margin_end(12)
+ .build();
+
+ button.connect_clicked(move |button| {
+ button.set_label("Hello world!");
+ });
+
+ let button_w: &Widget = button.upcast_ref::<Widget>();
+
+ println!("button visible: {}", button_w.is_visible());
+
+ let window = ApplicationWindow::builder()
+ .application(app)
+ .title("Hello GTK")
+ .child(&button)
+ .build();
+
+ window.show_all();
+}
+
+fn main() {
+ let app = Application::builder()
+ .application_id("ork.gtk-rs.example")
+ .build();
+
+ app.connect_activate(build_ui);
+ app.run();
+}