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

  1. ' The Object window routines
  2. ' requires object.bas
  3. SUB InitObjectWindows
  4. SHARED woObjectTree&(1),woBaseX(1),woBaseY(1),ObjectWindowsInitialised,max_windows
  5. ' Object specific
  6. REDIM    woObjectTree&(max_windows)    ' pointer to object tree to be displayed
  7.                                 ' or 0 if 'normal'
  8. REDIM woBaseX(max_windows),woBasey(max_windows)
  9. ObjectWindowsInitialised=-1
  10. END SUB
  11.  
  12. SUB ObjectReDraw
  13. SHARED commonx,commony,commonw,commonh,commonhandle
  14. STATIC i,x,y,w,h,ActualX,ActualY
  15. SHARED woObjectTree&(1),woOffX(1),woOffY(1),woBaseX(1),woBaseY(1),tree&
  16.  
  17. STATIC    oldtree&
  18.     oldtree&=tree&
  19.     i=WhichWindow(commonHandle)
  20.     IF i=0 THEN EXIT SUB ' panic
  21.     SelectTreeAddr woObjectTree&(i)
  22.     junk=wind_get(CommonHandle,WF_WORKXYWH,x,y,w,h)
  23.  
  24.     Setob_x 0,woBaseX(i)-woOffX(i)+x
  25.     Setob_y 0,woBasey(i)-woOffY(i)+y
  26.     junk=objc_draw(tree&,0,7,commonx,commony,commonw,commonh)
  27.     SelectTreeAddr oldtree&
  28. END SUB
  29.  
  30. SUB ObjectSliderMax
  31. SHARED commoni,commonmaxx,commonmaxy
  32. SHARED woObjectTree&(1),woBaseX(1),woBaseY(1)
  33. STATIC x,y,oldtree&,new
  34. IF woObjectTree&(commoni)<>0 THEN
  35.     oldtree&=tree&
  36.     SelectTreeAddr woObjectTree&(commoni)
  37.     commonmaxx=woBaseX(commoni)+Getob_width(0)
  38.     commonmaxy=woBaseY(commoni)+Getob_height(0)
  39.     SelectTreeAddr oldtree&
  40. END IF
  41. END SUB
  42.  
  43. SUB ObjectClose
  44. END SUB
  45.  
  46. '     As OpenAWindow except the Object Tree whose Address is given by
  47. '    p  is always - rather than a specific redraw routine. This will
  48. '    handle scroll events
  49. FUNCTION OpenObjectWindowAddr(WindowName$,WindComp,treeaddr&)
  50. STATIC WindowHandle,oldtree&
  51. SHARED woObjectTree&(1),woBaseX(1),woBaseY(1)
  52. SHARED woType(1),HowManyWindows,ObjectWindowsInitialised
  53.     WindowHandle=OpenAWindow(WindowName$,WindComp,VARPTRS(ObjectReDraw),VARPTRS(ObjectSliderMax),VARPTRS(ObjectClose))
  54.     IF ObjectWindowsInitialised=0 THEN  CALL InitObjectWindows
  55.     IF WindowHandle >= 0 THEN
  56.             woObjectTree&(HowManyWindows)=treeaddr&
  57.             oldtree&=tree&
  58.             SelectTreeAddr treeaddr&
  59.             woType(HowMAnyWindows)=woTobject
  60.             woBaseX(HowManyWindows)=Getob_x(0)
  61.             woBaseY(HowManyWindows)=Getob_y(0)
  62.             SelectTreeAddr oldtree&
  63.         END IF
  64.     OpenObjectWindowAddr=WindowHandle
  65. END FUNCTION
  66.  
  67. FUNCTION OpenObjectWindow(WindowName$,BYVAL WindComp,BYVAL treeno)
  68. STATIC junk,formaddr&,temp
  69.     junk=rsrc_gaddr(type_tree,treeno,formaddr&)
  70.     temp=OpenObjectWindowAddr(windowName$,WindComp,formaddr&)
  71.     OpenObjectWindow=temp
  72. END FUNCTION
  73.