// package view_size -- размер области package view_size import ( "fmt" "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/view_node" ) // ViewSize -- размер области type ViewSize struct { *view_node.ViewNode W_ alias.SizeX H_ alias.SizeY } var ( hassert = kern.GetFnHassert() ) // NewViewSize -- возвращает новый размер func NewViewSize(w alias.SizeX, h alias.SizeY) *ViewSize { sf := &ViewSize{ W_: w, H_: h, } sf.SelfCheck() _ = types.IViewSize(sf) return sf } // SelfCheck -- проверяет корректность размера func (sf *ViewSize) SelfCheck() { hassert(sf.H_ >= 0, "Size.SelfCheck(): H_(%v)<0", sf.H_) hassert(sf.W_ >= 0, "Size.SelfCheck(): W_(%v)<0", sf.W_) } // String -- возвращает строковое представление размера func (sf *ViewSize) String() string { return fmt.Sprintf("size:%vx%v", sf.W_, sf.H_) } // W -- возвращает ширину func (sf *ViewSize) W() alias.SizeX { return sf.W_ } // H -- возвращает высоту func (sf *ViewSize) H() alias.SizeY { return sf.H_ } // Get -- возвращает размер func (sf *ViewSize) Get() (alias.SizeX, alias.SizeY) { return sf.W_, sf.H_ } // Int -- возвращает размер func (sf *ViewSize) Int() (int, int) { return int(sf.W_), int(sf.H_) }