home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 52 / af052sub.adf / lyr-o-mat.lha / Lyr-O-Mat / Source / Source.lha / words_main.c < prev    next >
C/C++ Source or Header  |  1993-04-23  |  3KB  |  103 lines

  1.  
  2. #include "words.h"
  3.  
  4. struct WordsInfo winfo;
  5. ULONG NumGen = 1;
  6. struct ed    edit;
  7. long __OSlibversion = 37;
  8.  
  9. /* ------------------------------------------------------------------- */
  10. /*      for cback.o startup */
  11. /* ------------------------------------------------------------------- */
  12.  
  13. long                      __stack        = 8192;
  14. char                      *__procname    = "*Lyr-O-Mat V1.1*";
  15. long                      __priority      = 0L;
  16. long                      __BackGroundIO = 0;
  17. extern BPTR               _Backstdout;
  18.  
  19. /* ----------------------------------------------------------------- */
  20.  
  21.  
  22. void __stdargs main(int argc,union  wbstart argv)
  23. {
  24.  int end = FALSE;
  25.  time(&RangeSeed);
  26.  if(!SetupScreen())
  27.  {
  28.   if(!OpenProject0Window())
  29.   {
  30.    NewList(&winfo.pattern);
  31.    NewList(&winfo.class);
  32.    edit.pattern = 0;
  33.    edit.class   = 0;
  34.    edit.word    = 0; 
  35.    edit.l_p = 1;
  36.    edit.l_c = 1;
  37.    edit.writeicon = 1;
  38.    edit.pmode     = 1;
  39.    strcpy(winfo.outfilename,OUTFILENAME);
  40.    strcpy(winfo.d_dir,"s:");
  41.    strcpy(winfo.d_name,"Lyr-O-Mat_config.wds");
  42.    loadAll(MODE_LOADCONFIG,"Loading configfile...");
  43.    LoadApp(argc,argv);
  44.    winfo.outfile = fopen(winfo.outfilename,"w");
  45.    strcpy(winfo.l_dir,"");
  46.    strcpy(winfo.l_name,"unnamed.wds");
  47.    strcpy(winfo.s_dir,"");
  48.    strcpy(winfo.s_name,"unnamed.wds");
  49.    strcpy(winfo.d_dir,"");
  50.    strcpy(winfo.d_name,"unnamed.wds");
  51.    while(!end)
  52.    {
  53.     WaitPort(Project0Wnd->UserPort);
  54.     end = !HandleProject0IDCMP();
  55.    }
  56.    if(winfo.outfile) fclose(winfo.outfile);
  57.    if(winfo.printfile)fclose(winfo.printfile);
  58.    delAll();
  59.    CloseProject0Window();    
  60.   }
  61.   CloseDownScreen();
  62.  } 
  63.  exit(0);
  64. }
  65.  
  66. void LoadApp(int argc,union wbstart argv)
  67. {
  68.  struct DiskObject *dobj;
  69.  UBYTE             *tool;
  70.  long i;
  71.  if(!argc)
  72.  {
  73.   if(argv.msg)
  74.   {
  75.    if(argv.msg->sm_NumArgs > 1)
  76.    {
  77.     for(i = 1; i < argv.msg->sm_NumArgs;i++)
  78.     {
  79.      NameFromLock(argv.msg->sm_ArgList[i].wa_Lock,winfo.d_dir,256);
  80.      strcpy(winfo.d_name,argv.msg->sm_ArgList[i].wa_Name);
  81.      loadAll(MODE_LOADCONFIG,"Loading Application...");
  82.     }
  83.    }
  84.   }
  85.  }
  86.  if(dobj = GetDiskObject(argv.msg->sm_ArgList->wa_Name))
  87.  {
  88.   long left   = 0L;
  89.   long top    = 50L;
  90.   long width  = 320L;
  91.   long height = 150L;
  92.   if(tool = FindToolType(dobj->do_ToolTypes,"LEFTEDGE"))left   = atol(tool);
  93.   if(tool = FindToolType(dobj->do_ToolTypes,"TOPEDGE")) top    = atol(tool);
  94.   if(tool = FindToolType(dobj->do_ToolTypes,"WIDTH"))   width  = atol(tool);
  95.   if(tool = FindToolType(dobj->do_ToolTypes,"HEIGHT"))  height = atol(tool);
  96.   left   = (left < 0) ? 0 : (left > Scr->Width ) ? Scr->Width  : left; 
  97.   top    = (top  < 0) ? 0 : (top  > Scr->Height) ? Scr->Height : top;
  98.   width  = (width  > (Scr->Width  - left)) ? Scr->Width  - left : width;
  99.   height = (height > (Scr->Height - top))  ? Scr->Height - top  : height;
  100.   sprintf(winfo.outfilename,"con:%ld/%ld/%ld/%ld/" LYR_NAME "/INACTIVE",left,top,width,height);
  101.  }
  102. }
  103.