aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd/util.go
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2023-03-10 00:20:47 +0900
committernsfisis <nsfisis@gmail.com>2023-03-10 00:20:47 +0900
commitbf5a7df4608a0cdf5b1c145fcf2002560f3ecf44 (patch)
tree7fdb6a4782ffd8a748316b2b6f322459cd8005c0 /cmd/util.go
parent67c1fcf7467e59edea1d50358dc35bb5dcde3224 (diff)
downloadterm-clock-bf5a7df4608a0cdf5b1c145fcf2002560f3ecf44.tar.gz
term-clock-bf5a7df4608a0cdf5b1c145fcf2002560f3ecf44.tar.zst
term-clock-bf5a7df4608a0cdf5b1c145fcf2002560f3ecf44.zip
refactor: move common snippet to util.go
Diffstat (limited to 'cmd/util.go')
-rw-r--r--cmd/util.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/cmd/util.go b/cmd/util.go
new file mode 100644
index 0000000..93199da
--- /dev/null
+++ b/cmd/util.go
@@ -0,0 +1,29 @@
+package cmd
+
+import (
+ "github.com/nsfisis/term-clock/internal/term"
+)
+
+func calcSquareSize(scr *term.Screen) (int, int, int, int) {
+ // Calculate square width/height and offset.
+ scrW, scrH := scr.Size()
+ // 17
+ // <--------------->
+ // ### ### ### ### ^
+ // # # # # # # # # # |
+ // # # # # # # # # | 5
+ // # # # # # # # # # |
+ // ### ### ### ### v
+ squareW := scrW / (17 + 2)
+ squareH := scrH / (5 + 2)
+ if squareH > squareW {
+ squareH = squareW
+ }
+ if squareW > squareH*3/2 {
+ squareW = squareH * 3 / 2
+ }
+ xOffset := (scrW - squareW*17) / 2
+ yOffset := (scrH - squareH*5) / 2
+
+ return squareW, squareH, xOffset, yOffset
+}