|
//! # RadioButton Sample |
|
//! |
|
//! This sample demonstrates how to create ToggleButton's and how the first parameter works |
|
|
|
#![crate_type = "bin"] |
|
|
|
extern crate gtk; |
|
|
|
use gtk::prelude::*; |
|
|
|
fn main() { |
|
if gtk::init().is_err() { |
|
println!("Failed to initialize GTK."); |
|
return; |
|
} |
|
|
|
let window = gtk::Window::new(gtk::WindowType::Toplevel); |
|
|
|
window.set_title("Radio Buttons example"); |
|
window.set_border_width(10); |
|
window.set_position(gtk::WindowPosition::Center); |
|
window.set_default_size(350, 70); |
|
|
|
|
|
window.connect_delete_event(|_, _| { |
|
gtk::main_quit(); |
|
Inhibit(false) |
|
}); |
|
|
|
let hbox = gtk::Box::new(gtk::Orientation::Horizontal, 0); |
|
|
|
// All Boxes for themselves |
|
let vbox = gtk::Box::new(gtk::Orientation::Vertical, 0); |
|
let radio_size_10 = gtk::RadioButton::new_with_label_from_widget(None, "10x10"); |
|
let radio_size_20 = gtk::RadioButton::new_with_label_from_widget(None, "20x20"); |
|
let radio_size_30 = gtk::RadioButton::new_with_label_from_widget(None, "30x30"); |
|
let radio_size_40 = gtk::RadioButton::new_with_label_from_widget(None, "40x40"); |
|
let radio_size_60 = gtk::RadioButton::new_with_label_from_widget(None, "60x60"); |
|
|
|
vbox.pack_start(>k::Label::new("Each box separately"), true, false, 0); |
|
vbox.pack_start(&radio_size_10, false, false, 0); |
|
vbox.pack_start(&radio_size_20, false, false, 0); |
|
vbox.pack_start(&radio_size_30, false, false, 0); |
|
vbox.pack_start(&radio_size_40, false, false, 0); |
|
vbox.pack_start(&radio_size_60, false, false, 0); |
|
|
|
let radio_button_group = vec![radio_size_10, radio_size_20, radio_size_30, radio_size_40, radio_size_60]; |
|
|
|
hbox.pack_start(&vbox, false, false, 0); |
|
|
|
// And Boxes in Box |
|
let vbox = gtk::Box::new(gtk::Orientation::Vertical, 0); |
|
let radio_size_10 = gtk::RadioButton::new_with_label_from_widget(None, "10x10"); |
|
let radio_size_20 = gtk::RadioButton::new_with_label_from_widget(Some(&radio_size_10), "20x20"); |
|
let radio_size_30 = gtk::RadioButton::new_with_label_from_widget(Some(&radio_size_10), "30x30"); |
|
let radio_size_40 = gtk::RadioButton::new_with_label_from_widget(Some(&radio_size_10), "40x40"); |
|
let radio_size_60 = gtk::RadioButton::new_with_label_from_widget(Some(&radio_size_10), "60x60"); |
|
|
|
vbox.pack_start(>k::Label::new("All Boxes child of `10x10`"), true, false, 0); |
|
vbox.pack_start(&radio_size_10, false, false, 0); |
|
vbox.pack_start(&radio_size_20, false, false, 0); |
|
vbox.pack_start(&radio_size_30, false, false, 0); |
|
vbox.pack_start(&radio_size_40, false, false, 0); |
|
vbox.pack_start(&radio_size_60, false, false, 0); |
|
|
|
let radio_button_group = vec![radio_size_10, radio_size_20, radio_size_30, radio_size_40, radio_size_60]; |
|
|
|
hbox.pack_end(&vbox, false, false, 0); |
|
window.add(&hbox); |
|
|
|
window.show_all(); |
|
gtk::main(); |
|
} |