gtk-date-chooser provides a custom gtkmm (C++) widget: Gtk::DateChooser.
I'm writing this because GtkCalendar is completely unusable for a UI where you have to enter dates frequently.
- Don't lock the user into a rigid text-entry format.
- Don't "magically" jump the user to unexpected states (i.e. we won't magically insert a date separator (e.g. slash) when they've entered a portion of the date).
- Allow dates to be pasted into the entry box.
- More or less allow a user to enter whatever garbage they want, and try to handle it as a date.
- Make it easy to enter dates; assume that this is an operation the user will perform frequently (e.g. a calendar or financial application).
- Parse partial dates sensibly. (What "sensibly" means will require some discretion from the app developer. As an example, if I enter "March 1" I probably mean whatever year is closest: using a calendar app on December 2011, I probably mean March 1, 2012. In a financial app where I've just added a bunch of dates in 2011, I probably mean 2011. There's room for "sensible" parsing to have some intelligence.)
- Provide a GtkCalendar popup when the user asks for it.