Class: GLib::Signal
- Inherits:
-
Data
- Object
- Data
- GLib::Signal
- 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
- #action? ⇒ Boolean
- #add_emission_hook(*args) ⇒ Object
- #detailed? ⇒ Boolean
- #flags ⇒ Object
- #id ⇒ Object
- #inspect ⇒ Object
- #itype ⇒ Object
- #name ⇒ Object
- #no_hooks? ⇒ Boolean
- #no_recurse? ⇒ Boolean
- #owner ⇒ Object
- #param_types ⇒ Object
- #remove_emission_hook(hook_id) ⇒ Object
- #return_type ⇒ Object
- #run_cleanup? ⇒ Boolean
- #run_first? ⇒ Boolean
- #run_last? ⇒ Boolean
Instance Method Details
#action? ⇒ 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
#flags ⇒ Object
713 714 715 |
# File 'ext/glib2/rbgobj_signal.c', line 713 static VALUE query_signal_flags(self) VALUE self; |
#id ⇒ Object
668 669 670 |
# File 'ext/glib2/rbgobj_signal.c', line 668 static VALUE query_signal_id(self) VALUE self; |
#inspect ⇒ Object
738 739 740 |
# File 'ext/glib2/rbgobj_signal.c', line 738 static VALUE query_inspect(self) VALUE self; |
#itype ⇒ Object
686 687 688 |
# File 'ext/glib2/rbgobj_signal.c', line 686 static VALUE query_itype(self) VALUE self; |
#name ⇒ Object
677 678 679 |
# File 'ext/glib2/rbgobj_signal.c', line 677 static VALUE query_signal_name(self) VALUE self; |
#no_hooks? ⇒ Boolean
#no_recurse? ⇒ Boolean
#owner ⇒ Object
695 696 697 |
# File 'ext/glib2/rbgobj_signal.c', line 695 static VALUE query_owner(self) VALUE self; |
#param_types ⇒ Object
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_type ⇒ Object
704 705 706 |
# File 'ext/glib2/rbgobj_signal.c', line 704 static VALUE query_return_type(self) VALUE self; |