Sha256: ffc5c8db7c30b04550345b300b4c6eaabc71bbb130bba10c33ebe5e829e9d0ea

Contents?: true

Size: 1.74 KB

Versions: 12

Compression:

Stored size: 1.74 KB

Contents

/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/************************************************

  rbgdkinput.c -

  $Author: sakai $
  $Date: 2007/07/08 03:00:50 $

  Copyright (C) 2002,2003 Masao Mutoh

  This file is devided from rbgtkmain.c.
  rbgtkmain.c -
  Copyright (C) 1998-2000 Yukihiro Matsumoto,
                          Daisuke Kanda,
                          Hiroshi Igarashi
************************************************/

#include "global.h"

static void
exec_input(gpointer data, gint source, GdkInputCondition condition)
{
    rb_funcall((VALUE)data, id_call, 1, 
               GFLAGS2RVAL(condition, GDK_TYPE_INPUT_CONDITION));
}

static VALUE
input_add(VALUE self, VALUE filedescriptor, VALUE gdk_input_condition)
{
    VALUE id;
    VALUE func;

    func = rb_block_proc();
    id = INT2FIX(gdk_input_add(NUM2INT(rb_funcall(filedescriptor,
                                                  rb_intern("to_i"), 0)),
                               RVAL2GFLAGS(gdk_input_condition, GDK_TYPE_INPUT_CONDITION),
                               (GdkInputFunction)exec_input,
                               (gpointer)func));
    G_RELATIVE2(self, func, id_relative_callbacks, id);
    return id;
}

static VALUE
input_remove(VALUE self, VALUE id)
{
    gdk_input_remove(NUM2INT(id));
    G_REMOVE_RELATIVE(self, id_relative_callbacks, id);
    return id;
}


void
Init_gtk_gdk_input()
{
    VALUE mGdkInput = rb_define_module_under(mGdk, "Input");

    rb_define_module_function(mGdkInput, "add", input_add, 2);
    rb_define_module_function(mGdkInput, "remove", input_remove, 1);

    /* GdkInputCondition */
    G_DEF_CLASS(GDK_TYPE_INPUT_CONDITION, "Condition", mGdkInput);
    G_DEF_CONSTANTS(mGdkInput, GDK_TYPE_INPUT_CONDITION, "GDK_INPUT_");

}

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
gtk2-1.0.3-x86-mingw32 ext/gtk2/rbgdkinput.c
gtk2-1.0.3 ext/gtk2/rbgdkinput.c
gtk2-1.0.2-x86-mingw32 ext/gtk2/rbgdkinput.c
gtk2-1.0.2 ext/gtk2/rbgdkinput.c
gtk2-1.0.1 ext/gtk2/rbgdkinput.c
gtk2-1.0.1-x86-mingw32 ext/gtk2/rbgdkinput.c
gtk2-1.0.0-x86-mingw32 ext/gtk2/rbgdkinput.c
gtk2-1.0.0 ext/gtk2/rbgdkinput.c
gtk2-0.90.9 ext/gtk2/rbgdkinput.c
gtk2-0.90.9-x86-mingw32 ext/gtk2/rbgdkinput.c
gtk2-0.90.8-x86-mingw32 ext/gtk2/rbgdkinput.c
gtk2-0.90.8 ext/gtk2/rbgdkinput.c