Sophie

Sophie

distrib > Fedora > 13 > i386 > by-pkgid > 2fcb262fce8df923d1c90b2e80f20b02 > files > 1447

pl-5.7.11-5.fc12.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<HTML>
<HEAD>
<TITLE>Programming in XPCE/Prolog: Section 5.5</TITLE><LINK REL=home HREF="index.html">
<LINK REL=contents HREF="Contents.html">
<LINK REL=index HREF="DocIndex.html">
<LINK REL=summary HREF="summary.html">
<LINK REL=previous HREF="sec-5.4.html">
<LINK REL=next HREF="sec-5.6.html">
<STYLE type="text/css">
/* Style sheet for SWI-Prolog latex2html
*/

dd.defbody
{ margin-bottom: 1em;
}

dt.pubdef
{ background-color: #c5e1ff;
}

pre.code
{ margin-left: 1.5em;
margin-right: 1.5em;
border: 1px dotted;
padding-top: 5px;
padding-left: 5px;
padding-bottom: 5px;
background-color: #f8f8f8;
}

div.navigate
{ text-align: center;
background-color: #f0f0f0;
border: 1px dotted;
padding: 5px;
}

div.title
{ text-align: center;
padding-bottom: 1em;
font-size: 200%;
font-weight: bold;
}

div.author
{ text-align: center;
font-style: italic;
}

div.abstract
{ margin-top: 2em;
background-color: #f0f0f0;
border: 1px dotted;
padding: 5px;
margin-left: 10%; margin-right:10%;
}

div.abstract-title
{ text-align: center;
padding: 5px;
font-size: 120%;
font-weight: bold;
}

div.toc-h1
{ font-size: 200%;
font-weight: bold;
}

div.toc-h2
{ font-size: 120%;
font-weight: bold;
margin-left: 2em;
}

div.toc-h3
{ font-size: 100%;
font-weight: bold;
margin-left: 4em;
}

div.toc-h4
{ font-size: 100%;
margin-left: 6em;
}

span.sec-nr
{ 
}

span.sec-title
{ 
}

span.pred-ext
{ font-weight: bold;
}

/* Footnotes */

sup.fn { color: blue; text-decoration: underline; }
span.fn-text: { display: none; }
sup.fn span {display: none;}
sup:hover span 
{ display: block !important;
position: absolute; top: auto; left: auto; width: 80%;
color: #000; background: white;
border: 2px solid;
padding: 5px; margin: 10px; z-index: 100;
font-size: smaller;
}
</STYLE>
</HEAD>
<BODY BGCOLOR="white">
<DIV class="navigate"><A class="nav" href="index.html"><IMG SRC="home.gif" BORDER=0 ALT="Home"></A>
<A class="nav" href="Contents.html"><IMG SRC="index.gif" BORDER=0 ALT="Contents"></A>
<A class="nav" href="DocIndex.html"><IMG SRC="yellow_pages.gif" BORDER=0 ALT="Index"></A>
<A class="nav" href="summary.html"><IMG SRC="info.gif" BORDER=0 ALT="Summary"></A>
<A class="nav" href="sec-5.4.html"><IMG SRC="prev.gif" BORDER=0 ALT="Previous"></A>
<A class="nav" href="sec-5.6.html"><IMG SRC="next.gif" BORDER=0 ALT="Next"></A>
</DIV>

<H2><A NAME="sec:5.5"><SPAN class="sec-nr">5.5</SPAN> <SPAN class="sec-title">Activating 
graphicals using the mouse</SPAN></A></H2>

<A NAME="sec:recogniser"></A>

<P><A NAME="idx:eventprocessing:178"></A><A NAME="idx:sensitive:179"></A><A NAME="idx:movinggraphicals:180"></A><B>Recogniser</B> 
objects enable detection of mouse- and keyboard activities. <font size=-1>XPCE</font> 
defines both primitive and complex recognisers. The first (called <A class="" href="summary.html#class:handler">handler</A>) 
processes a single event. The latter processes a <A class="" href="summary.html#class:gesture">gesture</A>: 
sequence of events starting with a mouse-button-down up to the 
corresponding mouse-button-up. The following example allows us to move 
the icon by dragging with the middle mouse button:

<PRE class="code">
11 ?- send(@ic, recogniser, new(move_gesture)).
</PRE>

<P>The second example allows us to double-click on the icon. This is a 
common way to `open'<A NAME="idx:openicon:181"></A> an icon. In the 
example we will just print 'hello' in the Prolog window.

<PRE class="code">
12 ?- send(@ic, recogniser,
           click_gesture(left, '', double,
                         message(@pce, write_ln, hello))).
</PRE>

<P>The predefined recogniser classes are summarised in
<A class="tab" href="recogniser.html#tab:recognisers">table 5</A>. 
Besides the built-in recognisers, the <font size=-1>XPCE/P</font>rolog 
library defines various additional ones. See also <A class="sec" href="dragdrop.html">section 
11.8</A>.

<P>
<CENTER>
<TABLE BORDER=2 FRAME=box RULES=groups>
<TR VALIGN=top><TD><A class="" href="summary.html#class:handler">handler</A> </TD><TD>Binds 
a single event to a <A class="" href="summary.html#class:message">message</A>. </TD></TR>
<TBODY>
<TR VALIGN=top><TD><A class="" href="summary.html#class:handler_group">handler_group</A> </TD><TD>Combines 
multiple recognisers into a single. </TD></TR>
<TBODY>
<TR VALIGN=top><TD><A class="" href="summary.html#class:key_binding">key_binding</A> </TD><TD>Maps 
keyboard sequences to commands. </TD></TR>
<TBODY>
<TR VALIGN=top><TD><A class="" href="summary.html#class:click_gesture">click_gesture</A> </TD><TD>Maps 
a mouse-click to a message. Allows to specify modifiers (alt/meta, 
control, shift), button and multi (single, double, triple). </TD></TR>
<TBODY>
<TR VALIGN=top><TD><A class="" href="summary.html#class:connect_gesture">connect_gesture</A> </TD><TD>Connect 
two graphicals dragging from the first to the second. </TD></TR>
<TBODY>
<TR VALIGN=top><TD><A class="" href="summary.html#class:move_gesture">move_gesture</A> </TD><TD>Move 
graphical by dragging it. </TD></TR>
<TBODY>
<TR VALIGN=top><TD><A class="" href="summary.html#class:move_outline_gesture">move_outline_gesture</A> </TD><TD>Move 
graphical by dragging an outline. </TD></TR>
<TBODY>
<TR VALIGN=top><TD><A class="" href="summary.html#class:resize_gesture">resize_gesture</A> </TD><TD>Resize 
graphical by dragging a side or corner. </TD></TR>
<TBODY>
<TR VALIGN=top><TD><A class="" href="summary.html#class:resize_outline_gesture">resize_outline_gesture</A> </TD><TD>Resize 
graphical by dragging a side or corner of the outline. </TD></TR>
</TABLE>

</CENTER>
<TABLE ALIGN=center WIDTH="75%"><TR><TD>
<B>Table 5 : </B>Recogniser classes</TABLE>

<A NAME="tab:recognisers"></A>

<P></BODY></HTML>