  User-driven applications belong to the new type of programs, in which users
get the full control of WHAT, WHEN, and HOW must appear on the screen. Such
programs can exist only if the screen view is organized not according with the
predetermined scenario, written by the developers, but if any screen object can
be moved, resized, and reconfigured by any user at any moment. This article
describes the algorithm, by which an object of an arbitrary shape can be turned
into moveable and resizable. It also explains some rules of such design and the
technique, which can be useful in many cases. Both the individual movements of
objects and their synchronous movements are analysed. After discussing the
individually moveable controls, different types of groups are analysed and the
arbitrary grouping of controls is considered.
