From b1f7ed69270695bb51b06100e356b331f86a0941 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 27 Jan 2011 12:26:00 -0700 Subject: [PATCH] gtk: list-box dclick original commit: 08bf77deeb260e91545a4df83dd4e5a5c3a00a99 --- collects/mred/private/wx/gtk/list-box.rkt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/collects/mred/private/wx/gtk/list-box.rkt b/collects/mred/private/wx/gtk/list-box.rkt index da75c323..886f4c9c 100644 --- a/collects/mred/private/wx/gtk/list-box.rkt +++ b/collects/mred/private/wx/gtk/list-box.rkt @@ -70,6 +70,13 @@ (when wx (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% (init parent cb label kind x y w h @@ -132,12 +139,13 @@ (set-auto-size) (connect-changed selection) + (connect-activated client-gtk) (define/override (get-client-gtk) client-gtk) (define callback cb) (define ignore-click? #f) - (define/public (queue-changed) + (define/private (do-queue-changed type) ;; Called from event-handling thread (unless ignore-click? (queue-window-event @@ -145,9 +153,15 @@ (lambda () (unless (null? items) (callback this (new control-event% - [event-type 'list-box] + [event-type type] [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) (atomically (let ([iter (make-GtkTreeIter 0 #f #f #f)]