Esempio n. 1
0
 /**
  *	write the signals for the given class object.
  *	works only if php-gtk2 module is installed and working
  *	
  *	@param $object	The class object which is passes to write_class
  */
 function write_signals($object)
 {
     global $signals_start_tpl, $signal_start_tpl, $cbfuncproto_tpl, $no_parameter_tpl, $signal_end_tpl, $signals_end_tpl;
     if (isset($GLOBALS['disable_signal_generation']) && $GLOBALS['disable_signal_generation']) {
         //is the second warning necessary?
         echo "signals are NOT generated as you don't have php-gtk2 installed\r\n";
         return;
     }
     $classname = $object->c_name;
     //why can't I do "$classname::gtype"?
     eval("\$gtype = {$classname}::gtype;");
     $signals = GObject::signal_list_names($gtype);
     if (count($signals) == 0) {
         return;
     }
     fwrite($this->fp, $signals_start_tpl);
     sort($signals);
     foreach ($signals as $signalname) {
         $GLOBALS['docgenstats']['signals']++;
         fwrite($this->fp, sprintf($signal_start_tpl, $this->prefix, strtolower($classname), $signalname, $signalname));
         $signal_info = GObject::signal_query($signalname, $gtype);
         $return_type = $this->get_type($signal_info[4]->name);
         if (!$return_type && $signal_info[4]->name == 'void') {
             $return_type = $signal_info[4]->name;
         }
         fwrite($this->fp, sprintf($cbfuncproto_tpl, $return_type ? $return_type : '<!-- was: ' . $signal_info[4]->name . ' -->XXX', $this->get_signal_paramdef($signal_info[5], $classname)));
         fwrite($this->fp, $signal_end_tpl);
     }
     fwrite($this->fp, $signals_end_tpl);
 }