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()); }
/// <summary> /// /// </summary> /// <param name="widget"></param> public void RemoveWidget(UWidget widget) { _leftItems.Remove(widget); _rightItems.Remove(widget); UControl.UnActiveToolbarGuiStyle(widget); }
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); } } } } }
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); } }
/// <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]); }
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); } } }
void _btnTBA_OnClick(IUEditorWidgetClickable sender, EventArgs e) { AddNewWidget(UWidget.Create <UControlDesignerTools>()); }
void _toolbox_OnClick(IUEditorWidgetClickable sender, EventArgs e) { UEditorWidgetBase __newControl = UWidget.Create(Type.GetType(_toolbox.LastSelectedType)); AddNewWidget(__newControl); }