struct TranspEdit = [ TRANSPEDITwin : ObjWin, TRANSPEDITcheck : ObjCheck, TRANSPEDITslider : ObjSlider ] mkTranspEdit;; typeof TranspEditList = [TranspEdit r1];; fun TRANSPEDIT_Clear (transp, param) = _DSslider transp.TRANSPEDITslider; _DSwindow transp.TRANSPEDITwin; 0 ;; fun TRANSPEDIT_Close (transp, param) = TRANSPEDIT_Clear transp param; set TranspEditList = remove_from_list TranspEditList transp; 0 ;; fun _destroyTranspWin(win,transp)= TRANSPEDIT_Close transp nil;; fun _okTranspButton(b,param)= let param -> [transp end] in ( exec end with [(_GETcheck transp.TRANSPEDITcheck) (ftoi _GETsliderLeft transp.TRANSPEDITslider)]; TRANSPEDIT_Close transp nil );; fun _cancelTranspButton(b,transp)= TRANSPEDIT_Close transp nil;; fun _CRtranspMap(ch,father,x,y,title,end,istransp,transp)= let _CRwindow ch father x y 300 95 WN_NORMAL title -> win in let _CRslider ch win nil 10 0 280 50 0xff0000 (itof 0) (itof 255) (itof transp) (itof transp) nil SLIDER_INTER_FIXED|SLIDER_DRAW_SCALE|SLIDER_DRAW_VALUE|SLIDER_BUTTON -> slider in let _CRcheck ch win 5 55 190 15 0 _loc this "DIAG_TRANSPARENT" nil -> check in let _CRbutton ch win 5 75 70 20 0 _loc this "OK_BUTTON" nil -> okbutton in let _CRbutton ch win 220 75 70 20 0 _loc this "CANCEL_BUTTON" nil -> cancelbutton in let mkTranspEdit [win check slider] -> transp in ( _SETsliderPrecisionStep slider (itof 1); _SETsliderPrecisionMark slider 0; _SETcheck check istransp; _CBwinClose win @_destroyTranspWin transp; _CBbutton okbutton @_okTranspButton [transp end]; _CBbutton cancelbutton @_cancelTranspButton transp; set TranspEditList = transp::TranspEditList; 0 );; fun TRANSPEDIT_CloseAll () = apply_on_list TranspEditList @TRANSPEDIT_Clear nil; set TranspEditList = nil; 0 ;;