예제 #1
0
        /// <summary>
        /// Draws the list of layers.
        /// </summary>
        private void DrawLayerList()
        {
            var service = Map2DService.Instance;
            if (service.ActiveMapIndex < 0)
            {
                return;
            }

            var map = service.GetActiveMap();
            if (map.Layers == null)
            {
                return;
            }

            var layers = new Map2DLayerModel[map.Layers.Count];
            map.Layers.CopyTo(layers, 0);

            this.scrollValue = GUILayout.BeginScrollView(this.scrollValue, false, false);
            GUILayout.BeginVertical();

            ControlGrid.DrawGenericGrid(
                (data, index, style, options) =>
                {
                    //GUILayout.BeginHorizontal(GUI.skin.box, GUILayout.Height(64), GUILayout.ExpandWidth(true));

                    //GUILayout.BeginVertical(GUILayout.ExpandWidth(true));

                    var layerModel = data[index];

                    var nameText = layerModel.Name;
                    nameText = nameText ?? string.Empty;

                    if (index == map.ActiveLayer)
                    {
                        GUI.SetNextControlName("txtLayerName" + index);
                        layerModel.Name = GUILayout.TextField(nameText, GUILayout.MinWidth(32));
                    }
                    else
                    {
                        if (GUILayout.Button(nameText, GUILayout.MinWidth(32)))
                        {
                            map.ActiveLayer = index;
                            GUI.FocusControl("txtLayerName" + index);
                            service.OnRepaintMap();
                        }
                    }

                    //GUILayout.BeginHorizontal();

                    //GUILayout.EndHorizontal();

                    //GUILayout.EndVertical();

                    //GUILayout.FlexibleSpace();

                    //var texture = layerModel.Texture;
                    //if (texture != null)
                    //{
                    //    if (GUILayout.Button(string.Empty, GUI.skin.label, GUILayout.MaxWidth(64), GUILayout.Height(64)))
                    //    {
                    //        Debug.Log("here");
                    //    }

                    //    GUI.DrawTexture(GUILayoutUtility.GetLastRect(), texture, ScaleMode.ScaleToFit, false);
                    //}

                    //GUILayout.EndHorizontal();

                    return layerModel;
                },
                layers,
                1,
                null);

            GUILayout.EndVertical();
            GUILayout.FlexibleSpace();
            GUILayout.EndScrollView();
        }
        /// <summary>
        /// Draws the list of layers.
        /// </summary>
        private void DrawLayerList()
        {
            var service = Map2DService.Instance;

            if (service.ActiveMapIndex < 0)
            {
                return;
            }

            var map = service.GetActiveMap();

            if (map.Layers == null)
            {
                return;
            }

            var layers = new Map2DLayerModel[map.Layers.Count];

            map.Layers.CopyTo(layers, 0);

            this.scrollValue = GUILayout.BeginScrollView(this.scrollValue, false, false);
            GUILayout.BeginVertical();

            ControlGrid.DrawGenericGrid(
                (data, index, style, options) =>
            {
                //GUILayout.BeginHorizontal(GUI.skin.box, GUILayout.Height(64), GUILayout.ExpandWidth(true));

                //GUILayout.BeginVertical(GUILayout.ExpandWidth(true));

                var layerModel = data[index];

                var nameText = layerModel.Name;
                nameText     = nameText ?? string.Empty;

                if (index == map.ActiveLayer)
                {
                    GUI.SetNextControlName("txtLayerName" + index);
                    layerModel.Name = GUILayout.TextField(nameText, GUILayout.MinWidth(32));
                }
                else
                {
                    if (GUILayout.Button(nameText, GUILayout.MinWidth(32)))
                    {
                        map.ActiveLayer = index;
                        GUI.FocusControl("txtLayerName" + index);
                        service.OnRepaintMap();
                    }
                }

                //GUILayout.BeginHorizontal();

                //GUILayout.EndHorizontal();

                //GUILayout.EndVertical();

                //GUILayout.FlexibleSpace();

                //var texture = layerModel.Texture;
                //if (texture != null)
                //{
                //    if (GUILayout.Button(string.Empty, GUI.skin.label, GUILayout.MaxWidth(64), GUILayout.Height(64)))
                //    {
                //        Debug.Log("here");
                //    }

                //    GUI.DrawTexture(GUILayoutUtility.GetLastRect(), texture, ScaleMode.ScaleToFit, false);
                //}

                //GUILayout.EndHorizontal();

                return(layerModel);
            },
                layers,
                1,
                null);

            GUILayout.EndVertical();
            GUILayout.FlexibleSpace();
            GUILayout.EndScrollView();
        }