/usr/share/mozart/doc/system/node83.html is in mozart-doc 1.4.0-8ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>28.2 Tickle Objects</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="node82.html#section.tk.tickles"><< Prev</A></TD><TD><A href="node81.html">- Up -</A></TD><TD><A href="node84.html#section.tk.no-action">Next >></A></TD></TR></TABLE><DIV id="section.tk.objects"><H2><A name="section.tk.objects">28.2 Tickle Objects</A></H2><P> Rather than programming with tickles directly, all graphical entities are provided as classes. To these classes we refer to as <A name="label937"></A><EM>tickle classes</EM> and to their instances as <A name="label938"></A><EM>tickle objects</EM>. Applying a tickle object to a message translates it in a straightforward way into a tickle. </P><P> Tickle objects themselves enjoy an translation into strings, each tickle object carries a unique identifier that is its translation. Creation of a tickle object creates a new unique identifier, where the exact identifier depends on the tickle class the object is created from. The translation of a tickle object application of course uses the tickle object's identifier. </P><DIV id="figure.tk.hierarchy"><HR><P><A name="figure.tk.hierarchy"></A></P><DIV align="center"><IMG alt="" src="latex159.png"></DIV><P class="caption"><STRONG>Figure 28.4:</STRONG> Hierarchy of tickle objects.</P><HR></DIV><P> </P><P> The available tickle classes are shown in <A href="node83.html#figure.tk.hierarchy">Figure 28.4</A>, where the classes that are shadowed gray are classes provided by the <CODE>Tk</CODE> module, the others are just conceptual. The rest of the document will be concerned with giving a short overview on the tickle object interfaces. </P><P> Messages to tickle objects are translated in a straightforward way to tickles, for examples see <A href="../wp/node8.html#section.widgets-1.tickles">Section 3.2 of ``Window Programming in Mozart''</A>. </P><P> In the following we will present values other than tickles that are used in messages to tickle objects. </P><DIV id="section.tk.action-values"><H3><A name="section.tk.action-values">28.2.1 Action Values</A></H3><P> An action value is either </P><DL><DT>A procedure <CODE><I>P</I></CODE>. </DT><DD><P>The action is <A name="label939"></A><EM>invoked</EM> by creating a new thread that applies <CODE><I>P</I></CODE> to action or event arguments. </P></DD><DT>A listener object method pair <CODE><I>ListenerO</I></CODE><CODE><SPAN class="keyword">#</SPAN></CODE><CODE><I>M</I></CODE> </DT><DD><P>The action is <A name="label940"></A><EM>invoked</EM> by letting the <CODE><I>ListenerO</I></CODE> serve the message <CODE><I>M1</I></CODE> (see <A href="node92.html#section.tk.listener">Section 28.11</A>). The message <CODE><I>M1</I></CODE> is obtained by appending action or event arguments to <CODE><I>M</I></CODE>. </P></DD><DT>An object method pair <CODE><I>O</I></CODE><CODE><SPAN class="keyword">#</SPAN></CODE><CODE><I>M</I></CODE> </DT><DD><P>Here of course, <CODE><I>O</I></CODE> must not be an instance of a listener. The action is <A name="label941"></A><EM>invoked</EM> by creating a new thread that executes the object application <CODE>{</CODE><CODE><I>O</I></CODE><CODE> </CODE><CODE><I>M1</I></CODE><CODE>}</CODE>. The message <CODE><I>M1</I></CODE> is obtained by appending action or event arguments to <CODE><I>M</I></CODE>. </P></DD></DL><P> </P></DIV><DIV id="section.tk.action-arguments"><H3><A name="section.tk.action-arguments">28.2.2 Action Argument Values</A></H3><P> When an action is executed, it possibly has some arguments attached to it. <A name="label942"></A><EM>Action argument values</EM> describe the number and types of arguments that are used with the invoked action value. For an example see <A href="../wp/node27.html#section.widgets-2.scale">Section 5.8 of ``Window Programming in Mozart''</A>. </P><P> Legal action argument values are lists whose elements are drawn from the following set: </P><TABLE align="center" bgcolor="#f0f0e0"><TR valign="top"><TD><P><CODE>string</CODE></P></TD><TD><P><CODE>atom</CODE></P></TD><TD><P><CODE>int</CODE></P></TD><TD><P><CODE>float</CODE></P></TD></TR><TR valign="top"><TD><P><CODE>list(string)</CODE></P></TD><TD><P><CODE>list(atom)</CODE></P></TD><TD><P><CODE>list(int)</CODE></P></TD><TD><P><CODE>list(float)</CODE></P></TD></TR></TABLE><P> The length of the list defines the number of action arguments and the elements define in the obvious way the type of the arguments. </P></DIV><DIV id="section.tk.action-event-arguments"><H3><A name="section.tk.action-event-arguments">28.2.3 Event Argument Values</A></H3><P> When an event is executed, it possibly has some arguments attached to it. <A name="label943"></A><EM>Event argument values</EM> describe the number, types, and substitutions of arguments that are used with the invoked action value. For an example see <A href="../wp/node35.html#section.canvas.tags">Section 6.3 of ``Window Programming in Mozart''</A>. For reference information on substitutions see <A href="../tcltk/TkCmd/bind.htm"><CODE>bind</CODE></A>. </P><P> Legal action argument values are lists whose elements are drawn from the following set: </P><TABLE align="center" bgcolor="#f0f0e0"><TR valign="top"><TD><P><CODE>string(</CODE><CODE><I>V</I></CODE><CODE>)</CODE></P></TD><TD><P><CODE>atom(</CODE><CODE><I>V</I></CODE><CODE>)</CODE></P></TD><TD><P><CODE>int(</CODE><CODE><I>V</I></CODE><CODE>)</CODE></P></TD><TD><P><CODE>float(</CODE><CODE><I>V</I></CODE><CODE>)</CODE></P></TD></TR><TR valign="top"><TD><P><CODE>list(string(</CODE><CODE><I>V</I></CODE><CODE>))</CODE></P></TD><TD><P><CODE>list(atom(</CODE><CODE><I>V</I></CODE><CODE>))</CODE></P></TD><TD><P><CODE>list(int(</CODE><CODE><I>V</I></CODE><CODE>))</CODE></P></TD><TD><P><CODE>list(float(</CODE><CODE><I>V</I></CODE><CODE>))</CODE></P></TD></TR></TABLE><P> </P><P> The length of the list defines the number of action arguments and the elements define the type of the arguments, where <CODE><I>V</I></CODE> gives the substitution to be performed. For example, the value <CODE>[int(x)]</CODE> describes, that the action handler value takes a single argument. The single argument will be <CODE>x</CODE>-coordinate as an integer associated with the event. </P></DIV></DIV><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node82.html#section.tk.tickles"><< Prev</A></TD><TD><A href="node81.html">- Up -</A></TD><TD><A href="node84.html#section.tk.no-action">Next >></A></TD></TR></TABLE><HR><ADDRESS><A href="http://www.ps.uni-sb.de/~duchier/">Denys Duchier</A>, <A href="http://www.ps.uni-sb.de/~kornstae/">Leif Kornstaedt</A>, <A href="http://www.ps.uni-sb.de/~homik/">Martin Homik</A>, <A href="http://www.ps.uni-sb.de/~tmueller/">Tobias Müller</A>, <A href="http://www.ps.uni-sb.de/~schulte/">Christian Schulte</A> and <A href="http://www.info.ucl.ac.be/~pvr">Peter Van Roy</A><BR><SPAN class="version">Version 1.4.0 (20110908185330)</SPAN></ADDRESS></BODY></HTML>
|