Procházet zdrojové kódy

Добавление иоляции внешней библиотеки

SVI před 3 roky
rodič
revize
de20c4889d

+ 3 - 3
libtui/v0/lib/screen/screen.go

@@ -73,7 +73,7 @@ func (sf *Screen) Run() {
 		case *tcell.EventResize:
 			sf.scr.Sync()
 			x, y := ev.Size()
-			sf.size.Set(alias.SizeX(x), alias.SizeY(y))
+			sf.resize(alias.SizeX(x), alias.SizeY(y))
 		case *tcell.EventKey:
 			if ev.Key() == tcell.KeyCtrlQ { // ev.Key() == tcell.KeyEscape
 				return
@@ -113,8 +113,8 @@ func (sf *Screen) Size() (alias.SizeX, alias.SizeY) {
 // 	return sf.winDebug
 // }
 
-// Resize -- изменяет размер экрана
-func (sf *Screen) Resize(x alias.SizeX, y alias.SizeY) {
+// resize -- изменяет размер экрана
+func (sf *Screen) resize(x alias.SizeX, y alias.SizeY) {
 	sf.size.Set(x, y)
 }
 

+ 45 - 0
libtui/v0/lib/screen_hard/screen_hard.go

@@ -0,0 +1,45 @@
+// package screen_hard -- аппаратный экран
+package screen_hard
+
+import (
+	"fmt"
+
+	"github.com/gdamore/tcell"
+
+	"p78git.ddns.net/svi/libtui/types"
+)
+
+// SigResize -- сигнал ресайза для аппаратного экрана
+type SigResize struct {
+}
+
+// ScreenHard -- аппаратный экран
+type ScreenHard struct {
+	scr tcell.Screen // Библиотечный экран
+}
+
+// NewScreenHard -- аппаратный экран
+func NewScreenHard() (*ScreenHard, error) {
+	sf := &ScreenHard{}
+	var err error
+	sf.scr, err = tcell.NewScreen()
+	if err != nil {
+		return nil, fmt.Errorf("NewScreen(): in create tcell.Screen, err=\n\t%w", err)
+	}
+	return sf, nil
+}
+
+// Run -- запскает в работу аппаратный экран
+func (sf *ScreenHard) Run() {
+	sf.scr.EnableMouse()
+	sf.scr.HideCursor()
+	sf.scr.Clear()
+}
+
+// SetCell -- устанавливает ячейку на экран
+func (sf *ScreenHard) SetCell(cell types.ICell) {
+	x, y := cell.Pos()
+	style := cell.Style()
+	lit := cell.Lit()
+	sf.scr.SetCell(int(x), int(y), tcell.Style(style), rune(lit))
+}

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

@@ -8,8 +8,6 @@ import (
 type IScreen interface {
 	// Size -- возвращает размер экрана
 	Size() (alias.SizeX, alias.SizeY)
-	// Resize -- изменить размеры экрана
-	Resize(alias.SizeX, alias.SizeY)
 	// SetCell -- отрисовывает знакоместо на экране
 	SetCell(ICell)
 	// DrawText -- отображает текст в заданной позиции