| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // package canvas -- объект холста
- package canvas
- import (
- svg "github.com/ajstarks/svgo"
- "gitp78su.ipnodns.ru/svi/goarch/lev0/alias"
- "gitp78su.ipnodns.ru/svi/goarch/lev1/coord"
- "gitp78su.ipnodns.ru/svi/goarch/lev1/size"
- "gitp78su.ipnodns.ru/svi/kern/v3"
- )
- // Canvas -- объект холста
- type Canvas struct {
- size *size.Size
- pos *coord.Coord
- diaMode string
- }
- var (
- hassert = kern.GetFnHassert()
- )
- // NewCanvas -- возвращает новый холст
- func NewCanvas(diaMode string, size *size.Size, pos *coord.Coord) *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 := int(sf.pos.X_)
- y := int(sf.pos.Y_)
- w := int(sf.size.W_)
- h := int(sf.size.H_)
- 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 -- возвращает размер холста
- func (sf *Canvas) Size() (alias.SizeX, alias.SizeY) {
- w := sf.size.W_
- h := sf.size.H_
- return w, h
- }
|