Recogniser objects enable detection of mouse- and keyboard activities. XPCE defines both primitive and complex recognisers. The first (called handler) processes a single event. The latter processes a gesture: 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:
11 ?- send(@ic, recogniser, new(move_gesture)).
The second example allows us to double-click on the icon. This is a common way to `open' an icon. In the example we will just print 'hello' in the Prolog window.
12 ?- send(@ic, recogniser, click_gesture(left, '', double, message(@pce, write_ln, hello))).
The predefined recogniser classes are summarised in table 5. Besides the built-in recognisers, the XPCE/Prolog library defines various additional ones. See also section 11.8.
handler | Binds a single event to a message. |
handler_group | Combines multiple recognisers into a single. |
key_binding | Maps keyboard sequences to commands. |
click_gesture | Maps a mouse-click to a message. Allows to specify modifiers (alt/meta, control, shift), button and multi (single, double, triple). |
connect_gesture | Connect two graphicals dragging from the first to the second. |
move_gesture | Move graphical by dragging it. |
move_outline_gesture | Move graphical by dragging an outline. |
resize_gesture | Resize graphical by dragging a side or corner. |
resize_outline_gesture | Resize graphical by dragging a side or corner of the outline. |
Table 5 : Recogniser classes |