Add CMake build file
Add virtual destructor to remove warnings
Rename PreDelete in Canvas to PreDeleteControl to remove override warning