From 7e08f1784451775c1712a0584299e8f4fda00ae6 Mon Sep 17 00:00:00 2001 From: pin Date: Tue, 13 Sep 2011 09:37:14 +0000 Subject: [PATCH] =?utf8?q?Activation=20de=20la=20roulette=20de=20la=20sour?= =?utf8?q?is=20sur=20l'ensemble=20de=20l'=C3=A9cran.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@382 fe552daf-6dbe-4428-90eb-1537e0879342 --- src/minwii/widgets/songfilebrowser.py | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/minwii/widgets/songfilebrowser.py b/src/minwii/widgets/songfilebrowser.py index da2bdec..fcb1c21 100755 --- a/src/minwii/widgets/songfilebrowser.py +++ b/src/minwii/widgets/songfilebrowser.py @@ -17,6 +17,8 @@ import pgu.gui.table as table import pgu.gui.area as area from pgu.gui.const import * from pgu.gui.dialog import Dialog +from pgu.gui.app import Desktop +import types import os import tempfile @@ -26,6 +28,27 @@ from minwii.musicxml import musicXml2Song INDEX_TXT = 'index.txt' PICTURE_ITEM_SIZE = 64 +def appEventFactory(app, dlg) : + # monkey patch de la méthode gestionnaire d'événements : + # l'ensemble du Desktop écoute les événements de la roulette de la souris + # et les redirige sur la liste déroulante. + def _appEvent(self, e) : + + if dlg.list.vscrollbar: + if not hasattr(dlg.list.vscrollbar,'value'): + return False + + if e.type == pygame.locals.MOUSEBUTTONDOWN: + if e.button == 4: #wheel up + dlg.list.vscrollbar._click(-1) + return True + elif e.button == 5: #wheel down + dlg.list.vscrollbar._click(1) + return True + return Desktop.event(self, e) + + return types.MethodType(_appEvent, app) + class FileOpenDialog(FileDialog): @@ -72,6 +95,17 @@ class FileOpenDialog(FileDialog): self.value = None Dialog.__init__(self, self.title, self.body) + # monkey patch + app = pguglobals.app + self.__regularEventMethod = app.event + app.event = appEventFactory(app, self) + + def close(self, w=None) : + FileDialog.close(self, w) + # retrait du monkey patch + app = pguglobals.app + app.event = self.__regularEventMethod + def _list_dir_(self): self.input_dir.value = self.curdir -- 2.20.1