Skip to content

Conversation

@SKaplanOfficial
Copy link
Contributor

Summary:

Adds supports for segmented control menu items, an example which uses them, and supporting documentation. Also updates the documentation to include docs for slider and separator menu items.

Segmented controls are sets of buttons that can be switched on and off, optionally allowing multiple selections at a time. This PR adds a SegmentedMenuItem class alongside a segmented decorator which allows users to easily define segmented controls with a list of strings as the button titles. Users can also specify whether to support multiselection, whether the selection should be momentary (i.e. act as a one-off button) or not, the style of the button set, and a callback function.

Example:

import rumps

@rumps.segmented(segments=["10"])
def button_press(sender):
    print(sender.selection)

app = rumps.App('Segments', quit_button=rumps.MenuItem('Quit', key='q'))
app.menu = [
    rumps.SegmentedMenuItem(["1", "2", "3"], multiselect=True, style='bordered', callback=lambda item: print("Current selection:", item.selection)),
    rumps.SegmentedMenuItem(["4", "5", "6"], style='rectangular', callback=lambda item: print("Selected", item.selection[0])),
    rumps.SegmentedMenuItem(["7", "8", "9"], momentary=True, style='separated', callback=lambda item: print("Clicked", item.selection[0])),
]
app.run()

Image:

SegmentedControl

@SKaplanOfficial
Copy link
Contributor Author

@daredoes Another one, when you get a chance 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant