home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / HISOFT.LZH / HISOFT_A.MSA / HGT / OBJCEXT.BAS < prev    next >
BASIC Source File  |  1993-08-03  |  1KB  |  50 lines

  1. SUB ObjcExtent(BYVAL obj,x,y,w,h)
  2. STATIC ob_spec&,typ,border,offset
  3. static mask3d,w1,h1
  4.     junk=objc_offset(tree&,obj,x,y)
  5.     w=getob_width(obj)
  6.     h=getob_height(obj)
  7.     ob_spec&=getob_spec&(obj)
  8.     IF getob_flags(obj) AND mask_indirect THEN
  9.         ob_spec&=PEEKL(ob_spec&)
  10.     END IF
  11.     typ=getob_type(obj) and &hff
  12.     SELECT CASE typ
  13.     CASE G_TEXT,G_BOXTEXT,G_FBOXTEXT,G_FTEXT:
  14.         border=PEEKW(ob_spec&+te_thickness)
  15.     CASE G_BOXCHAR:
  16.         border=(ob_spec&>>16) AND &hff
  17.         IF border>127 THEN border=border-256
  18.     CASE G_BUTTON:
  19.         border=-1
  20.         IF getob_flags(obj) AND mask_default THEN DECR border
  21.         IF getob_flags(obj) AND mask_exit THEN DECR border
  22.     CASE ELSE:
  23.         border=0
  24.     END SELECT
  25.     IF border>=0 THEN offset=0 ELSE offset=border:border=-border
  26.     IF getob_state(obj) AND mask_outlined THEN
  27.             IF offset>-3 THEN offset=-3
  28.     END IF
  29.     x=x+offset
  30.     y=y+offset
  31.     w=w-offset*2
  32.     h=h-offset*2
  33.     IF aes_version>=&H340 THEN
  34. ' 3D stuff available
  35.             mask3d= getob_flags(obj) and mask_3d
  36.             if mask3d=fl3dind or mask3d=fl3dact then
  37.                 junk=objc_sysvar( 0,AD3DVALUE,0,0,w1,h1)
  38.                 x=x-w1
  39.                 y=y-h1
  40.                 w=w+w1*2
  41.                 h=h+h1*2
  42.             end if
  43.     end if                
  44.  
  45.     
  46.     IF getob_state(obj) AND mask_shadowed THEN
  47.             w=w+border*2
  48.             h=h+border*2
  49.     END IF
  50. END SUB