Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bd5c3d824c3db63ffd9226c15941e6ad > files > 2341

mozart-1.4.0-1mdv2010.0.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>1 Introduction</TITLE><LINK href="ozdoc.css" rel="stylesheet" type="text/css"></HEAD><BODY><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="toc.html#label1">&lt;&lt; Prev</A></TD><TD><A href="index.html">- Up -</A></TD><TD><A href="node2.html#chapter.started">Next &gt;&gt;</A></TD></TR></TABLE><DIV id="chapter.introduction"><H1><A name="chapter.introduction">1 Introduction</A></H1><P> This document is an introduction to window programming in Mozart. Window programming means to build graphical and interactive interfaces for applications. </P><P> In Mozart, the basic building blocks for window programming are <A name="label2"></A>widgets: objects that represent graphical entities like labels, buttons, and menus. <A name="label3"></A>Windows are described compositionally by means of object hierarchies and are subject to dynamic and interactive modification. Other entities we will deal with are for example fonts and images. The appearance of widgets is managed by geometry managers. Interaction events, such as pressing a mouse button, trigger execution of procedures or methods. </P><P> Mozart uses an object-oriented interface to Tk for window programming. The interface inherits from Oz concurrency, objects and first-class procedures. From Tk the interface inherits a set of powerful graphical abstractions. This document introduces both aspects: the basic usage of the graphical abstractions and how to profit from Oz's language features. The interface employs a simple generic mapping to Tk. People familiar with Tk will get acquainted very soon. </P><DIV class="unnumbered"><H2><A name="label4">The Examples</A></H2><P> The documents features a large number of <A name="label5"></A>examples which are designed to be tried by the reader. All examples are contained in a <A href="WindowProgramming.oz">demo file</A> to be used with the <A href="../opi/index.html">``The Oz Programming Interface''</A>. </P></DIV><DIV class="unnumbered"><H2><A name="label6">Further Information</A></H2><P> One particular advantage of using Tk as graphics engine for Mozart is the wealth of excellent <A name="label7"></A>documentation for Tcl and Tk. </P><P> A must read (or at least see or browse) in this particular respect is the original <A href="bib.html#ousterhout.94">book</A> of John Ousterhout. A very fascinating account on how to employ the graphical primitives in Tk for developing high-level graphical applications is <A href="bib.html#harrisonmclennan.98">[HM98]</A>. </P><P> The definitive entry point into the full collection of Tcl/Tk related resources and informations is the web page at <A href="http://www.scriptics.com/">Scriptics</A>, a company co-founded by John Ousterhout. </P><P> The details of all commands and widgets for Tcl and Tk can be found in the manpages that ship with the Tcl and Tk distributions. For convenience, the Mozart release includes HTML versions of <A href="../tcltk/contents.htm">them</A>, which carry the following <A href="../tcltk/copyright.htm">copyright</A>. </P></DIV><DIV class="unnumbered"><H2><A name="label8">Acknowledgements</A></H2><P> I am grateful to Michael Mehl, who co-authored an earlier version of this document. Peter Van Roy contributed the paragraph in <A href="node22.html#section.widgets-2.return">Section&nbsp;5.3</A> that explains why <CODE>tkReturn</CODE> is indeed asynchronous. </P></DIV></DIV><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="toc.html#label1">&lt;&lt; Prev</A></TD><TD><A href="index.html">- Up -</A></TD><TD><A href="node2.html#chapter.started">Next &gt;&gt;</A></TD></TR></TABLE><HR><ADDRESS><A href="http://www.ps.uni-sb.de/~schulte/">Christian&nbsp;Schulte</A><BR><SPAN class="version">Version 1.4.0 (20090610)</SPAN></ADDRESS></BODY></HTML>