private void DragEvent(Rect x) { if (!drag && QEditorEvent.IsMouseDrag(x)) { drag = true; startView = this; if (StartDragEvent != null) { StartDragEvent(i); } } if (drag && QEditorEvent.IsMouseUp(x)) { endDragIndex = i; if (EndDragEvent != null) { EndDragEvent(startView, this); } if (IndexChangedEvent != null) { IndexChangedEvent(index, i); } index = i; w.Repaint(); drag = false; endDragIndex = -1; startView = null; } }
private void EditorEvent(Rect x) { if (QEditorEvent.IsDoubleClick(x)) { doubleClickIndex = i; if (EditorIndexEvent != null) { EditorIndexEvent(doubleClickIndex); } } }
private void ContextMenuEvent(Rect x, bool isItem) { if (QEditorEvent.IsContextClick(x)) { if (ContextEvent != null) { GenericMenu menu = new GenericMenu(); ContextEvent(menu, isItem); menu.ShowAsContext(); } } }
public static string TimerEditor(string label, string time) { if (timeData.SetHMS(time)) { timeData.Init(); } QEditorLayout.Horizontal(x => { EditorGUILayout.PrefixLabel(label); QEditorLayout.Horizontal(x2 => { startWidth = x2.width; x2.width = 15; #region 时 if (QEditorEvent.IsScrollWhell(x2)) { timeData.Hour += TimerEditorDalta(); } #endregion #region 分 x2.x += 20; if (QEditorEvent.IsScrollWhell(x2)) { timeData.Minute += TimerEditorDalta(); } #endregion #region 秒 x2.x += 20; if (QEditorEvent.IsScrollWhell(x2)) { timeData.Seconds += TimerEditorDalta(); } #endregion #region 毫秒 x2.x += 18; x2.width = startWidth - 58; if (QEditorEvent.IsScrollWhell(x2)) { timeData.Milliseconds += TimerEditorDalta(); } #endregion time = EditorGUILayout.TextField(timeData.ToString()); }); }); if (timeData.SetHMS(time)) { time = timeData.ToString(); } return(time); }
public static string PathField(string label, string path, int width = 0) { QEditorLayout.Horizontal(x => { EditorGUILayout.LabelField(label); if (width > 0) { pathRect = new Rect(x.x + width, x.y, x.width - width, x.height); } else { pathRect = EditorGUILayout.GetControlRect(); } path = EditorGUI.TextField(pathRect, path); if (QEditorEvent.IsDragPerform(pathRect)) { path = DragAndDrop.paths[0]; } }); return(path); }
private void SelectEvent(Rect x) { if (QEditorEvent.IsMouseDown(x)) { if (doubleClickIndex != -1) { doubleClickIndex = -1; } else { if (IndexChangedEvent != null) { IndexChangedEvent(index, i); } index = i; } w.Repaint(); if (drag) { drag = false; } } }
private static int TimerEditorDalta() { return(QEditorEvent.ScrollWhellDalta() ? 1 : -1); }
/// <summary> /// 使用该函数前必须使用 BeginWindows 和 EndWindows 包裹才能显示 /// </summary> /// <param name="rect"></param> /// <param name="label"></param> /// <param name="fun"></param> /// <param name="isDrag"></param> /// <returns></returns> public static StandardButton MessageBox(Rect rect, string label, Action <Rect> fun, StandardButton button = StandardButton.OK | StandardButton.No, bool isDrag = true) { rect = GUILayout.Window(0, rect, id => { GUI.enabled = true; fun.Invoke(rect); GUILayout.FlexibleSpace(); if (button == StandardButton.OK) { if (GUILayout.Button("Ok")) { b = StandardButton.OK; } } else if (button == StandardButton.No) { if (GUILayout.Button("No")) { b = StandardButton.No; } } else if (button == StandardButton.Cancel) { if (GUILayout.Button("Cancel")) { b = StandardButton.Cancel; } } else if (button == (StandardButton.OK | StandardButton.No)) { QEditorLayout.Horizontal(e => { if (GUILayout.Button("Ok")) { b = StandardButton.OK; } if (GUILayout.Button("No")) { b = StandardButton.No; } }); } else if (button == (StandardButton.OK | StandardButton.Cancel)) { QEditorLayout.Horizontal(e => { if (GUILayout.Button("Ok")) { b = StandardButton.OK; } if (GUILayout.Button("Cancel")) { b = StandardButton.Cancel; } }); } else if (button == (StandardButton.OK | StandardButton.No | StandardButton.Cancel)) { QEditorLayout.Horizontal(e => { if (GUILayout.Button("Ok")) { b = StandardButton.OK; } if (GUILayout.Button("No")) { b = StandardButton.No; } if (GUILayout.Button("Cancel")) { b = StandardButton.Cancel; } }); } GUI.FocusWindow(id); GUI.BringWindowToFront(id); if (isDrag) { GUI.DragWindow(new Rect(0, 0, 10000, 20)); } if (QEditorEvent.IsKeyDown()) { if (QEditorEvent.GetKeyCode(KeyCode.Return)) { b = StandardButton.OK; } else if (QEditorEvent.GetKeyCode(KeyCode.Escape)) { b = StandardButton.Cancel; } } }, label); GUI.enabled = false; return(b); }