Object subclass: #AlarmSetting instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'AlarmClock'! !AlarmSetting methodsFor: 'Execution' stamp: 'jd 2/25/2002 11:10'! execute "Execute this alarm"! ! !AlarmSetting methodsFor: 'Initialization' stamp: 'jd 2/25/2002 11:10'! setAction: aBlock "Set the action for this alarm"! ! !AlarmSetting methodsFor: 'Initialization' stamp: 'jd 2/25/2002 11:10'! setTime: aTime "Set the time for this alarm"! ! Object subclass: #Clock instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'AlarmClock'! !Clock methodsFor: 'Time Management' stamp: 'jd 2/25/2002 11:08'! setMode: aMode "Set the mode"! ! !Clock methodsFor: 'Time Management' stamp: 'jd 2/25/2002 11:08'! setTimeHour: hours andSecond: seconds "Set the current time"! ! !Clock methodsFor: 'Time Management' stamp: 'jd 2/25/2002 11:08'! updateTime "Update the time for a change."! ! !Clock methodsFor: 'Display' stamp: 'jd 2/25/2002 11:08'! changed "Alert dependent views that we have changed"! ! Clock subclass: #AlarmClock instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'AlarmClock'! !AlarmClock methodsFor: 'Alarms' stamp: 'jd 2/25/2002 11:06'! addAlarm: anAlarm "Add an alarm to the collection of alarms."! ! !AlarmClock methodsFor: 'Alarms' stamp: 'jd 2/25/2002 11:06'! executeAllAlarms "Execute all alarms that match the current time. This should be called every time a second passes."! ! !AlarmClock methodsFor: 'Alarms' stamp: 'jd 2/25/2002 11:06'! removeAlarm: anAlarm "Remove an alarm from the collection of alarms."! ! Object subclass: #InternalTime instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'AlarmClock'! !InternalTime methodsFor: 'accessors/modifiers' stamp: 'jd 2/25/2002 11:13'! getMode "Get the mode"! ! !InternalTime methodsFor: 'accessors/modifiers' stamp: 'jd 2/25/2002 11:13'! getTime "Get the time"! ! !InternalTime methodsFor: 'accessors/modifiers' stamp: 'jd 2/25/2002 11:13'! setMode: aMode "Set the mode"! ! !InternalTime methodsFor: 'accessors/modifiers' stamp: 'jd 2/25/2002 11:13'! setTime: aTime "Set the time"! ! Object subclass: #SecondsTicker instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'AlarmClock'! !SecondsTicker methodsFor: 'Ticking' stamp: 'jd 2/25/2002 11:13'! tick "Time advances one second"! !