home *** CD-ROM | disk | FTP | other *** search
/ MACD 4 / MACD4.iso / cdity / smartwin_src.lha / SmartWIN / source / Settings.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-16  |  2.4 KB  |  149 lines

  1. /*
  2. **    SmartWIN
  3. **
  4. **        © 1996 by Timo C. Nentwig
  5. **        All Rights Reserved !
  6. **
  7. **        Tcn@oxygen.in-berlin.de
  8. **
  9. **
  10. */
  11.  
  12. /// #include
  13.  
  14. #include "GST.h"
  15. #include "Protos.h"
  16.  
  17. ///
  18. /// proto
  19.  
  20. proto VOID    EvalArgs        (VOID);
  21. proto VOID    EvalTTypes      (VOID);
  22. proto VOID    InitSettings    (VOID);
  23.  
  24. ///
  25.  
  26. /// InitSetting ()
  27.  
  28.     /*
  29.      *    FUNCTION    Initialize settings structure.
  30.      *
  31.      *    NOTE
  32.      *
  33.      *    EXAMPLE     InitSettings ();
  34.      *
  35.      */
  36.  
  37. VOID
  38. InitSettings (VOID)
  39. {
  40.  
  41.     Set -> Cx . Priority = 0;
  42.     Set -> WBOnly        = FALSE;
  43.  
  44. }
  45.  
  46. ///
  47. /// EvalTTypes ()
  48.  
  49.     /*
  50.      *    FUNCTION    Evaluate tooltypes.
  51.      *
  52.      *    NOTE
  53.      *
  54.      *    EXAMPLE     EvalTTypes ("path:dir/icon);
  55.      *
  56.      */
  57.  
  58.  
  59. VOID
  60. EvalTTypes (VOID)
  61. {
  62.  
  63.     struct    DiskObject   *Icon;
  64.  
  65.         // Try to read the icon file
  66.  
  67.     if (Icon = GetDiskObject (PRG_TITLE))
  68.     {
  69.  
  70.         #define    Item(s)    FindToolType (Icon -> do_ToolTypes, s)
  71.  
  72.         STRPTR    String;
  73.  
  74.         if (String = Item ("CX_PRIORITY"))    Set -> Cx . Priority = atol (String);
  75.         if (String = Item ("WBONLY"))         Set -> WBOnly        = atob (String);
  76.  
  77.         FreeDiskObject (Icon);
  78.  
  79.     }
  80.  
  81. }
  82.  
  83. ///
  84. /// EvalArgs ()
  85.  
  86.     /*
  87.      *    FUNCTION    Evaluate given shell arguments
  88.      *
  89.      *    NOTE
  90.      *
  91.      *    EXAMPLE     EvalArgs ();
  92.      *
  93.      */
  94.  
  95.  
  96. VOID
  97. EvalArgs (VOID)
  98. {
  99.  
  100.     #define    ARG_TEMPLATE     "PRI=CX_PRIORITY/K/N,WB=WBONLY/S"
  101.  
  102.     enum
  103.     {
  104.  
  105.         CX_PRIORITY, WBONLY,
  106.  
  107.         ARG_COUNT
  108.  
  109.     };
  110.  
  111.     STRPTR   *ArgArray;
  112.  
  113.     if (ArgArray = (STRPTR *) AllocVec (sizeof (STRPTR) * (ARG_COUNT), MEMF_ANY | MEMF_CLEAR))
  114.     {
  115.  
  116.         struct    RDArgs   *ArgsPtr;
  117.  
  118.         if (ArgsPtr = (struct RDArgs *) AllocDosObject (DOS_RDARGS, TAG_END))
  119.         {
  120.  
  121.             ArgsPtr -> RDA_ExtHelp = "" PRG_TITLE " " PRG_VERSION "\n"
  122.                                      "Copyright © " PRG_YEAR " by " PRG_AUTHOR "\n"
  123.                                      "All Rights Reserved !\n\n"
  124.                                       PRG_EMAIL "\n";
  125.  
  126.             if (ReadArgs (ARG_TEMPLATE, (LONG *) ArgArray, ArgsPtr))
  127.             {
  128.  
  129.                 if (ArgArray [CX_PRIORITY])    Set -> Cx . Priority = * (LONG *) ArgArray [CX_PRIORITY];
  130.                 if (ArgArray [WBONLY])         Set -> WBOnly        = TRUE;
  131.  
  132.                 FreeArgs (ArgsPtr);
  133.  
  134.             }
  135.  
  136.             FreeDosObject (DOS_RDARGS, ArgsPtr);
  137.  
  138.         }
  139.  
  140.         FreeVec (ArgArray);
  141.  
  142.     }
  143.  
  144. }
  145.  
  146. ///
  147.  
  148.  
  149.