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); }
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, 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 ) { createToggleForProperty( name, label, property_name, ref undo_info_value, func, false ); }