home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / monitors / rsys / rsyssrc.lha / RSysMain.c < prev    next >
C/C++ Source or Header  |  1993-09-24  |  5KB  |  192 lines

  1. /*
  2. ***************************************************************************
  3. *
  4. * Datei:
  5. *      RSysMain.c
  6. *
  7. * Inhalt:
  8. *
  9. *      --- Globale Routinen ---
  10. *
  11. *    void _icon_parse ( char *progname );
  12. *    void _main ( long alen , char *aptr );
  13. *    void _wb_parse ( void );
  14. *
  15. *      --- Lokale  Routinen ---
  16. *
  17. *
  18. * Bemerkungen:
  19. *      Startup-Routinen von RSys; ruft das Hauptprogramm auf.
  20. *
  21. * Erstellungsdatum:
  22. *      07-Jul-93     Rolf Böhme
  23. *
  24. * Änderungen:
  25. *      07-Jul-93     Rolf Böhme      Erstellung
  26. *
  27. ***************************************************************************
  28. */
  29.  
  30. #include "RSys.h"
  31.  
  32. extern int Enable_Abort;
  33.  
  34. extern int _argc;
  35. extern char **_argv;
  36. extern struct WBStartup *WBenchMsg;
  37.  
  38. void    _cli_parse(struct Process *pp, long alen, char *aptr);
  39.  
  40. extern char _dir[], _file[];
  41.  
  42. void
  43. _wb_parse(void)
  44. {
  45.     return;
  46. };
  47.  
  48. static struct DiskObject *dop;
  49.  
  50. static char *
  51. ToolType(char *type)
  52. {
  53.    return (char *)FindToolType((UBYTE **) dop->do_ToolTypes,(UBYTE *) (type));
  54. }
  55.  
  56. void
  57. _icon_parse(char *progname)
  58. {
  59.     register char *cp;
  60.  
  61.     if (IconBase = OpenLibrary((UBYTE *) "icon.library", 0L))
  62.     {
  63.         if (dop = GetDiskObject((UBYTE *) progname))
  64.         {
  65.             if (cp = ToolType("CX_HOTKEY")) strcpy(&hotkey[0][0], cp);
  66.             if (cp = ToolType("CX_CRYPT")) strcpy(&hotkey[1][0], cp);
  67.             if (cp = ToolType("CX_FINDFILE")) strcpy(&hotkey[2][0], cp);
  68.             if (cp = ToolType("CX_FORMAT")) strcpy(&hotkey[3][0], cp);
  69.             if (cp = ToolType("CX_HUNKLIST")) strcpy(&hotkey[4][0], cp);
  70.             if (cp = ToolType("CX_CRC")) strcpy(&hotkey[5][0], cp);
  71.             if (cp = ToolType("CX_SAVEWINDOW")) strcpy(&hotkey[6][0], cp);
  72.             if (cp = ToolType("CX_FILEREQUEST")) strcpy(&hotkey[7][0], cp);
  73.             if (cp = ToolType("NOFASTMODE")) Flags.fastmode = 0;
  74.             if (cp = ToolType("NOSORT")) Flags.sortmode = 0;
  75.             if (cp = ToolType("WORKINGBAR")) Flags.workingbar = 1;
  76.            if (cp = ToolType("AUTOFRONT")) Flags.autofront = 1;
  77.             if (cp = ToolType("MOUSEWINDOW")) Flags.mousewindow = 1;
  78.             if (cp = ToolType("TOPAZFONT")) Flags.sysfont = 1;
  79.             if (cp = ToolType("NOSAVEASKING")) Flags.saveasking = 0;
  80.             if (cp = ToolType("TEXTFORMATTER")) Flags.textformat = 1;
  81.             if (cp = ToolType("NOAPPICON")) Flags.appicon = 0;
  82.             if (cp = ToolType("BACKPATTERNCOL")) bpc = atoi(cp);
  83.             if (cp = ToolType("BACKGROUNDCOL")) bgc = atoi(cp);
  84.             if (cp = ToolType("BACKPATTERN")) bpp = ahtoi(cp);
  85.             if (cp = ToolType("DETAILPEN")) winddetail = atoi(cp);
  86.             if (cp = ToolType("BLOCKPEN")) windblock = atoi(cp);
  87.             if (cp = ToolType("MENUPEN")) menudetail = atoi(cp);
  88.             if (cp = ToolType("HARDWAREDATA")) strcpy((char *)RSysFiles.Hardware, cp);
  89.             if (cp = ToolType("LIBOFFDATA")) strcpy((char *)RSysFiles.LibOffsets, cp);
  90.             if (cp = ToolType("AGUIDEDOC")) strcpy((char *)RSysFiles.Guide, cp);
  91.             if (cp = ToolType("AGUIDECONTEXT")) strcpy((char *)RSysFiles.GuideContext, cp);
  92.             if (cp = ToolType("ACTIONFILE")) strcpy((char *)RSysFiles.ActionFile, cp);
  93.             if (cp = ToolType("ICONX")) iconx = atoi(cp);
  94.             if (cp = ToolType("ICONY")) icony = atoi(cp);
  95.  
  96.             if (cp = ToolType("OUTWINDOW")) strcpy((char *)autocon,cp);
  97.          else
  98.                strcpy((char *)autocon,"CON:/40//150/Sys - Window/auto/close");
  99.  
  100.             if (cp = ToolType("LISTHEIGHT"))
  101.          {
  102.                 listviewheight = atoi(cp);
  103.             if(listviewheight == -1) listviewheight = 1000;
  104.             else
  105.                if(listviewheight < 2) listviewheight = 10;
  106.  
  107.             SysHeight += (listviewheight - 10) * 8;
  108.          }
  109.  
  110.             FreeDiskObject(dop);
  111.         }
  112.  
  113.         CloseLibrary(IconBase);
  114.  
  115.         IconBase = NULL;
  116.     }
  117.  
  118.     return;
  119. }
  120.  
  121. void
  122. _main(long alen, char *aptr)
  123. {
  124.     register struct Process *pp;
  125.  
  126.    SysBase = *(struct ExecBase **) 4;
  127.  
  128.    if (SysBase->LibNode.lib_Version < 36)
  129.    {
  130.        if (alen)   Write(Output(), (UBYTE *)"WB 2.0 ONLY!\n", 13);
  131.        exit(0);
  132.    }
  133.  
  134.    if(DOSBase = (struct DosLibrary *)OpenLibrary((STRPTR)"dos.library", 36L))
  135.    {
  136.        LastID = SYSTEMINFO;
  137.  
  138.        pp = (struct Process *) FindTask(0L);
  139.  
  140.        strcpy(hotkey[0], "lshift rshift y");
  141.        strcpy(hotkey[1], "lshift rshift k");
  142.        strcpy(hotkey[2], "lshift rshift s");
  143.        strcpy(hotkey[3], "lshift rshift f");
  144.        strcpy(hotkey[4], "lshift rshift h");
  145.        strcpy(hotkey[5], "lshift rshift c");
  146.        strcpy(hotkey[6], "lshift rshift w");
  147.        strcpy(hotkey[7], "lshift rshift esc");
  148.  
  149.        if (pp->pr_CLI)
  150.        {
  151.            _cli_parse(pp, alen, aptr);
  152.  
  153.            RSysName = AllocVec(MAXFULLNAME, MEMF_CLEAR);
  154.            if (RSysName)
  155.            {
  156.                NameFromLock(GetProgramDir(), (UBYTE *) RSysName, MAXFULLNAME);
  157.                strcpy(_dir,RSysName);
  158.                strcpy(_file,(char *)FilePart((UBYTE *) _argv[0]));
  159.  
  160.                AddPart((UBYTE *) RSysName, FilePart((UBYTE *) _argv[0]), MAXFULLNAME);
  161.            }
  162.  
  163.            Enable_Abort = 1;
  164.        }
  165.        else
  166.        {
  167.            WaitPort(&pp->pr_MsgPort);
  168.  
  169.            WBenchMsg = (struct WBStartup *) GetMsg(&pp->pr_MsgPort);
  170.  
  171.            if (WBenchMsg->sm_ArgList)
  172.            {
  173.                NameFromLock(WBenchMsg->sm_ArgList->wa_Lock, (UBYTE *) _dir, MAXFULLNAME);
  174.                strcpy(_file, (char *)FilePart((UBYTE *)WBenchMsg->sm_ArgList->wa_Name));
  175.  
  176.                RSysName = AllocVec(strlen(WBenchMsg->sm_ArgList->wa_Name) + 1, MEMF_CLEAR);
  177.                if (RSysName) strcpy(RSysName, WBenchMsg->sm_ArgList->wa_Name);
  178.  
  179.                CurrentDir(WBenchMsg->sm_ArgList->wa_Lock);
  180.            }
  181.  
  182.            _argv = (char **)WBenchMsg;
  183.        }
  184.  
  185.        if (RSysName) _icon_parse(RSysName);
  186.  
  187.        main(_argc, _argv);
  188.    }
  189.  
  190.     return;
  191. }
  192.