Viewing contents of file '../idllib/contrib/tappin/graffer/graff_just.pro'
;+
; GRAFF_JUST
;	Set "non-standard" text justification
;
; Usage:
;	align = graff_just(initial, group=group)
;
; Return Value:
;	align	float	The new justification setting
;
; Argument:
;	initial	float	input	The previous justification setting
;	use_timer byte	input	Whether to use the timer events to
;				keep it on top
;
; Keyword:
;	group	long	input	The widget ID of the caller.
;
; History:
;	Original: 5/10/95; SJT
;-

function Just_event, event

widget_control, event.id, get_uvalue = but
widget_control, event.handler, get_uvalue = jsl

iexit = 0
alg = 0

case (but) of
    'POP': begin
        widget_control, event.top, /show
        widget_control, event.id, timer = 2.
    end
    'JUST': alg = event.value
    'DONE': begin
        iexit = 1
        widget_control, jsl, get_value = alg
    end
endcase

return, {id:event.handler, top:event.top, handler:0l, value:alg, $
         Exit:iexit}

end

function Graff_just, align, use_timer, group=group

widget_control, group, sensitive = 0

tlb = widget_base(group = group, title = 'Graffer alignment',  $
                 resource = 'Graffer')
base = widget_base(tlb, /column, event_func = 'just_event')

jb = widget_base(base, /row, uvalue = 'POP')
junk = widget_label(jb, value = 'Left:')
jsl = cw_fslider(jb, value = align, min = 0., max = 1., /drag, uvalue $
                  = 'JUST', format = "(F5.3)")
junk = widget_label(jb, value = ':Right')

junk = widget_button(base, value = 'Done', uvalue = 'DONE')

widget_control, base, set_uvalue = jsl
widget_control, tlb, /real
if (use_timer) then widget_control, jb, timer = 2.


repeat ev = widget_event(base) until ev.exit

widget_control, ev.top, /destroy
widget_control, group, /sensitive

return, ev.value

end