Răsfoiți Sursa

Добавление типа экрана; 100%

SVI 3 ani în urmă
părinte
comite
b2cb522a3f
3 a modificat fișierele cu 66 adăugiri și 2 ștergeri
  1. 19 2
      libtui/v0/screen/screen.go
  2. 38 0
      libtui/v0/screen/screen_test.go
  3. 9 0
      libtui/v0/types/iscreen.go

+ 19 - 2
libtui/v0/screen/screen.go

@@ -1,9 +1,26 @@
 // package screen -- объект экрана
 package screen
 
-import "p78git.ddns.net/svi/libtui/types"
+import (
+	"p78git.ddns.net/svi/libtui/alias"
+	"p78git.ddns.net/svi/libtui/size"
+	"p78git.ddns.net/svi/libtui/types"
+)
 
 // Screen -- объект экрана
 type Screen struct {
-	size types.ISize
+	size types.ISize // Размер экрана
+}
+
+// NewScreen -- возвращаетновый экран
+func NewScreen() *Screen {
+	sf := &Screen{
+		size: size.NewSize(),
+	}
+	return sf
+}
+
+// Size -- возвращает размер экрана
+func (sf *Screen) Size() (alias.SizeX, alias.SizeY) {
+	return sf.size.Get()
 }

+ 38 - 0
libtui/v0/screen/screen_test.go

@@ -0,0 +1,38 @@
+package screen
+
+import (
+	"testing"
+
+	"p78git.ddns.net/svi/libtui/types"
+)
+
+// Тестер для экрана
+type tester struct {
+	t    *testing.T
+	scr  *Screen
+	iscr types.IScreen
+}
+
+func TestScreen(t *testing.T) {
+	test := &tester{
+		t: t,
+	}
+	test.create()
+}
+
+// Создание экрана
+func (sf *tester) create() {
+	sf.t.Logf("create")
+	sf.scr = NewScreen()
+	if sf.scr == nil {
+		sf.t.Fatalf("create(): screen=nil")
+	}
+	sf.iscr = sf.scr
+	sizeX, sizeY := sf.iscr.Size()
+	if sizeX != 0 {
+		sf.t.Fatalf("create(): sizeX(%v)!=0", sizeX)
+	}
+	if sizeY != 0 {
+		sf.t.Fatalf("create(): sizeY(%v)!=0", sizeY)
+	}
+}

+ 9 - 0
libtui/v0/types/iscreen.go

@@ -0,0 +1,9 @@
+package types
+
+import "p78git.ddns.net/svi/libtui/alias"
+
+// IScreen -- экран приложения
+type IScreen interface {
+	// Size -- возвращает размер экрана
+	Size() (alias.SizeX, alias.SizeY)
+}