private void handleDragging(){ Vector2 mousePosition = Event.current.mousePosition; DialogueEditorPhaseObject phase = null; if(Event.current.type == EventType.MouseDrag && __dragSelection != null){ phase = DialogueEditorDataManager.data.dialogues[DialogueEditorDataManager.data.currentDialogueId].phases[__dragSelection.phaseId]; phase.position = new Vector2((mousePosition.x + __dragSelection.mouseOffset.x), (mousePosition.y + __dragSelection.mouseOffset.y)); if(phase.position.x < 10) phase.position.x = 10; if(phase.position.y < 10) phase.position.y = 10; } if(Event.current.type == EventType.MouseUp && __dragSelection != null){ phase = DialogueEditorDataManager.data.dialogues[DialogueEditorDataManager.data.currentDialogueId].phases[__dragSelection.phaseId]; if(phase != null){ getPhaseScrollLimits(); } __dragSelection = null; } }
private void handleMouse(){ if(Event.current.type == EventType.MouseUp){ __dragSelection = null; __outputSelection = null; } }
// BASE private Rect drawPhaseBase(DialogueEditorPhaseObject phase, int width, int height){ Rect box = new Rect(phase.position.x, phase.position.y, width, height); GUI.Box(box, string.Empty, DialogueEditorGUI.gui.GetStyle("box_opaque")); Rect titleBarRect = new Rect(box.x + 2, box.y + 2, box.width - 4, 20); if(isPro){ DialogueEditorGUI.drawShadowedRect(titleBarRect, 2); }else{ GUI.Box(titleBarRect, string.Empty, DialogueEditorGUI.gui.GetStyle("box_opaque")); GUI.Box(titleBarRect, string.Empty, DialogueEditorGUI.gui.GetStyle("box_opaque")); } GUIStyle titleBarStyle = new GUIStyle("label"); titleBarStyle.alignment = TextAnchor.MiddleCenter; Vector2 mousePosition = Event.current.mousePosition; if(titleBarRect.Contains(mousePosition)){ if(isPro){ DialogueEditorGUI.drawHighlightRect(titleBarRect, 1, -1); }else{ GUI.Box(titleBarRect, string.Empty, DialogueEditorGUI.gui.GetStyle("box_opaque")); GUI.Box(titleBarRect, string.Empty, DialogueEditorGUI.gui.GetStyle("box_opaque")); } } if(isPro){ GUI.color = new Color(0,0,0,0.3f); GUI.Label(new Rect(titleBarRect.x + 1, titleBarRect.y, titleBarRect.width, titleBarRect.height), DialogueEditorPhaseType.getPhases()[(int)phase.type].name, titleBarStyle); } GUI.color = GUI.contentColor; GUI.Label(new Rect(titleBarRect.x, titleBarRect.y - 1, titleBarRect.width, titleBarRect.height), DialogueEditorPhaseType.getPhases()[(int)phase.type].name, titleBarStyle); // Input Rect inputButtonRect = new Rect(titleBarRect.x + 2, titleBarRect.y + 2, 16, 16); //if(Event.current.type == EventType.MouseUp && inputButtonRect.Contains(mousePosition)){ if(GUI.Button(inputButtonRect, string.Empty, DialogueEditorGUI.gui.GetStyle("connector_input"))){ handlePhaseInputClicked(phase.id); Event.current.Use(); } //GUI.Button(inputButtonRect, string.Empty, DialogueEditorGUI.gui.GetStyle("connector_input")); // Close Rect closeButtonRect = new Rect(titleBarRect.x + titleBarRect.width - 16 - 2, titleBarRect.y + 2, 16, 16); if(GUI.Button(closeButtonRect, string.Empty, DialogueEditorGUI.gui.GetStyle("phase_button_remove"))){ handlePhaseRemoveClick(phase.id); Event.current.Use(); } if(closeButtonRect.Contains(Event.current.mousePosition)){ setTooltip("This button deletes the current page.\nThis can NOT be undone."); } if(Event.current.type == EventType.MouseDown && titleBarRect.Contains(mousePosition)){ __dragSelection = new DialogueEditorDragPhaseObject(phase.id, new Vector2(titleBarRect.x - mousePosition.x, titleBarRect.y - mousePosition.y)); } return new Rect(box.x, box.y, width, 25); }