gtk: list-box dclick

original commit: 08bf77deeb260e91545a4df83dd4e5a5c3a00a99
This commit is contained in:
Matthew Flatt 2011-01-27 12:26:00 -07:00
parent dd3cb0f4a9
commit b1f7ed6927

View File

@ -70,6 +70,13 @@
(when wx (when wx
(send wx queue-changed))))) (send wx queue-changed)))))
(define-signal-handler connect-activated "row-activated"
(_fun _GtkWidget _pointer _pointer -> _void)
(lambda (gtk path column)
(let ([wx (gtk->wx gtk)])
(when wx
(send wx queue-activated)))))
(defclass list-box% item% (defclass list-box% item%
(init parent cb (init parent cb
label kind x y w h label kind x y w h
@ -132,12 +139,13 @@
(set-auto-size) (set-auto-size)
(connect-changed selection) (connect-changed selection)
(connect-activated client-gtk)
(define/override (get-client-gtk) client-gtk) (define/override (get-client-gtk) client-gtk)
(define callback cb) (define callback cb)
(define ignore-click? #f) (define ignore-click? #f)
(define/public (queue-changed) (define/private (do-queue-changed type)
;; Called from event-handling thread ;; Called from event-handling thread
(unless ignore-click? (unless ignore-click?
(queue-window-event (queue-window-event
@ -145,9 +153,15 @@
(lambda () (lambda ()
(unless (null? items) (unless (null? items)
(callback this (new control-event% (callback this (new control-event%
[event-type 'list-box] [event-type type]
[time-stamp (current-milliseconds)]))))))) [time-stamp (current-milliseconds)])))))))
(define/public (queue-changed)
(do-queue-changed 'list-box))
(define/public (queue-activated)
(do-queue-changed 'list-box-dclick))
(define/private (get-iter i) (define/private (get-iter i)
(atomically (atomically
(let ([iter (make-GtkTreeIter 0 #f #f #f)] (let ([iter (make-GtkTreeIter 0 #f #f #f)]