IButton: Improved callback handling and implemented event states.
Initial loop; update viewports.