| author | nipkow | 
| Mon, 02 Apr 2012 20:12:10 +0200 | |
| changeset 47302 | 70239da25ef6 | 
| parent 46768 | 46acd255810d | 
| child 47993 | 135fd6f2dadd | 
| permissions | -rw-r--r-- | 
| 45674 | 1 | /* Title: Pure/General/time.scala | 
| 45673 
cd41e3903fbf
separate compilation of PIDE vs. Pure sources, which enables independent Scala library;
 wenzelm parents: 
45667diff
changeset | 2 | Module: PIDE | 
| 40393 | 3 | Author: Makarius | 
| 4 | ||
| 45674 | 5 | Time based on milliseconds. | 
| 40393 | 6 | */ | 
| 7 | ||
| 8 | package isabelle | |
| 9 | ||
| 45664 | 10 | |
| 40848 
8662b9b1f123
more abstract/uniform handling of time, preferring seconds as Double;
 wenzelm parents: 
40393diff
changeset | 11 | object Time | 
| 40393 | 12 | {
 | 
| 40848 
8662b9b1f123
more abstract/uniform handling of time, preferring seconds as Double;
 wenzelm parents: 
40393diff
changeset | 13 | def seconds(s: Double): Time = new Time((s * 1000.0) round) | 
| 44699 
5199ee17c7d7
property "tooltip-dismiss-delay" is edited in ms, not seconds;
 wenzelm parents: 
40852diff
changeset | 14 | def ms(m: Long): Time = new Time(m) | 
| 40393 | 15 | } | 
| 16 | ||
| 46712 | 17 | final class Time private(val ms: Long) | 
| 40848 
8662b9b1f123
more abstract/uniform handling of time, preferring seconds as Double;
 wenzelm parents: 
40393diff
changeset | 18 | {
 | 
| 
8662b9b1f123
more abstract/uniform handling of time, preferring seconds as Double;
 wenzelm parents: 
40393diff
changeset | 19 | def seconds: Double = ms / 1000.0 | 
| 40852 | 20 | |
| 21 | def min(t: Time): Time = if (ms < t.ms) this else t | |
| 22 | def max(t: Time): Time = if (ms > t.ms) this else t | |
| 23 | ||
| 46768 | 24 | def is_relevant: Boolean = ms >= 1 | 
| 25 | ||
| 40848 
8662b9b1f123
more abstract/uniform handling of time, preferring seconds as Double;
 wenzelm parents: 
40393diff
changeset | 26 | override def toString = | 
| 
8662b9b1f123
more abstract/uniform handling of time, preferring seconds as Double;
 wenzelm parents: 
40393diff
changeset | 27 | String.format(java.util.Locale.ROOT, "%.3f", seconds.asInstanceOf[AnyRef]) | 
| 46768 | 28 | |
| 40848 
8662b9b1f123
more abstract/uniform handling of time, preferring seconds as Double;
 wenzelm parents: 
40393diff
changeset | 29 | def message: String = toString + "s" | 
| 
8662b9b1f123
more abstract/uniform handling of time, preferring seconds as Double;
 wenzelm parents: 
40393diff
changeset | 30 | } | 
| 
8662b9b1f123
more abstract/uniform handling of time, preferring seconds as Double;
 wenzelm parents: 
40393diff
changeset | 31 |