Class: GLib::Signal

Inherits:
Data
  • Object
show all
Defined in:
ext/glib2/rbgobj_signal.c

Constant Summary collapse

FLAGS_MASK =
INT2NUM(G_SIGNAL_FLAGS_MASK)
MATCH_MASK =
INT2NUM(G_SIGNAL_MATCH_MASK)
TYPE_STATIC_SCOPE =
INT2FIX(G_SIGNAL_TYPE_STATIC_SCOPE)

Instance Method Summary collapse

Instance Method Details

#action?Boolean

Returns:

  • (Boolean)

#add_emission_hook(*args) ⇒ Object



811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
# File 'ext/glib2/rbgobj_signal.c', line 811

static VALUE
signal_add_emission_hook(int argc, VALUE* argv, VALUE self)
{
    GSignalQuery* query;
    VALUE proc;
    guint hook_id;
    GQuark detail = 0;
    GClosure* closure;

    Data_Get_Struct(self, GSignalQuery, query);

    if (query->signal_flags & G_SIGNAL_DETAILED) {
        VALUE detail_obj;
        if (rb_scan_args(argc, argv, "01&", &detail_obj, &proc) == 1) {
            if (SYMBOL_P(detail_obj))
                detail = g_quark_from_string(rb_id2name(SYM2ID(detail_obj)));
            else
                detail = g_quark_from_string(StringValuePtr(detail_obj));
        }
    } else {
        rb_scan_args(argc, argv, "00&", &proc);
    }

    closure = g_rclosure_new(proc, Qnil,
                             rbgobj_get_signal_func(query->signal_id));
    g_rclosure_attach(closure, self);
    hook_id = g_signal_add_emission_hook_closure(query->signal_id, detail, closure);
    return ULONG2NUM(hook_id);
}

#detailed?Boolean

Returns:

  • (Boolean)

#flagsObject



713
714
715
# File 'ext/glib2/rbgobj_signal.c', line 713

static VALUE
query_signal_flags(self)
VALUE self;

#idObject



668
669
670
# File 'ext/glib2/rbgobj_signal.c', line 668

static VALUE
query_signal_id(self)
VALUE self;

#inspectObject



738
739
740
# File 'ext/glib2/rbgobj_signal.c', line 738

static VALUE
query_inspect(self)
VALUE self;

#itypeObject



686
687
688
# File 'ext/glib2/rbgobj_signal.c', line 686

static VALUE
query_itype(self)
VALUE self;

#nameObject



677
678
679
# File 'ext/glib2/rbgobj_signal.c', line 677

static VALUE
query_signal_name(self)
VALUE self;

#no_hooks?Boolean

Returns:

  • (Boolean)

#no_recurse?Boolean

Returns:

  • (Boolean)

#ownerObject



695
696
697
# File 'ext/glib2/rbgobj_signal.c', line 695

static VALUE
query_owner(self)
VALUE self;

#param_typesObject



722
723
724
# File 'ext/glib2/rbgobj_signal.c', line 722

static VALUE
query_param_types(self)
VALUE self;

#remove_emission_hook(hook_id) ⇒ Object



841
842
843
844
845
846
847
848
# File 'ext/glib2/rbgobj_signal.c', line 841

static VALUE
signal_remove_emission_hook(VALUE self, VALUE hook_id)
{
    GSignalQuery* query;
    Data_Get_Struct(self, GSignalQuery, query);
    g_signal_remove_emission_hook(query->signal_id, NUM2ULONG(hook_id));
    return Qnil;
}

#return_typeObject



704
705
706
# File 'ext/glib2/rbgobj_signal.c', line 704

static VALUE
query_return_type(self)
VALUE self;

#run_cleanup?Boolean

Returns:

  • (Boolean)

#run_first?Boolean

Returns:

  • (Boolean)

#run_last?Boolean

Returns:

  • (Boolean)