73 |
|
|
74 |
|
|
75 |
|
|
76 |
|
// drag state |
77 |
|
private Pair drag_pair = null; |
78 |
private String last_key = null; |
private String last_key = null; |
79 |
|
|
80 |
private boolean just_pressed = false; |
private boolean just_pressed = false; |
81 |
private boolean dragging = false; |
private boolean dragging = false; |
82 |
|
|
83 |
private MousePressState press_state = null; |
private MousePressState press_state = null; |
84 |
public EventMouseObj when_pressed = null; |
public EventMouseObj when_pressed = null; |
85 |
|
|
122 |
*/ |
*/ |
123 |
}; |
}; |
124 |
|
|
|
Object pair = callers.get(""+cs); |
|
|
if (pair == null) return; |
|
|
if (!(pair instanceof Pair)) { throw new Error("NOT PAIR!"); } |
|
|
|
|
|
String key = (String)((Pair)pair).first; |
|
|
if (just_pressed && dragging) { |
|
|
last_key = key; |
|
|
just_pressed = false; |
|
|
} |
|
|
|
|
|
if (dbg) pa("key: " + key); |
|
|
|
|
125 |
// event hanlder |
// event hanlder |
126 |
Object ev_h; |
Object ev_h, pair; |
127 |
if (dragging) ev_h = ev_handlers.get(last_key); |
|
128 |
else ev_h = ev_handlers.get(key); |
// check if dragging |
129 |
|
if (dragging && (last_key != null && drag_pair != null)) { |
130 |
|
ev_h = ev_handlers.get(last_key); |
131 |
|
pair = drag_pair; |
132 |
|
}else { |
133 |
|
pair = callers.get(""+cs); |
134 |
|
if (pair == null) return; |
135 |
|
if (!(pair instanceof Pair)) { throw new Error("NOT PAIR!"); } |
136 |
|
|
137 |
|
String key = (String)((Pair)pair).first; |
138 |
|
if (just_pressed && dragging) { |
139 |
|
last_key = key; |
140 |
|
drag_pair = (Pair)pair; |
141 |
|
just_pressed = false; |
142 |
|
} |
143 |
|
|
144 |
|
if (dbg) pa("key: " + key); |
145 |
|
ev_h = ev_handlers.get(key); |
146 |
|
} |
147 |
|
|
148 |
if (ev_h instanceof EventMouseObj) |
if (ev_h instanceof EventMouseObj) |
149 |
((EventMouseObj)ev_h).event(ev, press_state, |
((EventMouseObj)ev_h).event(ev, press_state, |