source: trunk/SRC/ToBeReviewed/WIDGET/AUTOUR_de_XXX/identifyclick.pro @ 134

Last change on this file since 134 was 134, checked in by navarro, 18 years ago

change *.pro file properties (del eof-style, del executable, set keywords Id

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.3 KB
Line 
1FUNCTION identifyclick, event
2;
3  compile_opt idl2, strictarrsubs
4;
5   widget_control, event.id, get_uvalue=uval, /no_copy
6   thisEvent = TAG_NAMES(event, /Structure)
7   if thisEvent EQ 'WIDGET_TIMER' then press = 0 ELSE press = event.press
8;
9;  d/0/>1 -------->t/1/0--------->**d/2/0**       long click
10;         -------->d/1/0--------->**t/2/0**  click normal
11;                       --------->**d/2/>1**-------->d/3/0----->t/0/0  double click
12;                                           -------->t/3/0----->d/0/0  double click
13   type = 'inutile'
14   case 1 OF
15; d/0/0 1er remonte
16      thisEvent EQ 'WIDGET_DRAW' AND uval.click EQ 0 AND press EQ 0:
17; d/0/>1 1er appuie de la serie
18      thisEvent EQ 'WIDGET_DRAW' AND uval.click EQ 0 AND press ge 1:BEGIN
19         uval.x = [event.x, 0]
20         uval.y = [event.y, 0]
21         uval.press = press
22         uval.click = 1
23         widget_control, event.id, timer = .3
24      END
25; d/1/0 1er remonte
26      thisEvent EQ 'WIDGET_DRAW' AND uval.click EQ 1 AND press EQ 0:uval.click = 2
27; d/2/0 fin long click
28      thisEvent EQ 'WIDGET_DRAW' AND uval.click EQ 2 AND press EQ 0:BEGIN
29         type = 'long'
30         uval.x = [uval.x[0],event.x] & uval.x = uval.x[sort(uval.x)]
31         uval.y = [uval.y[0],event.y] & uval.y = uval.y[sort(uval.y)]
32         uval.click = 0
33         uval.press = event.release
34      END
35; d/2/>1
36      thisEvent EQ 'WIDGET_DRAW' AND uval.click EQ 2 AND press ge 1:BEGIN
37         type = 'double'
38         uval.press = press
39         uval.click = 3
40      END
41; d/3/0 remonte et fin de double click
42      thisEvent EQ 'WIDGET_DRAW' AND uval.click EQ 3 AND press EQ 0:uval.click = 0
43; t/0/0 fin de double click
44      thisEvent EQ 'WIDGET_TIMER' AND uval.click EQ 0 AND press EQ 0:
45; t/1/0 long click
46      thisEvent EQ 'WIDGET_TIMER' AND uval.click EQ 1 AND press EQ 0:uval.click = 2
47; t/2/0 click normal
48      thisEvent EQ 'WIDGET_TIMER' AND uval.click EQ 2 AND press EQ 0:BEGIN
49         type = 'single'
50         press = uval.press
51         uval.click = 0
52      END
53; t/3/0 fin de double click
54      thisEvent EQ 'WIDGET_TIMER' AND uval.click EQ 3 AND press EQ 0:uval.click = 0
55; cas normalement impossible:
56      ELSE:BEGIN
57         print, thisEvent, uval.click, press
58         print, 'Probleme, cas normalement impossible!'
59      END
60   endcase
61
62   widget_control, event.id, set_uvalue=uval, /no_copy
63   return, {type:type}
64end
Note: See TracBrowser for help on using the repository browser.