vvin/cmd_alpha.go
Evan a839fe4655 Update from upstream by squashing
commit 6172ea4fdf435d7125697d40af2c17ae5ff3a8c6
Author: Shuhei Kubota <kubota.shuhei+github@gmail.com>
Date:   Sat Nov 4 15:30:11 2023 +0900

    build: same config as csv2xlsx

commit 6c522e8ca857f7218db476153ffd06e8b7d2bdde
Author: Shuhei Kubota <kubota.shuhei+github@gmail.com>
Date:   Sat Nov 4 15:11:53 2023 +0900

    change: debug output

commit 4cec3963cdc20c781bbacde8be927591145b95ca
Author: Shuhei Kubota <kubota.shuhei+github@gmail.com>
Date:   Sat Nov 4 15:10:26 2023 +0900

    chore: use gli/v2

commit 958c93d6256bbb4611f21f870087c074a783001b
Author: Shuhei Kubota <kubota.shuhei+github@gmail.com>
Date:   Fri Nov 3 20:45:57 2023 +0900

    fix(alpha): improve output, variable name

commit 8bc79c6bd2c4a93c087e8fea7c2e306e7028466c
Author: Shuhei Kubota <kubota.shuhei+github@gmail.com>
Date:   Fri Nov 3 20:18:34 2023 +0900

    refactor: remove unused code

commit 7a14926dd7f83dd6a41f3baa6c905b7c81191a93
Author: Shuhei Kubota <kubota.shuhei+github@gmail.com>
Date:   Fri Nov 3 20:18:59 2023 +0900

    build: go 1.21

commit 40007434e6fdbc3ad485862b3d2785d7ba7263a8
Author: Shuhei Kubota <kubota.shuhei+github@gmail.com>
Date:   Fri Nov 3 20:18:15 2023 +0900

    fix: call cancel finally

commit 5b02edacd34942adedf38d089737d3c8130d52e3
Author: Shuhei Kubota <kubota.shuhei+github@gmail.com>
Date:   Fri Nov 3 20:16:34 2023 +0900

    fix: typo
2024-04-04 10:50:39 -04:00

39 lines
800 B
Go

//go:build windows
// +build windows
package vvin
import (
"errors"
"os"
"github.com/shu-go/nmfmt"
)
type alphaCmd struct {
}
func (c alphaCmd) Run(args []string, g globalCmd) error {
if len(args) != 1 {
return errors.New("an argument (opacity; 0%-100% or 0-255) is required")
}
opacity := toInt(args[0], 255)
g.debug(os.Stderr, "opacity $=arg:q -> $opacity/255\n",
nmfmt.M{
"arg": args[0],
"opacity": opacity,
})
style, _, _ := getWindowLong.Call(uintptr(g.targetHandle), gwlEXStyle)
setWindowLong.Call(uintptr(g.targetHandle), gwlEXStyle, style|wsEXLayered)
setLayeredWindowAttributes.Call(uintptr(g.targetHandle), 0, uintptr(opacity), lwaAlpha)
if opacity == 255 {
setWindowLong.Call(uintptr(g.targetHandle), gwlEXStyle, style&^wsEXLayered)
}
return nil
}