Blame platform-demos/C/samples/togglebutton.vala

Packit 1470ea
public class MyWindow : Gtk.ApplicationWindow {
Packit 1470ea
Packit 1470ea
	Gtk.Spinner spinner;
Packit 1470ea
Packit 1470ea
	internal MyWindow (MyApplication app) {
Packit 1470ea
		Object (application: app, title: "ToggleButton Example");
Packit 1470ea
Packit 1470ea
		this.set_default_size (300, 300);
Packit 1470ea
		this.border_width = 30;
Packit 1470ea
Packit 1470ea
		/*Spinner*/
Packit 1470ea
		spinner = new Gtk.Spinner ();
Packit 1470ea
		spinner.set_hexpand (true);
Packit 1470ea
		spinner.set_vexpand (true);
Packit 1470ea
Packit 1470ea
		/*ToggleButton*/
Packit 1470ea
		var togglebutton = new Gtk.ToggleButton.with_label ("Start/Stop");
Packit 1470ea
		togglebutton.toggled.connect (toggled_cb);
Packit 1470ea
Packit 1470ea
		/*Grid*/
Packit 1470ea
		var grid = new Gtk.Grid ();
Packit 1470ea
		grid.set_row_homogeneous (false);
Packit 1470ea
		grid.set_row_spacing (15);
Packit 1470ea
		grid.attach (spinner, 0, 0, 1, 1);
Packit 1470ea
		grid.attach (togglebutton, 0, 1, 1, 1);
Packit 1470ea
Packit 1470ea
		this.add (grid);
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	void toggled_cb (Gtk.ToggleButton button) {
Packit 1470ea
		if (button.get_active()) {
Packit 1470ea
			spinner.start ();
Packit 1470ea
		}
Packit 1470ea
		else {
Packit 1470ea
			spinner.stop ();
Packit 1470ea
		}
Packit 1470ea
	}
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
public class MyApplication : Gtk.Application {
Packit 1470ea
Packit 1470ea
	protected override void activate () {
Packit 1470ea
Packit 1470ea
		//Show all the things
Packit 1470ea
		new MyWindow (this).show_all ();
Packit 1470ea
	}
Packit 1470ea
Packit 1470ea
	internal MyApplication () {
Packit 1470ea
		Object (application_id: "org.example.spinner");
Packit 1470ea
	}
Packit 1470ea
}
Packit 1470ea
Packit 1470ea
public int main (string[] args) {
Packit 1470ea
	return new MyApplication ().run (args);
Packit 1470ea
}