Skip to content

Add hover tooltips to playback speed control buttons #23

Description

@Rowrow620

First Timers Only

This issue is reserved for developers who are new to AlgoBuddy or open-source contributing. We know that submitting a first pull request can feel intimidating. The goal of this issue is to guide you step-by-step through making your first contribution to the AlgoBuddy repository.

Description of the Issue

The timeline animation bar features playback speed buttons (0.25x, 0.5x, 1.0x, 2.0x, 4.0x), but hovering over them does not show tooltip descriptions.

Proposed Solution

Add hover tooltips (.on_hover_text(...)) to each playback speed button explaining the speed setting (e.g. "Set timeline animation speed to 2.0x").

Implementation Steps

  1. Open src/app.rs and locate the playback speed buttons rendering loop.
  2. Attach .on_hover_text(...) to each button:
if ui
    .selectable_label(self.playback_speed == speed, format!("{:.2}x", speed))
    .on_hover_text(format!("Set animation playback speed to {:.2}x", speed))
    .clicked()
{
    self.playback_speed = speed;
}
  1. Test locally using cargo run and hover over the speed buttons in the control bar.

Acceptance Criteria

To merge a pull request for this issue:

  • Code Formatting: cargo fmt --all -- --check completes without warnings.
  • All Tests Pass: cargo test passes 100% of unit tests.
  • Issue Solved: Tooltips appear on hover for all speed buttons.
  • Clean Git Branch: Changes are committed to a feature branch targeting dev.

Step-by-Step Contribution Guide

  1. Claim this issue: Comment below that you are working on this issue to receive assignment.
  2. Fork and Branch: Create a new branch off dev named issue-10-speed-tooltips.
  3. Make and Test Changes: Run cargo fmt --all and cargo test locally to verify build health.
  4. Submit PR: Push your branch to GitHub and create a Pull Request targeting the dev branch.

Additional Information

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions