From: Gong, S. (Contractor) <Sha...@dr...> - 2008-04-30 19:07:47
|
hi list, Our Python table widget uses OpenEV/pymod/pgugrid.py's class pguGrid. We'd like to add some capability such as: 1) Double clicking - such as double click a cell contains an image name to load the image in OpenEV viewer. 2) Right click - give a menu for options like load, delete, delete all There are notes at the beginning of pgugrid.py (see below) that probably indicates that double clicking was not implemented. Can pgugrid widget handle the above 1) and 2), if not, what widget would you recommend to use? thanks, Shawn from pgugrid.py ----------------------------------------------- # NOTE: This grid has to simulate double click behaviour by tracking the # last clicked row/column/cell because on windows a) the gtk double click # event is not sent out if the callback on the single click event is too # long (this can happen for row selection when there are a large number # of shapes- on the order of 50000- and the expose event demands a lot # of the cpu), # and b) even if the double click event is sent out, the associated # single press events are sent out in different orders on windows than # they are on linux/unix. The sequence of events sent out for a double # click is as follows: # linux/unix: BUTTON_PRESS, BUTTON_PRESS, _2BUTTON_PRESS # windows: BUTTON_PRESS, BUTTON_PRESS (if single press callback is too long) # BUTTON_PRESS, _2BUTTON_PRESS, BUTTON_PRESS # # GTK's double click behaviour is reasonable for linux/unix, but for # consistency the approach for all platforms has been to treat the # double click event as a single click event and track the last # clicked cell/row/column internally. Internally, the grid only uses the # simulated double click event to launch cell editing. # # The better alternative would be to fix gtk itself for windows, but this # could be complicated and would require new users to build a special # version of gtk for windows... # # THIS SHOULD BE REVISITED IF OPENEV IS UPGRADED TO GTK2, AS GTK2 MAY # NOT SUFFER THESE PROBLEMS. |