Re: How to define and emit an event in GJS?



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]