/* $VER: ThumbNailMaker.rexx 1.9 (1999-08-22) */
OPTIONS RESULTS
libs = "rexxarplib.library rexxdossupport.library rexxkuang11.library rexxsupport.library"
DO UNTIL libs='';PARSE VAR libs lib libs
IF EXISTS('libs:'lib)|EXISTS('Libs/'lib)|EXISTS(lib) THEN DO
IF ~show('L',lib) THEN call addlib(lib,0,-30,0);END;ELSE DO
Say 'Library Error. Unable to open 'lib
address ThumbNailMaker ;quit
END;END
call Tags
SELECT
WHEN arg(1)="ABOUT" then call about
WHEN arg(1)="SAVE" then call Config("S")
WHEN arg(1)="START" then call start
WHEN arg(1)="GOURL" then call GoToURL
OTHERWISE call init
end
exit
init:
address ThumbNailMaker
window ID THNAM TITLE '"ThumbNailMaker v1.9"' COMMAND '"quit"' PORT ThumbNailMaker ATTRS MUIA_Window_ScreenTitle '"ThumbNailMaker 1.9 ©1998-1999 Lorens Johansson Freely Distributable Emailware"'
menu LABEL "ThumbNailMaker"
item COMMAND '"method 'MUIM_Application_AboutMUI' 0"' PORT ThumbNailMaker  ATTRS MUIA_Menuitem_Shortcut 'M' LABEL "About MUI"
item COMMAND '"ThumbNailMaker.rexx ABOUT"' ATTRS MUIA_Menuitem_Shortcut 'A' LABEL "About"
item ATTRS MUIA_Menuitem_Title '-1'
item COMMAND '"quit"' PORT ThumbNailMaker ATTRS MUIA_Menuitem_Shortcut 'Q' LABEL "Quit"
endmenu
menu LABEL "Settings"
item COMMAND '"ThumbNailMaker.rexx SAVE"' ATTRS MUIA_Menuitem_Shortcut 'S' LABEL "Save Settings..."
item ATTRS MUIA_Menuitem_Title '-1'
item COMMAND '"method 'MUIM_Application_OpenConfigWindow'"' PORT ThumbNailMaker LABEL "MUI Prefs..."
endmenu
text help '"ThumbNailMaker v1.9 by\nLorens Johansson (http://members.xoom.com/snorslex)\nIf you use this program, you are required to\nEmail the author (SnorsleX@Home.se). Otherwise,\nhow is he supposed to know to keep supporting\nThumbNailMaker ?!?\n\033rLorens Johansson"' label "\033c\033bThumbNailMaker v1.9\033n\n\033cLorens Johansson\n\033cFreely Distributable Emailware"
text ID KEY ATTRS MUIA_Text_Contents '"\033c\033bUnregistered! Pease register! It is free!"'
group REGISTER ATTRS MUIA_CycleChain 1 LABELS "Main Settings,HTML Settings,HTML Pic Settings,HTML Colours"
group
group frame label "GFXCon Settings"
group ATTRS MUIA_Group_Columns 2
label "_GFXCon path:"
popasl ID CPATH ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("g") ASLFR_RejectIcons 1 ASLFR_TitleText '"Choose the GFXCon executable!"' help '"The path to GFXCon, including the executable file!"'
label "ThumbNail size:"
group HORIZ
label "_X:"
string ID CSIZX ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("x") help '"The horizontal size of the ThumbNails!"'
label "_Y:"
string ID CSIZY ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("y") help '"The vertical size of the ThumbNails!"'
endgroup
label "_JPEG Quality:"
group HORIZ
slider ID CJPGQ ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("j") MUIA_Slider_Min 1 MUIA_Slider_Max 100 help '"The quality of the thumbnails. (Only affects JPEG pictures!)"'
label "_ThumbNail format:"
string ID CPICF ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("t") help '"Which format the ThumbNails should be! For example gif or jpg."'
endgroup
endgroup
endgroup
group frame label "General Settings"
group ATTRS MUIA_Group_Columns 2
label "_Filepattern:"
string ID GPATT ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("f") help '"Which files the program should ignore! This is a normal requester pattern."'
label "S_ource directory:"
popasl ID GDIR ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("o") ASLFR_DrawersOnly 1 ASLFR_TitleText '"Choose where the pics are!"' help '"The directory where the pictures are!"'
endgroup
group ATTRS MUIA_Group_Columns 4
label "ThumbNail dest _dir:"
string ID GTDR ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("d") help '"The name of the subdirectory where the ThumbNails should be stored,\n ONLY a name no path or slash."'
label "Q_uiet:"
check ID QUIET ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("u") help '"Puts >NIL: in the commandline! ie, GFXCon will not show the errors in a separate window!"'
endgroup
endgroup
endgroup
group
group ATTRS MUIA_Group_Columns 2
label "HT_ML names:"
string ID HINNA ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("m") help '"Select the name of the html files (before the number and extension: *****1.html)"'
endgroup
group ATTRS MUIA_Group_Columns 6
label "_Pics per page:"
string ID HPPP ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("p") help '"How many ThumbNails each index page should have."'
label "_X Resolution:"
string ID HXRES ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("x") help '"Which horizontal resolution the page should be optimized for!"'
label "_Table border:"
string ID HBORD ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("t") help '"How thick the border of the frames should be!"'
endgroup
group ATTRS MUIA_Group_Columns 3
label "_Header:"
string ID HHEAD ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("h") help '"What text it would be in the header of the index HTML files! You can use HTML tags too."'
group FRAME POP ATTRS MUIA_CycleChain 1
label "\033l%d = Date\n%p = Path\n%r = Directory\n%t = Time"
endgroup
label "_Footer:"
string ID HFOOT ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("f") help '"What text it would be in the footer of the index HTML files! You can use HTML tags too."'
group FRAME POP ATTRS MUIA_CycleChain 1
label "\033l%d = Date\n%p = Path\n%r = Directory\n%t = Time"
endgroup
endgroup
group frame ATTRS MUIA_Group_Columns 3 label "Indexlinks"
label "_Where:"
cycle ID HINLI ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("w") help '"Choose where to put the links to the other indexpages!"' LABELS "Both,Only Top,Only Bottom"
slider ID HIFSI ATTRS MUIA_CycleChain 1 MUIA_Numeric_Format '"Fontsize: %ld"' MUIA_Slider_Min 1 MUIA_Slider_Max 7 help '"Choose the size of the Indexlinks!"'
endgroup
group frame label "Stuff under ThumbNails"
slider ID HFSIZ ATTRS MUIA_CycleChain 1 MUIA_Numeric_Format '"Fontsize: %ld"' MUIA_Slider_Min 1 MUIA_Slider_Max 7 help '"Choose the size of the text under the pictures!"'
group ATTRS MUIA_Group_Columns 3
label "Add _LineFeed:"
check ID HLIFE ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("l") help '"Choose if you want a linefeed between the picture and the filename/size!"'
group HORIZ
label "Add File_name:"
check ID HFNAM ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("n") help '"Put the filename under the picture."'
space HORIZ
endgroup
label "Add Fil_esize:"
check ID HSIZE ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("e") help '"Put the size under the picture."'
group HORIZ
label "_In:"
cycle ID HSIKB ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("i") help '"Choose between Bytes or KiloBytes."' LABELS "Bytes,KiloBytes"
endgroup
endgroup
endgroup
endgroup
group
group HORIZ
space HORIZ
label "_Make HTML pages for pictures:"
check ID HMHPP ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("m") help '"Check this if the pictures should have an HTML page!"'
space HORIZ
endgroup
group ATTRS MUIA_Group_Columns 3
label "_Header:"
string ID HPHEA ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("h") help '"What text it would be in the header of the picture HTML files! You can use HTML tags too."'
group FRAME POP ATTRS MUIA_CycleChain 1
label "\033l%c = Filecomment\n%d = Datestamp\n%n = Filename\n%p = Path\n%r = Directory\n%s = Filesize\n%t = Timestamp"
endgroup
label "_Footer:"
string ID HPFOO ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("f") help '"What text it would be in the footer of the picture HTML files! You can use HTML tags too."'
group FRAME POP ATTRS MUIA_CycleChain 1
label "\033l%c = Filecomment\n%d = Datestamp\n%n = Filename\n%p = Path\n%r = Directory\n%s = Filesize\n%t = Timestamp"
endgroup
endgroup
endgroup
group
group frame HORIZ label "Background"
cycle ID BACKG ATTRS MUIA_CycleChain 1 MUIA_Weight 1 help '"Select if you want to use a background picture, or just a colour!"' LABELS "BG Colour,BG Picture"
group ATTRS MUIA_Group_Columns 2
label "BG _Colour:"
string ID HBGCO ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("c") help '"Which color the HTML files BGs should be! (Like #0000FF)"'
label "BG _Picture:"
popasl ID HBGPI ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("p") help '"Which image to use as background!"'
endgroup
endgroup
group frame ATTRS MUIA_Group_Columns 2 label "Colours"
label "_Text Colour:"
string ID CTEXT ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("t") help '"Which color the Texts should have! (Like #0000FF)"'
label "_Link Colour:"
string ID CLINK ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("l") help '"Which color the Links should have! (Like #0000FF)"'
label "AL_ink Colour:"
string ID CALIN ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("i") help '"Which color the ALinks should have! (Like #0000FF)"'
label "_VLink Colour:"
string ID CVLIN ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("v") help '"Which color the Visited Links should have! (Like #0000FF)"'
endgroup
endgroup
endgroup
group ATTRS MUIA_Group_Columns 4
button ID START ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("s") MUIA_Text_HiChar c2d("s") help '"Starts making thumbnails and HTML pages if chosen!"' COMMAND """ThumbNailMaker.rexx START""" label "Start"
button ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("b") MUIA_Text_HiChar c2d("b") help '"Go to the first indexpage!"' COMMAND """ThumbNailMaker.rexx GOURL""" label "Browser"
button ID ABT ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("a") MUIA_Text_HiChar c2d("a") help '"Shows some info about ThumbNailMaker."' COMMAND """ThumbNailMaker.rexx ABOUT""" label "About"
button ID QUIT ATTRS MUIA_CycleChain 1 MUIA_ControlChar c2d("q") MUIA_Text_HiChar c2d("q") help '"Quits ThumbNailMaker."' COMMAND '"quit"' PORT ThumbNailMaker label "Quit"
endgroup
endwindow
call Config("L")
call KeyCheck
res=result
if res="No" then do
Address ThumbNailMaker
window ID REGIS TITLE '"Please Register"'
text label "\033c\033bRIGISTER IS FREE!!!\n\n\033nTo register send a mail to:\nSnorsleX@Home.se!\n\n\033c\033bThe reason:\033n\nI want to know how many there\nis that uses ThumbNailMaker."
group ATTRS MUIA_Group_Columns 3
space HORIZ
button ID CLKEY ATTRS MUIA_CycleChain 1 COMMAND '"window ID REGIS close"' PORT ThumbNailMaker label "I will"
space HORIZ
endgroup
endwindow
end
if res="Yes" then do
Address ThumbNailMaker
txt = '"\033cRegistered to: '||name||' (#'||serial||')! Thanks!"'
text ID KEY ATTRS MUIA_Text_Contents txt
end
return
Tags:
ASLFR_DrawersOnly=0x8008002F
ASLFR_RejectIcons=0x8008003C
ASLFR_TitleText=0x80080001
MUIA_Application_Sleep=0x80425711
MUIA_AppMessage=0x80421955
MUIA_ControlChar=0x8042120b
MUIA_Cycle_Active=0x80421788
MUIA_CycleChain=0x80421ce7
MUIA_Disabled=0x80423661
MUIA_Frame=0x8042ac64
MUIA_Gauge_Current=0x8042f0dd
MUIA_Gauge_Horiz=0x804232dd
MUIA_Gauge_InfoText=0x8042bf15
MUIA_Gauge_Max=0x8042bcdb
MUIA_Group_Columns=0x8042f416
MUIA_Group_Rows=0x8042b68f
MUIA_List_Active=0x8042391c
MUIA_List_Entries=0x80421654
MUIA_Menuitem_Shortcut=0x80422030
MUIA_Menuitem_Title=0x804218be
MUIA_Numeric_Format=0x804263e9
MUIA_Selected=0x8042654b
MUIA_ShowMe=0x80429ba8
MUIA_Slider_Level=0x8042ae3a
MUIA_Slider_Max=0x8042d78a
MUIA_Slider_Min=0x8042e404
MUIA_Text_Contents=0x8042f8dc
MUIA_Text_HiChar=0x804218ff
MUIA_Weight=0x80421d1f
MUIA_Window_ScreenTitle=0x804234b0
MUIM_Application_AboutMUI=0x8042d21d
MUIM_Application_OpenConfigWindow=0x804299ba
MUIV_List_Insert_Bottom=-3
R='0A'X
Return
Config:
lors=arg(1)
if OPEN("file","ThumbNailMaker.prefs","R") then do
i=1
do UNTIL EOF("file")
line.i=READLN("file")
i=i+1
end
line.0=i-1
call CLOSE("file")
end
else do
line.0=32
line.1="CPATH	RAM:"
line.2="CSIZX	100"
line.3="CSIZY	100"
line.4="CJPGQ	85"
line.5="CPICF	gif"
line.6="GPATT	~#?.(htm#?|info|rexx|guide|text)"
line.7="GDIR	RAM:"
line.8="GTDR	thumb"
line.9="QUIET	1"
line.10="HINNA	index"
line.11="HPPP	25"
line.12="HXRES	640"
line.13="HBORD	1"
line.14="HHEAD	<CENTER><H1>%r</H1></CENTER>"
line.15="HFOOT	<CENTER><H1>%r</H1></CENTER>"
line.16="HINLI	Both"
line.17="HIFSI	5"
line.18="HFSIZ	2"
line.19="HLIFE	0"
line.20="HFNAM	1"
line.21="HSIZE	1"
line.22="HSIKB	Bytes"
line.23="HMHPP	1"
line.24="HPHEA	<CENTER><H1>%r</H1></CENTER>"
line.25="HPFOO	<CENTER><H1>%r</H1></CENTER>"
line.26="BACKG	BG Colour"
line.27="HBGCO	#987654"
line.28="HBGPI	RAM:"
line.29="CTEXT	#FFFFFF"
line.30="CLINK	#FF0000"
line.31="CALIN	#FFFFFF"
line.32="CVLIN	#AA0000"
end
call ch("CPATH",lors,"P")
call ch("CSIZX",lors,"T")
call ch("CSIZY",lors,"T")
call ch("CJPGQ",lors,"S")
call ch("CPICF",lors,"T")
call ch("GPATT",lors,"T")
call ch("GDIR",lors,"P")
call ch("GTDR",lors,"T")
call ch("QUIET",lors,"K")
call ch("HINNA",lors,"T")
call ch("HPPP",lors,"T")
call ch("HXRES",lors,"T")
call ch("HBORD",lors,"T")
call ch("HHEAD",lors,"T")
call ch("HFOOT",lors,"T")
call ch("HINLI",lors,"C")
call ch("HIFSI",lors,"S")
call ch("HFSIZ",lors,"S")
call ch("HLIFE",lors,"K")
call ch("HFNAM",lors,"K")
call ch("HSIZE",lors,"K")
call ch("HSIKB",lors,"C")
call ch("HMHPP",lors,"K")
call ch("HPHEA",lors,"T")
call ch("HPFOO",lors,"T")
call ch("BACKG",lors,"C")
call ch("HBGCO",lors,"T")
call ch("HBGPI",lors,"P")
call ch("CTEXT",lors,"T")
call ch("CLINK",lors,"T")
call ch("CALIN",lors,"T")
call ch("CVLIN",lors,"T")
call OPEN("file","ThumbNailMaker.prefs","W")
i=1
do UNTIL i=line.0
call WRITELN("file",line.i)
i=i+1
end
call CLOSE("file")
return
ch:
stringid=arg(1)
saveorload=arg(2)
type=arg(3)
i=1
do until i=line.0
if LEFT(line.i,LENGTH(stringid))=stringid then do
parse var line.i RUBBISH"	"setting
if saveorload="L" then do
select
WHEN type="P" then Address ThumbNailMaker popasl ID stringid content Setting
WHEN type="S" then Address ThumbNailMaker slider ID stringid ATTRS MUIA_Slider_Level setting
WHEN type="C" then Address ThumbNailMaker cycle ID stringid label setting
WHEN type="K" then Address ThumbNailMaker check ID stringid ATTRS MUIA_Selected setting
OTHERWISE Address ThumbNailMaker string ID stringid content Setting
end
end
if saveorload="S" then do
select
WHEN type="P" then Address ThumbNailMaker popasl ID stringid
WHEN type="S" then Address ThumbNailMaker slider ID stringid
WHEN type="C" then Address ThumbNailMaker cycle ID stringid
WHEN type="K" then Address ThumbNailMaker check ID stringid
OTHERWISE Address ThumbNailMaker string ID stringid
end
changeto=result
line.i=stringid"	"changeto
end
end
i=i+1
end
return
about:
address ThumbNailMaker
window ID ABOUT Title '"About ThumbNailMaker v1.9"' COMMAND '"window ID ABOUT close"' PORT ThumbNailMaker
text label "\033c\033bThumbNailMaker v1.9\033n\n\033cFreely Distributable Emailware\n\n\033cPlease visit my homepage:\nhttp://snorslex.amiga.tm/\n\nPlease E-Mail me if you like/hate the program!\nSnorsleX@Home.se\n\n\033r©Copyright 1998-1999 Lorens Johansson"
group HORIZ
space HORIZ
button ID CAB COMMAND '"window ID ABOUT close"' PORT ThumbNailMaker ATTRS MUIA_CycleChain 1 label "Okey"
space HORIZ
endgroup
endwindow
return
start:
address ThumbNailMaker
button ID START ATTRS MUIA_Disabled 1
button ID QUIT ATTRS MUIA_Disabled 1
window ID STAT close
window ID STAT
list ID STALI TITLE '"\033bStatus:"'
gauge ID STAPR ATTRS MUIA_Gauge_Horiz 1 MUIA_Gauge_InfoText '"Processed images (%ld/0)"'
object CLASS '"Scale.mui"'
group ID STAPG
gauge ID STAPI ATTRS MUIA_Gauge_Horiz 1 MUIA_Gauge_InfoText '"Picture HTML files (%ld/0)"'
object CLASS '"Scale.mui"'
endgroup
gauge ID STAIN ATTRS MUIA_Gauge_Horiz 1 MUIA_Gauge_InfoText '"Index HTML files (%ld/0)"'
object CLASS '"Scale.mui"'
group ID PRTAB HORIZ
space HORIZ
label "Press to abort, and wait:"
check ID STABO
space HORIZ
endgroup
group HORIZ ID STGRP ATTRS MUIA_ShowMe 0
text ID TIMER
button ID STCLO ATTRS MUIA_CycleChain 1 COMMAND '"window ID STAT close"' PORT ThumbNailMaker label "Close"
endgroup
endwindow
popasl ID CPATH
GFXCON=result
string ID CSIZX
sizex=result
string ID CSIZY
sizey=result
slider ID CJPGQ
QUALITY=result
string ID CPICF
FORMAT=result
string ID GPATT
PATTERN=result
popasl ID GDIR
directory=result
string ID GTDR
dest=result
check ID QUIET
QUIET=result
string ID HINNA
indexnames=result
string ID HPPP
perpage=result
string ID HXRES
res=result
string ID HBORD
BORDER=result
string ID HHEAD
HEADER=result
string ID HFOOT
FOOTER=result
cycle ID HINLI
INDEXLINKS=result
slider ID HIFSI
INDEXLINKSSIZE=result
slider ID HFSIZ
FONTSIZE=result
check ID HLIFE
LINEFEED=result
check ID HFNAM
FNAMEUPIC=result
check ID HSIZE
SIZEUPIC=result
cycle ID HSIKB
SIZEKB=result
check ID HMHPP
picpage=result
string ID HPHEA
PHEADER=result
string ID HPFOO
PFOOTER=result
cycle ID BACKG
BGWHICH=result
string ID HBGCO
BGCOLOR=result
popasl ID HBGPI
BGPIC=result
string ID CTEXT
COL1=result
string ID CLINK
COL2=result
string ID CALIN
COL3=result
string ID CVLIN
COL4=result
HEADER=GetPercent(HEADER,"1")
FOOTER=GetPercent(FOOTER,"1")
TEXTCOLOURS=' TEXT="'COL1'" LINK="'COL2'" ALINK="'COL3'" VLINK="'COL4'"'
EIP=0
if ~EXISTS(GFXCON) then do
EIP=1
EIPM="The path to GFXCon doesn't exist!"
end
if ~EXISTS(BGPIC) then do
EIP=1
EIPM="The path to the BG Picture doesn't exist!"
end
if datatype(sizex,W)=0 then do
EIP=1
EIPM="Something is wrong with ThumbNail size X"
end
if datatype(sizey,W)=0 then do
EIP=1
EIPM="Something is wrong with ThumbNail size Y"
end
if datatype(QUALITY,W)=0 then do
EIP=1
EIPM="Something is wrong with JPEG Quality"
end
if datatype(perpage,W)=0 then do
EIP=1
EIPM="Something is wrong with Pics per page"
end
if datatype(res,W)=0 then do
EIP=1
EIPM="Something is wrong with X Resolution"
end
if datatype(BORDER,W)=0 then do
EIP=1
EIPM="Something is wrong with Table Border"
end
if EIP=1 then do
call AddList("\033b"EIPM)
button ID START ATTRS MUIA_Disabled 0
button ID QUIT ATTRS MUIA_Disabled 0
group ID STGRP ATTRS MUIA_ShowMe 1
exit
end
call AddList("Safety-check passed!")
if picpage=0 then group ID STAPG ATTRS MUIA_ShowMe 0
if RIGHT(directory,1)~=":" then
if RIGHT(directory,1)~="/" then directory=directory||"/"
timer_start=time('e')
form="."||format
form=compress(form,"e")
files=filelist(directory||PATTERN,filenames,F,)
if files=0 then do
call AddList("\033bNo files to process!")
button ID START ATTRS MUIA_Disabled 0
button ID QUIT ATTRS MUIA_Disabled 0
group ID STGRP ATTRS MUIA_ShowMe 1
exit
end
gauge ID STAPR ATTRS MUIA_Gauge_Max files MUIA_Gauge_InfoText '"Processed images (%ld/'files')"'
if ~exists(directory||dest) then call makedir(directory||dest)
if RIGHT(dest,1)~=":" then
if RIGHT(dest,1)~="/" then dest=dest||"/"
BACKGROUND=""
if BGWHICH="BG Colour" then BACKGROUND='BGCOLOR="'BGCOLOR'"'
if BGWHICH="BG Picture" then do
BACKGROUND=BGPIC
ADDRESS COMMAND "copy "BACKGROUND" "directory||dest" QUIET"
BACKGROUND=GetFilename(BACKGROUND)
BACKGROUND='BACKGROUND="'dest||BACKGROUND'"'
end
call sort
call AddList("Checking for new pictures...")
do f=1 to files
name=filenames.f
name2=GetFilename(name)
call pragma("STACK",22000)
file=name2
do forever
plats=pos('.',file)
if plats>0 then do
filedots=file
file=DELSTR(file,plats,1)
end
if plats=0 then leave
end
parse var filedots file2 "." .
names.f=file2||"_t"||FORM
if ~exists(directory||dest||names.f) then do
comm=GFXCON||' "'||name'"'
if QUIET=1 then do
comm=comm||' >NIL:'
end
call AddList("Processing file "name2)
comm=comm||' TO "'||directory||dest||names.f||'" FORMAT 'FORMAT
if UPPER(FORM)=".JPG" then comm=comm||' QUALITY 'QUALITY||' '
comm=comm||' BOXFIT '||sizex||' '||sizey
ADDRESS COMMAND comm
end
if ~exists(directory''dest||names.f) then call AddList("\033bError: GfxCon could not create the thumbnail!")
gauge ID STAPR ATTRS MUIA_Gauge_Current f
check ID STABO
if result=1 then abort=result
if abort=1 then call abort
END
if res="" then res=800
if perpage=0 then perpage=files
number=1
pagefiles=perpage
pages=files%perpage
if files//perpage ~=0 then pages=pages+1
line="0a"x||"Creating "pages" index page"
if pages>1 then line=line||"(s)"
if picpage=1 then line=line||" and "files" picture pages"
call AddList(line)
gauge ID STAIN ATTRS MUIA_Gauge_Max pages MUIA_Gauge_InfoText '"Index HTML files (%ld/'pages')"'
do p=1 to pages
nownum=0
if files-(perpage*p)<0 then pagefiles=files//perpage
if pagefiles>0 then do
max=res%((border*2)+sizex+7) 
if (pagefiles//max) ~=0 then do 
mostremainders=pagefiles//max
do temp=max to 2 by -1 
if pagefiles//temp > mostremainders then do 
mostremainders=pagefiles//temp
max=temp
end
end
end
rows=pagefiles%max
if pagefiles//max ~=0 then rows=rows+1
if open("out",directory||indexnames||p||".html","W") then do
call AddList("Creating index page #"||p||"...")
call WRITELN("out",'<HTML>'||R||'<BODY 'BACKGROUND||TEXTCOLOURS'>'||R||HEADER||'<CENTER>'||R||'<BR>')
line=""
line=line||'<FONT SIZE="'INDEXLINKSSIZE'">'
do f=1 to pages
if f=p then line=line||'[ <A HREF="'||indexnames||f||'.html"><B>'||f||'</B></A> ] '
else line=line||'[ <A HREF="'||indexnames||f||'.html">'||f||'</A> ] '
end
line=line||'</FONT>'
if INDEXLINKS="Both"|INDEXLINKS="Only Top" then do
if pages>1 then call WRITELN("out",line||R||"<BR>")
end
call WRITELN("out",'<TABLE BORDER="'||border||'">')
call pragma("STACK",22000)
if pages=1 then gauge ID STAPI ATTRS MUIA_Gauge_Max files MUIA_Gauge_InfoText '"Picture HTML files (%ld/'files')"'
else do
if pages-p>0 then gauge ID STAPI ATTRS MUIA_Gauge_Max perpage MUIA_Gauge_InfoText '"Picture HTML files (%ld/'perpage')"'
else do
gaugenum=(files-((p-1)*perpage))
gauge ID STAPI ATTRS MUIA_Gauge_Max gaugenum MUIA_Gauge_InfoText '"Picture HTML files (%ld/'gaugenum')"'
end
end
do rows
call WRITELN("out",' <TR ALIGN="CENTER">')
do max
if number-(perpage*(p-1))>pagefiles then iterate
comm=GFXCON||' >T:thumbinfo "'||directory||dest||names.number||'" info'
address command comm
call OPEN("fileinfo","T:thumbinfo","r")
do 4
info=READLN("fileinfo")
end
parse var info "input size: " thumbx "x" thumby .
thumbx=strip(thumbx,,' ')
call CLOSE("fileinfo")
filenames=GetFilename(filenames.number)
if picpage then call WRITELN("out",'  <TD><A HREF="'||filenames||'.html"><IMG SRC="'||dest||names.number||'" ALT="'||filenames||'" WIDTH="'||thumbx||'" HEIGHT="'||thumby||'" BORDER="0"></A>')
else call WRITELN("out",'  <TD><A HREF="'||filenames||'"><IMG SRC="'||dest||names.number||'" ALT="'||filenames||'" WIDTH="'||thumbx||'" HEIGHT="'||thumby||'" BORDER="0"></A>')
underpicture='<BR><FONT SIZE="'FONTSIZE'">'
if LINEFEED=1 then underpicture=underpicture||"<BR>"
if FNAMEUPIC=1 then do
underpicture=underpicture||filenames||" "
end
if SIZEUPIC=1 then do
picsize=SUBWORD(STATEF(filenames.number),2,1)
if SIZEKB="Bytes" then picsize=picsize||" bytes"
if SIZEKB="KiloBytes" then do
picsize=picsize/1024
parse var picsize picsize "." .
picsize=picsize||" KB"
end
underpicture=underpicture||"("||picsize||")"
end
underpicture=underpicture||"</FONT></TD>"
call WRITELN("out",underpicture)
if picpage then do
line1=''
if open(picfile,filenames.number||".html","W") then do
line1=line1||'<HTML>'||R||'<BODY 'BACKGROUND||TEXTCOLOURS'>'||R||GetPercent(PHEADER,"2",filenames.number)||'<CENTER>'||R||'<BR>'||R
comm=GFXCON||' >T:thumbinfo "'||filenames.number||'" info'
address command comm
call open("fileinfo","T:thumbinfo","r")
do 4
info=READLN("fileinfo")
end
parse var info "input size: " thumbx "x" thumby .
call close("fileinfo")
line1=line1||'<IMG SRC="'||filenames||'" WIDTH="'||thumbx||'" HEIGHT="'||thumby||'"><BR><PRE>'||R
prev=number-1; next=number+1
filenamesprev=GetFilename(filenames.prev)
filenamesnext=GetFilename(filenames.next)
if number>1 then line1=line1||'<A HREF="'filenamesprev||'.html">Previous</A>   '
if number<files then line1=line1||'<A HREF="'||filenamesnext||'.html">Next</A>'
call WRITELN(picfile,line1||'<BR></PRE>'||R||line||R||'</CENTER>'||R||GetPercent(PFOOTER,"2",filenames.number)||R||'</BODY>'||R||'</HTML>')
call close(picfile)
end
else call AddList("\033bError: Cannot create picture page file for "||filenames||"!")
end
nownum=nownum+1
gauge ID STAPI ATTRS MUIA_Gauge_Current nownum
number=number+1
check ID STABO
if result=1 then call abort
end
check ID STABO
if result=1 then call abort
call WRITELN("out"," </TR>")
end
call WRITELN("out","</TABLE>")
if INDEXLINKS="Both"|INDEXLINKS="Only Bottom" then do
if pages>1 then call WRITELN("out",line||R||"<BR>")
end
call WRITELN("out","</CENTER>"||R||FOOTER||R||"</BODY>"||R||"</HTML>")
call CLOSE("out")
end
else call AddList("\033bError: Cannot create index file!!!")
end
check ID STABO
if result=1 then call abort
gauge ID STAIN ATTRS MUIA_Gauge_Current p
if p~=pages then gauge ID STAPI ATTRS MUIA_Gauge_Current 0
end
call AddList("\0333Done.")
tid=time('e')-timer_start
min=0
if tid>=60 then do
do UNTIL tid<60
tid=tid-60
min=min+1
end
end
text ID TIMER ATTRS MUIA_Text_Contents '"It took '||min||' mins '||tid||' secs."'
group ID PRTAB ATTRS MUIA_ShowMe 0
group ID STGRP ATTRS MUIA_ShowMe 1
button ID START ATTRS MUIA_Disabled 0
button ID QUIT ATTRS MUIA_Disabled 0
ADDRESS COMMAND "beep"
call DELETE("T:thumbinfo")
call DELETE("T:imgsizekb")
call DELETE("T:imageinfo")
return
abort:
call AddList("\0333Aborted.")
text ID TIMER ATTRS MUIA_ShowMe 0
group ID PRTAB ATTRS MUIA_ShowMe 0
group ID STGRP ATTRS MUIA_ShowMe 1
button ID START ATTRS MUIA_Disabled 0
button ID QUIT ATTRS MUIA_Disabled 0
ADDRESS COMMAND "beep"
call DELETE("T:thumbinfo")
call DELETE("T:imgsizekb")
call DELETE("T:imageinfo")
exit
SORT: procedure expose filenames. files
call AddList("Sorting list of files...")
do f=1 to files-1
n=f+1
if filenames.f > filenames.n then do
store=filenames.n
filenames.n=filenames.f
do bubpos=f-1 to 1 by -1 while (store < filenames.bubpos)
n=bubpos+1
filenames.n=filenames.bubpos
end bubpos
bubpos=bubpos+1
filenames.bubpos=store
end
end
return
AddList:
list ID STALI INSERT POS MUIV_List_Insert_Bottom STRING arg(1)
list ID STALI ATTRS MUIA_List_Entries
list ID STALI ATTRS MUIA_List_Active result
return
GoToURL:
ADDRESS ThumbNailMaker
string ID HINNA
indexnames=result
popasl ID GDIR
directory=result
if RIGHT(directory,1)~=":"&RIGHT(directory,1)~="/" then directory=directory||"/"
openurl('file:///'directory||indexnames'1.html')
return
GetPercent:
string1=arg(1)
string2=""
len=LENGTH(string1)
do x=1 to len
tecken=SUBSTR(string1,x,1)
if tecken="%" then do
x=x+1
tecken=SUBSTR(string1,x,1)
dir=directory
if RIGHT(dir,1)="/" then dir=DELSTR(dir,LENGTH(dir),1)
do UNTIL POS('/',dir)=0
pl=pos('/',dir)
if pl~=0 then dir=DELSTR(dir,1,pl)
end
if arg(2)=1 then do
SELECT
WHEN tecken="d" then string2=string2||DATE()
WHEN tecken="p" then string2=string2||directory
WHEN tecken="r" then string2=string2||dir
WHEN tecken="t" then string2=string2||TIME()
OTHERWISE string2=string2"%"tecken
end
end
if arg(2)=2 then do
ADDRESS COMMAND "list "arg(3)" >T:imageinfo"
call OPEN("imageinfo","T:imageinfo","r")
stuff=READLN("imageinfo")
filedate=READLN("imageinfo")
comment=READLN("imageinfo")
call CLOSE("imageinfo")
SELECT
WHEN tecken="c" then do
if LEFT(comment,2)=": " then string2=string2||DELSTR(comment,1,2)
end
WHEN tecken="d" then string2=string2||SUBWORD(filedate,4,1)
WHEN tecken="n" then string2=string2||GetFilename(arg(3))
WHEN tecken="p" then string2=string2||directory
WHEN tecken="r" then string2=string2||dir
WHEN tecken="s" then string2=string2||SUBWORD(STATEF(arg(3)),2,1)
WHEN tecken="t" then string2=string2||SUBWORD(nfo,5,1)
OTHERWISE string2=string2"%"tecken
end
end
end
else string2=string2||tecken
end
return(string2)
GetFilename:
fn=arg(1)
pl=pos(':',fn)
if pl~=0 then fn=DELSTR(fn,1,pl)
do UNTIL POS('/',fn)=0
pl=pos('/',fn)
if pl~=0 then fn=DELSTR(fn,1,pl)
end
return(fn)
KeyCheck:
if exists("ThumbNailMaker.key") then do
call OPEN("key","ThumbNailMaker.key","R")
keydata=READLN("key")
keydata2=READLN("key")
call CLOSE("key")
checksum=substr(keydata,1,1)
serial=substr(keydata,2,1)
serialchk=substr(keydata,3,1)
name=substr(keydata,4,length(keydata)-3)
checksume=substr(keydata2,1,1)
email=substr(keydata2,2,length(keydata2)-1)
end
else Return("No")
namelen=Length(name)
realsum=c2d(checksum)
serial=c2d(serial)
serialchk=c2d(serialchk)
temp=""
do I=1 to namelen
temp=temp||d2c(c2d(Right(Left(name,I),1))-(I*2))
end
name=temp
temp=""
do I=1 to namelen
temp=temp||d2c(c2d(Right(Left(name,namelen+1-I),1)))
end
name=temp
temp=""
checksum=0
do I=1 to namelen
checksum=checksum+c2d(Right(Left(name,I),1))
end
do until checksum<255
checksum=checksum-255
end
serial=serial-checksum
serialchk=serialchk-20
emaillen=Length(email)
realsume=c2d(checksume)
temp=""
do I=1 to emaillen
temp=temp||d2c(c2d(Right(Left(email,I),1))-(I*2))
end
email=temp
temp=""
do I=1 To emaillen
temp=temp||d2c(c2d(Right(Left(email,emaillen+1-I),1)))
end
email=temp
temp=""
checksume=0
do I=1 To emaillen
checksume=checksume+c2d(Right(Left(email,I),1))
end
do until checksume<255
checksume=checksume-255
end
OK="No"
If realsum=checksum&serial=serialchk&realsume=checksume then OK="Yes"
return(OK)
