Example #1
0
 /// <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();
     }
 }
Example #2
0
        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();
        }
Example #3
0
 /// <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);
 }
Example #4
0
 /// <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);
 }
Example #5
0
        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;
            }
        }
Example #6
0
 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 );
 }
Example #7
0
        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();
        }
Example #8
0
 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);
 }