Ejemplo n.º 1
0
        public ImageEditor()
        {
            InitializeComponent();

            if (File.Exists("layout.xml"))
            {
                XmlLayoutSerializer serializer = new XmlLayoutSerializer(uiDockManager);
                serializer.Deserialize("layout.xml");

                LayoutAnchorable[] panels = uiDockManager.Layout.Descendents().OfType <LayoutAnchorable>().ToArray();

                LayoutAnchorable menuPanel = panels.First(p => p.Content is IMenuPanel);
                menuPanel.Title = Properties.Resources.Menu;

                LayoutAnchorable imagePanels = panels.First(p => p.Content is IPanelGroup <IImagePanel>);
                imagePanels.Title = Properties.Resources.Image;

                LayoutAnchorable toolPanels = panels.First(p => p.Content is IPanelGroup <IToolPanel>);
                toolPanels.Title = Properties.Resources.Tools;

                MenuPanel   = (IMenuPanel)menuPanel.Content;
                ImagePanels = (IPanelGroup <IImagePanel>)imagePanels.Content;
                ToolPanels  = (IPanelGroup <IToolPanel>)toolPanels.Content;
            }
            else
            {
                MenuPanel   = uiMenu;
                ImagePanels = uiImages;
                ToolPanels  = uiTools;
            }
        }
Ejemplo n.º 2
0
 public static void RegistGroup(IPanelGroup group)
 {
     if (!groupList.Contains(group))
     {
         groupList.Add(group);
     }
 }
Ejemplo n.º 3
0
 public static void UnRegistGroup(IPanelGroup group)
 {
     if (groupList.Contains(group))
     {
         groupList.Remove(group);
     }
 }
 public static void RemovePanelGroup(IPanelGroup group)
 {
     if (group == null)
     {
         return;
     }
     panelGroups.Remove(group);
 }
Ejemplo n.º 5
0
        private void InternalOpen(IUIPanel parentPanel, IPanelGroup group, IUIHandleInternal handle, string panelName, int index)
        {
            var    Content   = parentPanel == null ? null : parentPanel.Content;
            Bridge bridgeObj = group.InstencePanel(parentPanel, panelName, index, Content);

            if (bridgeObj != null)
            {
                handle.RegistBridge(bridgeObj);
            }
        }
 public void IsPanelOpen(IPanelGroup parentGroup, string panelName, UnityAction <bool> onJudge = null)
 {
     mainThreadActions.Enqueue(new Action(() => {
         var isOpen = UIFacade.IsPanelOpen(panelName);
         if (onJudge != null)
         {
             onJudge.Invoke(isOpen);
         }
     }));
 }
Ejemplo n.º 7
0
        private void InternalHide(IPanelGroup group, string panelName)
        {
            var panels = group.RetrivePanels(panelName);

            if (panels != null)
            {
                foreach (var panel in panels)
                {
                    panel.Hide();
                }
            }
        }
        public static void RegistPanelGroup(IPanelGroup group)
        {
            if (group == null)
            {
                return;
            }

            if (!panelGroups.Contains(group))
            {
                panelGroups.Add(group);
            }
        }
Ejemplo n.º 9
0
        private void InteralClose(IPanelGroup group, string panelName)
        {
            var panels = group.RetrivePanels(panelName);

            if (panels != null)
            {
                foreach (var panel in panels)
                {
                    panel.Close();
                }
            }
            group.CansaleInstencePanel(panelName);
        }
Ejemplo n.º 10
0
 public void Close(IPanelGroup currentGroup, string panelName)
 {
     if (currentGroup != null)
     {
         InteralClose(currentGroup, panelName);
     }
     else
     {
         foreach (var group in groupList)
         {
             InteralClose(group, panelName);
         }
     }
 }
Ejemplo n.º 11
0
 public void Hide(IPanelGroup currentGroup, string panelName)
 {
     if (currentGroup != null)//限制性打开
     {
         InternalHide(currentGroup, panelName);
     }
     else
     {
         foreach (var group in groupList)
         {
             InternalHide(group, panelName);
         }
     }
 }
Ejemplo n.º 12
0
        public bool IsPanelOpen <T>(IPanelGroup parentPanel, string panelName, out T[] panels)
        {
            var obj_panels = parentPanel.RetrivePanels(panelName);

            if (obj_panels != null && obj_panels.Count > 0)
            {
                panels = obj_panels.ToArray() as T[];
                return(true);
            }
            else
            {
                panels = null;
                return(false);
            }
        }
Ejemplo n.º 13
0
        public void Hide(IPanelGroup currentGroup, string panelName)
        {
            if (currentGroup != null)//限制性打开
            {
                InternalHide(currentGroup, panelName);
            }
            else
            {
                var groupList = Utility.GetActivePanelGroups();

                foreach (var group in groupList)
                {
                    InternalHide(group, panelName);
                }
            }
        }
Ejemplo n.º 14
0
        internal bool InternalOpen(IUIPanel parentPanel, IPanelGroup group, IUIHandleInternal handle, string panelName, int index)
        {
            var Content = parentPanel == null ? null : parentPanel.Content;

            UIInfoBase uiInfo;

            group.Nodes.TryGetValue(panelName, out uiInfo);

            if (uiInfo == null)
            {
                return(false);
            }

            Bridge bridge;


            if (group.TryOpenOldPanel(panelName, uiInfo, parentPanel, out bridge))
            {
                handle.RegistCreate(OnCreate);
                handle.RegistClose(OnClose);
                handle.RegistBridge(bridge);
                return(true);
            }
            else
            {
                if (group.CreateInfoAndBridge(panelName, parentPanel, index, uiInfo, out bridge))
                {
                    handle.RegistCreate(OnCreate);
                    handle.RegistClose(OnClose);
                    handle.RegistBridge(bridge);

                    group.CreatePanel(uiInfo, bridge, parentPanel);
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 15
0
        public bool IsPanelOpen(IPanelGroup parentPanel, string panelName)
        {
            var panels = parentPanel.RetrivePanels(panelName);

            return(panels != null && panels.Count > 0);
        }
 public void Hide(IPanelGroup parentGroup, string panelName)
 {
     mainThreadActions.Enqueue(new Action(() => {
         UIFacade.Hide(parentGroup, panelName);
     }));
 }