@peceha, post #1
@peceha, post #3
@Hexmage960, post #4
@peceha, post #5
No niestety ale ListView nie przepuszcza IDCMP_GADGETDOWN.
Wymaga go do poprawnego funkcjonowania ale nie ma mozliwosci ustawienia by wysylal sygnal dalej (GA_Immediate nie istnieje dla ListView).
#define LISTVIEWIDCMP (IDCMP_GADGETUP | IDCMP_GADGETDOWN |\ IDCMP_MOUSEMOVE | ARROWIDCMP)
@peceha, post #5
/* poczatek programu*/
/* definuję obiekt, w ktorym bedą dane wczesniwjszego klikniecia na liscie:
sekundy, mikrosekundy i klikniety element listy */
OBJECT ListClick
seconds
micros
item
ENDOBJECT
/* tworze zmienna typu ListClick i inicjuje ją zerami */
DEF lastListClick=NIL:PTR TO ListClick
lastListClick:=[0,0,0]
/* petla obslugujaca komunikaty z okna */
WaitPort(mainWnd.userport)
WHILE imsg:=Gt_GetIMsg(mainWnd.userport)
class:= imsg.class
code:= imsg.code
gadget:= imsg.iaddress
seconds:= imsg.seconds
micros:= imsg.micros
Gt_ReplyIMsg( imsg)
SELECT class
CASE IDCMP_GADGETUP
SELECT gadgetid
CASE LV_ENTRIES
/* ktora pozycja na liscie kliknieta */
iListItem:= code
/* sprawdzam DoubleClick oraz czy ten doubleclick jest na tym samym elemecie listy */
IF ( DoubleClick (lastListClick.seconds, lastListClick.micros, seconds, micros ) AND (lastListClick.item = iListItem ))
/* !!! jest double click na elemencie listy !!! */
ENDIF
/* zapamietuje dane ostatniego kliku na liscie, do kolejnej werydikacji */
lastListClick.seconds := seconds
lastListClick.micros := micros
lastListClick.item := iListItem
CASE ...
ENDSELECT
CASE ...
ENDSELECT
ENDWHILE @Hexmage960, post #6
@peceha, post #9