public Rect OnGUI(Rect rect) { if (m_Direction == EGUIDirection.Horizontal) { if (rect.height < 2.0f) { rect.height = 2.0f; } EGUI.DrawHorizontalLine(rect, Color.grey); EditorGUIUtility.AddCursorRect(rect, MouseCursor.ResizeVertical); } else if (m_Direction == EGUIDirection.Vertical) { if (rect.width < 2.0f) { rect.width = 2.0f; } EGUI.DrawVerticalLine(rect, Color.grey); EditorGUIUtility.AddCursorRect(rect, MouseCursor.ResizeHorizontal); } if (Event.current != null) { if (Event.current.type == EventType.MouseDown && Event.current.button == 0 && rect.Contains(Event.current.mousePosition)) { m_IsDragging = true; Event.current.Use(); } else if (m_IsDragging && Event.current.type == EventType.MouseDrag) { if (m_Direction == EGUIDirection.Horizontal) { rect.y += Event.current.delta.y; } else if (m_Direction == EGUIDirection.Vertical) { rect.x += Event.current.delta.x; } m_Window.Repaint(); } else if (m_IsDragging && Event.current.type == EventType.MouseUp) { m_IsDragging = false; Event.current.Use(); } } return(rect); }
private static int DrawFlagsEnumButton(string label, Type valueType, int value, params GUILayoutOption[] options) { string[] enumNames = Enum.GetNames(valueType); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PrefixLabel(label); GUILayout.FlexibleSpace(); if (GUILayout.Button("Everything", EditorStyles.toolbarButton, GUILayout.Width(120))) { value = 0; for (int i = 0; i < enumNames.Length; ++i) { int tValue = Convert.ToInt32(Enum.Parse(valueType, enumNames[i])); value |= tValue; } } if (GUILayout.Button("Nothing", EditorStyles.toolbarButton, GUILayout.Width(120))) { value = 0; } } EditorGUILayout.EndHorizontal(); EGUI.BeginIndent(); { EditorGUILayout.BeginHorizontal(); { for (int i = 0; i < enumNames.Length; ++i) { int tValue = Convert.ToInt32(Enum.Parse(valueType, enumNames[i])); bool isSelected = (value & tValue) > 0; bool newIsSelected = GUILayout.Toggle(isSelected, enumNames[i], EditorStyles.toolbarButton, options); if (newIsSelected != isSelected) { if (newIsSelected) { value |= tValue; } else { value &= ~tValue; } } } } EditorGUILayout.EndHorizontal(); } EGUI.EndIndent(); return(value); }
public static void DrawVerticalLine(Color color, float thickness = 0.75f, float padding = 6.0f) { Rect rect = EditorGUILayout.GetControlRect(UnityEngine.GUILayout.Width(padding + thickness), UnityEngine.GUILayout.ExpandHeight(true)); EGUI.DrawVerticalLine(rect, color, thickness); }
public static bool DrawBoxedFoldout(bool isFoldout, GUIContent title) { Rect rect = EditorGUILayout.GetControlRect(GUILayout.ExpandWidth(true)); return(EGUI.DrawBoxedFoldout(rect, isFoldout, title)); }
public static void DrawHorizontalLine(Color color, float thickness = 0.75f, float padding = 3.0f) { Rect rect = EditorGUILayout.GetControlRect(UnityEngine.GUILayout.Height(padding * 2 + thickness), UnityEngine.GUILayout.ExpandWidth(true)); EGUI.DrawHorizontalLine(rect, color, thickness); }