beeware / beeware/toga

Implement DateInput and TimeInput for Cocoa, GTK and iOS

Open
#1,939 12 comments 2 reactions 0 assignees View on GitHub
enhancement gtk linux
Dominant language
Python
Stars
5.4k
Forks
827
Avg merge
15h 39m
Merged PRs (30d)
40

Description

### What is the problem or limitation you are having?

Currently there is no implementation for showing a calendar. It would be useful for at least 2 reasons and probably more.

1st reason would be allowing the user to select a specific date for the program to use.
2nd reason would be allowing the program to show a custom calender that the user could fill with their own events that may be useful inside a specific app instead of in the built in calender. An example would be a finance app that allows the user to specify when bills or subscriptions get billed easier.

### Describe the solution you'd like

For Android there is 2 different widgets that can be used for each reason. For displaying a calender with events I *believe* that the [CalenderView](https://developer.android.com/reference/android/widget/CalendarView) is the option that would be wanted. For selecting a date there is a date picker implementation already.

For Gtk there is only one widget for this. The [Gtk.Calender](https://docs.gtk.org/gtk4/class.Calendar.html) allows for displaying a calendar and has the ability to add custom events as well as the ability to get the selected date. For a date picker implementation a custom window may need to be made similar to the error dialogs and such.

### Describe alternatives you've considered

Not having a calender widget and having the user manually type in dates and making a custom view for dates and such.

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

The issue names Cocoa, GTK, and iOS but no files or tests; start by locating the backend implementations for DateInput and TimeInput. Review the linked GTK Calendar and Android CalendarView and date-picker references to define expected behavior. Done means DateInput and TimeInput work across all three named backends with coverage for their date and time interactions.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, python
Domain
desktop, frontend, mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.