Jim, Here's an code snippet with an example of how to use the GX_EVENT_TIMER and GX_FIRST_APP_EVENT: UINT SplashScreenEventHandler (GX_WINDOW * widget, GX_EVENT * event_ptr) { UINT status; GX_MULTI_LINE_TEXT_VIEW * my_text_view = &splash_screen.splash_screen_text_view; switch (event_ptr- gx_event_type) { case GX_EVENT_SHOW: gx_system_timer_start(widget, TIME_EVENT_TIMER, 20 * 5, 0); return gx_window_event_process(widget, event_ptr); break; case GX_EVENT_TIMER: status = gx_multi_line_text_view_text_set(my_text_view, "Display Logic DL-24SQI-01"); if (GX_SUCCESS != status) { while(1); } break; case GX_FIRST_APP_EVENT: if (Screen_1.gx_widget_name == NULL) gx_studio_named_widget_create("Screen_1", GX_NULL, GX_NULL); show_window(widget, (GX_WINDOW *) &Screen_1); break; default: return gx_window_event_process(widget, event_ptr); } return 0; } /*******************************************************************************************************************//** * @brief Finds the window containing the widget, shows the new window, and hides the old window. * * @param[in] p_new Pointer to the window to show * @param[in] p_widget Pointer to the widget that caused event * * @retval GX_SUCCESS ***********************************************************************************************************************/ static UINT show_window(GX_WINDOW * old_window, GX_WINDOW * new_window) { UINT err = GX_SUCCESS; { err = gx_widget_hide(old_window); err = gx_widget_detach(old_window); if (p_window_root- gx_widget_first_child == GX_NULL) { err = gx_widget_attach(p_window_root, new_window); } err = gx_widget_show(new_window); } return(err); } and how to send an app event to GUIX { GX_EVENT gxe; /** Send event to GUI */ gxe.gx_event_sender = GX_ID_NONE; gxe.gx_event_target = 0; gxe.gx_event_display_handle = 0; gxe.gx_event_type = GX_FIRST_APP_EVENT; gx_system_event_send(&gxe); } The start of App events is defined in gx_api.h as 0x40000000. You can define #s greater than that for your own app events. -Gary
↧