Exemplo n.º 1
0
            public void OnGUI()
            {
                bool initialGuiEnabled        = GUI.enabled;
                HeaderedVerticalLayout layout = null;

                if (Title != null)
                {
                    layout = new HeaderedVerticalLayout(Title);
                }

                using (var bar = new GUILayout.HorizontalScope())
                {
                    string title = string.Format("{0} {1}", m_name, SpinnerString());
                    GUI.enabled = !Running && initialGuiEnabled;
                    if (GUILayout.Button(title))
                    {
                        Execute();
                    }
                    GUI.enabled = Running && initialGuiEnabled;
                    if (GUILayout.Button("Cancel"))
                    {
                        Cancel();
                    }
                    GUI.enabled = initialGuiEnabled;
                }

                string shortName = m_name.Split(' ')[0];

                if (HasRun)
                {
                    GUILayout.Label(
                        string.Format("{0} {1} at {2}",
                                      shortName, Succeeded ? "Succeeded" : "Failed", FinishTime));
                }
                else if (Running)
                {
                    GUILayout.Label(string.Format("{0} is running.", shortName));
                }
                else
                {
                    GUILayout.Label(string.Format("{0} has not run yet.", shortName));
                }

                if (Output != null)
                {
                    foreach (string line in Output)
                    {
                        GUILayout.Label(line);
                    }
                }

                if (layout != null)
                {
                    layout.Dispose();
                }
            }
Exemplo n.º 2
0
        private void BuildActionsGui()
        {
            using (var builds = new HeaderedVerticalLayout("Build"))
            {
                EditorGUILayout.LabelField("Build Path", m_currentBuildPath);
                if (!String.IsNullOrEmpty(m_adbPath))
                {
                    EditorGUILayout.LabelField("Adb Path", m_adbPath);
                    if (!File.Exists(m_adbPath))
                    {
                        EditorGUILayout.LabelField("Adb status", "ADB not found in expected path.");
                    }
                }
                if (m_currentBuildTime.HasValue)
                {
                    TimeSpan age = DateTime.Now - m_currentBuildTime.Value;
                    EditorGUILayout.LabelField("Creation Time", m_currentBuildTime.Value.ToString());
                    StringBuilder textAge = new StringBuilder();
                    if (age.Days > 0)
                    {
                        textAge.AppendFormat("{0}d ", age.Days);
                    }
                    if (age.Hours > 0)
                    {
                        textAge.AppendFormat("{0}h ", age.Hours);
                    }
                    if (age.Minutes > 0)
                    {
                        textAge.AppendFormat("{0}m ", age.Minutes);
                    }
                    textAge.AppendFormat("{0}s", age.Seconds);
                    EditorGUILayout.LabelField("Age", textAge.ToString());

                    if (BuildTiltBrush.GuiSelectedBuildTarget == BuildTarget.Android)
                    {
                        GUI.enabled = AndroidConnected && !BuildTiltBrush.DoingBackgroundBuild;
                        m_upload.OnGUI();
                        m_launch.OnGUI();
                        m_turnOnAdbDebugging.OnGUI();
                        m_launchWithProfile.OnGUI();
                        m_terminate.OnGUI();
                        GUI.enabled = true;
                    }
                }
                else
                {
                    GUILayout.Label("Not built yet.");
                }
            }
        }
Exemplo n.º 3
0
 private void DeviceGui()
 {
     using (var droids = new HeaderedVerticalLayout("Android devices")) {
         foreach (string device in m_androidDevices)
         {
             bool selected    = device == m_selectedAndroid;
             bool newSelected = GUILayout.Toggle(selected, device);
             if (selected != newSelected)
             {
                 m_selectedAndroid = device;
             }
         }
     }
 }
