112 lines
2.1 KiB
Plaintext
112 lines
2.1 KiB
Plaintext
note
|
|
description: "[
|
|
Used with {EDITOR} classes to make EV_WIDGETs for displaying and
|
|
editting data which is a {YMD_TIME}
|
|
]"
|
|
date: "7 Mar 03"
|
|
author: "Jimmy J. Johnson"
|
|
copyright: "Copyright 2012, Jimmy J. Johnson"
|
|
license: "Eiffel Forum License v2 (see forum.txt)"
|
|
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/controls/ymd_time_control.e $"
|
|
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
|
|
revision: "$Revision: 7 $"
|
|
|
|
|
|
class
|
|
YMD_TIME_CONTROL
|
|
|
|
inherit
|
|
|
|
YMD_CONSTANTS
|
|
undefine
|
|
default_create,
|
|
is_equal,
|
|
copy
|
|
end
|
|
|
|
SPIN_CONTROL
|
|
redefine
|
|
create_interface_objects,
|
|
initialize,
|
|
value,
|
|
increment,
|
|
decrement
|
|
end
|
|
|
|
create
|
|
default_create,
|
|
make_from_field
|
|
|
|
feature {NONE} -- Initialization
|
|
|
|
create_interface_objects
|
|
-- Create objects to be used by `Current' in `initialize'
|
|
-- Implemented by descendants to create attached objects
|
|
-- in order to adhere to void-safety due to the implementation bridge pattern.
|
|
do
|
|
Precursor {SPIN_CONTROL}
|
|
set_delta (One_day)
|
|
end
|
|
|
|
initialize
|
|
-- Set up the control
|
|
do
|
|
Precursor {SPIN_CONTROL}
|
|
end
|
|
|
|
|
|
feature -- Access
|
|
|
|
value: YMD_TIME
|
|
-- A new object represented by the string in the display.
|
|
-- Redefine to convert the displayed string into the
|
|
-- desired type.
|
|
do
|
|
check attached {YMD_TIME} Precursor {SPIN_CONTROL} as c then
|
|
Result := c
|
|
end
|
|
end
|
|
|
|
delta: YMD_DURATION
|
|
-- The amount to change `value' when one of the buttons is pressed.
|
|
|
|
feature -- Element change
|
|
|
|
set_delta (a_delta: like delta)
|
|
-- Change `delta'
|
|
require
|
|
positive_delta: not a_delta.is_negative
|
|
do
|
|
delta := a_delta.twin
|
|
ensure
|
|
delta_assigned: equal (delta, a_delta)
|
|
end
|
|
|
|
feature -- Basic operations
|
|
|
|
increment
|
|
-- Increase the `value' by amount `step'.
|
|
do
|
|
Precursor {SPIN_CONTROL}
|
|
set_data (value + delta)
|
|
on_display_changed
|
|
end
|
|
|
|
decrement
|
|
-- Decrease the `value' by amount `step'.
|
|
do
|
|
Precursor {SPIN_CONTROL}
|
|
set_data (value - delta)
|
|
on_display_changed
|
|
end
|
|
|
|
feature {NONE} -- Implementation
|
|
|
|
default_field: YMD_TIME_FIELD
|
|
-- Dictates appearanced of current Control
|
|
do
|
|
create Result
|
|
end
|
|
|
|
end
|