home *** CD-ROM | disk | FTP | other *** search
/ Inside Multimedia 1995 August / IMM0895.BIN / magazin / optix / disk1 / optxppac.set / LISTBOX.OPT < prev    next >
Text File  |  1995-05-08  |  6KB  |  215 lines

  1.  
  2. def(i)
  3. def(j)
  4. def(xm)
  5. def(ym)
  6. def(back)
  7. defs(dum$)
  8. defal(gp,32)
  9. defas(text$,120,300)
  10.  
  11. procedure cornerbox(x,y,xx,yy,p)
  12.   rem *** wird von 'gsbox' benötigt
  13.   locals(tl)
  14.   tl:=4
  15.   vline(x,y,x+(xx-x)/tl,y,p)
  16.   vline(x,y,x,y+(yy-y)/tl,p)
  17.   vline(xx-(xx-x)/tl,y,xx,y,p)
  18.   vline(xx,y,xx,y+(yy-y)/tl,p)
  19.   vline(x,yy,x+(xx-x)/tl,yy,p)
  20.   vline(x,yy-(yy-y)/tl,x,yy,p)
  21.   vline(xx-(xx-x)/tl,yy,xx,yy,p)
  22.   vline(xx,yy-(yy-y)/tl,xx,yy,p)
  23. return
  24. procedure gsbox(flag,stp,qx,qy,qb,qh,zx,zy,zb,zh,xb,yh,p)
  25.   rem produziert eine 'GROW'- und/oder 'SHRINK'- und/oder 'MOVE'-Box
  26.   rem
  27.   rem flag: Arbeitsmodus (3Bit-Vektor)
  28.   rem        Bit 0 gesetzt (+1) = Quellbox wird 'geshrinkt'
  29.   rem        Bit 1 gesetzt (+2) = Bewegungseffekt (Move) wird ausgeführt
  30.   rem        Bit 2 gesetzt (+4) = Zielbox wird 'gegrowt'
  31.   rem
  32.   rem stp : gibt die Anzahl der Bewegungsschritte an (beliebig)
  33.   rem
  34.   rem qx,qy,qb,qh = Xpos, Ypos, Breite und Höhe der Quellbox
  35.   rem zx,zy,zb,zh = Xpos, Ypos, Breite und Höhe der Zielbox
  36.   rem
  37.   rem xb,yh : Breite und Höhe der Bewegungsbox (MOVE)
  38.   rem p      : Verzögerungsfaktor
  39.   rem
  40.   locals(i,btst)
  41.   btst:=flag
  42.   and(btst,1)
  43.   if btst<>0
  44.     for i:=0 to stp/2 do
  45.       cornerbox(qx+i*((qb/2)/stp),qy+i*((qh/2)/stp),qx+qb-i*((qb/2)/stp),qy+qh-i*((qh/2)/stp),p)
  46.     next(i)
  47.     for i:=0 to stp/2 do
  48.       cornerbox(qx+i*((qb/2)/stp),qy+i*((qh/2)/stp),qx+qb-i*((qb/2)/stp),qy+qh-i*((qh/2)/stp),p)
  49.     next(i)
  50.   endif
  51.   btst:=flag
  52.   and(btst,2)
  53.   if btst<>0
  54.     for i:=0 to stp do
  55.       cornerbox(qx+qb/2+i*((zx+zb/2)-(qx+qb/2))/stp-xb/2,qy+qh/2+i*((zy+zh/2)-(qy+qh/2))/stp-yh/2,qx+qb/2+i*((zx+zb/2)-(qx+qb/2))/stp+xb/2,qy+qh/2+i*((zy+zh/2)-(qy+qh/2))/stp+yh/2,p)
  56.     next(i)
  57.     for i:=0 to stp do
  58.       cornerbox(qx+qb/2+i*((zx+zb/2)-(qx+qb/2))/stp-xb/2,qy+qh/2+i*((zy+zh/2)-(qy+qh/2))/stp-yh/2,qx+qb/2+i*((zx+zb/2)-(qx+qb/2))/stp+xb/2,qy+qh/2+i*((zy+zh/2)-(qy+qh/2))/stp+yh/2,p)
  59.     next(i)
  60.   endif
  61.   btst:=flag
  62.   and(btst,4)
  63.   if btst<>0
  64.     for i:=stp/2 to stp do
  65.       cornerbox(zx+zb/2-i*((zb/2)/stp),zy+zh/2-i*((zh/2)/stp),zx+zb/2+i*((zb/2)/stp),zy+zh/2+i*((zh/2)/stp),p)
  66.     next(i)
  67.     for i:=stp/2 to stp do
  68.       cornerbox(zx+zb/2-i*((zb/2)/stp),zy+zh/2-i*((zh/2)/stp),zx+zb/2+i*((zb/2)/stp),zy+zh/2+i*((zh/2)/stp),p)
  69.     next(i)
  70.   endif
  71. return
  72.  
  73.  
  74. include('listbox.inc')
  75.  
  76. begin
  77.  
  78.     new(text$)
  79.     new(gp)
  80.     break(off)
  81.     clearscreen(3)
  82.     scrtobuf
  83.  
  84.     readtext('listbox.inc',1,120)
  85.  
  86.     rem ***************Listbox-Parameter*******************************
  87.     rem     (xl,yo ,zeich,zeil,fnt,txsta,pos,lines,rcol,tcol,bcol)
  88.     rem      |   |   |     |   |    |    |    |     |    |    |
  89.  
  90.  
  91.     listbox(10 ,30 ,76   ,-10 ,-1 , 3   ,1  ,-107 , 0  , 0  , 15)
  92.     viewport(20,20,gp[17]+10,gp[18]+10)
  93.     cbox(9,0,0)
  94.     viewport(10,5,gp[17],gp[18])
  95.     cbox(0,8,0)
  96.     plateau(0,15)
  97.     viewport(10,5,gp[17],29)
  98.     plateau(0,15)
  99.     sysfont(2,1)
  100.     printc((gp[17]-20)/2,12,'...nur Textbetrachter...')
  101.     printc((gp[17]-20)/2,23,'(Exit auch durch Klick außerhalb)')
  102.     listbox(10 ,30 ,76   ,10  ,-1 , 3   ,1  ,-107 ,0   ,0   ,15)
  103.  
  104.  
  105.  
  106.     readtext('datlist.lst',201,20)
  107.  
  108.     back:=201
  109.     gp[20]:=1
  110.     listbox(350,230 ,12  ,-8  ,2 ,202   ,5 ,14   ,0    ,4   ,7)
  111.     repeat
  112.       viewport(350,230,gp[17],gp[18])
  113.       cbox(0,15,0)
  114.       plateau(15,0)
  115.       printc(350+(gp[17]-350)/2,160,'Auswahl m.hor.u.vert.Scroll')
  116.       printc(350+(gp[17]-350)/2,180,'..Exit nur durch <Return>..')
  117.       listbox(350,230 ,12   ,8   ,2  ,202 ,gp[20],14  ,0    ,4   ,7)
  118.     until gp[19]=1
  119.     viewport(350,230,gp[17],gp[18])
  120.     restorebox(15,10)
  121.     printat(350,200 ,'gewählt: '+text$[back])
  122.  
  123.  
  124.  
  125.  
  126.     readfiles('C:\DOS','*.COM;*.EXE')
  127.  
  128.     rem ************************GSBOX-Parameter*****************************
  129.     rem  (flag ,stp ,qx ,qy ,qb        ,qh        ,zx ,zy ,zb ,zh ,xb ,yh ,p)
  130.     rem    |     |    |   |   |          |         |    |   |   |   |   |  |
  131.  
  132.     gsbox( 7   , 6  ,350,230,gp[17]-350,gp[18]-230,20 ,340,300,100,10 ,10 ,5)
  133.  
  134.     listbox(20,340 ,-1   ,-6   ,2  ,1  ,3  ,linctr ,0    ,15   ,8)
  135.  
  136.     xm:=gp[17]
  137.     ym:=gp[18]
  138.     printc(50+(xm-20)/2,270,'Datei-Auswahl mit vert.Scroll,')
  139.     printc(50+(xm-20)/2,290,'Auswahlvorgabe u.List-Offset 3')
  140.  
  141.     viewport(20,340,xm+62,ym)
  142.     cbox(0,7,0)
  143.     plateau(0,0)
  144.     incviewport
  145.     plateau(15,0)
  146.     incviewport
  147.     incviewport
  148.     plateau(15,0)
  149.     setcolor(0)
  150.     viewport(xm+1,341,xm+61,340+(ym-340)/2-1)
  151.     plateau(0,15)
  152.     decviewport
  153.     plateau(0,15)
  154.     printc(xm+31,340+(ym-340)/4+1,'OKAY')
  155.     viewport(xm+1,340+(ym-340)/2+1,xm+61,ym-1)
  156.     plateau(0,15)
  157.     printc(xm+31,340+(ym-340)*3/4+1,'CANCEL')
  158.  
  159.     back:=6
  160.     listbox(20,340 ,-1   ,6   ,-2  ,1  ,3  ,linctr ,0    ,15   ,8)
  161.     setcolor(14)
  162.     printat(20,310 ,'gewählt: ')
  163.  
  164.     dum$:=text$[back]
  165.     mid(dum$,1,1)
  166.     if dum$='['
  167.       printc(520,320 ,'Verzeichnisse werden nur')
  168.       printc(520,330 ,'als String zurückgegeben.')
  169.       printc(520,340 ,'Es erfolgt kein Wechsel!')
  170.     endif
  171.  
  172.     if gp[19]=2
  173.       inbox(xm-1,341,xm+60,340+(ym-340)/2-1,i)
  174.       if i=true
  175.         viewport(xm+2,341,xm+59,340+(ym-340)/2-2)
  176.         cbox(9,0,0)
  177.         printat(100,310 ,'OKAY : '+text$[back])
  178.         beep
  179.       endif
  180.       inbox(xm-1,340+(ym-340)/2+1,xm+59,ym-1,i)
  181.       if i=true
  182.         viewport(xm+2,340+(ym-340)/2+1,xm+61,ym-2)
  183.         cbox(9,0,0)
  184.         printat(100,310 ,'CANCEL')
  185.       endif
  186.     else
  187.       if gp[19]=1
  188.         viewport(xm+2,341,xm+59,340+(ym-340)/2-2)
  189.         cbox(9,0,0)
  190.         printat(100,310 ,'<Return>: '+text$[back])
  191.         beep
  192.       else
  193.         viewport(xm+2,340+(ym-340)/2+1,xm+59,ym-2)
  194.         cbox(9,0,0)
  195.         if gp[19]=3
  196.           printat(100,310 ,'Abbruch durch [ESC]')
  197.         else
  198.           if gp[19]=4
  199.             printat(100,310 ,'Abbruch m.re.Maustaste')
  200.           endif
  201.         endif
  202.       endif
  203.     endif
  204.     pause(250)
  205.     viewport(20,340,xm+62,ym)
  206.     restorebox(8,0)
  207.     curson(mousex,mousey)
  208.     pause(0)
  209.  
  210. end
  211.  
  212.  
  213.  
  214.  
  215.