An easy to use, cross platform, GUI library for writing Haskell applications.
BSD-3-CLAUSE License
Bot releases are hidden (Show)
Published by fjvallarino 9 months ago
Published by fjvallarino over 1 year ago
Published by fjvallarino about 2 years ago
selectList
, which would ignore WidgetRequest
s made by child widgets (PR #157).Published by fjvallarino over 2 years ago
boxFilterEvent
config option, exposing Container's filterEvent functionality (PR #146).pointToLineDistance
utility function (PR #150).Published by fjvallarino over 2 years ago
style...Set
family of functions (PR #104).Composite
's onChange
event is now sent to its handleEvent
function, not to its parent; the type of theonInit
is sent tohandleEvent
, having onChange
sent to its parent was confusing. At the same time there was not an easy wayhandleEvent
to know when the model changed. Widgets that want to report model changes to its parent canReport
/RequestParent
; an example can be found in ColorPicker
(PR #71).Timestamp
is now a newtype. Enforce use of this type instead of Int
when appropriate (PR #103).Timestamp
was renamed to Millisecond
. The rationale is that since both timestamps and durations are used frequently in calculations (and in the context of Monomer timestamps and durations indeed represent time in milliseconds), having separate types for Timestamp and Duration caused more harm than good (PR #107).compositeMergeModel
(previously customModelBuilder
) now receives WidgetEnv
as its first parameter (PR #114).compositeMergeReqs
now receives parentModel
and oldModel
too (PR #114).mergeRequired
now receives an extra value as its first parameter, usually WidgetEnv
(PR #122).SetFocusOnKey
for textArea
(#80).FontManager
and nanovg; temporary workaround (PR #105).nodeInfoFromKey
relies on nodeInfoFromPath
to retrieve information instead of fetching it directly from WidgetEnv
's widgetKeyMap
, which can be stale (PR #110).FontManager
; removed workaround added in #105 (PR #125).rectFromPoints
, nodeInfoFromKey
, nodeInfoFromPath
and findParentNodeInfoByType
.textField
, numericField
, dateField
, timeField
and textArea
(PR #93). Thanks @Dretch!scroll
widget now supports a thumbMinSize
configuration option that allows setting a minimum thumb size (PR #100)._weAppStartTs
in WidgetEnv
, complementary to _weTimestamp
, representing the time in milliseconds when the application started. Added utility function currentTimeMs
that returns their sum with a polymorphic type (PR #103).compositeMergeEvents
, for completeness (PR #114).keystroke
(PR #117).buttonD_
) and ignoreParentEvts
configuration option to button
(PR #123).appDisableAutoScale
(PR #128).keystroke
widget now supports the Backspace
key (PR #74).style...
family of functions now combine new attributes with the existing ones (PR #104).radio
and optionButton
now only trigger onChange
when their value changes. onClick
was can be used to replicate the previous onChange
behavior (PR #134).WidgetNode
information (PR #75)
findWidgetByPath
-> findChildNodeInfoByPath
.findWidgetBranchByPath
-> findChildBranchByPath
.findWidgetIdFromPath
-> widgetIdFromPath
.customModelBuilder
-> compositeMergeModel
CompositeCustomModelBuilder
-> MergeModelHandler
.OpenGL
, Safe
, scientific
, unordered-containers
, directory
, HUnit
and silently
(PR #70).Published by fjvallarino over 2 years ago
drawArrowUp
from Drawing
module.image
widget now supports a fitEither
option (PR #56). Thanks @Kyarigwo!scroll
widget now raises onChange
events, providing the current ScrollStatus
(PR #51).grid
, stack
, labeledCheckbox
and labeledRadio
widgets now support a childSpacing
/childSpacing_
optionWidgetType
. ThisWidgetType
of the root item in a Composite
changes during merge
, initialize the new widget insteaddropdown
is now correct when a dropdown is taller than one line (PR #55). Thanks @Dretch!convertEvents
, and in turn reported to widgets (#63).pumpEvents
before pollEvents
. The pumpEvents
call is implied by pollEvent
, but starting on2.0.20
it seems to be required to call it explicitly (#66). Thanks @JD95!Published by fjvallarino almost 3 years ago
customModelBuilder
in Composite, for custom models support. These can consume informationcontainerCreateContainerFromModel
to workaround issue when updating offset during merge.appDisableCompositing
to allow requesting compositing to be disabled on startup.optionButton
and toggleButton
widgets.SetFocusOnKey
and MoveFocusFromKey
actions in Composite
. Deprecate setFocusOnKey
function. This function depended on information in WidgetEnv
, which can become stale if several actions are returned at once. This change reduces confusion regarding order of operations and widget tree state.IgnoreParentEvents
request from widgets that handle Wheel event (avoids issues with scroll widget moving the content).RenderOnce
when model changes.onlyTopActive
now follows the same pattern as other boolean combinators.ColorPicker
._weFindByPath
to _weFindBranchByPath
, now returning the complete branch up to the given path.TextInput
event if a single letter binding matched previously on keystroke
.Published by fjvallarino about 3 years ago
appInvertWheelX
and appInvertWheelY
configuration options.Published by fjvallarino about 3 years ago
dpr
field to WidgetEnv
.RunInRenderThread
to support initialization of low level OpenGL resources.WidgetEnv
viewport from scroll (it looked good because of scissoring).containerDrawDecorations
. Simplify button/externalLink internals.singleDrawDecorations
. Make it consistent with Container.Published by fjvallarino about 3 years ago
Published by fjvallarino about 3 years ago
appRenderOnMainThread
option.Published by fjvallarino about 3 years ago
Published by fjvallarino about 3 years ago