Add GUI utility function to add a popup menu to a widget

This commit is contained in:
René Stadler 2007-12-07 16:24:01 +02:00 committed by Stefan Sauer
parent a073b11f63
commit a6f268ab4b
3 changed files with 22 additions and 30 deletions

View file

@ -30,6 +30,18 @@ import gtk
from GstDebugViewer.Common import utils
def widget_add_popup_menu (widget, menu, button = 3):
def popup_callback (widget, event):
if event.button == button:
menu.popup (None, None, None, event.button, event.get_time ())
return True
else:
return False
widget.connect ("button-press-event", popup_callback)
class Actions (dict):
def __init__ (self):

View file

@ -1212,13 +1212,12 @@ class LineView (object):
handler = self.handle_clear_line_view_action_activate
self.clear_action.connect ("activate", handler)
ui = window.ui_manager
self.popup = ui.get_widget ("/ui/context/LineViewContextMenu").get_submenu ()
self.line_view = window.widgets.line_view
self.line_view.connect ("row-activated", self.handle_line_view_row_activated)
self.line_view.connect ("button-press-event",
self.handle_line_view_button_press_event)
ui = window.ui_manager
self.popup = ui.get_widget ("/ui/context/LineViewContextMenu").get_submenu ()
Common.GUI.widget_add_popup_menu (self.line_view, self.popup)
self.log_view = log_view = window.log_view
log_view.connect ("row-activated", self.handle_log_view_row_activated)
@ -1304,14 +1303,6 @@ class LineView (object):
self.clear ()
def handle_line_view_button_press_event (self, line_view, event):
if event.button != 3:
return False
self.popup.popup (None, None, None, event.button, event.get_time ())
return True
class Window (object):
def __init__ (self, app):
@ -1379,7 +1370,6 @@ class Window (object):
self.ui_manager = ui = self.ui_factory.make ()
menubar = ui.get_widget ("/ui/menubar")
self.widgets.vbox_main.pack_start (menubar, False, False, 0)
self.view_popup = ui.get_widget ("/ui/menubar/ViewMenu").get_submenu ()
self.gtk_window = self.widgets.main_window
self.gtk_window.add_accel_group (ui.get_accel_group ())
@ -1387,7 +1377,8 @@ class Window (object):
self.log_view.drag_dest_unset ()
self.log_view.set_search_column (-1)
self.log_view.connect ("button-press-event", self.handle_log_view_button_press_event)
self.view_popup = ui.get_widget ("/ui/menubar/ViewMenu").get_submenu ()
Common.GUI.widget_add_popup_menu (self.log_view, self.view_popup)
self.line_view = LineView ()
@ -1721,14 +1712,6 @@ class Window (object):
dialog.run ()
dialog.destroy ()
def handle_log_view_button_press_event (self, view, event):
if event.button != 3:
return False
self.view_popup.popup (None, None, None, event.button, event.get_time ())
return True
def handle_load_started (self):
self.logger.debug ("load has started")

View file

@ -660,8 +660,6 @@ class TimelineFeature (FeatureBase):
"hide-after-line", gtk.UI_MANAGER_MENUITEM, False)
ui.add_ui (self.merge_id, "/TimelineContextMenu", "TimelineShowHiddenLines",
"show-hidden-lines", gtk.UI_MANAGER_MENUITEM, False)
self.popup = ui.get_widget ("/TimelineContextMenu")
box = window.get_top_attach_point ()
@ -672,6 +670,9 @@ class TimelineFeature (FeatureBase):
box.pack_start (self.timeline, False, False, 0)
self.timeline.hide ()
self.popup = ui.get_widget ("/TimelineContextMenu")
Common.GUI.widget_add_popup_menu (self.timeline, self.popup)
box = window.get_side_attach_point ()
self.vtimeline = VerticalTimelineWidget ()
@ -805,12 +806,8 @@ class TimelineFeature (FeatureBase):
def handle_timeline_button_press_event (self, widget, event):
if event.button == 3:
self.popup.popup (None, None, None, event.button, event.get_time ())
return True
if event.button != 1:
return True
return False
# TODO: Check if clicked inside a warning/error indicator triangle and
# navigate there.