void OnGUI() { var config = Config.Load(); // Start scroll view scrollPos = EditorGUILayout.BeginScrollView(scrollPos); // Repository path is invalid error message if (State.InvalidRepository) { EditorGUILayout.HelpBox( "Cannot find repository; invalid Yggdrasil config!", MessageType.Error); if (GUILayout.Button("Edit Config")) { ConfigWindow.Open(); } } // Check if user info is set else if (string.IsNullOrEmpty(config.Name) || string.IsNullOrEmpty(config.Email)) { EditorGUILayout.HelpBox( "Please set your name and email!", MessageType.Error); if (GUILayout.Button("Edit Config")) { ConfigWindow.Open(); } } // No changes info message else if (State.Files.Count == 0) { DrawServerChanges(); EditorGUILayout.HelpBox( "No changes detected.", MessageType.Info); } // Show changes else { DrawServerChanges(); DrawFileChanges(); EditorGUILayout.Space(); // Change Summary EditorGUILayout.PrefixLabel("Change Summary"); summary = EditorGUILayout.TextField(summary); // Change Message var oldWrap = EditorStyles.textField.wordWrap; EditorStyles.textField.wordWrap = true; var size = EditorGUIUtility.singleLineHeight; EditorGUILayout.PrefixLabel("Change Message"); message = GUILayout.TextArea( message, GUILayout.MinHeight(size * 3)); EditorStyles.textField.wordWrap = oldWrap; // Push button GUI.enabled = IsAnyToggled() && HasCommitMessage(); if (GUILayout.Button("Push")) { CommitAndPushToggled(); } GUI.enabled = true; // No changes message if (!IsAnyToggled()) { EditorGUILayout.HelpBox( "Cannot push; no changes selected", MessageType.Error); } // No summary message else if (!HasCommitMessage()) { EditorGUILayout.HelpBox( "Cannot push; missing change summary", MessageType.Error); } // Long summary message else if (summary.Length > 50) { EditorGUILayout.HelpBox( "Summary is too long", MessageType.Warning); } } // End scroll view EditorGUILayout.EndScrollView(); }