Exemplo n.º 4
0
        private void MakeBuildsGui()
        {
            using (var buildBar = new HeaderedVerticalLayout("Build"))
            {
                using (var buttonBar = new GUILayout.HorizontalScope())
                {
                    bool build = GUILayout.Button("Build");
                    GUI.enabled = !BuildTiltBrush.DoingBackgroundBuild;
                    bool buildBackground = GUILayout.Button("Background Build");

                    GUI.enabled = BuildTiltBrush.DoingBackgroundBuild;
                    if (GUILayout.Button("Cancel"))
                    {
                        BuildTiltBrush.TerminateBackgroundBuild();
                    }
                    GUI.enabled = true;

                    if (build)
                    {
                        EditorApplication.delayCall += () =>
                        {
                            bool oldBackground = BuildTiltBrush.BackgroundBuild;
                            try
                            {
                                BuildTiltBrush.BackgroundBuild = false;
                                ResetBuildLog();
                                BuildStartTime = DateTime.Now;
                                BuildTiltBrush.MenuItem_Build();
                            }
                            finally
                            {
                                BuildTiltBrush.BackgroundBuild = oldBackground;
                            }
                        };
                    }

                    if (buildBackground)
                    {
                        ResetBuildLog();
                        BuildStartTime = DateTime.Now;
                        BuildTiltBrush.DoBackgroundBuild(BuildTiltBrush.GetGuiOptions(), false);
                    }
                }

                using (var optionsBar = new GUILayout.HorizontalScope())
                {
                    UploadAfterBuild = GUILayout.Toggle(UploadAfterBuild, "Upload after Build");
                    RunAfterUpload   = GUILayout.Toggle(RunAfterUpload, "Run after Upload");
                }

                int start = Mathf.Clamp(m_buildLog.Count - 11, 0, int.MaxValue);
                if (m_buildLogPosition.HasValue)
                {
                    start = m_buildLogPosition.Value;
                }

                if (m_buildLog.Count > 0)
                {
                    int width = (int)(position.width - 35);
                    int end   = Mathf.Clamp(start + 10, 0, m_buildLog.Count);
                    using (var horizSection = new GUILayout.HorizontalScope())
                    {
                        using (var vertSection = new GUILayout.VerticalScope(GUILayout.Width(width)))
                        {
                            for (int i = start; i < end; ++i)
                            {
                                GUILayout.Label(m_buildLog[i], GUILayout.Width(width));
                            }
                        }

                        float size     = 10f / m_buildLog.Count;
                        float newStart = GUILayout.VerticalScrollbar(start, size, 0, m_buildLog.Count, GUILayout.Height(180));
                        if (newStart >= (m_buildLog.Count - 11f))
                        {
                            m_buildLogPosition = null;
                        }
                        else
                        {
                            m_buildLogPosition = (int)newStart;
                        }
                    }
                }

                if (BuildTiltBrush.DoingBackgroundBuild)
                {
                    Rect   r            = EditorGUILayout.BeginVertical();
                    float  buildSeconds = (float)(DateTime.Now - BuildStartTime).TotalSeconds;
                    float  progress     = Mathf.Clamp01(buildSeconds / SuccessfulBuildSeconds) * 0.95f;
                    float  remaining    = SuccessfulBuildSeconds - buildSeconds;
                    string time         = "???";
                    if (remaining > 0)
                    {
                        var span = TimeSpan.FromSeconds(remaining);
                        time = string.Format("{0}:{1:00}", (int)span.TotalMinutes, span.Seconds);
                    }
                    EditorGUI.ProgressBar(r, progress, string.Format("Building - {0} remaining.", time));
                    GUILayout.Space(18);
                    EditorGUILayout.EndVertical();
                }
            }
        }
Exemplo n.º 5
0
        private void BuildSetupGui()
        {
            GUILayoutOption[] options = new GUILayoutOption[]
            {
                GUILayout.ExpandHeight(true),
            };

            GUILayoutOption[] toggleOpt = new GUILayoutOption[]
            {
                GUILayout.Width(150),
            };

            using (var changeScope = new EditorGUI.ChangeCheckScope())
            {
                using (var setupBar = new GUILayout.HorizontalScope(GUILayout.Height(110)))
                {
                    // Sdk Modes
                    using (var sdkBar = new HeaderedVerticalLayout("VR SDK", options))
                    {
                        SdkMode[] sdks        = BuildTiltBrush.SupportedSdkModes();
                        SdkMode   selectedSdk = BuildTiltBrush.GuiSelectedSdk;
                        foreach (var sdk in sdks)
                        {
                            bool selected    = sdk == selectedSdk;
                            bool newSelected = GUILayout.Toggle(selected, sdk.ToString(), toggleOpt);
                            if (selected != newSelected)
                            {
                                BuildTiltBrush.GuiSelectedSdk = sdk;
                            }
                        }
                    }

                    // Platforms
                    using (var platformBar = new HeaderedVerticalLayout("Platform", options))
                    {
                        BuildTarget[] targets        = BuildTiltBrush.SupportedBuildTargets();
                        BuildTarget   selectedTarget = BuildTiltBrush.GuiSelectedBuildTarget;
                        SdkMode       selectedSdk    = BuildTiltBrush.GuiSelectedSdk;
                        foreach (var target in targets)
                        {
                            GUI.enabled = BuildTiltBrush.BuildTargetSupported(selectedSdk, target);
                            bool selected    = target == selectedTarget;
                            bool newSelected = GUILayout.Toggle(selected, target.ToString(), toggleOpt);
                            if (selected != newSelected)
                            {
                                BuildTiltBrush.GuiSelectedBuildTarget = target;
                            }
                        }
                        GUI.enabled = true;
                    }

                    // Runtime
                    using (var runtimeBar = new HeaderedVerticalLayout("Runtime", options))
                    {
                        bool isIl2cpp    = BuildTiltBrush.GuiRuntimeIl2cpp;
                        bool newIsMono   = GUILayout.Toggle(!isIl2cpp, "Mono", toggleOpt);
                        bool newIsIl2cpp = GUILayout.Toggle(isIl2cpp, "IL2CPP", toggleOpt);
                        if (isIl2cpp != newIsIl2cpp || isIl2cpp != !newIsMono)
                        {
                            BuildTiltBrush.GuiRuntimeIl2cpp = !isIl2cpp;
                        }
                    }

                    // Options
                    using (var optionsBar = new HeaderedVerticalLayout("Options", options))
                    {
                        BuildTiltBrush.GuiDevelopment =
                            GUILayout.Toggle(BuildTiltBrush.GuiDevelopment, "Development");
                        BuildTiltBrush.GuiExperimental =
                            GUILayout.Toggle(BuildTiltBrush.GuiExperimental, "Experimental");
                        BuildTiltBrush.GuiAutoProfile =
                            GUILayout.Toggle(BuildTiltBrush.GuiAutoProfile, "Auto Profile");
                    }
                }

                if (changeScope.changed)
                {
                    OnBuildSettingsChanged();
                }
            }
        }