def make_cursor(self, iconpath, x, y): cursor = GtkHelp.make_cursor(self.imgwin, iconpath, x, y) return cursor
def __init__(self, logger=None, rgbmap=None, settings=None): ImageViewGtk.__init__(self, logger=logger, rgbmap=rgbmap, settings=settings) imgwin = self.imgwin imgwin.set_can_focus(True) imgwin.connect("map_event", self.map_event) imgwin.connect("focus_in_event", self.focus_event, True) imgwin.connect("focus_out_event", self.focus_event, False) imgwin.connect("enter_notify_event", self.enter_notify_event) imgwin.connect("leave_notify_event", self.leave_notify_event) imgwin.connect("motion_notify_event", self.motion_notify_event) imgwin.connect("button_press_event", self.button_press_event) imgwin.connect("button_release_event", self.button_release_event) imgwin.connect("key_press_event", self.key_press_event) imgwin.connect("key_release_event", self.key_release_event) imgwin.connect("scroll_event", self.scroll_event) mask = imgwin.get_events() imgwin.set_events(mask | Gdk.EventMask.ENTER_NOTIFY_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK | Gdk.EventMask.FOCUS_CHANGE_MASK | Gdk.EventMask.STRUCTURE_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK | Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.KEY_RELEASE_MASK | Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.POINTER_MOTION_HINT_MASK | Gdk.EventMask.SCROLL_MASK) # Set up widget as a drag and drop destination imgwin.connect("drag-data-received", self.drop_event_cb) imgwin.connect("drag-motion", self.drag_motion_cb) imgwin.connect("drag-drop", self.drag_drop_cb) self.TARGET_TYPE_TEXT = 0 imgwin.drag_dest_set(Gtk.DestDefaults.ALL, [], Gdk.DragAction.COPY) imgwin.drag_dest_add_text_targets() # last known window mouse position self.last_win_x = 0 self.last_win_y = 0 # last known data mouse position self.last_data_x = 0 self.last_data_y = 0 # Does widget accept focus when mouse enters window self.enter_focus = self.t_.get('enter_focus', True) # @$%&^(_)*&^ gnome!! self._keytbl = { 'shift_l': 'shift_l', 'shift_r': 'shift_r', 'control_l': 'control_l', 'control_r': 'control_r', 'alt_l': 'alt_l', 'alt_r': 'alt_r', 'super_l': 'super_l', 'super_r': 'super_r', 'meta_right': 'meta_right', 'asciitilde': '~', 'grave': 'backquote', 'exclam': '!', 'at': '@', 'numbersign': '#', 'percent': '%', 'asciicircum': '^', 'ampersand': '&', 'asterisk': '*', 'dollar': '$', 'parenleft': '(', 'parenright': ')', 'underscore': '_', 'minus': '-', 'plus': '+', 'equal': '=', 'braceleft': '{', 'braceright': '}', 'bracketleft': '[', 'bracketright': ']', 'bar': '|', 'colon': ':', 'semicolon': ';', 'quotedbl': 'doublequote', 'apostrophe': 'singlequote', 'backslash': 'backslash', 'less': '<', 'greater': '>', 'comma': ',', 'period': '.', 'question': '?', 'slash': '/', 'space': 'space', 'escape': 'escape', 'return': 'return', 'tab': 'tab', 'f1': 'f1', 'f2': 'f2', 'f3': 'f3', 'f4': 'f4', 'f5': 'f5', 'f6': 'f6', 'f7': 'f7', 'f8': 'f8', 'f9': 'f9', 'f10': 'f10', 'f11': 'f11', 'f12': 'f12', 'right': 'right', 'left': 'left', 'up': 'up', 'down': 'down', } # Define cursors for curname, filename in (('pan', 'openHandCursor.png'), ('pick', 'thinCrossCursor.png')): path = os.path.join(icon_dir, filename) cur = GtkHelp.make_cursor(self.imgwin, path, 8, 8) self.define_cursor(curname, cur) for name in ('motion', 'button-press', 'button-release', 'key-press', 'key-release', 'drag-drop', 'scroll', 'map', 'focus', 'enter', 'leave', ): self.enable_callback(name)
def __init__(self, logger=None, rgbmap=None, settings=None): ImageViewGtk.__init__(self, logger=logger, rgbmap=rgbmap, settings=settings) imgwin = self.imgwin imgwin.set_can_focus(True) imgwin.connect("map_event", self.map_event) imgwin.connect("focus_in_event", self.focus_event, True) imgwin.connect("focus_out_event", self.focus_event, False) imgwin.connect("enter_notify_event", self.enter_notify_event) imgwin.connect("leave_notify_event", self.leave_notify_event) imgwin.connect("motion_notify_event", self.motion_notify_event) imgwin.connect("button_press_event", self.button_press_event) imgwin.connect("button_release_event", self.button_release_event) imgwin.connect("key_press_event", self.key_press_event) imgwin.connect("key_release_event", self.key_release_event) imgwin.connect("scroll_event", self.scroll_event) mask = imgwin.get_events() imgwin.set_events(mask | Gdk.EventMask.ENTER_NOTIFY_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK | Gdk.EventMask.FOCUS_CHANGE_MASK | Gdk.EventMask.STRUCTURE_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK | Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.KEY_RELEASE_MASK | Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.POINTER_MOTION_HINT_MASK | Gdk.EventMask.SCROLL_MASK) # Set up widget as a drag and drop destination imgwin.connect("drag-data-received", self.drop_event_cb) imgwin.connect("drag-motion", self.drag_motion_cb) imgwin.connect("drag-drop", self.drag_drop_cb) self.TARGET_TYPE_TEXT = 0 imgwin.drag_dest_set(Gtk.DestDefaults.ALL, [], Gdk.DragAction.COPY) imgwin.drag_dest_add_text_targets() # last known window mouse position self.last_win_x = 0 self.last_win_y = 0 # last known data mouse position self.last_data_x = 0 self.last_data_y = 0 # Does widget accept focus when mouse enters window self.enter_focus = self.t_.get('enter_focus', True) # @$%&^(_)*&^ gnome!! self._keytbl = { 'shift_l': 'shift_l', 'shift_r': 'shift_r', 'control_l': 'control_l', 'control_r': 'control_r', 'alt_l': 'alt_l', 'alt_r': 'alt_r', 'super_l': 'super_l', 'super_r': 'super_r', 'meta_right': 'meta_right', 'asciitilde': '~', 'grave': 'backquote', 'exclam': '!', 'at': '@', 'numbersign': '#', 'percent': '%', 'asciicircum': '^', 'ampersand': '&', 'asterisk': '*', 'dollar': '$', 'parenleft': '(', 'parenright': ')', 'underscore': '_', 'minus': '-', 'plus': '+', 'equal': '=', 'braceleft': '{', 'braceright': '}', 'bracketleft': '[', 'bracketright': ']', 'bar': '|', 'colon': ':', 'semicolon': ';', 'quotedbl': 'doublequote', 'apostrophe': 'singlequote', 'backslash': 'backslash', 'less': '<', 'greater': '>', 'comma': ',', 'period': '.', 'question': '?', 'slash': '/', 'space': 'space', 'escape': 'escape', 'return': 'return', 'tab': 'tab', 'f1': 'f1', 'f2': 'f2', 'f3': 'f3', 'f4': 'f4', 'f5': 'f5', 'f6': 'f6', 'f7': 'f7', 'f8': 'f8', 'f9': 'f9', 'f10': 'f10', 'f11': 'f11', 'f12': 'f12', 'right': 'right', 'left': 'left', 'up': 'up', 'down': 'down', } # Define cursors for curname, filename in (('pan', 'openHandCursor.png'), ('pick', 'thinCrossCursor.png')): path = os.path.join(icon_dir, filename) cur = GtkHelp.make_cursor(self.imgwin, path, 8, 8) self.define_cursor(curname, cur) for name in ( 'motion', 'button-press', 'button-release', 'key-press', 'key-release', 'drag-drop', 'scroll', 'map', 'focus', 'enter', 'leave', ): self.enable_callback(name)