183 lines
7.1 KiB
Plaintext
183 lines
7.1 KiB
Plaintext
var gtk2 = require('Gtk2') -> init;
|
|
|
|
var gui = %s'Gtk2::Builder'.new;
|
|
gui.add_from_string(DATA.slurp);
|
|
|
|
func clicked_ok(*_) {
|
|
var entry = gui.get_object('entry1');
|
|
var text = entry.get_text;
|
|
|
|
var spinner = gui.get_object('spinbutton1');
|
|
var number = spinner.get_text;
|
|
|
|
say "string: #{text}";
|
|
say "number: #{number}";
|
|
|
|
number == 75000 ? gtk2.main_quit : warn "Invalid number!";
|
|
}
|
|
|
|
func clicked_cancel(*_) {
|
|
gtk2.main_quit;
|
|
}
|
|
|
|
gui.get_object('button1').signal_connect('clicked', clicked_ok);
|
|
gui.get_object('button2').signal_connect('clicked', clicked_cancel);
|
|
|
|
gtk2.main;
|
|
|
|
__DATA__
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface>
|
|
<requires lib="gtk+" version="2.24"/>
|
|
<!-- interface-naming-policy project-wide -->
|
|
<object class="GtkAdjustment" id="adjustment1">
|
|
<property name="upper">100000</property>
|
|
<property name="value">75000</property>
|
|
<property name="step_increment">1</property>
|
|
<property name="page_increment">10</property>
|
|
</object>
|
|
<object class="GtkWindow" id="window1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<child>
|
|
<object class="GtkVBox" id="vbox1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<child>
|
|
<object class="GtkLabel" id="label1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label" translatable="yes">Please insert a string and a number:</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkHBox" id="hbox1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<child>
|
|
<object class="GtkLabel" id="label2">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label" translatable="yes">string:</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="padding">55</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkEntry" id="entry1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="invisible_char">•</property>
|
|
<property name="primary_icon_activatable">False</property>
|
|
<property name="secondary_icon_activatable">False</property>
|
|
<property name="primary_icon_sensitive">True</property>
|
|
<property name="secondary_icon_sensitive">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkHBox" id="hbox2">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<child>
|
|
<object class="GtkLabel" id="label3">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label" translatable="yes">number:</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSpinButton" id="spinbutton1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="invisible_char">•</property>
|
|
<property name="primary_icon_activatable">False</property>
|
|
<property name="secondary_icon_activatable">False</property>
|
|
<property name="primary_icon_sensitive">True</property>
|
|
<property name="secondary_icon_sensitive">True</property>
|
|
<property name="adjustment">adjustment1</property>
|
|
<property name="numeric">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkHButtonBox" id="hbuttonbox1">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="layout_style">spread</property>
|
|
<child>
|
|
<object class="GtkButton" id="button1">
|
|
<property name="label">gtk-ok</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<property name="use_stock">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">False</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="button2">
|
|
<property name="label">gtk-cancel</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<property name="use_stock">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">False</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</interface>
|