1
0
mirror of https://github.com/ppy/osu.git synced 2024-10-01 05:17:24 +08:00
Commit Graph

112 Commits

Author SHA1 Message Date
Dean Herbert
24b9a8c983 Allow HitObjectMasks to handle drag events directly 2018-04-06 10:29:34 +09:00
Dean Herbert
5749e71560 Apply review fixes 2018-04-05 21:06:48 +09:00
Dean Herbert
b7325d73e8 Don't inherit VisbilityContainer 2018-04-04 20:44:11 +09:00
Dean Herbert
94c3f38541 Pass down input state instead of parent lookup 2018-04-04 20:06:45 +09:00
Dean Herbert
2b15555ede Remove MaskContainer dependency in MaskSelection 2018-04-04 20:05:01 +09:00
Dean Herbert
5c036b966b Formatting fixes 2018-04-04 20:04:54 +09:00
Dean Herbert
a997ec6139 Fix ShouldBeAlive state 2018-04-04 19:51:56 +09:00
Dean Herbert
4d71f2084c Move individual mask selection logic out of MaskSelection 2018-04-04 18:29:53 +09:00
Dean Herbert
788bfde002
Merge branch 'master' into selectionlayer-rewrite 2018-04-04 15:38:27 +09:00
Huo Yaoyuan
b842f682eb Use Linq.Append and Prepend. 2018-04-02 12:06:34 +08:00
smoogipoo
1dca1663c3 Handle all selection events within SelectionBox (incl. single-mask) 2018-03-30 15:50:55 +09:00
smoogipoo
6767dd3d4a Fix hitobject masks dying with no recovery 2018-03-29 22:42:42 +09:00
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