func CreateTableView(parent Control, width, height int, scale int) *TableView {
	l := new(TableView)
	l.BaseControl = NewBaseControl()

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

	l.SetSize(width, height)
	l.SetConstraints(width, height)
	l.selectedCol = 0
	l.selectedRow = 0
	l.parent = parent
	l.columns = make([]Column, 0)
	l.SetScale(scale)

	l.SetTabStop(true)

	l.onDrawCell = nil
	l.onAction = nil
	l.onKeyPress = nil
	l.onSelectCell = nil
	l.lastEventCol = -1
	l.lastEventRow = -1

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

	return l
}
func CreateTableView(parent Control, width, height int, scale int) *TableView {
	l := new(TableView)
	l.BaseControl = NewBaseControl()

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

	l.SetSize(width, height)
	l.SetConstraints(width, height)
	l.selectedCol = 0
	l.selectedRow = 0
	l.parent = parent
	l.columns = make([]Column, 0)
	l.SetScale(scale)

	l.SetTabStop(true)

	l.onDrawCell = nil
	l.onAction = nil
	l.onKeyPress = nil
	l.onSelectCell = nil
	l.lastEventCol = -1
	l.lastEventRow = -1

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

	return l
}
/*
NewTableView 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 height - are minimal size of the control.
scale - the way of scaling the control when the parent is resized. Use DoNotScale constant if the
control should keep its original size.
*/