/* Overview.rexx, 12.11.94 Jörg Richter */

OPTIONS RESULTS

thumbsize = 150
style     = 2   /* Stil für 3D Rahmen, möglich ist 1, 2 oder 3 */

ADDRESS COMMAND
'C:Copy PicBase/Box0_' || style || '.iff PicBase/Box1_' || style || '.iff T:'

ADDRESS DataBase

GetMaskSize
size = result
width = WORD(size,1)
height = WORD(size,2)

xoff = (width-((width%thumbsize)*thumbsize))%2
yoff = (height-((height%thumbsize)*thumbsize))%2

doit = 1

DO FOREVER
  IF doit = 1 THEN DO
    Current
    nr = result
    CALL Overview
    END
  ADDRESS COMMAND "PicBase/PicControl"
  command = RC
  IF ((command > 2) & (command < 6)) THEN DO
    qual = command
    WaitCommand "Wählen Sie das Bild mit der Maus aus ..."
    command = result
  END
  doit = 1
  IF WORDS(command) > 1 THEN DO
    mx = WORD(command,1)
    my = WORD(command,2)
    Current
    ds = result
    last = ds
    select = nr + (mx-xoff)%thumbsize + ((my-yoff)%thumbsize)*(width%thumbsize)
    Display Off
    DO WHILE ds > select
      LeftOne
      ds = ds - 1
    END
    Display On
    IF qual = 3 THEN DO
      Show NEW
      EXIT
      END
    ELSE DO
      IF qual = 5 THEN DO
        Mark
        CALL ShowPicture ((mx-xoff)%thumbsize)*thumbsize+xoff ((my-yoff)%thumbsize)*thumbsize+yoff
        END
      ELSE
        Execute 1
      Display Off
      DO WHILE ds < last
        RightOne
        ds = ds + 1
      END
      Display On
      doit = 0
      END
    END
  ELSE DO
    IF command = 6 THEN DO
      Display Off
      Current
      ds = result
      DO WHILE ds > nr
        LeftOne
        ds = ds - 1
      END
      Display On
      Show NEW
      EXIT
      END
    IF command = 2 THEN DO
      Display Off
      Current
      ds = result
      nr = nr - (width%thumbsize)*(height%thumbsize)
      IF nr < 1 THEN nr = 1
      DO WHILE ds > nr
        LeftOne
        ds = ds - 1
      END
      Display On
      END
    END
END

EXIT


ShowPicture:

ARG xx yy .

GetData $F4
name = result
IsMarked
IF RC = 5 THEN
  LoadPic "T:box0_" || style || ".iff" xx yy
ELSE
  LoadPic "T:box1_" || style || ".iff" xx yy
LoadPic name xx yy CENTER
Current
Text xx+4 yy+thumbsize-5 1 result
/*
  Statt einfach der Datensatznummer könnte auch der Bildname angezeigt werden:

  pos = LastPos("/",name)
  Text xx+4 yy+thumbsize-5 1 SubStr(name,pos+1,Length(name)-pos)
*/
RETURN


Overview:

ClearMask
Display Off
x = xoff
y = yoff

weiter = 1

DO WHILE weiter = 1

  CALL ShowPicture x y
  x = x + thumbsize
  IF x > width-thumbsize THEN DO
    IF y < height-(thumbsize*2) THEN DO
      x = xoff
      y = y + thumbsize
      END
    ELSE
      weiter = 0
    END
  RightOne
  IF RC ~= 0 THEN
    weiter = 0

END

Display On

RETURN
