Finished the code that allows extruding a face of an extrude or of another complex shape that has more than one face. Implemented this feature by adding a SubShape function that refers to the original shape knowing which face it points to. The extrude is applied on this SubShape. It works well on many difficult situations but there are still some cases when it crashes.
Reviewed, converted to clicks and fixed the manipulation tools like global panning, dynamic panning, global zooming, dynamic zooming, dynamic rotation, left, right, top, bottom, front back.
Will continue with stabilizing and improving the existing code on Extrude. Also noticed that sometimes the Extrude is not disabled when another tool is selected, this needs to be fixed.