From 6b01b5b9ceccf52e437580f7b1a40f8b0068474d Mon Sep 17 00:00:00 2001 From: postsolar <120750161+postsolar@users.noreply.github.com> Date: Mon, 19 Feb 2024 03:40:35 +0200 Subject: [PATCH 1/2] Add `Utils.lookupIcon` --- src/AGS/Utils/Icon.js | 2 ++ src/AGS/Utils/Icon.purs | 16 ++++++++++++++++ src/Gtk/IconInfo.purs | 4 ++++ 3 files changed, 22 insertions(+) create mode 100644 src/AGS/Utils/Icon.js create mode 100644 src/AGS/Utils/Icon.purs create mode 100644 src/Gtk/IconInfo.purs diff --git a/src/AGS/Utils/Icon.js b/src/AGS/Utils/Icon.js new file mode 100644 index 0000000..e4a829a --- /dev/null +++ b/src/AGS/Utils/Icon.js @@ -0,0 +1,2 @@ +export const lookupIconImpl = Utils.lookUpIcon + diff --git a/src/AGS/Utils/Icon.purs b/src/AGS/Utils/Icon.purs new file mode 100644 index 0000000..30d7217 --- /dev/null +++ b/src/AGS/Utils/Icon.purs @@ -0,0 +1,16 @@ +module AGS.Utils.Icon (lookupIcon) where + +import Prelude + +import Data.Maybe (Maybe) +import Data.Nullable (Nullable, toMaybe) +import Effect (Effect) +import Effect.Uncurried (EffectFn2, runEffectFn2) +import Gtk.IconInfo (GtkIconInfo) + +-- | Look up an icon given its name and size. +lookupIcon ∷ String → Int → Effect (Maybe GtkIconInfo) +lookupIcon name size = map toMaybe (runEffectFn2 lookupIconImpl name size) + +foreign import lookupIconImpl ∷ EffectFn2 String Int (Nullable GtkIconInfo) + diff --git a/src/Gtk/IconInfo.purs b/src/Gtk/IconInfo.purs new file mode 100644 index 0000000..e2b7bb5 --- /dev/null +++ b/src/Gtk/IconInfo.purs @@ -0,0 +1,4 @@ +module Gtk.IconInfo where + +foreign import data GtkIconInfo ∷ Type + From 01eea03796eea96a9a5a3fdf6516b89f66db95b1 Mon Sep 17 00:00:00 2001 From: postsolar <120750161+postsolar@users.noreply.github.com> Date: Sat, 24 Feb 2024 23:50:41 +0200 Subject: [PATCH 2/2] Add `Gtk.IconInfo.filename` --- src/Gtk/IconInfo.js | 4 ++++ src/Gtk/IconInfo.purs | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/Gtk/IconInfo.js diff --git a/src/Gtk/IconInfo.js b/src/Gtk/IconInfo.js new file mode 100644 index 0000000..8b70af3 --- /dev/null +++ b/src/Gtk/IconInfo.js @@ -0,0 +1,4 @@ +export const getFilenameImpl = + iconInfo => + iconInfo.get_filename() + diff --git a/src/Gtk/IconInfo.purs b/src/Gtk/IconInfo.purs index e2b7bb5..3db037b 100644 --- a/src/Gtk/IconInfo.purs +++ b/src/Gtk/IconInfo.purs @@ -1,4 +1,14 @@ -module Gtk.IconInfo where +module Gtk.IconInfo (GtkIconInfo, filename) where + +import Data.Maybe (Maybe) +import Data.Nullable (Nullable, toMaybe) +import Prelude ((<<<)) foreign import data GtkIconInfo ∷ Type +-- | Returns the full path to the icon, unless it's a builtin icon. +filename ∷ GtkIconInfo → Maybe String +filename = toMaybe <<< getFilenameImpl + +foreign import getFilenameImpl ∷ GtkIconInfo → Nullable String +