internal static void OnDragWidgetInfo(DDContainer widget, RequestDragWidgetInfoEventArg arg) { FString layout; FString item; widget.mHandleDragWidgetInfo(widget.Name, out layout, out item, arg.Dimension); Widget wd = null; if (null != layout && null != item) { ExecuteResult ret = GUI.FindWidget(layout, item, out wd); if (ExecuteResult.Success == ret) { arg.Item = wd.Instance.Ptr; } } }
internal bool FindWidget(FString widget_name, out Widget widget) { if (!IsLoaded) { widget = null; return(false); } if (mWidget.Name == widget_name) { widget = mWidget; return(true); } //先从子layout找,因为,如果widget_name,在子layout里, //widget_name的脚本对象必须由子layout管理,要不然会悲剧。 // foreach (Layout ly in mChildLayouts) { if (ly.FindWidget(widget_name, out widget)) { return(true); } } if (mChilds.GetWidget(widget_name, out widget)) { return(true); } else { Instance inst = GUI.FindWidget(mWidget.Instance.Ptr, widget_name.Name); if (inst.IsValid) { widget = Widget.CreateWidget(inst, widget_name.Name, this); mChilds.Add(widget); return(true); } else { widget = null; return(false); } } }
internal bool FindWidget(FString widget_name, out Widget widget) { if (mChilds.GetWidget(widget_name, out widget)) { return(true); } else { Instance inst = GUI.FindWidget(mWidget.Instance.Ptr, widget_name.Name); if (inst.IsValid) { widget = Widget.CreateWidget(inst, widget_name.Name, this); mChilds.Add(widget); return(true); } else { widget = null; return(false); } } }