# Dialog (Vala)

Tiffany Antopolski
tiffany.antopolski@gmail.com 2012
A popup window
Mario Blättermann
mario.blaettermann@gmail.com 2011, 2013, 2016, 2018

# Dialog

A dialog with the response signal hooked up to a callback function.

/* A window in the application. */ public class MyWindow : Gtk.ApplicationWindow {

/* Constructor */ internal MyWindow (MyApplication app) { Object (application: app, title: "GNOME Button");

this.window_position = Gtk.WindowPosition.CENTER; this.set_default_size (250,50);

var button = new Gtk.Button.with_label ("Click Me");

/* Connect the button's "clicked" signal to * the signal handler (aka. this.callback function). */ button.clicked.connect (this.on_button_click);

/* Add the button to this window and show it. */ this.add (button); button.show (); }

/* The signal handler for the buttons 'clicked' signal. */ void on_button_click (Gtk.Button button) { var dialog = new Gtk.Dialog.with_buttons ("A Gtk+ Dialog", this, Gtk.DialogFlags.MODAL, Gtk.Stock.OK, Gtk.ResponseType.OK, null);

var content_area = dialog.get_content_area (); var label = new Gtk.Label ("This demonstrates a dialog with a label");

content_area.add (label);

/* Connect the 'response' signal of the dialog * the signal handler. It is emitted when the dialog's * OK button is clicked. */ dialog.response.connect (on_response);

/* Show the dialog and all the widgets. */ dialog.show_all (); }

/* Signal handler for the 'response' signal of the dialog. */ void on_response (Gtk.Dialog dialog, int response_id) {

/* To see the int value of the ResponseType. This is only * for demonstration purposes.*/ print ("response is %d\n", response_id);

/* This causes the dialog to be destroyed. */ dialog.destroy (); }

}

/* This is the application. */ public class MyApplication : Gtk.Application {

/* The constructor of the application. */ internal MyApplication () { Object (application_id: "org.example.MyApplication"); }

/* Override the 'activate' signal of GLib.Application. */ protected override void activate () {

/* Create a window for the this application and show it. */ new MyWindow (this).show (); } }

/* The main function creates and runs the application. */ public int main (string[] args) { return new MyApplication ().run (args); }

In this sample we used the following:

Gtk.Dialog

Gtk.Dialog.with_buttons

Gtk.Label

get_content_area