Having created the iCanvas
interface for immediate mode rendering, we can switch to the user interface implementation. To create a meaningful application, the ability to render static or even animated graphical information is not always enough. An application must react to user input, which for mobiles often means responding to touch screen events. Here, we create a minimalistic graphical user interface consisting of three basic elements called views:
clUIView
: This is a logical container and a base class for other viewsclUIStatic
: This is a static label with a textclUIButton
: This is an object that fires events once it is touched
Each view is a rectangular region, which is capable of rendering itself and reacting to external events such as timing and user touches. Since we are working with the NDK, and at the same time, we want to debug our software on desktop machines, we must redirect events from an OS-specific queue to the C++ event handling code.