1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 06:17:23 +08:00
Commit Graph

100 Commits

Author SHA1 Message Date
smoogipoo
4446aeaa0d Commenting + cleanup of HitObjectMask/HitObjectMaskLayer 2018-03-29 22:38:28 +09:00
smoogipoo
6d4f94756e Rewrite the way drag + click selections happen
The general idea here is that we need the masks to handle mouse down events, as they need to handle the drag (mousedown -> drag immediately).

I've rewritten the editor selections to use events, as there are some 3 different components that handle/trigger selections in different ways.

1. All selections/deselections now propagate through `HitObjectMask.Select()`/`HitObjectMask.Deselect()`.
2. Components that react to changes in the selection bind to the masks' `Selected`/`Deselected` events, and track them/change their states locally.
3. Masks provide a `SingleSelectionRequested` event which is invoked on the mouse-down event. Various components bind to this event to perform state changes locally in this scenario.
4. `DragBox` now handles all drag input locally. It triggers `Select`/`Deselect` on the masks it needs to.
5. `SelectionBox` handles the display of itself locally.
6. `SelectionBox` handles movement of groups of masks locally.
7. `HitObjectMasks` handles movement of itself locally.
2018-03-29 22:07:23 +09:00
smoogipoo
57e4281601 Make HitObjectMasks VisibilityContainers 2018-03-29 18:44:15 +09:00
smoogipoo
6314694557 Make HitObjectMaskLayer always create masks for all objects 2018-03-29 17:13:45 +09:00
smoogipoo
786e6242e1 Make bdl beat divisor nullable 2018-03-20 14:01:06 +09:00
smoogipoo
b1d09500f2 Integrate beat snap divisor into editor seeking 2018-03-19 20:42:06 +09:00
smoogipoo
e25d1f6982 Pass down editor clocks through DI 2018-03-19 16:27:52 +09:00
Dean Herbert
4b83278cf4
Merge branch 'master' into fix-editor-clocks 2018-03-16 23:32:54 +09:00
smoogipoo
6f7163769d Adjust comment for readability 2018-03-16 19:57:14 +09:00
Dean Herbert
bca4b620b6
Merge branch 'master' into editor-wheel-movement 2018-03-16 15:56:51 +09:00
smoogipoo
fc15c63a88 Re-order methods 2018-03-15 18:28:08 +09:00
smoogipoo
c937ef5d24 Fix not being able to scroll before the first timing point 2018-03-15 18:26:53 +09:00
smoogipoo
c8f6a6980b Move clock construction to Editor 2018-03-15 17:27:37 +09:00
smoogipoo
9e0aeec574 Use a decoupled clock for accurate clock times 2018-03-15 17:03:33 +09:00
smoogipoo
50f9d810dd Add more testcases + fix up seeking a bit more 2018-03-15 15:40:52 +09:00
smoogipoo
0da3ae0944 Add some basic tests + fixes to seek/seekforward functionality 2018-03-14 20:52:48 +09:00
Dean Herbert
81f82d98a1 Rework a lot of naming and structure 2018-03-14 15:18:21 +09:00
smoogipoo
299de4b866 Rewrite seeking to better handle timing point boundaries 2018-03-13 16:54:34 +09:00
smoogipoo
df352c98d6 Change wheel direction to match stable 2018-03-13 14:30:50 +09:00
smoogipoo
e580819621 Rename to seekAmount 2018-03-13 14:08:43 +09:00
smoogipoo
6c148930b5 Don't skip beats when scrolling in the direction of the closest beat 2018-03-13 14:02:37 +09:00
smoogipoo
8acba47a2b Implement mouse wheel movement in the editor 2018-03-13 11:23:44 +09:00
smoogipoo
8c4bcb4a04 Only accept drag movement on the overlays 2018-03-12 17:33:10 +09:00
smoogipoo
212142429f Derive from IHasPosition 2018-03-12 17:25:34 +09:00
smoogipoo
4103c66cff Move selection overlay to HitObjectOverlayLayer for extensibility 2018-03-10 00:48:57 +09:00
smoogipoo
0e8fbc47b7 Give HitObjectOverlayLayer full input state information 2018-03-10 00:03:02 +09:00
smoogipoo
376f6eec58 SetPosition -> OffsetPosition 2018-03-10 00:02:13 +09:00
smoogipoo
ad72d3816b Allow dragging anywhere in a capture box to move objects 2018-03-09 23:43:50 +09:00
smoogipoo
4a48136e4f Make hitobject positions adjustable 2018-03-09 23:12:34 +09:00
smoogipoo
3b766b8ec8 Make CaptureBox account for changes in hitobject states 2018-03-09 23:11:48 +09:00
smoogipoo
278b25bcbd Fix border being the wrong size 2018-02-23 15:29:56 +09:00
smoogipoo
0cdf6fa7e2 Make HitObjectOverlay into an OverlayContainer 2018-02-22 14:36:58 +09:00
smoogipoo
45c579630d Make selectionLayer handle input below object overlays 2018-02-22 14:34:37 +09:00
smoogipoo
07252254eb Fix post-merge issues 2018-02-22 14:22:04 +09:00
smoogipoo
99e9eb81f2 Merge remote-tracking branch 'origin/master' into editor-hitobject-overlays 2018-02-22 14:16:01 +09:00
Dean Herbert
7c942eb592 Tidy up layer container logic 2018-02-22 13:42:36 +09:00
smoogipoo
4934ef7429 Add playfield aspect ratio + scaling modifications to composer layers 2018-02-21 11:07:42 +09:00
smoogipoo
7fe0989427 Merge branch 'general-slider-improvements' into editor-hitobject-overlays 2018-02-20 23:51:47 +09:00
smoogipoo
ad2f556133 Add hitobject overlays to selected hitobjects 2018-02-20 18:01:45 +09:00
smoogipoo
2a5bfdb4b8 Deselect hitobjects that are now not in the selection quad 2018-02-20 15:06:51 +09:00
smoogipoo
2f4925d031 Add some xmldocs 2018-02-20 15:06:14 +09:00
smoogipoo
285df52f43 Encapsulate logic for selecting/deselecting further 2018-02-20 14:54:45 +09:00
smoogipoo
995ecb7d94 Make selectedHitObjects into a HashSet for quick Contains checks 2018-02-20 14:48:35 +09:00
smoogipoo
87065a0b13 Rename + publicise DeselectAll 2018-02-20 14:38:57 +09:00
smoogipoo
423fe4eba8 Combine border radiuses of selection and capture boxes 2018-02-20 14:25:42 +09:00
smoogipoo
8f25a5da66 Add playfield aspect ratio + scaling modifications to composer layers 2018-02-20 14:01:33 +09:00
smoogipoo
cbac4de9c2 Expire + dispose CaptureBoxes 2018-02-15 19:11:29 +09:00
smoogipoo
ebcdb62570 Remove now unneeded hide 2018-02-15 19:10:55 +09:00
smoogipoo
9583191556 Dispose SelectionBoxes when they die 2018-02-15 19:08:03 +09:00
smoogipoo
4ac0c48ba6 Add fadein to SelectionBox 2018-02-15 19:07:53 +09:00