Beispiel #1
0
        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;
                }
            }
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
 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);
         }
     }
 }