Пример #1
0
        private void AddNewWidget(UEditorWidgetBase newControl)
        {
            //TODO: This functionality is already getting achieved by the onContainerChange() call, work out how to decom this
            //and still keep the select widget working.
            //Create a new hierarchy widget
            UEditorWidgetFoldout __newHierarchyWidget = UWidget.Create <UEditorWidgetFoldout>();

            __newHierarchyWidget.BindTo(newControl, "Name");
            __newHierarchyWidget.ObjectID   = newControl.ObjectID;
            __newHierarchyWidget.LayoutMode = ePositioningLayout.Layout;
            //__newHierarchyWidget.OnClick += __newFoldout_OnClick;
            if (newControl.GetType().IsSubclassOf(typeof(UEditorPanelBase)) == false)
            {
                __newHierarchyWidget.BaseStyle = "label";
            }

            Canvas.CurrentContainer.AddChild(newControl);
            UEditorWidgetFoldout __containerInHierarchy = (UEditorWidgetFoldout)UWidget.FindWidgetById(this.HierarchyContainer, Canvas.CurrentContainer.ObjectID);

            __newHierarchyWidget.IndentLevel = __containerInHierarchy.IndentLevel + 1;


            //Select the new control
            this.__newFoldout_OnClick(__newHierarchyWidget, new System.EventArgs());
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="widget"></param>
        public void RemoveWidget(UWidget widget)
        {
            _leftItems.Remove(widget);
            _rightItems.Remove(widget);

            UControl.UnActiveToolbarGuiStyle(widget);
        }
Пример #3
0
        public void FindEditableForms()
        {
            _formsList.ClearChilden();

            //Go searching for attributes
            foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
            {
                foreach (Type type in assembly.GetTypes())
                {
                    object[] __foundAttributes = type.GetCustomAttributes(typeof(UWidgetFormAttribute), false);
                    if (__foundAttributes != null && __foundAttributes.Length == 1)
                    {
                        UWidgetFormAttribute __formAttribute = __foundAttributes[0] as UWidgetFormAttribute;

                        if (__formAttribute.CanEditInDesigner)
                        {
                            _listFormTypes.Add(new ListItems(type.FullName, type));

                            UEditorWidgetButton __formItem = UWidget.Create <UEditorWidgetButton>();
                            __formItem.BaseStyle    = "label";
                            __formItem.Width        = 200;
                            __formItem.Height       = 16;
                            __formItem.LayoutMode   = ePositioningLayout.Layout;
                            __formItem.Label        = type.FullName;
                            __formItem.Alignment    = TextAnchor.MiddleLeft;
                            __formItem.Padding.left = 5;
                            __formItem.OnClick     += __formItem_OnClick;
                            _formsList.AddChild(__formItem);
                        }
                    }
                }
            }
        }
Пример #4
0
        void Hierarchy_onContainerChange(IWidgetContainer sender)
        {
            //Find the widget in the hierarchy
            UEditorWidgetBase __hierarchyContainer = UWidget.FindWidgetById(this.HierarchyContainer, sender.ObjectID);

            if (__hierarchyContainer != null)
            {
                BuildHericRecursive((UEditorWidgetFoldout)__hierarchyContainer, sender.Children);
            }
        }
Пример #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="widget"></param>
        /// <param name="alignment"></param>
        public void AddWidget(UWidget widget, Alignment alignment = Alignment.Left)
        {
            if (alignment == Alignment.Left)
            {
                _leftItems.Add(widget);
            }
            else
            {
                _rightItems.Add(widget);
            }

            UControl.ActiveToolbarGuiStyle(widget);
        }
        void _listMenuOptions_onItemAdded(UEditorWidgetBase sender, int indexAdded)
        {
            UEditorPanelVertical __newPanel = UWidget.Create <UEditorPanelVertical>();

            __newPanel.Name               = TabAreaPanel.Name + "_" + _listMenuOptions.StringList[indexAdded];
            __newPanel.LayoutMode         = ePositioningLayout.Layout;
            __newPanel.WidgetShouldRender = false;

            this.TabPanelData.Insert(indexAdded, new UEditorPanelTab_TabPanelItem()
            {
                Panel = __newPanel
            });
            this.TabAreaPanel.AddChild(__newPanel);
            this.TabAreaPanel.Raise_onContainerChange();
            TabAreaPanel.ToolBar.MenuOptions.Insert(indexAdded, _listMenuOptions.StringList[indexAdded]);
        }
Пример #7
0
        public void BuildHericRecursive(UEditorWidgetFoldout ParentFoldout, List <UEditorWidgetBase> widgetList)
        {
            ParentFoldout.ClearChilden();

            foreach (var item in widgetList)
            {
                UEditorWidgetFoldout __newFoldout = UWidget.Create <UEditorWidgetFoldout>();
                __newFoldout.IndentLevel = ParentFoldout.IndentLevel + 1;
                __newFoldout.BindTo(item, "Name");
                __newFoldout.LayoutMode = ePositioningLayout.Layout;
                __newFoldout.OnClick   += __newFoldout_OnClick;

                //Set the widget ID to match the one on the canvas.
                //This little bit of hackery help us keep the desinger hierarchy and the toolbox layout in sync.
                __newFoldout.ObjectID = item.ObjectID;


                if (item.GetType().IsSubclassOf(typeof(UEditorPanelBase)))
                {
                    ParentFoldout.AddChild(__newFoldout);
                    UEditorPanelBase __castPanel = (UEditorPanelBase)item;

                    __castPanel.onContainerChange += Hierarchy_onContainerChange;

                    List <UEditorWidgetBase> __childList = new List <UEditorWidgetBase>();
                    foreach (var __childWidgets in __castPanel.Children)
                    {
                        if (item.GetType().IsSubclassOf(typeof(UEditorWidgetBase)))
                        {
                            UEditorWidgetBase __castChild = (UEditorWidgetBase)__childWidgets;
                            __childList.Add(__castChild);
                        }
                    }
                    BuildHericRecursive(__newFoldout, __childList);
                }
                else
                {
                    __newFoldout.BaseStyle = "label";
                    ParentFoldout.AddChild(__newFoldout);
                }
            }
        }
Пример #8
0
 void _btnTBA_OnClick(IUEditorWidgetClickable sender, EventArgs e)
 {
     AddNewWidget(UWidget.Create <UControlDesignerTools>());
 }
Пример #9
0
        void _toolbox_OnClick(IUEditorWidgetClickable sender, EventArgs e)
        {
            UEditorWidgetBase __newControl = UWidget.Create(Type.GetType(_toolbox.LastSelectedType));

            AddNewWidget(__newControl);
        }