//***************************************************************************** // //! Sends a pointer message. //! //! \param ulMessage is the pointer message to be sent. //! \param lX is the X coordinate associated with the message. //! \param lY is the Y coordinate associated with the message. //! //! This function sends a pointer message to the root widget. A pointer driver //! (such as a touch screen driver) can use this function to deliver pointer //! activity to the widget tree without having to have direct knowledge of the //! structure of the widget framework. //! //! \return Returns 1 if the message was added to the queue, and 0 if it could //! not be added since the queue is full. // //***************************************************************************** int WidgetPointerMessage(unsigned ulMessage, unsigned lX, unsigned lY) { // // Add the message to the widget message queue. // return(WidgetMessageQueueAdd(WIDGET_ROOT, ulMessage, lX, lY, 1, 1)); }
static void DisplayGR(void) { tRectangle sRect; // Fill the top 24 rows of the screen with blue to create the banner. sRect.sXMin = 0; sRect.sYMin = 0; sRect.sXMax = GrContextDpyWidthGet(&sContext) - 1; sRect.sYMax = 23; GrContextForegroundSet(&sContext, ClrDarkBlue); GrRectFill(&sContext, &sRect); // Put a white box around the banner. GrContextForegroundSet(&sContext, ClrWhite); GrRectDraw(&sContext, &sRect); // Put the application name in the middle of the banner. GrContextFontSet(&sContext, &g_sFontCm20); GrStringDrawCentered(&sContext, "grlib demo", -1, GrContextDpyWidthGet(&sContext) / 2, 8, 0); GrStringDrawCentered(&sContext, "Touch here to proceed ", -1, GrContextDpyWidthGet(&sContext) / 2, 140, 0); // Initialize the sound driver. // Add the title block and the previous and next buttons to the widget tree. WidgetAdd(WIDGET_ROOT, (tWidget *)&g_sPrevious); WidgetAdd(WIDGET_ROOT, (tWidget *)&g_sTitle); WidgetAdd(WIDGET_ROOT, (tWidget *)&g_sNext); // Add the first panel to the widget tree. g_ulPanel = 0; WidgetAdd(WIDGET_ROOT, (tWidget *)g_psPanels); CanvasTextSet(&g_sTitle, g_pcPanelNames[0]); // Issue the initial paint request to the widgets. //WidgetPaint(WIDGET_ROOT); WidgetMessageQueueAdd(WIDGET_ROOT, WIDGET_MSG_PAINT, 0, 0, 0, 0); }
//***************************************************************************** // // Sends a button press message to whichever widget has the button focus. // //***************************************************************************** static void SendWidgetKeyMessage(uint32_t ui32Msg) { WidgetMessageQueueAdd(WIDGET_ROOT, ui32Msg, g_ui32KeyFocusWidgetHandle, 0, 1, 1); }
//***************************************************************************** // // Sends a button/key press message to the slide menu widget that is showing // files. // //***************************************************************************** static void SendWidgetKeyMessage(uint32_t ui32Msg) { WidgetMessageQueueAdd(WIDGET_ROOT, ui32Msg, (uint32_t)&g_sFileMenuWidget, 0, 1, 1); }