frame.go
func CreateFrame(parent Control, width, height int, bs BorderStyle, scale int) *Frame {
	f := new(Frame)
	f.BaseControl = NewBaseControl()

	if width == AutoSize {
		width = 5
	}
	if height == AutoSize {
		height = 3
	}

	if bs == BorderAuto {
		bs = BorderNone
	}

	f.SetSize(width, height)
	f.SetConstraints(width, height)
	f.border = bs
	f.parent = parent
	f.SetTabStop(false)
	f.scale = scale

	f.gapX, f.gapY = 0, 0
	if bs == BorderNone {
		f.padX, f.padY = 0, 0
	} else {
		f.padX, f.padY = 1, 1
	}

	if parent != nil {
		parent.AddChild(f)
	}

	return f
}
func CreateFrame(parent Control, width, height int, bs BorderStyle, scale int) *Frame {
	f := new(Frame)
	f.BaseControl = NewBaseControl()

	if width == AutoSize {
		width = 5
	}
	if height == AutoSize {
		height = 3
	}

	if bs == BorderAuto {
		bs = BorderNone
	}

	f.SetSize(width, height)
	f.SetConstraints(width, height)
	f.border = bs
	f.parent = parent
	f.SetTabStop(false)
	f.scale = scale

	f.gapX, f.gapY = 0, 0
	if bs == BorderNone {
		f.padX, f.padY = 0, 0
	} else {
		f.padX, f.padY = 1, 1
	}

	if parent != nil {
		parent.AddChild(f)
	}

	return f
}
/*
NewFrame creates a new frame.
view - is a View that manages the control
parent - is container that keeps the control. The same View can be a view and a parent at the same time.
width and heigth - are minimal size of the control.
bs - type of border: no border, single or double.
scale - the way of scaling the control when the parent is resized. Use DoNotScale constant if the
control should keep its original size.
*/