protected void createToggleForProperty(
     string name, string label, string property_name,
     ref bool undo_info_value, valueChangedFunc func,
     bool global_overwrite)
 {
     createToggleForProperty(
         name, label, property_name, ref undo_info_value,
         func, global_overwrite, false, "");
 }
    protected void createToggleForProperty(
        string name, string label, string property_name,
        ref bool undo_info_value, valueChangedFunc func,
        bool global_overwrite, bool local_overwrite,
        string local_overwrite_message)
    {
        bool gui_enabled = GUI.enabled;

        try
        {
            PropertyInfo property = typeof(HoudiniAsset).GetProperty(property_name);
            if (property == null)
            {
                throw new HoudiniErrorInvalidArgument(property_name + " is not a valid property of HAPI_Asset!");
            }
            if (property.PropertyType != typeof(bool))
            {
                throw new HoudiniErrorInvalidArgument(property_name + " is not a boolean!");
            }

            GUI.enabled = !global_overwrite && !local_overwrite && GUI.enabled;

            if (global_overwrite)
            {
                label += " (overwritted by global setting)";
            }
            else if (local_overwrite)
            {
                label += local_overwrite_message;
            }

            bool value   = ( bool )property.GetValue(myAsset, null);
            bool is_bold = myParentPrefabAsset && ( bool )property.GetValue(myParentPrefabAsset, null) != value;
            bool changed = HoudiniGUI.toggle(name, label, is_bold, ref value, myUndoInfo, ref undo_info_value);

            if (changed)
            {
                property.SetValue(myAsset, value, null);

                if (func != null)
                {
                    func();
                }
            }
        }
        catch (System.Exception error)
        {
            Debug.LogError(
                "Failed to create toggle for: " + label + "\n" +
                error.ToString() + "\nSource: " + error.Source);
        }
        GUI.enabled = gui_enabled;
    }
 protected void createToggleForProperty(
     string name, string label, string property_name,
     ref bool undo_info_value, valueChangedFunc func)
 {
     createToggleForProperty(name, label, property_name, ref undo_info_value, func, false);
 }
Beispiel #4
0
    protected void createToggleForProperty(
		string name, string label, string property_name, 
		ref bool undo_info_value, valueChangedFunc func,
		bool global_overwrite, bool local_overwrite, 
		string local_overwrite_message )
    {
        bool gui_enabled = GUI.enabled;
        try
        {
            PropertyInfo property = typeof( HoudiniAsset ).GetProperty( property_name );
            if ( property == null )
                throw new HoudiniErrorInvalidArgument( property_name + " is not a valid property of HAPI_Asset!" );
            if ( property.PropertyType != typeof( bool ) )
                throw new HoudiniErrorInvalidArgument( property_name + " is not a boolean!" );

            GUI.enabled = !global_overwrite && !local_overwrite && GUI.enabled;

            if ( global_overwrite )
                label += " (overwritted by global setting)";
            else if ( local_overwrite )
                label += local_overwrite_message;

            bool value = ( bool ) property.GetValue( myAsset, null );
            bool is_bold = myParentPrefabAsset && ( bool ) property.GetValue( myParentPrefabAsset, null ) != value;
            bool changed = HoudiniGUI.toggle( name, label, is_bold, ref value, myUndoInfo, ref undo_info_value );

            if ( changed )
            {
                property.SetValue( myAsset, value, null );

                if ( func != null )
                    func();
            }
        }
        catch ( System.Exception error )
        {
            Debug.LogError(
                "Failed to create toggle for: " + label + "\n" +
                error.ToString() + "\nSource: " + error.Source );
        }
        GUI.enabled = gui_enabled;
    }
Beispiel #5
0
    protected void createToggleForProperty(
		string name, string label, string property_name, 
		ref bool undo_info_value, valueChangedFunc func,
		bool global_overwrite )
    {
        createToggleForProperty(
            name, label, property_name, ref undo_info_value,
            func, global_overwrite, false, "" );
    }
Beispiel #6
0
    protected void createToggleForProperty(
		string name, string label, string property_name, 
		ref bool undo_info_value, valueChangedFunc func )
    {
        createToggleForProperty( name, label, property_name, ref undo_info_value, func, false );
    }