vvin/cmd_alpha.go

35 lines
704 B
Go
Raw Normal View History

2023-10-17 00:00:50 -04:00
//go:build windows
// +build windows
2023-10-16 09:51:11 -04:00
package vvin
2019-11-09 22:56:05 -05:00
2019-11-17 23:45:12 -05:00
import (
"errors"
"github.com/shu-go/rog"
)
2019-11-09 22:56:05 -05:00
type alphaCmd struct {
}
func (c alphaCmd) Run(args []string, g globalCmd) error {
if len(args) != 1 {
return errors.New("an argument is required")
}
alpha := toInt(args[0], 255)
2019-11-17 23:45:12 -05:00
if g.Debug {
rog.Printf("alpha = %v -> %v", args[0], alpha)
}
2019-11-09 22:56:05 -05:00
2019-11-18 04:42:38 -05:00
style, _, _ := getWindowLong.Call(uintptr(g.targetHandle), gwlEXStyle)
setWindowLong.Call(uintptr(g.targetHandle), gwlEXStyle, style|wsEXLayered)
2019-11-09 22:56:05 -05:00
2019-11-18 04:42:38 -05:00
setLayeredWindowAttributes.Call(uintptr(g.targetHandle), 0, uintptr(alpha), lwaAlpha)
2019-11-09 22:56:05 -05:00
if alpha == 255 {
2019-11-18 04:42:38 -05:00
setWindowLong.Call(uintptr(g.targetHandle), gwlEXStyle, style&^wsEXLayered)
2019-11-09 22:56:05 -05:00
}
return nil
}