1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" style="task" id="tour-events" xml:lang="ca">
<info>
<link type="next" xref="tour-get_object"/>
<revision version="0.1" date="2013-06-17" status="stub"/>
<credit type="author copyright">
<name>Ekaterina Gerasimova</name>
<email its:translate="no">kittykat3756@gmail.com</email>
<years>2013</years>
</credit>
<credit type="author copyright">
<name>Gordon Hill</name>
<email its:translate="no">caseyweederman@gmail.com</email>
<years>2013</years>
</credit>
<include xmlns="http://www.w3.org/2001/XInclude" href="cc-by-sa-3-0.xml"/>
<desc>Bind functions to events using Lang.</desc>
</info>
<title>Actions and signals</title>
<links type="prevnext" style="top"/>
<links type="series" style="floatend">
<title>Get started with GNOME</title>
</links>
<p>Gtk has a set of predefined events that you can use in your application.</p>
<example>
<p>Declare <code>HelloWorld</code> as a new <code>Lang</code> class.
Gjs requires classes to have the Name property defined.</p>
<code><![CDATA[
const HelloWorld = new Lang.Class({
Name: 'HelloWorld',
]]></code>
<p><code>_init</code> is called when a new instance is created. Create a
<code>GtkApplication</code>, then connect <code>activate</code> to the
existing Gtk event <code>_onActivate</code> and <code>startup</code> to
<code>_onStartup</code>:</p>
<code><![CDATA[
_init: function() {
this.application = new Gtk.Application();
this.application.connect('activate', Lang.bind(this, this._onActivate));
this.application.connect('startup', Lang.bind(this, this._onStartup));
},
]]></code>
<p>Show the window upon application activation:</p>
<code><![CDATA[
_onActivate: function(){
this._window.show_all();
},
]]></code>
</example>
<links type="prevnext"/>
</page>
|