home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1994-06-21 | 4.1 KB | 171 lines |
- >!RunImage
- !Shield !RunImage file
- By Ben Carter
- 1994 (FreeWare)
- d= 12*4
- ^ Max # of directories (must be a multiple of 12)
- Db$="!Shield":
- "Fatal initialisation error - "+
- $+" ("+
- +")":
- $+" at line "+
- +" - Quit?"):
- a(a%):e=
- i::c=1:j=
- "Wimp_Initialise",200,&4B534154,b$
- r%,f%:
- "WimpExt_Initialise",11,f%,400::
- a 3000,l 100:
- a$(d):e=
- "WimpExt_PrePoll":
- "Wimp_Poll",0,a
- "WimpExt_Action",f%,a,g%
- C,E,F::
- "WimpExt_OpenLinked",,a
- "WimpExt_CloseLinked",,a
- 17,18:
- "WimpExt_CloseDown",f%:
- "Wimp_CloseDown":
- b(g$):
- "Hourglass_Smash":!a=0:$(a+4)=g$+
- "Wimp_ReportError",a,0,b$:
- z(g$):
- "Hourglass_Smash":!a=0:$(a+4)=g$+
- "Wimp_ReportError",a,0,b$:
- d(h$):
- "Hourglass_Smash"
- (E!a=0:$(a+4)=h$+
- "Wimp_ReportError",a,19,"Message from "+b$
- G(h$):
- "Hourglass_Smash":!a=0:$(a+4)=h$+
- "Wimp_ReportError",a,19,"Message from "+b$:
- e(b,k$,r):$b=k$:b!12=459271:b!16=r:b!20=44:b!24=0:b+=28:=b
- c(b,i,i$,k%,l%,m%,n%,o%):!b=0:
- !b+=1
- !b+=2
- !b+=4
- !b+=128
- 0Gb!4=o%:b!8=&7000021:$(b+12)=i$:
- (i$)+1)*16>i!16
- i!16=(
- (i$)+1)*16
- b+=24:=b
- A(b,s,t,u,v,w):
- "WimpExt_MenuWidth",,b
- "WimpExt_CreateMenu",,b,!a-64,102+(44*(s+1))
- "WimpExt_CreateMenu",,b,v,w
- 8 x=t:
- y 400:f=y::i=f:f=
- e(f,"Shield",0)::f=
- c(f,i,"Info",
- ,i%):f=
- c(f,i,"Quit",
- ,-1)::z=2:A=i:
- k:$l="!Shield"+
- "WimpExt_IconBarSprite",,,-1,l,,3
- "Wimp_GetPointerInfo",,a::
- A(A,z,1,
- ,0,0):
- z("Menu click when no menu open!")
- a(b%)
- a(a%)
- a(i%)
- B 1000,m 6000,g 100::
- g+100
- 4:!I=0:
- "WimpExt_LoadTemplates",g,B,m,m+4000,-1,"<Shield$Dir>.Templates",1::i%=!g:b%=g!4:a%=g!8:e%=g!12::
- a(h%):!a=h%:
- "Wimp_GetWindowInfo",,a:
- "WimpExt_OpenLinked",,a:
- h(h%):!a=h%:
- "Wimp_GetWindowInfo",,a:
- "WimpExt_CloseLinked",,a:
- d(c%,d%,l$):!a=c%:a!4=d%:
- "Wimp_GetIconState",,a:a!8=0:a!12=0:$(a!28)=l$+
- "Wimp_SetIconState",,a:
- a(c%,d%):!a=c%:a!4=d%:
- "Wimp_GetIconState",,a:=
- b(a!28)
- f(c$):
- c$,"."):c$=
- c$,".")+1):
- :=c$+
- y:m$=
- b(a+44):j%=a!40:k=a!24:
- (a!20)<>b%
- j%<>4096
- j%<>8192
- b("This is not a directory or application"):
- d(b%,k,m$):
- "Wimp_SetCaretPosition",-1:
- g(h):d$="":
- ?h>31:d$+=
- (?h):h+=1:
- "Wimp_RedrawWindow",,a
- n:s%=a!4-a!20:t%=a!16-a!24:
- "WimpExt_Redraw",,a:
- "Wimp_GetRectangle",,a
- b(h):d$="":o=0:
- ?h>31
- o<255:d$+=
- (?h):h+=1:o+=1:
- H:!a=-1:a!4=p%:a!8=0:a!12=0:
- "Wimp_SetIconState",,a:
- I(c%,d%,q%):
- "WimpExt_SetIcon",,,c%,d%,q%:
- "<Shield$Dir>.Prefs":
- #D,p:
- b("There are more directories to protect than I have room for. Please increase max_directories or enter a new list"):
- #D,a$(I):
- "<Shield$Dir>.Prefs":
- #D,d:
- #D,a$(I):
- I=c
- c+11
- d(b%,I-c,a$(I))
- "Wimp_SetCaretPosition",-1
- c+11:a$(I)=
- a(b%,I-c):
- a$(I),1)=
- 13a$(I)=
- a$(I),
- (a$(I))-1)
- c<(d-12)
- c:c+=12:
- c:c-=12:
- a(e%)
- v:e$=
- a(a%,3):
- e$,1)=
- 13e$=
- (e$)-1)
- e$=a$
- b("Sorry. That is the wrong password")
- h(a%):
- d(a%,3,""):
- w:a$=
- a(e%,0):
- a$,1)=
- 10a$=
- (a$)-1)
- h(e%):
- "<Shield$Dir>.RTLib":
- b("There is no password set - You will need to set one"):a$="":j=
- #D,f$:
- #D:a$="":
- (f$):a$+=
- f$,I,1))
- F:f$="":
- (a$):f$+=
- a$,I,1))
- "<Shield$Dir>.RTLib":
- #D,f$:
- ("Settype <Shield$Dir>.RTLib FFC"):
- }<j$=
- b(a+44):o$="":
- (j$):
- j$,I,1))>31o$+=
- j$,I,1)
- o$=a$(I)
- ("Filer_CloseDir "+o$):I=d
-