home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / System / EASys / EASys!_update_47x_to_481 / EASys! / Prefs / EasyPattern.rexx next >
OS/2 REXX Batch file  |  2000-06-06  |  6KB  |  260 lines

  1. /*
  2.   EASys!) ©EasySystem since 1995
  3.  
  4.   EasyPattern
  5.   
  6.   Point and Klick WBpattern including virtual EasySave directory.
  7.  
  8.   Date:        05/99
  9.   Author:      Thomas Neidhardt (TNE), Deutschland, Erlangen
  10.  
  11.   InterNet:    thomas.neidhardt@fen-net.de
  12.  
  13.   Needs:       RexxReqTools Package by Rafael D'Halleweyn ( rdhall@rug.ac.be )
  14.                and the EASys! Configuration Environment.
  15.  
  16.                WBPatWrite from Oliver B. Warzecha in EASys!_bin:
  17.                Thanks, Oliver for this nice utility!
  18.  
  19.   Referenced by:  ${RefTable/?}
  20.  
  21.   with Options:
  22.  
  23. */
  24.  
  25. PARSE ARG UserArgs
  26.  
  27. CALL Init
  28.  
  29. /* Preset UserArgs if not done yet */
  30. IF UserArgs='USERARGS' THEN UserArgs=''
  31. storagePath='SYS:Prefs/Presets/EasyPattern/'
  32. dropmain='ENV:EasyPattern/'
  33.  
  34. CALL SetClip('EasyPattern',0)
  35. IF GetClip('EasyPattern')=1 THEN CALL ExitMe(5)
  36. ELSE CALL SetClip('EasyPattern',1)
  37.  
  38. /* select new patternfile source */
  39. SELECT
  40. WHEN '-wbpat'=UserArgs THEN
  41. DO
  42.  droppath='AS_WBpattern:'
  43.  picfile='wbpat_pic'
  44. END
  45.  
  46. WHEN '-winpat'=UserArgs THEN
  47. DO
  48.  droppath='AS_WinPattern:'
  49.  picfile='winpat_pic'
  50. END
  51.  
  52. WHEN '-screenpat'=UserArgs THEN
  53. DO
  54.  droppath='AS_ScreenPattern:'
  55.  picfile='screenpat_pic'
  56. END
  57.  
  58. WHEN POS('-wbpat',UserArgs)>0 THEN
  59. DO
  60.  droppath=0
  61.  srcfile=STRIP(RIGHT(UserArgs,LENGTH(UserArgs)-7),'B','"')
  62. END
  63.  
  64. WHEN POS('-winpat',UserArgs)>0 THEN
  65. DO
  66.  droppath=0
  67.  srcfile=STRIP(RIGHT(UserArgs,LENGTH(UserArgs)-8),'B','"')
  68. END
  69.  
  70. WHEN POS('-screenpat',UserArgs)>0 THEN
  71. DO
  72.  droppath=0
  73.  srcfile=STRIP(RIGHT(UserArgs,LENGTH(UserArgs)-11),'B','"')
  74. END
  75.  
  76. OTHERWISE CALL ExitMe(5)
  77. END /* SELECT */
  78.  
  79.  
  80. IF ~(droppath=0) THEN
  81. DO
  82.  srcfile=dropmain''picfile
  83.  
  84.  ADDRESS COMMAND 
  85.  'delete >NIL: 'droppath'#?.info FORCE QUIET'
  86.  'list >T:EasyPatternRename FILES 'droppath'#? LFORMAT "failat 30*nrename 'droppath'%n 'srcfile'"'
  87.  'execute T:EasyPatternRename'
  88.  'delete >NIL: T:EasyPatternRename QUIET'
  89. END
  90.  
  91. CALL GetCurrentPatterns
  92. CALL SetPattern(srcfile)
  93.  
  94. CALL DELAY(80)
  95.  
  96. /* Request, if these settings are ok */
  97. r=rtezrequest("WBpattern ok ?",' _Save | _Use | _Last saved',AppName,PosTags)
  98. SELECT
  99.  WHEN r=2 THEN NOP
  100.  
  101.  WHEN r=1 THEN
  102.  DO
  103.   /* Settings are ok, remove backups and save the new prefs */
  104.  
  105.   IF ~(droppath=0) THEN
  106.   DO /* if a file was dropped in only */
  107.    ADDRESS COMMAND
  108.    'delete >NIL: 'storagePath''picfile' QUIET'
  109.    'copy 'dropmain''picfile' 'storagePath' CLONE QUIET'
  110.  
  111.    CALL SetPattern(storagePath''picfile)
  112.   END
  113.  
  114.   CALL DELAY(80)
  115.   ADDRESS COMMAND
  116.   'delete >NIL: 'dropmain''picfile' QUIET'
  117.   'copy ENV:Sys/WBpattern.prefs ENVARC:Sys CLONE QUIET'
  118.  END
  119.  
  120.  OTHERWISE
  121.  DO
  122.   /* Settings are not ok, revert old backups and old prefs */
  123.   ADDRESS COMMAND 'copy ENVARC:Sys/WBpattern.prefs ENV:Sys CLONE QUIET'
  124.  
  125.   CALL DELAY(80)
  126.   ADDRESS COMMAND 'delete >NIL: 'dropmain'#?_pic QUIET'
  127.  END
  128. END /* SELECT */
  129. CALL ExitMe(0)
  130.  
  131. /* --------------- */
  132. SetPattern:
  133. PARSE ARG picture
  134. /* insert new name of srcfile in WBpattern.prefs */
  135.  
  136. SELECT
  137. WHEN POS('-wbpat',UserArgs)>0 THEN ADDRESS COMMAND 'EASys!_bin:WBPatWrite WBPIC "'picture'" WINPIC "'winpat'" SCREENPIC "'screenpat'" CHECK SYS'
  138. WHEN POS('-winpat',UserArgs)>0 THEN ADDRESS COMMAND 'EASys!_bin:WBPatWrite WBPIC "'wbpat'" WINPIC "'picture'" SCREENPIC "'screenpat'" CHECK SYS'
  139. WHEN POS('-screenpat',UserArgs)>0 THEN ADDRESS COMMAND 'EASys!_bin:WBPatWrite WBPIC "'wbpat'" WINPIC "'winpat'" SCREENPIC "'picture'" CHECK SYS'
  140. OTHERWISE CALL ExitMe(5)
  141. END /* SELECT */
  142. RETURN
  143. /* --------------- */
  144. GetCurrentPatterns:
  145.  
  146. IF ~OPEN(ftmp,'ENV:Sys/WBpattern.prefs','R') THEN CALL ExitMe(0)
  147. wbpat=''
  148. winpat=''
  149. screenpat=''
  150.  
  151. wbpat=GetPattern()
  152. winpat=GetPattern()
  153. screenpat=GetPattern()
  154. CALL CLOSE(ftmp)
  155. RETURN
  156.  
  157. /* ---------------------- */
  158. GetPattern:
  159. DO i=5 TO 200
  160.  z.i=READCH(ftmp)
  161.  
  162.  a=i-4
  163.  b=i-3
  164.  c=i-2
  165.  d=i-1
  166.  
  167.  IF z.a''z.b''z.c''z.d''='PTRN' THEN LEAVE
  168. END
  169. DO i=1 TO 27
  170.  r=READCH(ftmp)
  171. END
  172. n=c2d(r)
  173.  
  174. pat=''
  175. DO i=1 TO 400
  176.  a=READCH(ftmp)
  177.  IF EOF(ftmp) | a='00'x | a='0a'x THEN LEAVE
  178.  
  179.  pat=pat''a
  180.  IF i=n & EXISTS(pat) THEN RETURN pat
  181. END
  182. RETURN pat
  183.  
  184. /* ---------------------- */
  185. MyGetENV:     PROCEDURE
  186. PARSE ARG name
  187.  
  188. TheFile='ENV:'name
  189. IF (open(TEMPFILE, TheFile,'read')) THEN
  190.  DO
  191.   ENVvalue=READLN(TEMPFILE)
  192.   Result=Close(TEMPFILE)
  193.  END
  194. ELSE
  195.  ENVvalue="NOVALUE"
  196.  
  197. RETURN ENVvalue
  198. /* ---------------------- */
  199. Init:
  200.  
  201. OPTIONS RESULTS
  202. OPTIONS FAILAT 30
  203.  
  204. CR='0a'x
  205. AppName='EasyPattern ©EasySystem'
  206.  
  207. Language=GetClip('Language')
  208. IF ~EXISTS('EASys!_rexx:'Language'/FileManager.1') THEN Language='english'
  209.  
  210. ProcessNumber=PRAGMA('ID')
  211.  
  212. MaxTitleChars=MyGetENV("RefTable/GUI-ShellTitleChars")
  213.  
  214. ConsoleType=MyGetENV('RefTable/GUI-ConsoleType')
  215. IF ConsoleType='' THEN ConsoleType="CON:"
  216.  
  217. ConsoleSize=MyGetENV('SHELLsize')
  218. IF ConsoleSize='' THEN ConsoleSize="40/50/600/200"
  219.  
  220. ReqLE=MyGetENV('RefTable/GUI-ReqLE')  /* Main Window */
  221. ReqTE=MyGetENV('RefTable/GUI-ReqTE')
  222. ReqHeight=MyGetENV("RefTable/GUI-ReqHeight")
  223.  
  224. ConW=520
  225. ConH=210
  226.  
  227. BarWinW=250
  228. BarWinL=ReqLE+ConW-BarWinW
  229. BarWinT=ReqTE
  230.  
  231. PosTags="rt_reqpos=reqpos_topleftscr rt_leftoffset=" ReqLE " rt_topoffset=" ReqTE
  232. EZtags=PosTags
  233. GLtags=PosTags' rtgl_min=0 rtgl_max=1500 rtgl_backfill=true '
  234. GStags=PosTags' rtgs_backfill=false rtgs_width=300'
  235.  
  236. POINTER_TAGS='rt_reqpos=reqpos_pointer'
  237. DIR_TAGS=PosTags' rtfi_flags=freqf_nofiles|freqf_save rtfi_height='ReqHeight
  238. FILE_TAGS=PosTags' rtfi_flags=freqf_multiselect|freqf_selectdirs rtfi_height='ReqHeight
  239. ONEFILE_TAG=PosTags' rtfi_height='ReqHeight
  240.  
  241. Console='>"'ConsoleType''ConsoleSize'/'AppName' Messages.../AUTO/NOClose/ALT'ReqLE'/'ReqTE'/ConW/ConH"'
  242.  
  243. ConStat=0
  244.  
  245. /* OS 3.5 WB Port */
  246. IF SHOW('P','WORKBENCH') THEN WB_port=1
  247.  
  248. RETURN
  249.  
  250. /* ---------------- */
  251. ExitMe:
  252. PARSE ARG ExitVal
  253.  
  254. CALL SetClip('EasyPattern',0)
  255. IF ~(ExitVal=0) THEN
  256.  EXIT ExitVal
  257. ELSE
  258.  EXIT 0
  259.  
  260.