Beispiel #1
0
void DreamGenContext::startloading() {
	const Room *room = (Room *)cs.ptr(bx, sizeof(Room));
	startloading(room);
}
Beispiel #2
0
/*-----------------------------------------------------------------------------------*/
PROCESS_THREAD(directory_process, ev, data)
{
  unsigned char i;

  PROCESS_BEGIN();
  
  width = ctk_draw_width() - 2;
  height = ctk_draw_height() - 2 - CTK_CONF_MENUS;
  
  ctk_window_new(&window, width, height, "Directory");
  
  /*    loaddirectory();*/
  makewindow(0);
  show_statustext("Loading directory...");
  startloading();
  
  ctk_window_open(&window);

  while(1) {
    PROCESS_WAIT_EVENT();
    if(ev == PROCESS_EVENT_CONTINUE) {
      read_dirent();
      load_dirent();
      if(loading != 0) {
	process_post(&directory_process, PROCESS_EVENT_CONTINUE, NULL);
      }
    } else if(ev == ctk_signal_widget_activate) {
      if(data == (process_data_t)&reloadbutton) {
	for(i = 0; dscs[i] != NULL; ++i) {
	  LOADER_UNLOAD_DSC(dscs[i]);
	  dscs[i] = NULL;
	}     
	/*      loaddirectory();*/
	startloading();
	makewindow(0);
	ctk_window_open(&window);
      } else if(data == (process_data_t)&morebutton) {
	makewindow(morestart);
	ctk_window_open(&window);
      } else if(data == (process_data_t)&backbutton) {
	makewindow(0);
	ctk_window_open(&window);
      } else if(data == (process_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 == (process_data_t)(dscs[i]->icon)) {
	    program_handler_load(dscs[i]->prgname, NULL);
	    if(autoexit) {
	      ctk_window_close(&window);
	      quit();
	    }
	    break;
	  }
	}
      }
    } else if(ev == ctk_signal_widget_select) {
      if(data == (process_data_t)&reloadbutton) {
	show_statustext("Reload directory");
      } else if(data == (process_data_t)&morebutton) {
	show_statustext("Show more files");
      } else if(data == (process_data_t)&backbutton) {
	show_statustext("Show first files");
      } else if(data == (process_data_t)&autoexitbutton) {
	show_statustext("Exit when loading program");
      } else {
	for(i = 0; dscs[i] != NULL; ++i) {
	  if(data == (process_data_t)(dscs[i]->icon)) {
	    show_statustext(dscs[i]->description);
	    break;
	  }
	}
      }
    } else if(ev == ctk_signal_window_close &&
	      data == (process_data_t)&window) {
      quit();
    } else if(ev == PROCESS_EVENT_EXIT) {
      ctk_window_close(&window);
      quit();
    }
  }
  PROCESS_END();
}
Beispiel #3
0
/*-----------------------------------------------------------------------------------*/
EK_EVENTHANDLER(directory_eventhandler, ev, data)
{
  unsigned char i;
  EK_EVENTHANDLER_ARGS(ev, data);

  if(ev == EK_EVENT_INIT) {
    ctk_window_new(&window, width, height, "Directory");

    /*    loaddirectory();*/
    makewindow(0);
    show_statustext("Loading directory...");
    startloading();
    
    ctk_window_open(&window);

  } else if(ev == EK_EVENT_CONTINUE) {
    read_dirent();
    load_dirent();
    if(loading != 0) {
      ek_post(id, EK_EVENT_CONTINUE, NULL);
    }
  } else if(ev == ctk_signal_widget_activate) {
    if(data == (ek_data_t)&reloadbutton) {
      for(i = 0; dscs[i] != NULL; ++i) {
	LOADER_UNLOAD_DSC(dscs[i]);
	dscs[i] = NULL;
      }     
      /*      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, NULL);
	  if(autoexit) {
	    ctk_window_close(&window);
	    quit();
	  }
	  break;
	}
      }
    }
  } else if(ev == 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(ev == ctk_signal_window_close &&
	    data == (ek_data_t)&window) {
    quit();
  } else if(ev == EK_EVENT_REQUEST_EXIT) {
    ctk_window_close(&window);
    quit();
  }
}