source: trunk/WIDGET/AUTOUR_de_XXX/identifyclick.pro @ 2

Last change on this file since 2 was 2, checked in by opalod, 22 years ago

Initial revision

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