Re: How to define and emit an event in GJS?
- From: Victor Aurélio Santos <victoraur santos gmail com>
- To: Emmanuele Bassi <ebassi gmail com>
- Cc: gtk-app-devel-list list <gtk-app-devel-list gnome org>
- Subject: Re: How to define and emit an event in GJS?
- Date: Tue, 30 Aug 2016 13:54:47 -0300
Thank you Emmanuele,
It inherits fron GObject.
Em 30 de ago de 2016 10:55, "Emmanuele Bassi" <ebassi gmail com> escreveu:
Hi;
you probably want to ask on javascript-list gnome org, which is the
mailing list for developing with JavaScript on GTK and GNOME.
On 30 August 2016 at 14:41, Victor Aurélio Santos
<victoraur santos gmail com> wrote:
Subject is self explanatory,
How to define and emit an event in GJS?
I searched around and found nothing.
I assume you mean "a signal", in the GObject signal sense.
If your class is a pure JavaScript object then you want to import the
signals module and call the addSignalMethods() on your class
prototype, e.g.:
```
const Lang = imports.lang;
const Signals = imports.signals;
const SomeClass = Lang.Class({ ... });
Signals.addSignalMethods(SomeClass.prototype);
```
If your class inherits from GObject, on the other hand, you can define
signals directly inside the Lang.Class() definition, e.g.:
```
const SomeOtherClass = Lang.Class({
Name: 'SomeOtherClass',
Extends: 'GObject.Object',
Signals: {
'no-arguments': { },
'some-arguments': { param_types: [ GObject.TYPE_INT,
GObject.TYPE_INT ] },
'with-return': { param_types: [ GObject.TYPE_STRING,
GObject.TYPE_INT ], return_type: GObject.TYPE_BOOLEAN ),
},
...
});
```
In both cases, you'll be able to use the `emit()`, `connect()`, and
`disconnect()` methods on your instance.
Ciao,
Emmanuele.
--
https://www.bassi.io
[@] ebassi [@gmail.com]
[
Date Prev][Date Next] [
Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]