Learn More
A user interface, such as a dialog, assists a user in synthesising a set of values, typically parameters for a command object. Code for "command parameter synthesis" is usually application-specific and non-reusable, consisting of validation logic in event handlers and code that controls how values of user interface elements change in response to a user's(More)
Large scale software is composed of libraries produced by different entities. Non-intrusive and efficient mechanisms for adapting data structures from one library to conform to APIs of another are essential for the success of large software projects. <i>Concepts</i> and <i>concept maps</i>, planned features for the next version of C++, have been designed to(More)
A key benefit of generic programming is its support for producing modules with clean separation. In particular, generic algorithms are written to work with a wide variety of unmodified types. The <i>Runtime concept</i> idiom extends this support by allowing unmodified concrete types to behave in a runtime polymorphic manner. In this paper, we describe one(More)
User interfaces for modern applications must support a rich set of interactive features. It is commonplace to find applications with dependencies between values manipulated by user interface elements, conditionally enabled controls, and script record-ability and playback against different documents. A significant fraction of the application programming(More)
User interfaces exhibit a wide range of features that are designed to assist users. Interaction with one widget may trigger value changes, disabling, or other behaviors in other widgets. Such automatic behavior may be confusing or disruptive to users. Research literature on user interfaces offers a number of solutions, including interface features for(More)
A long-held goal of software engineering has been the ability to treat software libraries as reusbale components that can be composed with programspecific code to produce applications. The object-oriented programming paradigm offers mechanisms to write libraries that are open for extension, but it tends to impose intrusive interface requirements on the(More)
Here multi-way data-flow constraints systems are viewed as <i>commutative monoids</i>. A multi-way data-flow constraints system consists of a collection of constraints, each constraint being represented as a set of directed graphs. The monoid's binary operation between two constraints is defined as the set of (non-disjoint) graph unions between all possible(More)
This report describes some properties of a class of multi-way dataflow constraint systems with hierarchies. This class arises in realizing property models, an approach that enables a high level of reuse in programming user interfaces. We prove that a constraint system in this class has a unique solution if one exists; define a class of changes in a(More)
  • 1