fit images to window; fix GetOpenFile parsing response
This commit is contained in:
52
go.mod
52
go.mod
@@ -4,7 +4,7 @@ go 1.24.0
|
||||
|
||||
require (
|
||||
github.com/disintegration/imaging v1.6.2
|
||||
modernc.org/tk9.0 v0.62.1-0.20250224173824-a16d85dfdb90
|
||||
modernc.org/tk9.0 v0.68.0
|
||||
)
|
||||
|
||||
require (
|
||||
@@ -22,37 +22,37 @@ require (
|
||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||
golang.org/x/exp v0.0.0-20231108232855-2478ac86f678 // indirect
|
||||
golang.org/x/image v0.25.0 // indirect
|
||||
golang.org/x/net v0.35.0 // indirect
|
||||
golang.org/x/sys v0.30.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect
|
||||
golang.org/x/image v0.26.0 // indirect
|
||||
golang.org/x/net v0.39.0 // indirect
|
||||
golang.org/x/sys v0.32.0 // indirect
|
||||
modernc.org/fileutil v1.3.0 // indirect
|
||||
modernc.org/fsm v1.2.1 // indirect
|
||||
modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 // indirect
|
||||
modernc.org/fsm v1.3.2 // indirect
|
||||
modernc.org/gc/v3 v3.0.0-20250225134559-fd9931328834 // indirect
|
||||
modernc.org/knuth v0.5.4 // indirect
|
||||
modernc.org/libX11 v0.11.2 // indirect
|
||||
modernc.org/libXau v0.9.2 // indirect
|
||||
modernc.org/libXdmcp v0.12.0 // indirect
|
||||
modernc.org/libXft v0.10.0 // indirect
|
||||
modernc.org/libXrender v0.9.0 // indirect
|
||||
modernc.org/libbsd v0.11.1 // indirect
|
||||
modernc.org/libc v1.61.13 // indirect
|
||||
modernc.org/libexpat v0.10.2 // indirect
|
||||
modernc.org/libfontconfig v0.8.2 // indirect
|
||||
modernc.org/libfreetype v0.9.1 // indirect
|
||||
modernc.org/libmd v0.12.0 // indirect
|
||||
modernc.org/libtcl9.0 v0.15.1 // indirect
|
||||
modernc.org/libtk9.0 v0.15.0 // indirect
|
||||
modernc.org/libxcb v0.11.0 // indirect
|
||||
modernc.org/libz v0.16.10 // indirect
|
||||
modernc.org/libX11 v0.11.14 // indirect
|
||||
modernc.org/libXau v0.9.9 // indirect
|
||||
modernc.org/libXdmcp v0.12.9 // indirect
|
||||
modernc.org/libXft v0.10.19 // indirect
|
||||
modernc.org/libXrender v0.9.13 // indirect
|
||||
modernc.org/libbsd v0.11.8 // indirect
|
||||
modernc.org/libc v1.62.1 // indirect
|
||||
modernc.org/libexpat v0.10.12 // indirect
|
||||
modernc.org/libfontconfig v0.8.11 // indirect
|
||||
modernc.org/libfreetype v0.9.18 // indirect
|
||||
modernc.org/libmd v0.12.15 // indirect
|
||||
modernc.org/libtcl9.0 v0.16.3 // indirect
|
||||
modernc.org/libtk9.0 v0.16.2 // indirect
|
||||
modernc.org/libxcb v0.11.3 // indirect
|
||||
modernc.org/libz v0.16.15 // indirect
|
||||
modernc.org/mathutil v1.7.1 // indirect
|
||||
modernc.org/memory v1.8.2 // indirect
|
||||
modernc.org/memory v1.9.1 // indirect
|
||||
modernc.org/ngrab v0.1.0 // indirect
|
||||
modernc.org/rec v0.3.1 // indirect
|
||||
modernc.org/regexp v1.7.3 // indirect
|
||||
modernc.org/rec v0.3.3 // indirect
|
||||
modernc.org/regexp v1.7.9 // indirect
|
||||
modernc.org/sortutil v1.2.1 // indirect
|
||||
modernc.org/strutil v1.2.1 // indirect
|
||||
modernc.org/tcl9.0 v0.15.25 // indirect
|
||||
modernc.org/tcl9.0 v0.16.0 // indirect
|
||||
modernc.org/token v1.1.0 // indirect
|
||||
)
|
||||
|
||||
|
132
go.sum
132
go.sum
@@ -12,8 +12,8 @@ github.com/ebitengine/purego v0.8.2 h1:jPPGWs2sZ1UgOSgD2bClL0MJIqu58nOmIcBuXr62z
|
||||
github.com/ebitengine/purego v0.8.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
|
||||
github.com/evilsocket/islazy v1.11.0 h1:B5w6uuS6ki6iDG+aH/RFeoMb8ijQh/pGabewqp2UeJ0=
|
||||
github.com/evilsocket/islazy v1.11.0/go.mod h1:muYH4x5MB5YRdkxnrOtrXLIBX6LySj1uFIqys94LKdo=
|
||||
github.com/expr-lang/expr v1.16.9 h1:WUAzmR0JNI9JCiF0/ewwHB1gmcGw5wW7nWt8gc6PpCI=
|
||||
github.com/expr-lang/expr v1.16.9/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4=
|
||||
github.com/expr-lang/expr v1.17.2 h1:o0A99O/Px+/DTjEnQiodAgOIK9PPxL8DtXhBRKC+Iso=
|
||||
github.com/expr-lang/expr v1.17.2/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
|
||||
@@ -36,88 +36,88 @@ github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
golang.org/x/exp v0.0.0-20231108232855-2478ac86f678 h1:mchzmB1XO2pMaKFRqk/+MV3mgGG96aqaPXaMifQU47w=
|
||||
golang.org/x/exp v0.0.0-20231108232855-2478ac86f678/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE=
|
||||
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
|
||||
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
|
||||
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
|
||||
golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs=
|
||||
golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8=
|
||||
golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
|
||||
golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
|
||||
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
|
||||
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/image v0.26.0 h1:4XjIFEZWQmCZi6Wv8BoxsDhRU3RVnLX04dToTDAEPlY=
|
||||
golang.org/x/image v0.26.0/go.mod h1:lcxbMFAovzpnJxzXS3nyL83K27tmqtKzIJpctK8YO5c=
|
||||
golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
|
||||
golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
|
||||
golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
|
||||
golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
|
||||
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
|
||||
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
||||
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
|
||||
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg=
|
||||
golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI=
|
||||
golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU=
|
||||
golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
modernc.org/cc/v4 v4.24.4 h1:TFkx1s6dCkQpd6dKurBNmpo+G8Zl4Sq/ztJ+2+DEsh0=
|
||||
modernc.org/cc/v4 v4.24.4/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0=
|
||||
modernc.org/ccgo/v4 v4.23.16 h1:Z2N+kk38b7SfySC1ZkpGLN2vthNJP1+ZzGZIlH7uBxo=
|
||||
modernc.org/ccgo/v4 v4.23.16/go.mod h1:nNma8goMTY7aQZQNTyN9AIoJfxav4nvTnvKThAeMDdo=
|
||||
modernc.org/cc/v4 v4.25.2 h1:T2oH7sZdGvTaie0BRNFbIYsabzCxUQg8nLqCdQ2i0ic=
|
||||
modernc.org/cc/v4 v4.25.2/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0=
|
||||
modernc.org/ccgo/v4 v4.25.2 h1:OIXoYwU8LU+niNKTi3OyfgQacetOpgrEJMGMsDZQt4g=
|
||||
modernc.org/ccgo/v4 v4.25.2/go.mod h1:Cf2zhnyzU8MivGJl/asSCJ7T9COaAWpenv0lnf1XY+U=
|
||||
modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
|
||||
modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
|
||||
modernc.org/fsm v1.2.1 h1:HbM58bXxL5O2lcZV2MLunCelmbcx0pfEABx5MiBdVcU=
|
||||
modernc.org/fsm v1.2.1/go.mod h1:EDGRSaPWy3qP70XVpUVVqkUplm0myW+jAohuM5RajEs=
|
||||
modernc.org/gc/v2 v2.6.3 h1:aJVhcqAte49LF+mGveZ5KPlsp4tdGdAOT4sipJXADjw=
|
||||
modernc.org/gc/v2 v2.6.3/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito=
|
||||
modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 h1:IYXPPTTjjoSHvUClZIYexDiO7g+4x+XveKT4gCIAwiY=
|
||||
modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
|
||||
modernc.org/fsm v1.3.2 h1:f58HBydnAmLhugDKOlNniDYfKRcOH/3T4xQTO1AZXag=
|
||||
modernc.org/fsm v1.3.2/go.mod h1:5eK6OWqnX8io83LPfzIlNnUrkpxN/r1ONq3wVi8kvio=
|
||||
modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI=
|
||||
modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito=
|
||||
modernc.org/gc/v3 v3.0.0-20250225134559-fd9931328834 h1:Qv+IG+6zQZSvUPRwUOgnMoAhy6rAhBB7WYY8IAfKG+c=
|
||||
modernc.org/gc/v3 v3.0.0-20250225134559-fd9931328834/go.mod h1:LG5UO1Ran4OO0JRKz2oNiXhR5nNrgz0PzH7UKhz0aMU=
|
||||
modernc.org/knuth v0.5.4 h1:F8mDs7ME3oN9eyx01n6/xVmJ4F5U/qEhSYPnPXaZrps=
|
||||
modernc.org/knuth v0.5.4/go.mod h1:e5SBb35HQBj2aFwbBO3ClPcViLY3Wi0LzaOd7c/3qMk=
|
||||
modernc.org/libX11 v0.11.2 h1:tAqv1KVQEDhBqQ/1gfSmEAQtAoOjteOTHZZoiB7AfUQ=
|
||||
modernc.org/libX11 v0.11.2/go.mod h1:3AuhC2yIZnqs345bgkN09wZkQxftMkh0VxzG5hlGMHU=
|
||||
modernc.org/libXau v0.9.2 h1:zvsrhQm4LZxp9s+PmH4cU3bHtwx8D2N1ZosdOGFgAIw=
|
||||
modernc.org/libXau v0.9.2/go.mod h1:W7rrXkzskKX3CCFdNkoBoj1MIIxbLLG3zyO7uOdKT1o=
|
||||
modernc.org/libXdmcp v0.12.0 h1:ZjEkqq0oMPJLSIHf3sGTyWZAaN3pufx1FxieH8ahujA=
|
||||
modernc.org/libXdmcp v0.12.0/go.mod h1:vGEvyhpeH8Tq8t813RNeyMRODJ0Wxlwg9Avy1TC3DK4=
|
||||
modernc.org/libXft v0.10.0 h1:CtttMuQsmLbXg+IPYVxQHJXsGVLMn3WsKIXr8e/TDKo=
|
||||
modernc.org/libXft v0.10.0/go.mod h1:z+VNTTc3Lmtzn4FcpueZkoHGlhXkMReyLcfTFfERxCE=
|
||||
modernc.org/libXrender v0.9.0 h1:JDLYImH30B2f1HYM0gMN+RArkyL37I4/3PkgE40dMGY=
|
||||
modernc.org/libXrender v0.9.0/go.mod h1:b41LOnUnhzdqU0Nn5b/HL6F+JvIS5rD58FOQXDgNQBY=
|
||||
modernc.org/libbsd v0.11.1 h1:fitxx6pR7qCmKiyguiaSd3sNluE3Upb5CqoSQKWAfo4=
|
||||
modernc.org/libbsd v0.11.1/go.mod h1:FEVwPCCWsF7E3aZ5r7r4VeRullGyYucA6aTgk5HNTRY=
|
||||
modernc.org/libc v1.61.13 h1:3LRd6ZO1ezsFiX1y+bHd1ipyEHIJKvuprv0sLTBwLW8=
|
||||
modernc.org/libc v1.61.13/go.mod h1:8F/uJWL/3nNil0Lgt1Dpz+GgkApWh04N3el3hxJcA6E=
|
||||
modernc.org/libexpat v0.10.2 h1:apvlWGtS3cn61Z24isCvCLU4t1NWAUOBWTA2KMNvVzc=
|
||||
modernc.org/libexpat v0.10.2/go.mod h1:OJbzff11GOxEfSSy3ofxGn0vrkpAWN0YLvTTLthe4Lw=
|
||||
modernc.org/libfontconfig v0.8.2 h1:OvllZZfoE/7WrtzO8HHaQn9YS6JZlSUdkAY3nL+od6Y=
|
||||
modernc.org/libfontconfig v0.8.2/go.mod h1:xQ59wWxiqkxaAIg+hH+6u+b9B0uu7njWDV4UnoXrDYE=
|
||||
modernc.org/libfreetype v0.9.1 h1:OS57DE3q1dSTAfOz2O0dw2w5zDx3oax8BUNaHQB0DGU=
|
||||
modernc.org/libfreetype v0.9.1/go.mod h1:7MEdxlU7xIIQ1k5MQYGe0C7BfKuXwVW1i5G9fQDbRSE=
|
||||
modernc.org/libmd v0.12.0 h1:aAvpjpr7FJUrO14hghEB5QK7Prvl6Cbf7D8vSswxojE=
|
||||
modernc.org/libmd v0.12.0/go.mod h1:QQBOHm77lZsemt1VbO7fQhDUYO0/dy5KR1nLVm5YvLY=
|
||||
modernc.org/libtcl9.0 v0.15.1 h1:DM9nzm+VPFeEpPYYSLfRif9vneEklR9/OCkrabMdrbw=
|
||||
modernc.org/libtcl9.0 v0.15.1/go.mod h1:WVZziJEB6DHMOG7nTfRXKzOzFF9dfdI6aA/GkpffgXg=
|
||||
modernc.org/libtk9.0 v0.15.0 h1:Utszid60BZ6gNfvAwhkOyI3Lot4ScrVJ2uuHGLl5WOQ=
|
||||
modernc.org/libtk9.0 v0.15.0/go.mod h1:D6csINNOuk5lLMab20kjhCK0JxQfL02IaAPa9vnj2G4=
|
||||
modernc.org/libxcb v0.11.0 h1:MzVt6ETBHfAjQeZYH3J5vKzHn7HihZd3FSKbQb9mK1Y=
|
||||
modernc.org/libxcb v0.11.0/go.mod h1:Wht2E7ngaJG36GguDTdXkHXItBFPFVXAcN7w8pJW9ug=
|
||||
modernc.org/libz v0.16.10 h1:EzVXcQypULQaMZvYCTaUrifHI3w+qJC32tVHhIJME6w=
|
||||
modernc.org/libz v0.16.10/go.mod h1:aFCUCpH+9uJvjLJfN98nhQz1ibdhZrZG8Pe6ZJeBSIA=
|
||||
modernc.org/libX11 v0.11.14 h1:PgPms46sSh2DcvyoKiN6b4P/C8oWRK3wY7UjBW63CJc=
|
||||
modernc.org/libX11 v0.11.14/go.mod h1:81woNnAmSSwxSbzcWvusNsQjWkZFqxhJGdJn1r/KVh4=
|
||||
modernc.org/libXau v0.9.9 h1:M+I0tAYSU5/xZEvGH9yCpMOyFy1fbuixrONJX0XJTUk=
|
||||
modernc.org/libXau v0.9.9/go.mod h1:CQMi6xKr4ejSzktdkI+p6hKmE+ibvHMpaH5XWyIu5ic=
|
||||
modernc.org/libXdmcp v0.12.9 h1:VdL/KAY0F+hVcxwR0GIgClPlKjc9OMCSRC1NXyIyllQ=
|
||||
modernc.org/libXdmcp v0.12.9/go.mod h1:ggxs82DX1F9+SArhp8/PcJM4qmES47pnV0AHtKF9giI=
|
||||
modernc.org/libXft v0.10.19 h1:GuMqRxQBBC3feRH7TMkCC6EIeY8j7+HLm5oQlNSxAIw=
|
||||
modernc.org/libXft v0.10.19/go.mod h1:x7wcmlnUzG9SLfXZMG1DbMN6bRwNV+eZT4xN+iQSLkQ=
|
||||
modernc.org/libXrender v0.9.13 h1:aTH9Ii0TepPm1MmC9aDr06UXNw5XvrIHC45y+3ULeRY=
|
||||
modernc.org/libXrender v0.9.13/go.mod h1:6K3VytTIn9aA8WOZQY0ZjB172pVI0VR66WLOsVW7sLo=
|
||||
modernc.org/libbsd v0.11.8 h1:lBSRhXYUMjuiYUfYWF1VcT9kTIFH8j/aaDYF+Pck964=
|
||||
modernc.org/libbsd v0.11.8/go.mod h1:g8wcLe7VT2dSI0R4z0xIF4UHZRMIpjIQPIpRJN6td7o=
|
||||
modernc.org/libc v1.62.1 h1:s0+fv5E3FymN8eJVmnk0llBe6rOxCu/DEU+XygRbS8s=
|
||||
modernc.org/libc v1.62.1/go.mod h1:iXhATfJQLjG3NWy56a6WVU73lWOcdYVxsvwCgoPljuo=
|
||||
modernc.org/libexpat v0.10.12 h1:SNjo4U5z7Uu01qId6RTDH5uYT1+T94Z1JJ0s8g1FB2o=
|
||||
modernc.org/libexpat v0.10.12/go.mod h1:E4er4v37XcC813LkDSqbt7SB1Jj071/ceIorg1kRjzI=
|
||||
modernc.org/libfontconfig v0.8.11 h1:Tqz8Ooi0qgLvD6JUbNzamqlyOwq3NPAE2N4cOF3ymYw=
|
||||
modernc.org/libfontconfig v0.8.11/go.mod h1:jQaZKgJBVGmupcOKGH8C1rGr/T+VftwG/idM3cycwKY=
|
||||
modernc.org/libfreetype v0.9.18 h1:RBCWzuMAmxt7Wqq/oCS08nFCscqYUDFbRPuCkTYqHCo=
|
||||
modernc.org/libfreetype v0.9.18/go.mod h1:wHJJk5gn2Dw93JBGwLeSB5mAaxF6sKTbsM/p1ygQudQ=
|
||||
modernc.org/libmd v0.12.15 h1:LgXokdUq+nawxNPSSce/0FvmM3atr62JOqLq9LDmY7U=
|
||||
modernc.org/libmd v0.12.15/go.mod h1:HwP6ekjVbbTn5t/xJHRi2aK47fY6vs1bSPqunl8mVt4=
|
||||
modernc.org/libtcl9.0 v0.16.3 h1:/zRNPpQwuI4g6RymMnk+WMcUVsw7ubb3Su1HmAz0pRk=
|
||||
modernc.org/libtcl9.0 v0.16.3/go.mod h1:yci8r8dmrCHyiAD/6uUnU33FHgDcD5zpjI2o8geI8wg=
|
||||
modernc.org/libtk9.0 v0.16.2 h1:deSs6jHnQA8cigX2CLzvWrpTMWuruQKB2Q3B7uzAdRw=
|
||||
modernc.org/libtk9.0 v0.16.2/go.mod h1:6oy9MEoR04AUHCAKQ0hYVlcZWbWAiMaXlHCu7Ig2AU4=
|
||||
modernc.org/libxcb v0.11.3 h1:N7DIx5UPn6xpWTkCGQ5SY/wKWaDWaixRMHCPA/4SPMs=
|
||||
modernc.org/libxcb v0.11.3/go.mod h1:Gv8miMFngEJMKsMA5zSCGgLDE/o85OWAKrdOiZY8hbk=
|
||||
modernc.org/libz v0.16.15 h1:E1JHwmF+LYxE97PgZqlVoiNM3JletNYy8lM4rQuWhWg=
|
||||
modernc.org/libz v0.16.15/go.mod h1:ZEfDnPewNb6xrSxZwAnRckDsC0C7cObJqIsDCmhl9ko=
|
||||
modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
|
||||
modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
|
||||
modernc.org/memory v1.8.2 h1:cL9L4bcoAObu4NkxOlKWBWtNHIsnnACGF/TbqQ6sbcI=
|
||||
modernc.org/memory v1.8.2/go.mod h1:ZbjSvMO5NQ1A2i3bWeDiVMxIorXwdClKE/0SZ+BMotU=
|
||||
modernc.org/memory v1.9.1 h1:V/Z1solwAVmMW1yttq3nDdZPJqV1rM05Ccq6KMSZ34g=
|
||||
modernc.org/memory v1.9.1/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw=
|
||||
modernc.org/ngrab v0.1.0 h1:21cX4tAIfLNjR4ax7JMfHTz2ztnjVGcCSsztoG6EFMk=
|
||||
modernc.org/ngrab v0.1.0/go.mod h1:dDGjUip6IXmb5Y5M8RPYD7Sg4S/VdfG5akxK34uYtOE=
|
||||
modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8=
|
||||
modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns=
|
||||
modernc.org/rec v0.3.1 h1:4mh3pdjaTpASWDVQuETe6mACr9QL7WYgd0iTHkCO5JA=
|
||||
modernc.org/rec v0.3.1/go.mod h1:MC9UAyhDSYlAkWc5x/6HbwkYaP4f/SU8XxvRvtVSYu4=
|
||||
modernc.org/regexp v1.7.3 h1:XOyVuWwhINI1jwwEkEKBNXAgfdYKOJ7iRgQH1zYlol0=
|
||||
modernc.org/regexp v1.7.3/go.mod h1:w871IJbq9BwRr+ZtUZ9D7+p7qPAFWTN47ESu46YcGjI=
|
||||
modernc.org/rec v0.3.3 h1:u4sHCz+Ey5vBXfSScSDal3rSf9RsBGjR/8pPL0ZqOaY=
|
||||
modernc.org/rec v0.3.3/go.mod h1:sZ5tGUH9yNUrqwUrpD044f+5zLSOXTB6sE/u789vRto=
|
||||
modernc.org/regexp v1.7.9 h1:PnzXQinFBbSiXcLunjHWrKPvZqNmyw0DfdZx0rvvzQo=
|
||||
modernc.org/regexp v1.7.9/go.mod h1:DsTv3IO8vq8ahN8IHKJ0s3j5oFNfkBnGN6VuWzr7Afs=
|
||||
modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w=
|
||||
modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE=
|
||||
modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
|
||||
modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
|
||||
modernc.org/tcl9.0 v0.15.25 h1:3xNx26D+vYmSY3K9FaNdPmlHd8Hcz39YGiqsBFCYx5c=
|
||||
modernc.org/tcl9.0 v0.15.25/go.mod h1:hCbqZz0GQRzN3Xnfn4dKpMCwvA9sfEb+Go++cw1cJ3A=
|
||||
modernc.org/tk9.0 v0.62.1-0.20250224173824-a16d85dfdb90 h1:Dx3Jpf1yfZ9ji/jMDn5AYf4ZDvmURWqt9AVhN62/xwY=
|
||||
modernc.org/tk9.0 v0.62.1-0.20250224173824-a16d85dfdb90/go.mod h1:8S1bkOevk09kDEinpidMkwm1Zb3SLx2XhGhuXqj97u4=
|
||||
modernc.org/tcl9.0 v0.16.0 h1:Me5on7SpLPIv3yEkUiFVG14YR1AbvzHrZGkEu4s696s=
|
||||
modernc.org/tcl9.0 v0.16.0/go.mod h1:RMBQkc0bU2Sl7et9IoZjFG3Bcehh+6ARJgVBpKJ48+4=
|
||||
modernc.org/tk9.0 v0.68.0 h1:Qt6ENHG774ZYsDpMq5R1VKR0S5PQdyuQXFtMol6WJyg=
|
||||
modernc.org/tk9.0 v0.68.0/go.mod h1:YAR5KsxdaU5uTL+1PLEXrQN+rrhJ+Sz+suwXM7piwFU=
|
||||
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
||||
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
||||
|
35
main.go
35
main.go
@@ -7,6 +7,8 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/disintegration/imaging"
|
||||
tk "modernc.org/tk9.0"
|
||||
@@ -36,6 +38,13 @@ var directoryState struct {
|
||||
images []string
|
||||
}
|
||||
|
||||
func must[T any](t T, err error) T {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return t
|
||||
}
|
||||
|
||||
func isImage(entry os.DirEntry) bool {
|
||||
if entry.IsDir() {
|
||||
return false
|
||||
@@ -51,16 +60,17 @@ func isImage(entry os.DirEntry) bool {
|
||||
|
||||
func newFileInDirectory(img *tk.LabelWidget) func() {
|
||||
return func() {
|
||||
files := tk.GetOpenFile(tk.Filetypes(validFileTypes))
|
||||
files := tk.GetOpenFile(tk.Filetypes(validFileTypes), tk.Multiple(false))
|
||||
if len(files) < 1 || files[0] == "" {
|
||||
log.Println("no file chosen")
|
||||
return
|
||||
}
|
||||
directoryState.currentFile = filepath.Base(files[0])
|
||||
directoryState.currentDirectory = filepath.Dir(files[0])
|
||||
file := strings.Join(files, " ") // GetOpenFile returns an array split on spaces!
|
||||
directoryState.currentFile = filepath.Base(file)
|
||||
directoryState.currentDirectory = filepath.Dir(file)
|
||||
dirfiles, err := os.ReadDir(directoryState.currentDirectory)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
log.Printf("could not open dir: %v", err)
|
||||
return
|
||||
}
|
||||
directoryState.images = []string{}
|
||||
@@ -69,7 +79,7 @@ func newFileInDirectory(img *tk.LabelWidget) func() {
|
||||
directoryState.images = append(directoryState.images, v.Name())
|
||||
}
|
||||
}
|
||||
updateImage(files[0], img)
|
||||
updateImage(file, img)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,22 +109,19 @@ func newDirectory(img *tk.LabelWidget) func() {
|
||||
func updateImage(file string, img *tk.LabelWidget) {
|
||||
i, err := imaging.Open(file, imaging.AutoOrientation(true))
|
||||
if err != nil {
|
||||
log.Println(err.Error())
|
||||
log.Printf("error opening image: %v", err)
|
||||
return
|
||||
}
|
||||
// todo: make these bounds max out at display size
|
||||
if i.Bounds().Dy() > i.Bounds().Dx() {
|
||||
i = imaging.Resize(i, 0, 1000, imaging.CatmullRom)
|
||||
} else {
|
||||
i = imaging.Resize(i, 1000, 0, imaging.CatmullRom)
|
||||
}
|
||||
i = imaging.Fit(i,
|
||||
must(strconv.Atoi(tk.WinfoScreenWidth(tk.App))),
|
||||
must(strconv.Atoi(tk.WinfoScreenHeight(tk.App))),
|
||||
imaging.Linear,
|
||||
)
|
||||
repaint(img, filepath.Base(file), tk.Data(i))
|
||||
directoryState.currentFile = filepath.Base(file)
|
||||
}
|
||||
|
||||
func repaint(img *tk.LabelWidget, name string, opt tk.Opt) {
|
||||
photo := tk.NewPhoto(opt)
|
||||
log.Printf("height: %v, width: %v", photo.Height(), photo.Width())
|
||||
img.Configure(tk.Image(tk.NewPhoto(opt)))
|
||||
if name != "" {
|
||||
tk.App.WmTitle(fmt.Sprintf("why | %s", name))
|
||||
|
Reference in New Issue
Block a user