update for lay out 

1.update lay out reader and samples
2.update for widget percent position and size logic
3.update lay out reader and samples
Why these getter and setter functions should be virtual function?