VT_Player/internal
Stu 5e2c07ad21 Create custom timeline widget with keyframe markers (Commit 6)
Implements visual timeline with smooth interaction and keyframe visualization:

Timeline Widget Features:
- Custom Fyne widget in internal/ui/timeline.go
- Visual keyframe markers (yellow 1px vertical lines)
- Current position scrubber (white 2px line with circle handle)
- Progress fill showing played portion (gray)
- Mouse click/drag for smooth seeking
- In/out point marker support (for future cut functionality)

Rendering Performance:
- Cached rendering objects to minimize redraws
- Only scrubber position updates on playback
- Full redraw only on resize or keyframe data change
- Optimized for 1000+ keyframes without lag

UI Integration:
- Timeline replaces slider when keyframing mode is enabled
- Automatically loads keyframe timestamps from Index
- Integrates with existing updateProgress callback
- Maintains current time/total time labels

Technical Implementation:
- TimelineWidget extends widget.BaseWidget
- Custom renderer implements fyne.WidgetRenderer
- SetOnChange() for seek callback
- SetPosition() for playback updates
- SetKeyframes() for keyframe marker display
- Desktop mouse events for hover and drag

Visual Design:
- Dark gray background (#282828)
- Lighter gray progress fill (#3C3C3C)
- Yellow keyframe markers (#FFDC00 with transparency)
- White scrubber with circular handle
- Blue in-point marker for cuts
- Red out-point marker for cuts

References: DEV_SPEC lines 192-241

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-08 12:07:45 -05:00
..
app Initial import for VT Player 2025-12-04 05:03:02 -05:00
convert Initial import for VT Player 2025-12-04 05:03:02 -05:00
keyframe Implement keyframe detection system (Commit 4) 2025-12-05 14:11:45 -05:00
logging Refactor to modular architecture with rainbow UI (v0.1.0-dev8) 2025-11-23 14:56:37 -05:00
modules Simplify player view and enable drop-to-play 2025-12-04 06:04:35 -05:00
player Improve queue system reliability and add auto-resolution for DVD formats 2025-11-29 20:07:35 -05:00
queue Auto-start queue when adding jobs from Convert module 2025-11-29 20:31:52 -05:00
ui Create custom timeline widget with keyframe markers (Commit 6) 2025-12-08 12:07:45 -05:00
utils Initial import for VT Player 2025-12-04 05:03:02 -05:00