


## label-slider.pkg
# Compiled by:
# src/lib/x-kit/tut/widget/widgets.lib### "The best measure of a man's honesty
### isn't his income tax return. It's the
### zero adjust on his bathroom scale."
###
### -- Arthur C. Clarke
stipulate
include threadkit; # threadkit is from src/lib/src/lib/thread-kit/src/core-thread-kit/threadkit.pkg #
package lbl = label; # label is from src/lib/x-kit/widget/leaf/label.pkg package rx = run_xkit; # run_xkit is from src/lib/x-kit/widget/lib/run-xkit.pkg package top = topwindow; # topwindow is from src/lib/x-kit/widget/basic/topwindow.pkg package wg = widget; # widget is from src/lib/x-kit/widget/basic/widget.pkg package wa = widget_attribute; # widget_attribute is from src/lib/x-kit/widget/lib/widget-attribute.pkg package wy = widget_style; # widget_style is from src/lib/x-kit/widget/lib/widget-style.pkg package wt = widget_types; # widget_types is from src/lib/x-kit/widget/basic/widget-types.pkg #
package sl = slider;
package low = line_of_widgets; # line_of_widgets is from src/lib/x-kit/widget/layout/line-of-widgets.pkgherein
package label_slider: api {
do_it': (List(String), String) -> Void;
do_it: Void -> Void;
main: (List(String), X) -> Void;
}
{
resources
=
[ "*relief: raised",
"*background: forestgreen\n"
];
fun make_label_slider (root, view)
=
{ l_args = [ (wa::label, wa::STRING_VAL "0"),
(wa::width, wa::INT_VAL 4 ),
(wa::halign, wa::HALIGN_VAL wt::HRIGHT)
];
label = lbl::make_label' (root, view, l_args);
s_args = [ (wa::width, wa::INT_VAL 20),
(wa::is_vertical, wa::BOOL_VAL FALSE)
];
slider = sl::make_slider (root, view, s_args);
fun set l
=
lbl::set_label label (lbl::TEXT l);
slider_motion' = sl::slider_motion'_of slider;
fun loop ()
=
for (;;) {
#
set (int::to_string (do_mailop slider_motion'));
};
make_thread "label slider" loop;
low::as_widget
(low::line_of_widgets
(root, view,[])
(low::HZ_CENTER
[
# SPACER { min_size=>0, ideal_size=>20, max_size=>NULL },
low::WIDGET (lbl::as_widget label),
low::SPACER { min_size=>20, ideal_size=>20, max_size=>THE 20 },
low::WIDGET (sl::as_widget slider)
]
)
);
};
fun tester root
=
{ top::start topwindow;
loop ();
}
where
fun quit ()
=
{ wg::delete_root_window root;
shut_down_thread_scheduler winix::process::success;
};
style = wg::style_from_strings (root, resources);
name = wy::make_view
{ name => wy::style_name [],
aliases => [ wy::style_name [] ]
};
view = (name, style);
lslider = make_label_slider (root, view);
layout
=
low::line_of_widgets
(root, view, [])
(low::VT_CENTER
[ low::WIDGET lslider,
low::HZ_CENTER
[ low::SPACER { min_size=>0, ideal_size=>300, max_size=>NULL } ]
]
);
topwindow = top::topwindow
(root, view,[])
(low::as_widget layout);
fun loop ()
=
case (file::read_line file::stdin)
#
THE string
=>
string == "quit\n" ?? quit ()
:: loop ();
NULL
=>
quit ();
esac;
end;
fun do_it' (debug_flags, server)
=
{ xlogger::init debug_flags;
rx::run_xkit'
#
tester
#
{ display => THE server,
time_quantum_in_milliseconds => NULL
};
};
fun do_it ()
=
rx::run_xkit tester;
fun main (program ! server ! _, _) => do_it'([], server);
main _ => do_it ();
end;
}; # package label_slider
end;
## COPYRIGHT (c) 1991, 1995 by AT&T Bell Laboratories. See COPYRIGHT file for details.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.


