/*---------------------------------------------------------------------------*/ static void ctkmode(void) { ctk_mode_set(CTK_MODE_NORMAL); ctk_draw_init(); ctk_desktop_redraw(NULL); }
/*-----------------------------------------------------------------------------------*/ void unload(void) { #if WITH_GUI ctk_draw_init(); #endif /* WITH_GUI */ exit(EXIT_SUCCESS); }
/*-----------------------------------------------------------------------------------*/ LOADER_INIT_FUNC(themeloader_init, arg) { arg_free(arg); memcpy(ctk_hires_theme_ptr, &ctk_hires_theme, sizeof(struct ctk_hires_theme)); ctk_draw_init(); LOADER_UNLOAD(); }
/*-----------------------------------------------------------------------------------*/ EK_EVENTHANDLER(ssfire_eventhandler, ev, data) { EK_EVENTHANDLER_ARGS(ev, data); if(ev == EK_EVENT_INIT) { ctk_mode_set(CTK_MODE_SCREENSAVER); ctk_mouse_hide(); fire_init(); } else if(ev == ctk_signal_screensaver_stop || ev == EK_EVENT_REQUEST_EXIT) { fire_quit(); ctk_draw_init(); ctk_desktop_redraw(NULL); } }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(ssfire_process, ev, data) { PROCESS_POLLHANDLER(pollhandler()); PROCESS_BEGIN(); ctk_mode_set(CTK_MODE_SCREENSAVER); ctk_mouse_hide(); fire_init(); PROCESS_WAIT_EVENT_UNTIL(ev == ctk_signal_screensaver_stop || ev == PROCESS_EVENT_EXIT); ctk_draw_init(); ctk_desktop_redraw(NULL); PROCESS_END(); }
/*-----------------------------------------------------------------------------------*/ PROCESS_THREAD(program_handler_process, ev, data) { #ifdef WITH_LOADER_ARCH unsigned char err; struct dsc *dsc; #endif /* WITH_LOADER_ARCH */ unsigned char i; struct dsc **dscp; PROCESS_BEGIN(); /* Create the menus */ ctk_menu_add(&contikimenu); #if WITH_LOADER_ARCH runmenuitem = ctk_menuitem_add(&contikimenu, "Run program..."); make_windows(); #endif /* WITH_LOADER_ARCH */ #if QUIT_MENU quitmenuitem = ctk_menuitem_add(&contikimenu, "Quit"); #endif /* QUIT_MENU */ displayname = NULL; #if CTK_CONF_SCREENSAVER program_handler_screensaver[0] = 0; #endif /* CTK_CONF_SCREENSAVER */ while(1) { PROCESS_WAIT_EVENT(); if(ev == ctk_signal_button_activate) { #ifdef WITH_LOADER_ARCH if(data == (process_data_t)&loadbutton) { ctk_window_close(&runwindow); program_handler_load(name, NULL); } else if(data == (process_data_t)&errorokbutton) { ctk_dialog_close(); } #endif /* WITH_LOADER_ARCH */ #if QUIT_MENU if(data == (process_data_t)&quityesbutton) { ctk_draw_init(); exit(EXIT_SUCCESS); } else if(data == (process_data_t)&quitnobutton) { ctk_dialog_close(); } #endif /* QUIT_MENU */ dscp = &contikidsc[0]; for(i = 0; i < CTK_MAXMENUITEMS; ++i) { if(*dscp != NULL #if CTK_CONF_ICONS && data == (process_data_t)(*dscp)->icon #endif /* CTK_CONF_ICONS */ ) { RUN((*dscp)->prgname, (*dscp)->process, NULL); break; } ++dscp; } } else if(ev == ctk_signal_menu_activate) { if((struct ctk_menu *)data == &contikimenu) { #if WITH_LOADER_ARCH dsc = contikidsc[contikimenu.active]; if(dsc != NULL) { RUN(dsc->prgname, dsc->process, NULL); } else if(contikimenu.active == runmenuitem) { make_windows(); ctk_window_close(&runwindow); ctk_window_open(&runwindow); CTK_WIDGET_FOCUS(&runwindow, &nameentry); } #else /* WITH_LOADER_ARCH */ if(contikidsc[contikimenu.active] != NULL) { RUN(contikidsc[contikimenu.active]->prgname, contikidsc[contikimenu.active]->process, NULL); } #endif /* WITH_LOADER_ARCH */ #if QUIT_MENU if(contikimenu.active == quitmenuitem) { ctk_dialog_new(&quitdialog, 24, 5); CTK_WIDGET_ADD(&quitdialog, &quitdialoglabel); CTK_WIDGET_ADD(&quitdialog, &quityesbutton); CTK_WIDGET_ADD(&quitdialog, &quitnobutton); CTK_WIDGET_FOCUS(&quitdialog, &quitnobutton); ctk_dialog_open(&quitdialog); } #endif /* QUIT_MENU */ } #if CTK_CONF_SCREENSAVER } else if(ev == ctk_signal_screensaver_start) { #if WITH_LOADER_ARCH if(program_handler_screensaver[0] != 0) { program_handler_load(program_handler_screensaver, NULL); } #endif /* WITH_LOADER_ARCH */ #endif /* CTK_CONF_SCREENSAVER */ } else if(ev == LOADER_EVENT_DISPLAY_NAME) { #if WITH_LOADER_ARCH if(displayname == NULL) { make_windows(); ctk_label_set_text(&loadingname, ((struct pnarg *)data)->name); ctk_dialog_open(&loadingdialog); process_post(&program_handler_process, LOADER_EVENT_LOAD, data); displayname = data; } else { /* Try again. */ process_post(&program_handler_process, LOADER_EVENT_DISPLAY_NAME, data); } #endif /* WITH_LOADER_ARCH */ } else if(ev == LOADER_EVENT_LOAD) { #if WITH_LOADER_ARCH if(displayname == data) { ctk_dialog_close(); displayname = NULL; log_message("Loading ", ((struct pnarg *)data)->name); err = LOADER_LOAD(((struct pnarg *)data)->name, ((struct pnarg *)data)->arg); if(err != LOADER_OK) { make_windows(); errorfilename[0] = '"'; strncpy(errorfilename + 1, ((struct pnarg *)data)->name, sizeof(errorfilename) - 2); errorfilename[1 + strlen(((struct pnarg *)data)->name)] = '"'; ctk_label_set_text(&errortype, (char *)errormsgs[err]); ctk_dialog_open(&errordialog); log_message((char *)errormsgs[err], errorfilename); } pnarg_free(data); } else { /* Try again. */ process_post(&program_handler_process, LOADER_EVENT_DISPLAY_NAME, data); } #endif /* WITH_LOADEER_ARCH */ } } PROCESS_END(); }