 
 TUPLE: slider < track elevator thumb saved line ;
 
-: slider-value ( gadget -- n ) model>> range-value >fixnum ;
+: slider-value ( gadget -- n ) model>> range-value ;
 : slider-page ( gadget -- n ) model>> range-page-value ;
+: slider-min ( gadget -- n ) model>> range-min-value ;
 : slider-max ( gadget -- n ) model>> range-max-value ;
 : slider-max* ( gadget -- n ) model>> range-max-value* ;
+
+: slider-length ( gadget -- n ) [ slider-max ] [ slider-min ] bi - ;
+: slider-length* ( gadget -- n ) [ slider-max* ] [ slider-min ] bi - ;
 
 : slide-by ( amount slider -- ) model>> move-by ;
 : slide-by-page ( amount slider -- ) model>> move-by-page ;

            [ <up-button> f track-add ]
            [ <down-button> f track-add ]
            [ drop <gadget> { 1 1 } >>dim f track-add ]
        } cleave ;
        swap >>orientation ;

: thumb-loc ( slider -- loc )
    [ slider-value ]
    [ slider-min - ]
    [ slider>screen elevator-padding + ] tri ;

: layout-thumb-loc ( thumb slider -- )
    [ thumb-loc ] [ orientation>> ] bi n*v
