// package canvas -- объект холста package canvas import ( svg "github.com/ajstarks/svgo" "gitp78su.ipnodns.ru/svi/kern/v3" "gitp78su.ipnodns.ru/svi/goarch/lev0/types" ) // Canvas -- объект холста type Canvas struct { size types.IViewSize pos types.IViewCoord diaMode string } var ( hassert = kern.GetFnHassert() ) // NewCanvas -- возвращает новый холст func NewCanvas(diaMode string, size types.IViewSize, pos types.IViewCoord) *Canvas { hassert(diaMode != "", "NewCanvas(): diaMode is empty") hassert(size != nil, "NewCanvas(): size is nil") hassert(pos != nil, "NewCanvas(): pos is nil") sf := &Canvas{ size: size, pos: pos, diaMode: diaMode, } return sf } // Draw -- рисует холст func (sf *Canvas) Draw(canvas *svg.SVG) { x,y := sf.pos.Int() w,h := sf.size.Int() canvas.Rect(0, 0, w, h, "fill:white;stroke:red;stroke-width:1") canvas.Text(x, y+2, "АРХИТЕКТУРНОЕ РЕШЕНИЕ", "font-size: 20px; font-family: sans-serif; fill: black") canvas.Text(x+15, y+20, sf.diaMode, "font-size: 14px; font-family: sans-serif; fill: black") } // Size -- возвращает размер холста // //go:fix inline func (sf *Canvas) Size()types.IViewSize { return sf.size }