;HW6: Simple Calculator pro click,ev COMMON calc,x,op widget_control,ev.id,get_uvalue=uval widget_control,ev.top,get_uvalue=number widget_control,number,get_value=num if uval eq 'plus' then begin dooper,x,op,num op='+' widget_control,number,set_value='' endif if uval eq 'minus' then begin dooper,x,op,num op='-' widget_control,number,set_value='' endif if uval eq 'equals' then begin dooper,x,op,num widget_control,number,set_value=strcompress(x,/remove_all) x=0. op='' endif end pro dooper,x,op,num if op eq '' then x=num+0.0 if op eq '+' then x=x+num if op eq '-' then x=x-num end COMMON calc,x,op x=0. op='' calcbase=widget_base(xsize=100,ysize=60,title='Calculator') number=widget_text(calcbase,xsize=12,/editable,/all_events,uvalue='number') plus=widget_button(calcbase,value=' + ',yoffset=30,uvalue='plus') minus=widget_button(calcbase,value=' - ',yoffset=30,xoffset=30,uvalue='minus') equals=widget_button(calcbase,value=' = ',yoffset=30,xoffset=60,uvalue='equals') widget_control,calcbase,set_uvalue=number widget_control,calcbase,/realize xmanager,'Calculator',calcbase,event_handler='click' end