Пример #1
0
        private void DrawToolbar()
        {
            if (toolbarDrawer == null)
            {
                toolbarDrawer = new ToolbarDrawer()
                {
                    LeftDrawable = new HorizontalLayoutDrawer
                                   (
                        new ToolbarButtonDrawer()
                    {
                        Text      = Contents.refreshContent,
                        OnClicked = () =>
                        {
                            RefreshConfigs();
                            Repaint();
                        }
                    },
                        new ToolbarButtonDrawer()
                    {
                        Text      = Contents.createContent,
                        OnClicked = () =>
                        {
                            string filePath = EditorUtility.SaveFilePanel("Save", CheckerUtility.CHECKER_CONFIG_DIR, "asset_checker", "json");
                            if (!string.IsNullOrEmpty(filePath))
                            {
                                filePath            = filePath.Replace("\\", "/");
                                CheckerFileInfo cfi = new CheckerFileInfo()
                                {
                                    filePath = filePath,
                                    checker  = new Checker(),
                                };

                                CheckerUtility.SaveCheckerFileInfo(cfi);
                                RefreshConfigs();

                                configListView.SelectedItem = cfi;
                                SetSelected(cfi);

                                Repaint();
                            }
                        }
                    },
                        new ToolbarButtonDrawer()
                    {
                        Text      = Contents.saveContent,
                        OnClicked = () =>
                        {
                            SaveSelectedCheckerFile();
                        },
                    },
                        new ToolbarButtonDrawer()
                    {
                        Text      = Contents.deleteContent,
                        OnClicked = () =>
                        {
                            if (selectedCheckerFileInfo != null)
                            {
                                CheckerUtility.DeleteCheckerFileInfo(selectedCheckerFileInfo);
                            }
                            RefreshConfigs();
                            Repaint();
                        }
                    }
                                   ),
                    RightDrawable = new HorizontalLayoutDrawer
                                    (
                        new ToolbarToggleDrawer()
                    {
                        Text           = Contents.autoSaveContent,
                        LabelWidth     = 60.0f,
                        Value          = isAutoSave,
                        OnValueChanged = (result) =>
                        {
                            isAutoSave = result;
                        }
                    },
                        new PopupDrawer <int>()
                    {
                        Width      = 60,
                        EnableFunc = () =>
                        {
                            return(isAutoSave);
                        },
                        Contents       = saveIntervalContents,
                        Values         = saveIntervalValues,
                        Value          = saveInterval,
                        OnValueChanged = (value) =>
                        {
                            saveInterval = value;
                        }
                    }, new ToolbarButtonDrawer()
                    {
                        Text      = Contents.settingContent,
                        OnClicked = () =>
                        {
                            var pos = GUIUtility.GUIToScreenPoint(Event.current.mousePosition);
                            CheckerSettingPopupContent.ShowWin(pos);
                        }
                    }
                                    ),
                };
            }
            toolbarDrawer.OnGUILayout();
        }
        private void OnGUI()
        {
            if (toolbarDrawer == null)
            {
                BaseData[] datas = new BaseData[]
                {
                    new BaseData(),
                    new BaseData(),
                };
                string[] contents2 = new string[]
                {
                    "BaseData 1",
                    "BaseData 2"
                };

                toolbarDrawer = new ToolbarDrawer()
                {
                    LeftDrawable = new HorizontalLayoutDrawer(new ToolbarButtonDrawer()
                    {
                        Text      = "Open",
                        Tooltip   = "open a new file",
                        OnClicked = () =>
                        {
                            Debug.Log("ToolbarButton->Clicked");
                        }
                    },
                                                              new PopupDrawer <BaseData>()
                    {
                        Values   = datas,
                        Value    = datas[0],
                        Contents = contents2,
                    }),
                    RightDrawable = new HorizontalLayoutDrawer(
                        new ToolbarToggleDrawer()
                    {
                        Text           = "Auto Save",
                        OnValueChanged = (isSelected) =>
                        {
                            Debug.Log("ToolbarToggleDrawer->isSelected = " + isSelected);
                        }
                    },
                        new SearchFieldDrawer()
                    {
                        OnValueChanged = (searchText) =>
                        {
                            Debug.Log("SearchFieldDrawer->searchText = " + searchText);
                        }
                    }),
                };
            }
            toolbarDrawer.OnGUILayout();

            if (listViewDrawer == null)
            {
                listViewDrawer = new EasyListViewDrawer()
                {
                    Text           = "List View",
                    DisplayNames   = (from file in Directory.GetFiles(@"D:\", "*.*", SearchOption.TopDirectoryOnly) select Path.GetFileNameWithoutExtension(file)).ToArray(),
                    Values         = (from file in Directory.GetFiles(@"D:\", "*.*", SearchOption.TopDirectoryOnly) select file).ToArray(),
                    OnValueChanged = (file) =>
                    {
                        selectedFilePath = (string)file;
                    }
                };
            }
            if (dragLineDrawer == null)
            {
                dragLineDrawer = new DragLineDrawer(this, DragLineDirection.Vertical);
            }
            Rect cRect = EditorGUILayout.GetControlRect(GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true));

            if (cRect != contentRect && cRect.width > 10 && cRect.height > 10)
            {
                contentRect             = cRect;
                dragLineDrawer.Position = new Rect(contentRect.x + 300, contentRect.y, 6, contentRect.height);
            }
            dragLineDrawer.LowLimitXY   = 200;
            dragLineDrawer.UpperLimitXY = contentRect.width * 0.8f;
            dragLineDrawer.OnGUILayout();

            Rect listViewRect = new Rect(contentRect.x, contentRect.y, dragLineDrawer.MinX - contentRect.x, contentRect.height);

            // EGUI.DrawAreaLine(listViewRect, Color.blue);
            GUILayout.BeginArea(listViewRect);
            {
                listViewDrawer.OnGUILayout();
            }
            GUILayout.EndArea();

            Rect objectRect = new Rect(dragLineDrawer.MaxX, contentRect.y, contentRect.width - dragLineDrawer.MaxX, contentRect.height);

            //  EGUI.DrawAreaLine(objectRect, Color.yellow);
            GUILayout.BeginArea(objectRect);
            {
                if (string.IsNullOrEmpty(selectedFilePath))
                {
                    nativeObject.OnGUILayout();
                }
                else
                {
                    GUILayout.TextField(File.ReadAllText(selectedFilePath), GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true));
                }
            }
            GUILayout.EndArea();
        }