| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // package size -- размер области
- package size
- import (
- "gitp78su.ipnodns.ru/svi/goarch/lev0/alias"
- )
- // Size -- размер области
- type Size struct {
- W_ alias.Width `json:"w"` // Высота
- H_ alias.Height `json:"h"` // Ширина
- }
- // NewSize -- возвращает новый размер
- func NewSize(key string, elem map[string]interface{}) *Size {
- var _lstSize []interface{}
- _size0, isOk := elem[key]
- if !isOk {
- _lstSize = []interface{}{400, 300}
- } else {
- fnConvert := func() {
- defer func() {
- if _panic := recover(); _panic != nil {
- _lstSize = []interface{}{400, 300}
- }
- }()
- _lstSize = _size0.([]interface{})
- }
- fnConvert()
- }
- w := alias.Width(400)
- h := alias.Height(300)
- if len(_lstSize) >= 2 {
- switch _lstSize[0].(type) {
- case int:
- w = alias.Width(_lstSize[0].(int))
- h = alias.Height(_lstSize[1].(int))
- case float64:
- fnConvert := func() {
- defer func() {
- if _panic := recover(); _panic != nil {
- w = alias.Width(400)
- h = alias.Height(300)
- }
- }()
- w = alias.Width(int(_lstSize[0].(float64)))
- h = alias.Height(int(_lstSize[1].(float64)))
- }
- fnConvert()
- }
- }
- sf := &Size{
- W_: w,
- H_: h,
- }
- return sf
- }
- // W -- возвращает ширину
- func (sf *Size) W() alias.Width {
- return sf.W_
- }
- // H -- возвращает высоту
- func (sf *Size) H() alias.Height {
- return sf.H_
- }
- // Size -- возвращает размер
- func (sf *Size) Size() (alias.Width, alias.Height) {
- return sf.W_, sf.H_
- }
|