From c2d7ce8311d9d6590c6153cbf72703451f718dd7 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期日, 05 五月 2019 10:38:52 +0800
Subject: [PATCH] 3335 新的一级界面框架。

---
 System/WindowBase/Window.cs |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/System/WindowBase/Window.cs b/System/WindowBase/Window.cs
index 862711b..c9d7e9a 100644
--- a/System/WindowBase/Window.cs
+++ b/System/WindowBase/Window.cs
@@ -46,6 +46,8 @@
             {
                 if (!initialized)
                 {
+                    AddWindowPattern();
+
                     if (windowInfo.clickEmptyToClose && emptyCloseButton == null)
                     {
                         AddEmptyCloseResponser();
@@ -72,15 +74,24 @@
             {
                 windowTimer = 0f;
                 var parentName = string.Empty;
-                if (WindowConfig.Get().FindParentWindow(this.gameObject.name, out parentName))
+                if (WindowConfig.FindParentWindow(this.gameObject.name, out parentName))
                 {
                     var parentWindow = WindowCenter.Instance.Get(parentName);
-                    if (parentWindow != null)
+                    if (parentWindow is OneLevelWin)
+                    {
+                        parent = (parentWindow as OneLevelWin).subWindowContainer;
+                    }
+                    else
                     {
                         parent = parentWindow.transform as RectTransform;
+                    }
+
+                    if (parent != null)
+                    {
                         rectTransform.MatchWhith(parent);
                     }
                 }
+
                 OnPreOpen();
                 WindowCenter.Instance.NotifyBeforeOpen(this);
             }
@@ -450,11 +461,11 @@
 
             try
             {
-                var isChildWindow = WindowConfig.Get().IsChildWindow(this.gameObject.name);
+                var isChildWindow = WindowConfig.IsChildWindow(this.gameObject.name);
                 if (isChildWindow)
                 {
                     var parentName = string.Empty;
-                    WindowConfig.Get().FindParentWindow(this.gameObject.name, out parentName);
+                    WindowConfig.FindParentWindow(this.gameObject.name, out parentName);
                     var parentWindow = WindowCenter.Instance.Get(parentName);
                     if (parentWindow != null && parentWindow.executedActiveWindow)
                     {
@@ -466,7 +477,7 @@
                 {
                     OnActived();
                     executedActiveWindow = true;
-                    var childWindows = WindowConfig.Get().FindChildWindows(this.gameObject.name);
+                    var childWindows = WindowConfig.GetChildWindows(this.gameObject.name);
                     var isParentWindow = childWindows != null;
                     if (isParentWindow)
                     {
@@ -495,6 +506,16 @@
             }
         }
 
+        private void AddWindowPattern()
+        {
+            var pattern = WindowConfig.GetWindowPattern(this.GetType().Name);
+            if (!string.IsNullOrEmpty(pattern))
+            {
+                var instance = UIUtility.CreateWidget(pattern, "Pivot");
+                instance.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one);
+            }
+        }
+
         private void AddEmptyCloseResponser()
         {
             var emptyClose = UIUtility.CreateWidget("InvisibleButton", "EmptyClose");

--
Gitblit v1.8.0