void ModeToggle()
        {
            GUILayout.BeginHorizontal();
            GUILayout.Space(k_ToolbarPadding);
            if (m_Mode == Mode.Browser)
            {
                bool clicked = GUILayout.Button(m_RefreshTexture);
                if (clicked)
                {
                    m_ManageTab.ForceReloadData();
                }
            }
            else
            {
                GUILayout.Space(m_RefreshTexture.width + k_ToolbarPadding);
            }
            float toolbarWidth = position.width - k_ToolbarPadding * 4 - m_RefreshTexture.width;

            string[] labels = new string[2] {
                "Configure", "Build"
            };
            m_Mode = (Mode)GUILayout.Toolbar((int)m_Mode, labels, "LargeButton", GUILayout.Width(toolbarWidth));
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }
Example #2
0
        void ModeToggle()
        {
            GUILayout.BeginHorizontal();
            GUILayout.Space(k_ToolbarPadding);
            if (m_Mode == Mode.Browser)
            {
                bool clicked = GUILayout.Button(m_RefreshTexture);
                if (clicked)
                {
                    m_ManageTab.ForceReloadData();
                }
            }
            else
            {
                GUILayout.Space(m_RefreshTexture.width + k_ToolbarPadding);
            }
            float toolbarWidth = position.width - k_ToolbarPadding * 4 - m_RefreshTexture.width;

            string[] labels = new string[2] {
                "Configure", "Build"
            };                                                       //, "Inspect" };
            m_Mode = (Mode)GUILayout.Toolbar((int)m_Mode, labels, "LargeButton", GUILayout.Width(toolbarWidth));
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            if (multiDataSource)
            {
                //GUILayout.BeginArea(r);
                GUILayout.BeginHorizontal();

                using (new EditorGUILayout.HorizontalScope(EditorStyles.toolbar))
                {
                    GUILayout.Label("Bundle Data Source:");
                    GUILayout.FlexibleSpace();
                    var c = new GUIContent(string.Format("{0} ({1})", AssetBundleModel.Model.DataSource.Name, AssetBundleModel.Model.DataSource.ProviderName), "Select Asset Bundle Set");
                    if (GUILayout.Button(c, EditorStyles.toolbarPopup))
                    {
                        GenericMenu menu      = new GenericMenu();
                        bool        firstItem = true;

                        foreach (var info in AssetBundleDataSource.ABDataSourceProviderUtility.CustomABDataSourceTypes)
                        {
                            List <AssetBundleDataSource.ABDataSource> dataSourceList = null;
                            dataSourceList = info.GetMethod("CreateDataSources").Invoke(null, null) as List <AssetBundleDataSource.ABDataSource>;


                            if (dataSourceList == null)
                            {
                                continue;
                            }

                            if (!firstItem)
                            {
                                menu.AddSeparator("");
                            }

                            foreach (var ds in dataSourceList)
                            {
                                menu.AddItem(new GUIContent(string.Format("{0} ({1})", ds.Name, ds.ProviderName)), false,
                                             () =>
                                {
                                    var thisDataSource = ds;
                                    AssetBundleModel.Model.DataSource = thisDataSource;
                                    m_ManageTab.ForceReloadData();
                                }
                                             );
                            }

                            firstItem = false;
                        }

                        menu.ShowAsContext();
                    }

                    GUILayout.FlexibleSpace();
                    if (AssetBundleModel.Model.DataSource.IsReadOnly())
                    {
                        GUIStyle tbLabel = new GUIStyle(EditorStyles.toolbar);
                        tbLabel.alignment = TextAnchor.MiddleRight;

                        GUILayout.Label("Read Only", tbLabel);
                    }
                }

                GUILayout.EndHorizontal();
                //GUILayout.EndArea();
            }
        }
        void ModeToggle()
        {
            GUILayout.BeginHorizontal();
            GUILayout.Space(k_ToolbarPadding);
            bool clicked = false;

            switch (m_Mode)
            {
            case Mode.Browser:
                clicked = GUILayout.Button(m_RefreshTexture);
                if (clicked)
                {
                    m_ManageTab.ForceReloadData();
                }
                break;

            case Mode.Builder:
                GUILayout.Space(m_RefreshTexture.width + k_ToolbarPadding);
                break;

            case Mode.Inspect:
                clicked = GUILayout.Button(m_RefreshTexture);
                if (clicked)
                {
                    m_InspectTab.RefreshBundles();
                }
                break;
            }

            float toolbarWidth = position.width - k_ToolbarPadding * 4 - m_RefreshTexture.width;

            //string[] labels = new string[2] { "Configure", "Build"};
            string[] labels = new string[3] {
                "Configure", "Build", "Inspect"
            };
            m_Mode = (Mode)GUILayout.Toolbar((int)m_Mode, labels, "LargeButton", GUILayout.Width(toolbarWidth));
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            if (multiDataSource)
            {
                //GUILayout.BeginArea(r);
                GUILayout.BeginHorizontal();

                using (new EditorGUILayout.HorizontalScope(EditorStyles.toolbar))
                {
                    GUILayout.Label("Bundle Data Source:");
                    GUILayout.FlexibleSpace();
                    var c = new GUIContent(string.Format("{0} ({1})", AssetBundleModel.Model.DataSource.Name, AssetBundleModel.Model.DataSource.ProviderName), "Select Asset Bundle Set");
                    if (GUILayout.Button(c, EditorStyles.toolbarPopup))
                    {
                        GenericMenu menu = new GenericMenu();

                        for (int index = 0; index < m_DataSourceList.Count; index++)
                        {
                            var ds = m_DataSourceList[index];
                            if (ds == null)
                            {
                                continue;
                            }

                            if (index > 0)
                            {
                                menu.AddSeparator("");
                            }

                            var counter = index;
                            menu.AddItem(new GUIContent(string.Format("{0} ({1})", ds.Name, ds.ProviderName)), false,
                                         () =>
                            {
                                m_DataSourceIndex  = counter;
                                var thisDataSource = ds;
                                AssetBundleModel.Model.DataSource = thisDataSource;
                                m_ManageTab.ForceReloadData();
                            }
                                         );
                        }

                        menu.ShowAsContext();
                    }

                    GUILayout.FlexibleSpace();
                    if (AssetBundleModel.Model.DataSource.IsReadOnly())
                    {
                        GUIStyle tbLabel = new GUIStyle(EditorStyles.toolbar);
                        tbLabel.alignment = TextAnchor.MiddleRight;

                        GUILayout.Label("Read Only", tbLabel);
                    }
                }

                GUILayout.EndHorizontal();
                //GUILayout.EndArea();
            }
        }