| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // package elem_label -- текстовая метка для отображения
- package elem_label
- import (
- svg "github.com/ajstarks/svgo"
- "gitp78su.ipnodns.ru/svi/kern/v3"
- "gitp78su.ipnodns.ru/svi/goarch/lev0/alias"
- "gitp78su.ipnodns.ru/svi/goarch/lev0/types"
- "gitp78su.ipnodns.ru/svi/goarch/lev1/elem_base"
- )
- // ElemLabel -- текстовая метка для отображения
- type ElemLabel struct {
- types.IElemBase
- Val_ alias.Label `yaml:"val"` // Метка для вывода
- Offset_ types.IOffset `yaml:"offset"` // Смещение метки
- }
- var (
- hassert = kern.GetFnHassert()
- )
- // NewElemLabel -- возвращает новую метку
- func NewElemLabel(label alias.Label, coord types.ICoord, offset types.IOffset) types.IElemLabel {
- sf := &ElemLabel{
- IElemBase: elem_base.NewElemBase(coord, "elem_label"),
- Val_: label,
- Offset_: offset,
- }
- sf.SelfCheck()
- return sf
- }
- // Draw -- отрисовка метки
- func (sf *ElemLabel) Draw(canvas *svg.SVG) {
- strLabel := sf.String()
- if strLabel != "" {
- x, y := sf.Offset_.Int()
- offX := int(sf.Offset_.X())
- canvas.Text(x+offX, y-8, strLabel,
- "font-size: 14px; font-family: Courier; fill: black")
- }
- }
- // SelfCheck -- самопроверка типа
- func (sf *ElemLabel) SelfCheck() {
- sf.IElemBase.SelfCheck()
- hassert(sf.Offset_ != nil, "SelfCheck(): Offset_ is nil")
- }
- // String -- возвращает метку
- //
- //go:fix inline
- func (sf *ElemLabel) String() string {
- return string(sf.Val_)
- }
- // Get -- возвращает метку
- //
- //go:fix inline
- func (sf *ElemLabel) Get() alias.Label {
- return sf.Val_
- }
- // Offset -- возвращает смещение метки
- //
- //go:fix inline
- func (sf *ElemLabel) Offset() types.IOffset {
- return sf.Offset_
- }
|