packages feed

termbox 2.0.0 → 2.0.0.1

raw patch · 7 files changed

+77/−62 lines, 7 filesdep ~basedep ~termbox-bindings-hsPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, termbox-bindings-hs

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+## [2.0.0.1] - November 14, 2023++- Update to `termbox-bindings-hs-1.0.0`+ ## [2.0.0] - November 5, 2023  - Overhaul `Cell`+`Scene` API; now it's `Image`+`Scene`
src/Termbox/Internal/Color.hs view
@@ -33,47 +33,49 @@ -- * Miscellaneous colors, such as @'color' 33@. -- * Monochrome colors that range from black (@'gray' 0@) to white (@'gray' 23@). newtype Color-  = Color Tb_color+  = Color Tb_attrs   deriving newtype (Eq) +-- These intentionally don't use e.g. TB_RED, 'cause they're all off-by-one in TB_OUTPUT_256+ defaultColor :: Color defaultColor =-  Color 0+  Color (Tb_attrs 0)  red :: Color red =-  Color 1+  Color (Tb_attrs 1)  green :: Color green =-  Color 2+  Color (Tb_attrs 2)  yellow :: Color yellow =-  Color 3+  Color (Tb_attrs 3)  blue :: Color blue =-  Color 4+  Color (Tb_attrs 4)  magenta :: Color magenta =-  Color 5+  Color (Tb_attrs 5)  cyan :: Color cyan =-  Color 6+  Color (Tb_attrs 6)  white :: Color white =-  Color 7+  Color (Tb_attrs 7)  -- | Make a basic color bright. bright :: Color -> Color bright =   coerce bright_ -bright_ :: Tb_color -> Tb_color+bright_ :: Word16 -> Word16 bright_ c   | c <= 7 = c + 8   | otherwise = c@@ -97,14 +99,14 @@   = MaybeColor Color   deriving stock (Eq) -unMaybeColor :: MaybeColor -> Tb_color-unMaybeColor (MaybeColor (Color (Tb_color c)))-  | c == maxBound = TB_DEFAULT-  | otherwise = Tb_color c+unMaybeColor :: MaybeColor -> Tb_attrs+unMaybeColor c+  | c == nothingColor = _TB_DEFAULT+  | otherwise = coerce @_ @Tb_attrs c  nothingColor :: MaybeColor nothingColor =-  MaybeColor (Color (Tb_color maxBound))+  coerce @Word16 maxBound  justColor :: Color -> MaybeColor justColor =
src/Termbox/Internal/Main.hs view
@@ -7,7 +7,7 @@ where  import Control.Exception (Exception, mask, onException)-import qualified Termbox.Bindings.Hs+import Termbox.Bindings.Hs  -- | @termbox@ initialization errors. data InitError@@ -33,19 +33,19 @@ -- If @initialize@ succeeds, it must be paired with a call to 'finalize'. initialize :: IO (Either InitError ()) initialize =-  Termbox.Bindings.Hs.tb_init >>= \case+  tb_init >>= \case     Left err ->       (pure . Left) case err of-        Termbox.Bindings.Hs.TB_EFAILED_TO_OPEN_TTY -> FailedToOpenTTY-        Termbox.Bindings.Hs.TB_EPIPE_TRAP_ERROR -> PipeTrapError-        Termbox.Bindings.Hs.TB_EUNSUPPORTED_TERMINAL -> UnsupportedTerminal+        TB_EFAILED_TO_OPEN_TTY -> FailedToOpenTTY+        TB_EPIPE_TRAP_ERROR -> PipeTrapError+        TB_EUNSUPPORTED_TERMINAL -> UnsupportedTerminal     Right () -> do-      _ <- Termbox.Bindings.Hs.tb_select_input_mode Termbox.Bindings.Hs.TB_INPUT_MOUSE-      _ <- Termbox.Bindings.Hs.tb_select_output_mode Termbox.Bindings.Hs.TB_OUTPUT_256+      tb_select_input_mode _TB_INPUT_MOUSE+      tb_select_output_mode TB_OUTPUT_256       pure (Right ())  -- | Shut down a @termbox@ program. finalize :: IO () finalize = do-  _ <- Termbox.Bindings.Hs.tb_select_output_mode Termbox.Bindings.Hs.TB_OUTPUT_NORMAL-  Termbox.Bindings.Hs.tb_shutdown+  tb_select_output_mode TB_OUTPUT_NORMAL+  tb_shutdown
src/Termbox/Internal/Mouse.hs view
@@ -13,7 +13,16 @@ where  import GHC.Generics (Generic)-import qualified Termbox.Bindings.Hs+import Termbox.Bindings.Hs+  ( Tb_key+      ( TB_KEY_MOUSE_LEFT,+        TB_KEY_MOUSE_MIDDLE,+        TB_KEY_MOUSE_RELEASE,+        TB_KEY_MOUSE_RIGHT,+        TB_KEY_MOUSE_WHEEL_DOWN,+        TB_KEY_MOUSE_WHEEL_UP+      ),+  ) import Termbox.Internal.Pos (Pos)  -- | A mouse event.@@ -25,7 +34,7 @@  -- | A mouse button. newtype MouseButton-  = MouseButton Termbox.Bindings.Hs.Tb_key+  = MouseButton Tb_key   deriving stock (Eq, Ord)  instance Show MouseButton where@@ -38,21 +47,21 @@     WheelUp -> "WheelUp"  pattern LeftClick :: MouseButton-pattern LeftClick = MouseButton Termbox.Bindings.Hs.TB_KEY_MOUSE_LEFT+pattern LeftClick = MouseButton TB_KEY_MOUSE_LEFT  pattern MiddleClick :: MouseButton-pattern MiddleClick = MouseButton Termbox.Bindings.Hs.TB_KEY_MOUSE_MIDDLE+pattern MiddleClick = MouseButton TB_KEY_MOUSE_MIDDLE  pattern RightClick :: MouseButton-pattern RightClick = MouseButton Termbox.Bindings.Hs.TB_KEY_MOUSE_RIGHT+pattern RightClick = MouseButton TB_KEY_MOUSE_RIGHT  pattern ReleaseClick :: MouseButton-pattern ReleaseClick = MouseButton Termbox.Bindings.Hs.TB_KEY_MOUSE_RELEASE+pattern ReleaseClick = MouseButton TB_KEY_MOUSE_RELEASE  pattern WheelDown :: MouseButton-pattern WheelDown = MouseButton Termbox.Bindings.Hs.TB_KEY_MOUSE_WHEEL_DOWN+pattern WheelDown = MouseButton TB_KEY_MOUSE_WHEEL_DOWN  pattern WheelUp :: MouseButton-pattern WheelUp = MouseButton Termbox.Bindings.Hs.TB_KEY_MOUSE_WHEEL_UP+pattern WheelUp = MouseButton TB_KEY_MOUSE_WHEEL_UP  {-# COMPLETE LeftClick, MiddleClick, ReleaseClick, RightClick, WheelDown, WheelUp #-}
src/Termbox/Internal/Scene.hs view
@@ -27,7 +27,7 @@ render :: Scene -> IO () render Scene {sceneFill, sceneDraw} = do   tb_set_cursor Nothing-  tb_set_clear_attributes TB_DEFAULT (unMaybeColor sceneFill)+  tb_set_clear_attributes _TB_DEFAULT (unMaybeColor sceneFill)   tb_clear   sceneDraw sceneFill   tb_present
src/Termbox/Internal/Style.hs view
@@ -15,8 +15,8 @@ import Termbox.Internal.Color (Color, MaybeColor, justColor, nothingColor, unMaybeColor)  data Style = Style-  { foreground :: {-# UNPACK #-} !ColorAndAttr,-    background :: {-# UNPACK #-} !ColorAndAttr+  { foreground :: {-# UNPACK #-} !ColorAndAttrs,+    background :: {-# UNPACK #-} !ColorAndAttrs   }  instance Monoid Style where@@ -28,27 +28,27 @@   Style a1 b1 <> Style a2 b2 =     Style (a2 <> a1) (b2 <> b1) --- Render a style as a foreground `tb_color`.-asForeground :: Style -> Tb_color+-- Render a style as a foreground `Tb_attrs`.+asForeground :: Style -> Tb_attrs asForeground Style {foreground} =   renderColorAndAttr foreground --- Render a style as a background `tb_color`.-asBackground :: Style -> Tb_color+-- Render a style as a background `Tb_attrs`.+asBackground :: Style -> Tb_attrs asBackground Style {background} =   renderColorAndAttr background -onlyForeground :: ColorAndAttr -> Style+onlyForeground :: ColorAndAttrs -> Style onlyForeground style =   mempty {foreground = style} -onlyBackground :: ColorAndAttr -> Style+onlyBackground :: ColorAndAttrs -> Style onlyBackground style =   mempty {background = style}  maybeFill :: MaybeColor -> Style maybeFill color =-  onlyBackground ColorAndAttr {color, attr = mempty}+  onlyBackground ColorAndAttrs {color, attrs = mempty}  fg :: Color -> Style fg =@@ -60,40 +60,40 @@  bold :: Style bold =-  onlyForeground (onlyAttr TB_BOLD)+  onlyForeground (onlyAttr _TB_BOLD)  underline :: Style underline =-  onlyForeground (onlyAttr TB_UNDERLINE)+  onlyForeground (onlyAttr _TB_UNDERLINE)  blink :: Style blink =-  onlyBackground (onlyAttr TB_BOLD)+  onlyBackground (onlyAttr _TB_BOLD) -data ColorAndAttr = ColorAndAttr+data ColorAndAttrs = ColorAndAttrs   { color :: {-# UNPACK #-} !MaybeColor,-    attr :: {-# UNPACK #-} !Tb_attr+    attrs :: {-# UNPACK #-} !Tb_attrs   } -instance Monoid ColorAndAttr where+instance Monoid ColorAndAttrs where   mempty =-    ColorAndAttr nothingColor mempty+    ColorAndAttrs nothingColor mempty  -- right-biased-instance Semigroup ColorAndAttr where-  ColorAndAttr color1 attr1 <> ColorAndAttr color2 attr2 =-    ColorAndAttr+instance Semigroup ColorAndAttrs where+  ColorAndAttrs color1 attr1 <> ColorAndAttrs color2 attr2 =+    ColorAndAttrs       (if color2 == nothingColor then color1 else color2)       (attr1 <> attr2) -renderColorAndAttr :: ColorAndAttr -> Tb_color-renderColorAndAttr ColorAndAttr {color, attr} =-  tb_attr attr (unMaybeColor color)+renderColorAndAttr :: ColorAndAttrs -> Tb_attrs+renderColorAndAttr ColorAndAttrs {color, attrs} =+  attrs <> unMaybeColor color -onlyColor :: Color -> ColorAndAttr+onlyColor :: Color -> ColorAndAttrs onlyColor color =   mempty {color = justColor color} -onlyAttr :: Tb_attr -> ColorAndAttr-onlyAttr attr =-  mempty {attr}+onlyAttr :: Tb_attrs -> ColorAndAttrs+onlyAttr attrs =+  mempty {attrs}
termbox.cabal view
@@ -18,14 +18,14 @@   .   * @<https://hackage.haskell.org/package/termbox-bindings-hs termbox-bindings-hs>@, direct Haskell-flavored bindings.   * @<https://hackage.haskell.org/package/termbox-bindings-c termbox-bindings-c>@, direct C-flavored bindings.-homepage: https://github.com/termbox/termbox-haskell+homepage: https://github.com/awkward-squad/termbox license: BSD-3-Clause license-file: LICENSE maintainer: Mitchell Rosen <mitchellwrosen@gmail.com>, Travis Staton <hello@travisstaton.com> name: termbox synopsis: termbox tested-with: GHC == 9.4.7, GHC == 9.6.3, GHC == 9.8.1-version: 2.0.0+version: 2.0.0.1  extra-doc-files:   CHANGELOG.md@@ -80,7 +80,7 @@   import: component   build-depends:     base ^>= 4.13 || ^>= 4.14 || ^>= 4.15 || ^>= 4.16 || ^>= 4.17 || ^>= 4.18 || ^>= 4.19,-    termbox-bindings-hs ^>= 0.1.1,+    termbox-bindings-hs ^>= 1.0.0,   exposed-modules: Termbox   hs-source-dirs: src   other-modules: