-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is neededinternalsImplementation detailsImplementation details
Milestone
Description
A follow-up to #52, but can be done concurrently.
The current functions can remain intact and a new set of functions can be added as a cheap wrapper for raw procedures.
-- current
withWindowOpen :: MonadUnliftIO m => String -> m () -> m ()
-- proposed
withWindowOpen' :: (MonadUnliftIO m, StateVar Bool isOpen) => ImGuiWindowFlags -> isOpen -> String -> m () -> m ()
Fancy wrappers (labels, lenses, etc.) can be provided as alternatives in their own packages.
Cons: this will double the amount of functions published. The previous implementation, however, can be rebased upon those new expanded.
Alternative 1: Add all the arguments to existing functions. A breaking change, a bit noisier to write but lighter on maintenance.
Alternative 2: Rename current shortcuts to underscored, add expanded versions like in A1. Also a breaking change and may require breakage again when "expandable defaults" are to be implemented.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is neededinternalsImplementation detailsImplementation details