| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // 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
- }
|