Example #1
0
remove_functions_implementing_unknown_types($defFunctions);
//Remove deprecated functions.
remove_deprecated_functions($defFunctions);
//Remove classes and methods not implemented on all 3 target platforms (windows, linux, mac)
remove_classes_and_methods_not_crossplatform($defIni);
//Remove deprecated class methods.
remove_deprecated_methods($defIni);
//Remove methods implementing unhandled argument declaration like
//wxRichTextCtrl::PrepareContent(wxRichTextParagraphLayoutBox &WXUNUSED(container))
remove_methods_implementing_unhandled_arguments($defIni);
//Remove obsolete .cpp and .h files
remove_old_src_and_headers();
//Store all classes that derive from wxEvtHandler
$evnHandlers = derivationsOfClass('wxEvtHandler');
//Store all classes that derive from wxObject
$wxObject_derivations = derivationsOfClass('wxObject');
print "\n";
//Merges method overloads from parents to child classes
//classes_method_merger($defIni); //This is provoking compilation errors on some classes
//Generate header files of class groups
$header_files = "";
foreach ($defClassGroups as $header_name => $v) {
    $header_name = str_replace("group_class_", "", $header_name);
    $header_files .= "#include \"{$header_name}.h\"\n";
}
//Generate classes source and header files
foreach ($defClassGroups as $file_name => $class_list) {
    //Strip group_class_
    $file_name = str_replace("group_class_", "", $file_name);
    echo "Generating {$file_name}.cpp ...\n";
    //Add neccesary headers to classes implementation file
Example #2
0
/**
 * Generates the code to correctly cast the references variable using
 * the parent_rsrc_type in order to correctly retrieve the references
 * object.
 */
function references_cast_code($class_name)
{
    $derivations = derivationsOfClass($class_name);
    //Instead of using elseif we have to break it in multiple if since
    //MS Visual C++ compiler doesnt supports a very deep elseif sequence.
    $code .= "bool reference_type_found = false;\n\n";
    $code .= tabs(3) . "if(current_object_type == PHP_" . strtoupper($class_name) . "_TYPE){\n";
    $code .= tabs(4) . "references = &(({$class_name}_php*)native_object)->references;\n";
    $code .= tabs(4) . "reference_type_found = true;\n";
    $code .= tabs(3) . "}\n";
    foreach ($derivations as $derivation_name => $derivation_value) {
        $code .= tabs(3) . "if((current_object_type == PHP_" . strtoupper($derivation_name) . "_TYPE) && (!reference_type_found)){\n";
        $code .= tabs(4) . "references = &(({$derivation_name}_php*)native_object)->references;\n";
        $code .= tabs(4) . "reference_type_found = true;\n";
        $code .= tabs(3) . "}\n";
    }
    return $code;
}
Example #3
0
/**
 * Check if a given class inherits from another class
 * 
 * @param string $parent_class Base/parent class to check
 * @param string $child_class Child class to check if inherits from parent class
 * 
 * @return bool
 */
function inherits_from_class($parent_class, $child_class)
{
    $derivations = derivationsOfClass($parent_class);
    return isset($derivations[$child_class]);
}
Example #4
0
	#ifdef USE_WXPHP_DEBUG
	php_printf("Invoking virtual <?php 
echo $class_name;
?>
::onEvent\n");
	php_printf("===========================================\n");
	#endif
	
	zval *arg[1];
	MAKE_STD_ZVAL(arg[0]);
	TSRMLS_FETCH();

	if(0)
	{}
	<?php 
foreach (derivationsOfClass('wxEvent') as $kevn => $vevn) {
    ?>
	
	else if(!tcscmp(evnt.GetClassInfo()->GetClassName(), wxT("<?php 
    echo $kevn;
    ?>
")))
	{
		#ifdef USE_WXPHP_DEBUG
		php_printf("Converting event type '<?php 
    echo $kevn;
    ?>
' to zval to call user function.\n\n");
		#endif
		
		object_init_ex(arg[0], php_<?php 
Example #5
0
function derivationsOfClass($myType)
{
    //retorna lista de todas as subclasses derivadas desta + esta
    global $defIni;
    $typeVerifier = array();
    if ($defIni[$myType]['_type'] != "abstract") {
        $typeVerifier[$myType] = 1;
    }
    foreach ($defIni as $k => $v) {
        if (isset($v['_implements'])) {
            if (in_array($myType, $v['_implements'])) {
                $typeVerifier[$k] = 1;
                $typeVerifier = array_merge($typeVerifier, derivationsOfClass($k));
            }
        }
        if ($v['_extends'] == $myType) {
            $typeVerifier[$k] = 1;
            $typeVerifier = array_merge($typeVerifier, derivationsOfClass($k));
        }
    }
    return $typeVerifier;
}