;+ ; ; @file_comments ; ; @categories ; ; @returns ; ; @keyword dpi {in}{optional}{type=scalar}{default=72} ; used only in z buffer. specify the number of dots per inch. ; used to define the size of the virtual window activated in the Z buffer. ; ; @keyword _EXTRA ; Used to pass keywords ; ; @uses ; ; @restrictions ; ; @examples ; ; @history ; ; @version ; $Id$ ; ; @todo seb ;- FUNCTION givewindowsize, dpi = dpi, _extra = ex ; compile_opt idl2, strictarrsubs ; @cm_4ps IF NOT keyword_set(key_forgetold) THEN BEGIN @updatenew ENDIF ;------------------------------------------------------------ ; IF !d.name EQ 'Z' THEN BEGIN IF NOT keyword_set(dpi) THEN dpi = 72 coef = dpi/2.54 ; 1 inch = 2.54 cm ENDIF ELSE BEGIN dimensions = get_screen_size(RESOLUTION = resolution) coef = floor(1./resolution[0]) ENDELSE if NOT keyword_set(windowsize_scale) then BEGIN windowsize_scale = 1. IF NOT keyword_set(key_forgetold) THEN BEGIN @updateold ENDIF ENDIF coef = windowsize_scale * coef IF n_elements(coef EQ 1) THEN coef = [coef, coef] ; mipgsz = min(page_size, max = mapgsz) ; xsize = coef[0] * (mipgsz*key_portrait + mapgsz*(1-key_portrait)) ysize = coef[1] * (mipgsz*(1-key_portrait) + mapgsz*key_portrait) ; return, [xsize, ysize] end