* Add new Monomer logo and badges to README.md
* Fix sub-title styling
* Add support for loading any image format to use as application icon
* Update Monomer icon image
* Update examples and tutorials to use new icon image
* Adjust logo background color
* Add minNumericValue helper. Add attribution note
* Process Composite's onDispose events in its own dispose handler, since RaiseEvent will not have a handler after the Composite's disposal
* Fix compatibility with GHC 9.2.2 (issue #159)
I'm not sure what the compilation error really meant... but this seems to fix it.
* Shuffle the types around a bit to reduce the number of type variables.
* Call widgetResize on children of widget which requested resize, even if viewport did not change
* Simplify makeResizeCheckFn
* Request ResizeWidgets from SelectList when items change
* Always use newTextLines when resizing label
* Do not ignore parent requests when containerMergeChildrenReq returns True
* Restore previous logic in Handlers and SelectList
* Reorganize merge lines to reflect dependency order. Resize new widgets remaining after merge exhausted old versions
* Keep requests made in previous steps during SelectList's postMerge
* Update Changelog
* Export mergeRequired from dropdown. Improve related documentation in selectList and dropdown
* Add pointToLineDistance utility function
* Force the option type in ToggleButtonCfg to be the Bool implied by the asssociated Lens
* Do not draw borders when width == 0
* Improve BaseTheme's tooltip styles
* Update tooltip's Haddock
* Update Changelog
* Initialize new images with count = 1; they were not released if extra references were added
* Dispose previous version of an image if it was not memory based
* Use strict versions of Map
* Update unit tests
* Update Changelog
* Fix several Haddock links. Fix widgetKeyMap Haddock (missing '-')
* Fix Haddock issues. Rename haddock .sh helper to indicate it only generates and does not upload the updated docs
* Make optionButton's onChange trigger only once if value did not change. Add onClick to keep previous behavior
* Make radios's onChange trigger only once if value did not change. Add onClick to keep previous behavior
* Update Changelog
* Attempt to recover from SDL_GL_MakeCurrent error, and fallback to rendering on the main thread
* Check if -threaded flag was used before setting up rendering thread. Add notes to appRenderingOnMainThread
* Remove reference to the error from Setup page
* Update Changelog
* Fix typo
* Fix issues with RunInRenderThread when running on single threaded mode. Improve handling of initialization, simplify Core's state variables
* Update Changelog
* Add note about threaded rendering in 'Running the examples' section. Fix typo.
* Allow disabling scale factor detection. Do not use factors higher than 2 on Linux
* Add note about window size
* Move scale detection comment to appDisableAutoScale
* Attempt to use SDL_GetDisplayDPI when detecting scale factor on Linux
* Minor changes to appDisableAutoScale documentation
* Update Changelog
* Remove duplicate documentation related to Linux scale factor detection
* Add safeguard to Windows dpi detection
* Improve caret and selection rect size for inputField
* Improve caret and selection rect size for textArea
* Minor reorganization of base theme. Reduce default vertical text spacing from 4 to 2 pixels
* Remove scaling logic from FontManager (rely on also existing one in .c file). This fixes the weird positioning issues also seen previously
* Store x coordinate of the glyph, which should be used for rendering operations instead of posMinX
* Do not reset glyph position size
* Set correct field in inputField/textArea when calculating selection
* Fix unit tests
* Update Changelog
* Add D_ option to button without the requirement of an explicit event
* Add ignoreParentEvts to button widget
* Add new note to keystroke widget
* Add unit tests for keystroke's/button's options for ignoring child/parent events respectively
* Update Changelog
* Allow using symbols for keystroke definitions. Add Dash to allow using the - character as part of a combination
* Log when an invalid sequence is provided
* Revert test changes to Tutorial02
* Be more explicit about restrictions
* Add missing keyCode definitions
* Handle Dash as text and add support for KpEnter
* Update Changelog
* Add improved note regarding secondary axis for hstack/vstack. Mention hgrid/vgrid
* Remark that styles belong to individual widgets and are not cascade down to its children
* Fix typo
* Use ignored dpr argument in makeFontManager
* Add scaling factor to FontManager initialization to attempt to match that of nanovg's nvg__getFontScale
* Set adjustedDpr to 4; it was the only possible outcome from the previous formula
* Update Changelog
* Adds style...Set family of functions for replacing a Style/WidgetNode StyleState. The existing style... family of functions now merge with the previous StyleState
* Add style...Set to tutorials and improve styling section. Make several small improvements
* Improve StyleState documentation
* Improve naming of Core's utility function
* Update Changelog
* Add _weAppStartTs to WidgetEnv, indicating the time in ms when the application started
* Use Timestamp type instead of Int to make signatures clearer
* Retrieve correct startup timestamp
* Use newtype instead of type for Timestamp
* Update Changelog
* Add utility function currentTimeMs, returning the absolute current timestamp (not from app start)
* Use currentTimeMs in examples
* Replace SDL.ticks call with utcTimeToPOSIXSeconds
* Restore nodeKey of description field in Tutorial 03
* Remove unneded liftIO calls from Ticker example
* Allow setting minimum thumb size in scroll widget. Improve thumb handling.
* Consider secondary axis' thumb width when calculating thumb size ratio if both vertical and horizontal bars need to be shown
* Add test cases for thumb drag
* Update Changelog
* Remove unneeded variables
* Give various widgets a readOnly mode
This mode allows text to be selected (and copied), but does not allow
editing. See issue #87
* Use a neater readOnly to editable conversion.
* Check if a dragHandler exists before applying fromJust in inputField
* Do not change cursor when pressing shift if input widget does not implement dragging
* feat: add the `lineBreak` option
This commit adds `lineBreak` option to specify how to break texts into
lines. `OnSpaces` is the default and breaks texts at spaces. `OnCharacters`
breaks texts at characters, even in the middle of a word. This is useful
for handling CJK texts, though it does not follow [the line breaking
rules](https://en.wikipedia.org/wiki/Line_breaking_rules_in_East_Asian_languages).
* fix: implement for `TextStyle`
Not to create instance of each widget.
* test: add for `OnCharacters`
* perf: make `fitLineToW` faster