Evan
a839fe4655
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
88 lines
1.8 KiB
Go
88 lines
1.8 KiB
Go
//go:build windows
|
|
// +build windows
|
|
|
|
package vvin
|
|
|
|
import (
|
|
"errors"
|
|
"os"
|
|
"unsafe"
|
|
|
|
"github.com/shu-go/nmfmt"
|
|
)
|
|
|
|
type resizeCmd struct {
|
|
Left string `cli:"left,x"`
|
|
Top string `cli:"top,y"`
|
|
Width string `cli:"width,w"`
|
|
Height string `cli:"height,h"`
|
|
|
|
Restore bool `cli:"restore,r"`
|
|
|
|
NoRestorable bool `cli:"norestorable"`
|
|
|
|
rect rect
|
|
}
|
|
|
|
func (c *resizeCmd) Before(g globalCmd) error {
|
|
if c.Left == "" && c.Top == "" && c.Width == "" && c.Height == "" && !c.Restore {
|
|
return errors.New("no options")
|
|
}
|
|
|
|
getWindowRect.Call(uintptr(g.targetHandle), uintptr(unsafe.Pointer(&c.rect)))
|
|
|
|
oldrect := c.rect
|
|
|
|
g.debug(os.Stderr, "$=original\n",
|
|
nmfmt.M{
|
|
"original": oldrect,
|
|
})
|
|
|
|
if c.Left != "" {
|
|
c.rect.Left = toInt(c.Left, g.scrWidth)
|
|
}
|
|
if c.Top != "" {
|
|
c.rect.Top = toInt(c.Top, g.scrHeight)
|
|
}
|
|
if c.Width != "" {
|
|
c.rect.Right = c.rect.Left + toInt(c.Width, g.scrWidth)
|
|
} else {
|
|
c.rect.Right = c.rect.Left + (oldrect.Right - oldrect.Left)
|
|
}
|
|
if c.Height != "" {
|
|
c.rect.Bottom = c.rect.Top + toInt(c.Height, g.scrHeight)
|
|
} else {
|
|
c.rect.Bottom = c.rect.Top + (oldrect.Bottom - oldrect.Top)
|
|
}
|
|
|
|
if c.Restore {
|
|
g.debug(os.Stderr, "restore\n")
|
|
} else {
|
|
g.debug(os.Stderr, "resized $rect\n", nmfmt.M{"rect": c.rect})
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (c resizeCmd) Run(g globalCmd) {
|
|
if c.Restore {
|
|
showWindow.Call(uintptr(g.targetHandle), swRestore)
|
|
return
|
|
}
|
|
|
|
if !c.NoRestorable {
|
|
showWindow.Call(uintptr(g.targetHandle), swHide)
|
|
showWindow.Call(uintptr(g.targetHandle), swMaximize)
|
|
}
|
|
setWindowPos.Call(
|
|
uintptr(g.targetHandle),
|
|
0,
|
|
uintptr(c.rect.Left),
|
|
uintptr(c.rect.Top),
|
|
uintptr(c.rect.Right-c.rect.Left),
|
|
uintptr(c.rect.Bottom-c.rect.Top),
|
|
swpNoActivate|swpNoZOrder)
|
|
if !c.NoRestorable {
|
|
showWindow.Call(uintptr(g.targetHandle), swShowNA)
|
|
}
|
|
}
|