change the parameter order of UiCurve::change()
add some virtual methods to uielement