note description: "Test of EV_GAUGE." legal: "See notice at end of class." status: "See notice at end of class." date: "$Date$" revision: "$Revision$" class GAUGES inherit EV_APPLICATION create make_and_launch feature {NONE} -- Initialization make_and_launch -- Create `Current', set up controls and launch. do default_create test_gauges launch end test_gauges -- Initialize controls and display `first_window'. local vb: EV_VERTICAL_BOX hb: EV_HORIZONTAL_BOX do create vb first_window.extend (vb) create hb vb.extend (hb) vb.disable_item_expand (hb) create sb vb.extend (sb) create pb vb.extend (pb) create hr vb.extend (hr) create min_field.make_with_value_range (-1000 |..| 1) min_field.set_value (1) hb.extend (create {EV_LABEL}.make_with_text ("Min: ")) hb.extend (min_field) create val_field hb.extend (create {EV_LABEL}.make_with_text ("Val: ")) hb.extend (val_field) create max_field.make_with_value_range (1 |..| 1000) max_field.set_value (100) hb.extend (create {EV_LABEL}.make_with_text ("Max: ")) hb.extend (max_field) min_field.change_actions.extend (agent on_min_change (?)) max_field.change_actions.extend (agent on_max_change (?)) sb.change_actions.extend (agent on_sb_change (?)) val_field.change_actions.extend (agent on_val_change (?)) hr.change_actions.extend (agent on_hr_change (?)) val_field.value_range.adapt (min_field.value |..| max_field.value) sb.value_range.adapt (min_field.value |..| max_field.value) pb.value_range.adapt (min_field.value |..| max_field.value) hr.value_range.adapt (min_field.value |..| max_field.value) first_window.close_request_actions.extend (agent destroy) first_window.set_maximum_height (250) first_window.show end feature -- Implementation on_min_change (value: INTEGER) -- Adjust minimums of controls. do val_field.value_range.adapt (min_field.value |..| val_field.value_range.upper) sb.value_range.adapt (min_field.value |..| sb.value_range.upper) pb.value_range.adapt (min_field.value |..| pb.value_range.upper) hr.value_range.adapt (min_field.value |..| hr.value_range.upper) end on_max_change (value: INTEGER) -- Adjust maximums of controls. do val_field.value_range.adapt (val_field.value_range.lower |..| max_field.value) sb.value_range.adapt (sb.value_range.lower |..| max_field.value) pb.value_range.adapt (pb.value_range.lower |..| max_field.value) hr.value_range.adapt (hr.value_range.lower |..| max_field.value) end on_sb_change (value: INTEGER) -- Value of `sb' changed so update other controls. do max_field.value_range.adapt (sb.value |..| max_field.value_range.upper) min_field.value_range.adapt (min_field.value_range.lower |..| sb.value) val_field.set_value (sb.value) pb.set_value (sb.value) hr.set_value (sb.value) end on_hr_change (value: INTEGER) -- Value of `hr' changed so update other controls. do max_field.value_range.adapt (hr.value |..| max_field.value_range.upper) min_field.value_range.adapt (min_field.value_range.lower |..| hr.value) val_field.set_value (hr.value) pb.set_value (hr.value) sb.set_value (hr.value) end on_val_change (value: INTEGER) -- Value of `val_field' changed so update other controls. do max_field.value_range.adapt (val_field.value |..| max_field.value_range.upper) min_field.value_range.adapt (min_field.value_range.lower |..| val_field.value) sb.set_value (val_field.value) pb.set_value (val_field.value) hr.set_value (val_field.value) end first_window: EV_TITLED_WINDOW -- Window for this sample. once create Result Result.set_title ("Main window") end max_field: EV_SPIN_BUTTON -- Contains the maximum allowable value of `sb', `pb' and `hr'. min_field: EV_SPIN_BUTTON -- Contains the minimu allowable value of `sb', `pb' and `hr'. val_field: EV_SPIN_BUTTON sb: EV_HORIZONTAL_SCROLL_BAR -- Scroll bar for test. pb: EV_HORIZONTAL_PROGRESS_BAR -- Progress bar for test. hr: EV_HORIZONTAL_RANGE; -- Horizontal range for test. note copyright: "Copyright (c) 1984-2006, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 356 Storke Road, Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class DIALOG_TEST