Clean this up.

Change-Id: If44715c7d88f7494cbb61a7c1b696c0494426c59
These members should be private rather than protected.

Change-Id: I5b50a5dc0b83b2d5017ab749600324338ff0abdc
Use initializer properly and remove Init().

Change-Id: Ic343ff4ddd51a933ba97971d5a1197f5a25ef772
Move the embedded object to the impl class.

Change-Id: I15af9a74fdcc40d65b3f8b394fc69037c017fe76
Head cleanup - use forward declarations.

Change-Id: Icc4fa0acad77d61200eb77cc70e21866590b658e
Move Graphic member to the impl class.

Change-Id: Iee58a6c9b7081a2aa00f6f050574a5827840286b
pGraphicObject -> mpGraphicObject

Change-Id: I8b396ff1018fb54eecd44624a11bc2e405bb7f84
Move "prog name" (whatever it is) to the impl class.

Change-Id: Ifa4f2f2f923d4800cf5fd540631204492ace1936
Move the rest of the members to the impl class.

Change-Id: I80186a617c751420954b27e070559cc8487c7fd9