summaryrefslogtreecommitdiffstats
path: root/manual tests/7 vala composite widgets
diff options
context:
space:
mode:
Diffstat (limited to 'manual tests/7 vala composite widgets')
-rw-r--r--manual tests/7 vala composite widgets/meson.build21
-rw-r--r--manual tests/7 vala composite widgets/my-resources.xml6
-rw-r--r--manual tests/7 vala composite widgets/mywidget.ui70
-rw-r--r--manual tests/7 vala composite widgets/mywidget.vala41
4 files changed, 138 insertions, 0 deletions
diff --git a/manual tests/7 vala composite widgets/meson.build b/manual tests/7 vala composite widgets/meson.build
new file mode 100644
index 0000000..579ca51
--- /dev/null
+++ b/manual tests/7 vala composite widgets/meson.build
@@ -0,0 +1,21 @@
+project('composite', 'vala', 'c')
+gnome = import('gnome')
+deps = [
+ dependency('glib-2.0', version : '>=2.38'),
+ dependency('gobject-2.0'),
+ dependency('gtk+-3.0'),
+]
+res = files('my-resources.xml')
+gres = gnome.compile_resources(
+ 'my', res,
+ source_dir : '.',
+)
+executable(
+ 'demo',
+ sources : [
+ 'mywidget.vala',
+ gres,
+ ],
+ dependencies : deps,
+ vala_args : ['--gresources', res],
+)
diff --git a/manual tests/7 vala composite widgets/my-resources.xml b/manual tests/7 vala composite widgets/my-resources.xml
new file mode 100644
index 0000000..b5743c1
--- /dev/null
+++ b/manual tests/7 vala composite widgets/my-resources.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/foo/my">
+ <file compressed="true" preprocess="xml-stripblanks">mywidget.ui</file>
+ </gresource>
+</gresources>
diff --git a/manual tests/7 vala composite widgets/mywidget.ui b/manual tests/7 vala composite widgets/mywidget.ui
new file mode 100644
index 0000000..2d6286c
--- /dev/null
+++ b/manual tests/7 vala composite widgets/mywidget.ui
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.8 -->
+ <template class="MyWidget" parent="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">This widget is defined with composite GtkBuilder script</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <signal name="changed" handler="on_entry_changed" object="MyWidget" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Press the button to fetch the internal entry text</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button">
+ <property name="label" translatable="yes">The Button</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">end</property>
+ <signal name="clicked" handler="on_button_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </template>
+</interface>
diff --git a/manual tests/7 vala composite widgets/mywidget.vala b/manual tests/7 vala composite widgets/mywidget.vala
new file mode 100644
index 0000000..68eaecc
--- /dev/null
+++ b/manual tests/7 vala composite widgets/mywidget.vala
@@ -0,0 +1,41 @@
+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 ();
+}