/// <summary> /// Sets the margin. /// </summary> /// <param name="control">The control.</param> /// <param name="padding">The padding.</param> public static void SetMargin(this Control control, Padding padding) { if (control.InvokeRequired) { control.BeginInvoke(new MethodInvoker(() => control.SetMargin(padding))); } else { control.Padding = padding; control.Refresh(); } }
protected override void OnInitialize() { m_generator = new UFormsCodeGenerator(); title = "Control Designer"; m_menu = new DesignerTopMenu(); m_menu.SetSize(100.0f, CONTROL_DISPLAY_HEIGHT, Control.MetricsUnits.Percentage, Control.MetricsUnits.Pixel); m_menu.MenuOptionSelected += HandleMenuOptionSelected; AddChild(m_menu); m_inspectorFields = new Dictionary <object, PropertyInfo>(); m_hierarchyItems = new Dictionary <Control, HierarchyItem>(); m_inspector = new Control(); m_inspector.SetPosition(position.width - INSPECTOR_WIDTH, CONTROL_DISPLAY_HEIGHT + TOP_MENU_SPACING); m_inspector.SetWidth(INSPECTOR_WIDTH); m_inspector.SetMargin(0.0f, 0.0f, SIDE_MARGIN, 0.0f); m_inspector.AddDecorator(new StackContent(StackContent.StackMode.Vertical, StackContent.OverflowMode.Flow)); AddChild(m_inspector); m_hierarchy = new Control(); m_hierarchy.SetPosition(0.0f, CONTROL_DISPLAY_HEIGHT + TOP_MENU_SPACING); m_hierarchy.SetWidth(HIERARCHY_WIDTH); m_hierarchy.SetMargin(SIDE_MARGIN, 0.0f, 0.0f, 0.0f); m_hierarchy.AddDecorator(new StackContent(StackContent.StackMode.Vertical, StackContent.OverflowMode.Flow)); AddChild(m_hierarchy); m_workarea = new Control(); m_workarea.SetPosition(m_viewportOffset); m_workarea.AddDecorator(new ClipContent()); AddChild(m_workarea); m_resizeHandle = new Control(); m_resizeHandle.SetSize(RESIZE_HANDLE_SIZE, RESIZE_HANDLE_SIZE); m_resizeHandle.AddDecorator(new BackgroundColor(Color.blue)); m_resizeHandle.Visibility = Control.VisibilityMode.Hidden; AddChild(m_resizeHandle); SetSelectedControl(null); SetInspectorTarget(null); ShowToolbox(); }
/// <summary> /// Sets a directionally uniform margin /// </summary> /// <param name="Instance">The control instance</param> /// <param name="HorMargin">Horizontal margin</param> /// <param name="VertMargin">Vertical margin</param> public static void SetMargin(this Control Instance, float HorMargin, float VertMargin) { Instance.SetMargin(HorMargin, VertMargin, HorMargin, VertMargin); }
/// <summary> /// Sets a uniform margin /// </summary> /// <param name="Instance">The control instance</param> /// <param name="InMargin">The margin</param> public static void SetMargin(this Control Instance, float InMargin) { Instance.SetMargin(InMargin, InMargin, InMargin, InMargin); }
private void CreateField(PropertyInfo prop, object control) { string displayName = prop.Name; // Remove special characters string[] classFrags = displayName.Split('.'); if (classFrags.Length != 0) { displayName = classFrags[classFrags.Length - 1]; } string[] specialFrags = displayName.Split('+'); if (specialFrags.Length != 0) { displayName = specialFrags[specialFrags.Length - 1]; } // Add spacing between capitals displayName = Regex.Replace(displayName, "([a-z])([A-Z])", "$1 $2"); Control fieldControl = null; int lines = 0; if (prop.PropertyType == typeof(int)) { fieldControl = m_inspector.AddChild(new IntField(( int )prop.GetValue(control, null), displayName)); lines = 1; } else if (prop.PropertyType == typeof(float)) { fieldControl = m_inspector.AddChild(new FloatField(( float )prop.GetValue(control, null), displayName)); lines = 1; } else if (prop.PropertyType == typeof(Vector2)) { fieldControl = m_inspector.AddChild(new Vector2Field(( Vector2 )prop.GetValue(control, null), displayName)); lines = 2; } else if (prop.PropertyType == typeof(Vector3)) { fieldControl = m_inspector.AddChild(new Vector3Field(( Vector3 )prop.GetValue(control, null), displayName)); lines = 2; } else if (prop.PropertyType == typeof(Vector4)) { fieldControl = m_inspector.AddChild(new Vector4Field(( Vector4 )prop.GetValue(control, null), displayName)); lines = 2; } else if (prop.PropertyType == typeof(string)) { fieldControl = m_inspector.AddChild(new TextField(( string )prop.GetValue(control, null), displayName)); lines = 1; } else if (prop.PropertyType == typeof(Rect)) { fieldControl = m_inspector.AddChild(new RectField(( Rect )prop.GetValue(control, null), displayName)); lines = 3; } else if (prop.PropertyType == typeof(Color)) { fieldControl = m_inspector.AddChild(new ColorField(( Color )prop.GetValue(control, null), displayName)); lines = 1; } else if (prop.PropertyType == typeof(Bounds)) { fieldControl = m_inspector.AddChild(new BoundsField(( Bounds )prop.GetValue(control, null), displayName)); lines = 3; } else if (prop.PropertyType.IsEnum) { fieldControl = m_inspector.AddChild(new EnumDropdown((System.Enum)prop.GetValue(control, null), displayName)); lines = 1; } else if (prop.PropertyType == typeof(bool)) { fieldControl = m_inspector.AddChild(new Toggle(displayName, ( bool )prop.GetValue(control, null), false)); lines = 1; } if (fieldControl != null) { fieldControl.SetSize(100.0f, 18.0f * lines, Control.MetricsUnits.Percentage, Control.MetricsUnits.Pixel); fieldControl.SetMargin(5.0f, 0.0f, 5.0f, 0.0f); m_inspectorFields.Add(fieldControl, prop); (fieldControl as IEditable).ValueChange += Inspector_ValueChange; } }
public void AddItem( Control item ) { item.SetMargin( m_indentationAmount, 0.0f, 0.0f, 0.0f, MetricsUnits.Pixel ); item.SetWidth( 100.0f, MetricsUnits.Percentage ); m_content.AddChild( item ); }
protected override void OnInitialize() { m_generator = new UFormsCodeGenerator(); title = "Control Designer"; m_menu = new DesignerTopMenu(); m_menu.SetSize( 100.0f, CONTROL_DISPLAY_HEIGHT, Control.MetricsUnits.Percentage, Control.MetricsUnits.Pixel ); m_menu.MenuOptionSelected += HandleMenuOptionSelected; AddChild( m_menu ); m_inspectorFields = new Dictionary<object, PropertyInfo>(); m_hierarchyItems = new Dictionary<Control, HierarchyItem>(); m_inspector = new Control(); m_inspector.SetPosition( position.width - INSPECTOR_WIDTH , CONTROL_DISPLAY_HEIGHT + TOP_MENU_SPACING ); m_inspector.SetWidth( INSPECTOR_WIDTH ); m_inspector.SetMargin( 0.0f, 0.0f, SIDE_MARGIN, 0.0f ); m_inspector.AddDecorator( new StackContent( StackContent.StackMode.Vertical, StackContent.OverflowMode.Flow ) ); AddChild( m_inspector ); m_hierarchy = new Control(); m_hierarchy.SetPosition( 0.0f, CONTROL_DISPLAY_HEIGHT + TOP_MENU_SPACING ); m_hierarchy.SetWidth( HIERARCHY_WIDTH ); m_hierarchy.SetMargin( SIDE_MARGIN, 0.0f, 0.0f, 0.0f ); m_hierarchy.AddDecorator( new StackContent( StackContent.StackMode.Vertical, StackContent.OverflowMode.Flow ) ); AddChild( m_hierarchy ); m_workarea = new Control(); m_workarea.SetPosition( m_viewportOffset ); m_workarea.AddDecorator( new ClipContent() ); AddChild( m_workarea ); m_resizeHandle = new Control(); m_resizeHandle.SetSize( RESIZE_HANDLE_SIZE, RESIZE_HANDLE_SIZE ); m_resizeHandle.AddDecorator( new BackgroundColor( Color.blue ) ); m_resizeHandle.Visibility = Control.VisibilityMode.Hidden; AddChild( m_resizeHandle ); SetSelectedControl( null ); SetInspectorTarget( null ); ShowToolbox(); }
public void AddItem(Control item) { item.SetMargin(m_indentationAmount, 0.0f, 0.0f, 0.0f, MetricsUnits.Pixel); item.SetWidth(100.0f, MetricsUnits.Percentage); m_content.AddChild(item); }