dscs[i] = NULL;
DISPATCHER_SIGHANDLER(directory_sighandler, s, data){  unsigned char i;  DISPATCHER_SIGHANDLER_ARGS(s, data);    if(s == ctk_signal_widget_activate) {    if(data == (ek_data_t)&reloadbutton) {      for(i = 0; dscs[i] != NULL; ++i) {	LOADER_UNLOAD_DSC(dscs[i]);      }           /*      loaddirectory();*/      startloading();      makewindow(0);      ctk_window_open(&window);    } else if(data == (ek_data_t)&morebutton) {      makewindow(morestart);      ctk_window_open(&window);    } else if(data == (ek_data_t)&backbutton) {      makewindow(0);      ctk_window_open(&window);    } else if(data == (ek_data_t)&autoexitbutton) {      autoexit = 1 - autoexit;      if(autoexit == 1) {	ctk_label_set_text(&autoexitlabel, autoexiton);      } else {	ctk_label_set_text(&autoexitlabel, autoexitoff);      }      CTK_WIDGET_REDRAW(&autoexitlabel);    } else {      for(i = 0; dscs[i] != NULL; ++i) {	if(data == (ek_data_t)(dscs[i]->icon)) {	  program_handler_load(dscs[i]->prgname);	  if(autoexit) {	    ctk_window_close(&window);	    quit();	  }	  break;	}      }    }  } else if(s == ctk_signal_widget_select) {    if(data == (ek_data_t)&reloadbutton) {      show_statustext("Reload directory");    } else if(data == (ek_data_t)&morebutton) {      show_statustext("Show more files");    } else if(data == (ek_data_t)&backbutton) {      show_statustext("Show first files");    } else if(data == (ek_data_t)&autoexitbutton) {      show_statustext("Exit when loading program");    } else {      for(i = 0; dscs[i] != NULL; ++i) {	if(data == (ek_data_t)(dscs[i]->icon)) {	  show_statustext(dscs[i]->description);	  break;	}      }    }  } else if(s == ctk_signal_window_close &&	    data == (ek_data_t)&window) {    quit();  } else if(s == dispatcher_signal_quit) {    ctk_window_close(&window);    quit();  }}