// AUX FUNCTIONS private void DrawScene(SceneDataControl scene) { var rect = AdaptToViewport(GetSceneRect(scene), space); switch (Event.current.type) { case EventType.Repaint: GUI.DrawTexture(rect, images[scene.getPreviewBackground()] ?? noBackground); if (sceneList.index != -1 && Controller.Instance.SelectedChapterDataControl.getScenesList().getScenes()[sceneList.index] == scene) { HandleUtil.DrawPolyLine(rect.ToPoints().ToArray(), true, Color.red); } break; } EditorGUI.DropShadowLabel(new Rect(rect.position - new Vector2(20, 0), rect.size), scene.getId()); var prevHot = GUIUtility.hotControl; EditorGUI.BeginChangeCheck(); rect = HandleUtil.HandleRectMovement(scene.GetHashCode(), rect); if (EditorGUI.EndChangeCheck()) { rect = RevertFromViewport(rect, space); if (settings != null) { var canvasRect = new Rect(0, 0, SPACE_WIDTH, SPACE_HEIGHT); sceneToNode[scene].BoundingBox = ToGraphRect(rect, canvasRect, graph.BoundingBox); UpdatePositions(); /*var bounds = * new Microsoft.Msagl.Core.Geometry.Rectangle(100, 100, 100 + rect.width, * 100 + rect.height); * * if (!sceneLockPositions.ContainsKey(scene)) * { * sceneLockPositions[scene] = settings.CreateLock(sceneToNode[scene], bounds); * } * * sceneLockPositions[scene].Bounds = bounds;*/ } else { positions[scene.getId()] = rect.position; } } if (GUIUtility.hotControl != prevHot) { sceneList.index = Controller.Instance.SelectedChapterDataControl.getScenesList().getScenes().IndexOf(scene); if (Event.current.clickCount == 2 && OnSelectElement != null) { OnSelectElement(scene); } } }
// AUX FUNCTIONS private void DrawScene(SceneDataControl scene) { var rect = AdaptToViewport(GetSceneRect(scene), space); switch (Event.current.type) { case EventType.Repaint: GUI.DrawTexture(rect, images[scene.getPreviewBackground()] ?? noBackground); if (sceneList.index != -1 && Controller.Instance.SelectedChapterDataControl.getScenesList().getScenes()[sceneList.index] == scene) { HandleUtil.DrawPolyLine(rect.ToPoints().ToArray(), true, Color.red); } break; } EditorGUI.DropShadowLabel(new Rect(rect.position - new Vector2(20, 0), rect.size), scene.getId()); var prevHot = GUIUtility.hotControl; EditorGUI.BeginChangeCheck(); rect = HandleUtil.HandleRectMovement(scene.GetHashCode(), rect); if (EditorGUI.EndChangeCheck()) { rect = RevertFromViewport(rect, space); positions[scene.getId()] = rect.position; // Update in the project data var id = GetScenePropertyId(Controller.Instance.SelectedChapterDataControl, scene); ProjectConfigData.setProperty(id + ".X", ((int)positions[scene.getId()].x).ToString()); ProjectConfigData.setProperty(id + ".Y", ((int)positions[scene.getId()].y).ToString()); } if (GUIUtility.hotControl != prevHot) { sceneList.index = Controller.Instance.SelectedChapterDataControl.getScenesList().getScenes().IndexOf(scene); if (Event.current.clickCount == 2) { OnSelectElement(scene); } } }