function __construct() { require_once "knj/class_knj_eventmanager.php"; $this->em = new EventManager(); $this->em->addEvent(array("mouseclick", "north", "east", "south", "west", "northeast", "northwest", "southeast", "southwest")); $this->proc = fopen("/dev/input/mice", "r") or die; Gtk::io_add_watch($this->proc, GObject::IO_IN, array($this, "on_mouseevent_do")); }
public function run() { $this->pipes = NULL; $cmd = $this->command . " " . join(" ", $this->options); $this->proc_id = proc_open($cmd, $this->descriptor_spec, $this->pipes); # could set non blocking IO here # stream_set_blocking($this->pipes[1], false); # stdout # stream_set_blocking($this->pipes[2], false); # stderr if ($this->proc_id !== FALSE) { $ids[] = Gtk::io_add_watch($this->pipes[1], Gobject::IO_HUP, array($this, 'io_hup')); $ids[] = Gtk::io_add_watch($this->pipes[1], Gobject::IO_IN, array($this, 'stdout')); $ids[] = Gtk::io_add_watch($this->pipes[1], Gobject::IO_ERR, array($this, 'stderr')); } else { throw new Exception("PipeIO::run() : proc_open error"); } }