Skip to content

Commit 7d4f3a8

Browse files
authored
Make value and read-only range types distinct (#143)
Fixes #142
1 parent bc590d9 commit 7d4f3a8

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

src/DearImGui.hs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -847,8 +847,8 @@ dragIntRange2 desc refMin refMax speed minValue maxValue minFmt maxFmt = liftIO
847847
return changed
848848

849849
dragScalar
850-
:: (HasSetter ref a, HasGetter ref a, Storable a, MonadIO m)
851-
=> String -> ImGuiDataType -> ref -> Float -> ref -> ref -> String -> ImGuiSliderFlags -> m Bool
850+
:: (HasSetter ref a, HasGetter ref a, HasGetter range a, Storable a, MonadIO m)
851+
=> String -> ImGuiDataType -> ref -> Float -> range -> range -> String -> ImGuiSliderFlags -> m Bool
852852
dragScalar label dataType ref vSpeed refMin refMax format flags = liftIO do
853853
currentValue <- get ref
854854
minValue <- get refMin
@@ -877,8 +877,8 @@ dragScalar label dataType ref vSpeed refMin refMax format flags = liftIO do
877877
return changed
878878

879879
dragScalarN
880-
:: (HasSetter valueRef [a], HasGetter valueRef [a], HasGetter rangeRef a, Storable a, MonadIO m)
881-
=> String -> ImGuiDataType -> valueRef -> Float -> rangeRef -> rangeRef -> String -> ImGuiSliderFlags -> m Bool
880+
:: (HasSetter ref [a], HasGetter ref [a], HasGetter range a, Storable a, MonadIO m)
881+
=> String -> ImGuiDataType -> ref -> Float -> range -> range -> String -> ImGuiSliderFlags -> m Bool
882882
dragScalarN label dataType ref vSpeed refMin refMax format flags = liftIO do
883883
currentValues <- get ref
884884
minValue <- get refMin
@@ -908,8 +908,8 @@ dragScalarN label dataType ref vSpeed refMin refMax format flags = liftIO do
908908
return changed
909909

910910
sliderScalar
911-
:: (HasSetter ref a, HasGetter ref a, Storable a, MonadIO m)
912-
=> String -> ImGuiDataType -> ref -> ref -> ref -> String -> ImGuiSliderFlags -> m Bool
911+
:: (HasGetter ref a, HasSetter ref a, HasGetter range a, Storable a, MonadIO m)
912+
=> String -> ImGuiDataType -> ref -> range -> range -> String -> ImGuiSliderFlags -> m Bool
913913
sliderScalar label dataType ref refMin refMax format flags = liftIO do
914914
currentValue <- get ref
915915
minValue <- get refMin
@@ -937,8 +937,8 @@ sliderScalar label dataType ref refMin refMax format flags = liftIO do
937937
return changed
938938

939939
sliderScalarN
940-
:: (HasSetter valueRef [a], HasGetter valueRef [a], HasGetter rangeRef a, Storable a, MonadIO m)
941-
=> String -> ImGuiDataType -> valueRef -> rangeRef -> rangeRef -> String -> ImGuiSliderFlags -> m Bool
940+
:: (HasSetter value [a], HasGetter value [a], HasGetter range a, Storable a, MonadIO m)
941+
=> String -> ImGuiDataType -> value -> range -> range -> String -> ImGuiSliderFlags -> m Bool
942942
sliderScalarN label dataType ref refMin refMax format flags = liftIO do
943943
currentValues <- get ref
944944
minValue <- get refMin
@@ -1187,8 +1187,8 @@ vSliderInt label size ref minValue maxValue = liftIO do
11871187
return changed
11881188

11891189
vSliderScalar
1190-
:: (HasSetter ref a, HasGetter ref a, Storable a, MonadIO m)
1191-
=> String -> ImVec2 -> ImGuiDataType -> ref -> ref -> ref -> String -> ImGuiSliderFlags -> m Bool
1190+
:: (HasSetter ref a, HasGetter ref a, HasGetter range a, Storable a, MonadIO m)
1191+
=> String -> ImVec2 -> ImGuiDataType -> ref -> range -> range -> String -> ImGuiSliderFlags -> m Bool
11921192
vSliderScalar label size dataType ref refMin refMax format flags = liftIO do
11931193
currentValue <- get ref
11941194
minValue <- get refMin
@@ -1885,7 +1885,12 @@ withCStringOrNull (Just s) k = withCString s k
18851885
-- | Set next window position. Call before `begin` Use pivot=(0.5,0.5) to center on given point, etc.
18861886
--
18871887
-- Wraps @ImGui::SetNextWindowPos()@
1888-
setNextWindowPos :: (MonadIO m, HasGetter ref ImVec2) => ref -> ImGuiCond -> Maybe ref -> m ()
1888+
setNextWindowPos
1889+
:: (MonadIO m, HasGetter ref ImVec2)
1890+
=> ref
1891+
-> ImGuiCond
1892+
-> Maybe ref -- XXX: the type should be distinct, but using `setNextWindowPos .. Nothing` is ambiguous resulting in bad UX.
1893+
-> m ()
18891894
setNextWindowPos posRef cond pivotMaybe = liftIO do
18901895
pos <- get posRef
18911896
with pos $ \posPtr ->

0 commit comments

Comments
 (0)