@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