2 // control/data/value.qc
6 Item_DataLink_Value_Clamp
9 void() Item_DataLink_Value_Clamp =
11 if( self._realValue > self.maxValue && self.maxValue > self.minValue )
12 self._realValue = self.maxValue;
13 else if( self._realValue < self.minValue )
14 self._realValue = self.minValue;
15 else // clamp it to(?) stepValue
16 self._realValue = self.minValue + self.stepValue * rint( ( self._realValue - self.minValue ) / self.stepValue );
21 Item_DataLink_Value_ClampedText
24 string() Item_DataLink_Value_ClampedText =
26 return Util_FloatToClampedText( self._realValue, self.stepValue );
31 Item_DataLink_Value_DataEvent
34 void( float pEvent ) Item_DataLink_Value_DataEvent =
36 Item_DataLink_Update();
38 if( pEvent == ITEM_DATALINK_SET ) {
39 Item_DataLink_Value_Clamp();
41 self._link._realValue = self._realValue;
42 String_EntitySet( self._link, value, ftos( self._realValue ) );
43 Raise_DataEvent( self._link, ITEM_DATALINK_SET );
45 } else if( !self._link )
47 else if( pEvent == ITEM_DATALINK_GET ) {
48 Raise_DataEvent( self._link, ITEM_DATALINK_GET );
49 self._realValue = stof( self._link.value );
50 String_EntitySet( self, value, Item_DataLink_Value_ClampedText() );
51 Item_DataLink_Value_Clamp();
53 Raise_DataEvent( self._link, pEvent );
58 Item_DataLink_Value_Spawn
61 void() Item_DataLink_Value_Spawn =
65 if( self.stepValue == 0.0 )
68 self._dataEvent = Item_DataLink_Value_DataEvent;