|
|
|
using Gtk;
|
|
|
|
|
|
|
|
[GtkTemplate (ui = "/org/foo/my/mywidget.ui")]
|
|
|
|
public class MyWidget : Box {
|
|
|
|
public string text {
|
|
|
|
get { return entry.text; }
|
|
|
|
set { entry.text = value; }
|
|
|
|
}
|
|
|
|
|
|
|
|
[GtkChild]
|
|
|
|
private Entry entry;
|
|
|
|
|
|
|
|
public MyWidget (string text) {
|
|
|
|
this.text = text;
|
|
|
|
}
|
|
|
|
|
|
|
|
[GtkCallback]
|
|
|
|
private void on_button_clicked (Button button) {
|
|
|
|
print ("The button was clicked with entry text: %s\n", entry.text);
|
|
|
|
}
|
|
|
|
|
|
|
|
[GtkCallback]
|
|
|
|
private void on_entry_changed (Editable editable) {
|
|
|
|
print ("The entry text changed: %s\n", entry.text);
|
|
|
|
|
|
|
|
notify_property ("text");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void main(string[] args) {
|
|
|
|
Gtk.init (ref args);
|
|
|
|
var win = new Window();
|
|
|
|
win.destroy.connect (Gtk.main_quit);
|
|
|
|
|
|
|
|
var widget = new MyWidget ("The entry text!");
|
|
|
|
|
|
|
|
win.add (widget);
|
|
|
|
win.show_all ();
|
|
|
|
|
|
|
|
Gtk.main ();
|
|
|
|
}
|