Beispiel #1
0
 def buttonChanged_(self, button):
     if button.state() == NSOnState:
         self.addSubview_(self.content_view)
     else:
         self.content_view.removeFromSuperview()
     if self.window():
         wrappermap.wrapper(self).invalidate_size_request()
Beispiel #2
0
 def buttonChanged_(self, button):
     if button.state() == NSOnState:
         self.addSubview_(self.content_view)
     else:
         self.content_view.removeFromSuperview()
     if self.window():
         wrappermap.wrapper(self).invalidate_size_request()
Beispiel #3
0
 def mouseDown_(self, event):
     self.releaseInbounds = self.stopTracking = self.firedOnce = False
     self.cell().trackMouse_inRect_ofView_untilMouseUp_(event,
             self.bounds(), self, YES)
     if self.releaseInbounds:
         if self.firedOnce:
             wrappermap.wrapper(self).emit('released')
         else:
             wrappermap.wrapper(self).emit('clicked')
Beispiel #4
0
    def textDidEndEditing_(self, notification):
        # Handle the user stopping typing.
        text_movement = notification.userInfo().get('NSTextMovement')
        if text_movement == NSReturnTextMovement:
            # user hit return, emit 'validate'
            wrappermap.wrapper(self).emit('validate')

        # HACK: not sure exactly why this line has an effect, but it prevents
        # 17195
        self.stringValue()
Beispiel #5
0
    def textDidEndEditing_(self, notification):
        # Handle the user stopping typing.
        text_movement = notification.userInfo().get('NSTextMovement')
        if text_movement == NSReturnTextMovement:
            # user hit return, emit 'validate'
            wrappermap.wrapper(self).emit('validate')

        # HACK: not sure exactly why this line has an effect, but it prevents
        # 17195
        self.stringValue()
Beispiel #6
0
 def mouseUp_(self, event):
     if self.hotspot_tracker is not None:
         point = self.convertPoint_fromView_(event.locationInWindow(), nil)
         self.hotspot_tracker.update_position(point)
         self.hotspot_tracker.update_hit()
         if self.hotspot_tracker.hit:
             wrappermap.wrapper(self).send_hotspot_clicked()
         self.hotspot_tracker.redraw_cell()
         self.hotspot_tracker = None
     else:
         self.SuperClass.mouseUp_(self, event)
Beispiel #7
0
    def drawRect_(self, rect):
        context = drawing.DrawingContext(self, self.bounds(), rect)
        context.style = drawing.DrawingStyle()
        wrapper = wrappermap.wrapper(self)
        if self.state() == NSOnState:
            wrapper.state = 'pressed'
        elif self.mouse_inside:
            wrapper.state = 'hover'
        else:
            wrapper.state = 'normal'

        wrappermap.wrapper(self).draw(context, self.layout_manager)
        self.layout_manager.reset()
Beispiel #8
0
 def continueTracking_at_inView_(self, lastPoint, at, view):
     if view.isVertical():
         pos = at.y
         size = view.bounds().size.height
     else:
         pos = at.x
         size = view.bounds().size.width
     slider_amount = self.calc_slider_amount(view, pos, size)
     value = (self.maxValue() - self.minValue()) * slider_amount
     self.setFloatValue_(value)
     wrappermap.wrapper(view).emit('moved', value)
     if self.isContinuous():
         wrappermap.wrapper(view).emit('changed', value)
     return YES
Beispiel #9
0
 def tabView_willSelectTabViewItem_(self, tab_view, tab_view_item):
     try:
         wrapper = wrappermap.wrapper(tab_view)
     except KeyError:
         pass # The NSTabView hasn't been placed yet, don't worry about it.
     else:
         wrapper.place_child_with_item(tab_view_item)
Beispiel #10
0
 def sendAction_to_(self, action, to):
     # only send the click event if we didn't send a
     # dragged-left/dragged-right event
     wrapper = wrappermap.wrapper(self)
     if self.last_drag_event is None and not wrapper.get_disabled():
         wrapper.emit('clicked')
     return YES
Beispiel #11
0
 def tabView_willSelectTabViewItem_(self, tab_view, tab_view_item):
     try:
         wrapper = wrappermap.wrapper(tab_view)
     except KeyError:
         pass  # The NSTabView hasn't been placed yet, don't worry about it.
     else:
         wrapper.place_child_with_item(tab_view_item)
Beispiel #12
0
    def mouseDown_(self, event):
        if event.modifierFlags() & NSControlKeyMask:
            self.handleContextMenu_(event)
            self.handled_last_mouse_down = True
            return

        point = self.convertPoint_fromView_(event.locationInWindow(), nil)

        if event.clickCount() == 2:
            if self.handled_last_mouse_down:
                return
            wrapper = wrappermap.wrapper(self)
            row = self.rowAtPoint_(point)
            if row != -1:
                iter = wrapper.model.iter_for_row(self, row)
                wrapper.emit('row-double-clicked', iter)
            return

        hotspot_tracker = HotspotTracker(self, point)
        if hotspot_tracker.hit:
            self.hotspot_tracker = hotspot_tracker
            self.hotspot_tracker.redraw_cell()
            self.handled_last_mouse_down = True
        else:
            self.handled_last_mouse_down = False
            self.SuperClass.mouseDown_(self, event)
Beispiel #13
0
 def outlineView_toolTipForCell_rect_tableColumn_row_mouseLocation_(self, tableview, cell, rect, column, row, location):
     wrapper = wrappermap.wrapper(tableview)
     iter = tableview.dataSource().model.iter_for_row(tableview, row)
     for wrapper_column in wrapper.columns:
         if wrapper_column._column is column:
             break
     return (wrapper.get_tooltip(iter, wrapper_column), rect)
Beispiel #14
0
 def sendAction_to_(self, action, to):
     # only send the click event if we didn't send a
     # dragged-left/dragged-right event
     wrapper = wrappermap.wrapper(self)
     if self.last_drag_event is None and not wrapper.get_disabled():
         wrapper.emit('clicked')
     return YES
Beispiel #15
0
 def sendAction_to_(self, action, to):
     if self.stopTracking:
         return NO
     self.firedOnce = True
     wrapper = wrappermap.wrapper(self)
     if not wrapper.get_disabled():
         wrapper.emit('held-down')
     return YES
Beispiel #16
0
    def viewport_created(self):
        self.video_window = VideoWindow.alloc().initWithContentRect_styleMask_backing_defer_(self.view.frame(), NSBorderlessWindowMask, NSBackingStoreBuffered, NO)
        self.video_window.setContentView_(self.video_view)

        self.adjust_video_frame()
        self.view.window().addChildWindow_ordered_(self.video_window, NSWindowAbove)
        self.video_window.orderFront_(nil)
        self.window_moved_handler = wrappermap.wrapper(self.view.window()).connect('did-move', self.on_window_moved)
Beispiel #17
0
 def sendAction_to_(self, action, to):
     if self.stopTracking:
         return NO
     self.firedOnce = True
     wrapper = wrappermap.wrapper(self)
     if not wrapper.get_disabled():
         wrapper.emit('held-down')
     return YES
Beispiel #18
0
 def tile(self):
     NSScrollView.tile(self)
     # tile is called when we need to layout our child view and scrollers.
     # This probably means that we've either hidden or shown a scrollbar so
     # call invalidate_size_request to ensure that things get re-layed out
     # correctly.  (#see 13842)
     wrapper = wrappermap.wrapper(self)
     if wrapper is not None:
         wrapper.invalidate_size_request()
Beispiel #19
0
 def tile(self):
     NSScrollView.tile(self)
     # tile is called when we need to layout our child view and scrollers.
     # This probably means that we've either hidden or shown a scrollbar so
     # call invalidate_size_request to ensure that things get re-layed out
     # correctly.  (#see 13842)
     wrapper = wrappermap.wrapper(self)
     if wrapper is not None:
         wrapper.invalidate_size_request()
Beispiel #20
0
 def highlightSelectionInClipRect_(self, rect):
     if wrappermap.wrapper(self).draws_selection:
         if not self.gradientHighlight:
             return self.SuperClass.highlightSelectionInClipRect_(self,
                     rect)
         context = NSGraphicsContext.currentContext()
         focused = self.isDescendantOf_(self.window().firstResponder())
         for row in tablemodel.list_from_nsindexset(self.selectedRowIndexes()):
             self.drawBackgroundGradient(context, focused, row)
Beispiel #21
0
    def viewport_created(self):
        self.video_window = VideoWindow.alloc().initWithContentRect_styleMask_backing_defer_(self.view.frame(), NSBorderlessWindowMask, NSBackingStoreBuffered, NO)
        self.video_window.setContentView_(self.video_view)

        self.adjust_video_frame()
        self.view.window().addChildWindow_ordered_(self.video_window, NSWindowAbove)
        self.video_window.orderFront_(nil)
        self.window_moved_handler = wrappermap.wrapper(self.view.window()).connect('did-move', self.on_window_moved)
        app.info_updater.item_changed_callbacks.add('manual', 'playback-list', self.on_items_changed)
Beispiel #22
0
 def validateDrop_dragInfo_parentIter_position_(self, view, drag_info, 
         parent, position):
     typ = self.calcType_(drag_info)
     if typ:
         wrapper = wrappermap.wrapper(view)
         return self.drag_dest.validate_drop(wrapper, self.model, typ,
                 drag_info.draggingSourceOperationMask(), parent,
                 position)
     else:
         return NSDragOperationNone
Beispiel #23
0
 def validateDrop_dragInfo_parentIter_position_(self, view, drag_info, 
         parent, position):
     typ = self.calcType_(drag_info)
     if typ:
         wrapper = wrappermap.wrapper(view)
         return self.drag_dest.validate_drop(wrapper, self.model, typ,
                 drag_info.draggingSourceOperationMask(), parent,
                 position)
     else:
         return NSDragOperationNone
Beispiel #24
0
 def mouseDown_(self, event):
     self.releaseInbounds = self.stopTracking = self.firedOnce = False
     self.cell().trackMouse_inRect_ofView_untilMouseUp_(
         event, self.bounds(), self, YES)
     wrapper = wrappermap.wrapper(self)
     if not wrapper.get_disabled():
         if self.firedOnce:
             wrapper.emit('released')
         elif self.releaseInbounds:
             wrapper.emit('clicked')
Beispiel #25
0
 def sendAction_to_(self, action, to):
     # We override the Cocoa machinery here and just send it to our wrapper
     # widget.
     wrapper = wrappermap.wrapper(self)
     disabled = wrapper.get_disabled()
     if not disabled:
         wrapper.emit('clicked')
     # Tell Cocoa we handled it anyway, just not emit the actual clicked
     # event.
     return YES
Beispiel #26
0
 def _calc_current_focus_wrapper(self):
     responder = self.firstResponder()
     while responder:
         wrapper = wrappermap.wrapper(responder)
         # check if we have a wrapper for the view, if not try the parent
         # view
         if wrapper is not None:
             return wrapper
         responder = responder.superview()
     return None
Beispiel #27
0
 def sendAction_to_(self, action, to):
     # We override the Cocoa machinery here and just send it to our wrapper
     # widget.
     wrapper = wrappermap.wrapper(self)
     disabled = wrapper.get_disabled()
     if not disabled:
         wrapper.emit('changed', self.floatValue())
     # Total Cocoa we handled it anyway to prevent the event passed to
     # upper layer.
     return YES
Beispiel #28
0
 def _calc_current_focus_wrapper(self):
     responder = self.firstResponder()
     while responder:
         wrapper = wrappermap.wrapper(responder)
         # check if we have a wrapper for the view, if not try the parent
         # view
         if wrapper is not None:
             return wrapper
         responder = responder.superview()
     return None
Beispiel #29
0
 def sendAction_to_(self, action, to):
     # We override the Cocoa machinery here and just send it to our wrapper
     # widget.
     wrapper = wrappermap.wrapper(self)
     disabled = wrapper.get_disabled()
     if not disabled:
         wrapper.emit('changed', self.floatValue())
     # Total Cocoa we handled it anyway to prevent the event passed to
     # upper layer.
     return YES
Beispiel #30
0
 def sendAction_to_(self, action, to):
     # We override the Cocoa machinery here and just send it to our wrapper
     # widget.
     wrapper = wrappermap.wrapper(self)
     disabled = wrapper.get_disabled()
     if not disabled:
         wrapper.emit('clicked')
     # Tell Cocoa we handled it anyway, just not emit the actual clicked
     # event.
     return YES
Beispiel #31
0
 def stopTracking_at_inView_mouseIsUp_(self, lastPoint, at, tableview, mouseIsUp):
     if mouseIsUp:
         column = tableview.columnAtPoint_(at)
         row = tableview.rowAtPoint_(at)
         if column != -1 and row != -1:
             wrapper = wrappermap.wrapper(tableview)
             column = wrapper.columns[column]
             itr = wrapper.model.iter_for_row(tableview, row)
             column.renderer.emit('clicked', itr)
     return NSButtonCell.stopTracking_at_inView_mouseIsUp_(self, lastPoint,
             at, tableview, mouseIsUp)
Beispiel #32
0
 def drawRect_(self, rect):
     NSTableHeaderView.drawRect_(self, rect)
     wrapper = wrappermap.wrapper(self.tableView())
     # Manually handle sort column drawing
     for i, column in enumerate(wrapper.columns):
         if column.sort_indicator_visible:
             cell = column._column.headerCell()
             frame = self.headerRectOfColumn_(i)
             cell.highlight_withFrame_inView_(True, frame, self)
             cell.drawSortIndicatorWithFrame_inView_ascending_priority_(
                     frame, self, column.sort_order_ascending, 0)
Beispiel #33
0
 def acceptDrop_dragInfo_parentIter_position_(self, view, drag_info,
         parent, position):
     typ = self.calcType_(drag_info)
     if typ:
         data = drag_info.draggingPasteboard().stringForType_(typ)
         wrapper = wrappermap.wrapper(view)
         return self.drag_dest.accept_drop(wrapper, self.model, typ, 
                 drag_info.draggingSourceOperationMask(), parent,
                 position, data)
     else:
         return NO
Beispiel #34
0
 def view_writeColumnData_ToPasteboard_(self, view, data, pasteboard):
     if not self.drag_source:
         return NO
     wrapper = wrappermap.wrapper(view)
     drag_data = self.drag_source.begin_drag(wrapper, data)
     if not drag_data:
         return NO
     pasteboard.declareTypes_owner_(drag_data.keys(), self)
     for typ, value in drag_data.items():
         pasteboard.setString_forType_(value, typ)
     return YES
Beispiel #35
0
 def view_writeColumnData_ToPasteboard_(self, view, data, pasteboard):
     if not self.drag_source:
         return NO
     wrapper = wrappermap.wrapper(view)
     drag_data = self.drag_source.begin_drag(wrapper, data)
     if not drag_data:
         return NO
     pasteboard.declareTypes_owner_(drag_data.keys(), self)
     for typ, value in drag_data.items():
         pasteboard.setString_forType_(repr(value), typ)
     return YES
Beispiel #36
0
 def acceptDrop_dragInfo_parentIter_position_(self, view, drag_info,
         parent, position):
     typ = self.calcType_(drag_info)
     if typ:
         ids = eval(drag_info.draggingPasteboard().stringForType_(typ))
         wrapper = wrappermap.wrapper(view)
         self.drag_dest.accept_drop(wrapper, self.model, typ, 
             drag_info.draggingSourceOperationMask(), parent,
             position, ids)
         return YES
     else:
         return NO
Beispiel #37
0
 def handle_keyDown(self, event):
     key = event.charactersIgnoringModifiers()
     if len(key) != 1 or not key.isalpha():
         key = osxmenus.REVERSE_KEYS_MAP.get(key)
     mods = osxmenus.translate_event_modifiers(event)
     responder = self.firstResponder()
     while responder is not None:
         wrapper = wrappermap.wrapper(responder)
         if isinstance(wrapper, Widget) or isinstance(wrapper, Window):
             if wrapper.emit('key-press', key, mods):
                 return True # signal handler returned True, stop processing
         responder = responder.nextResponder()
Beispiel #38
0
 def view_writeColumnData_ToPasteboard_(self, view, data, pasteboard):
     if not self.drag_source:
         return NO
     wrapper = wrappermap.wrapper(view)
     drag_data = self.drag_source.begin_drag(wrapper, data)
     if not drag_data:
         return NO
     pasteboard.declareTypes_owner_((MIRO_DND_ITEM_LOCAL,), self)
     for typ, value in drag_data.items():
         stringval = repr((repr(value), typ))
         pasteboard.setString_forType_(stringval, MIRO_DND_ITEM_LOCAL)
     return YES
Beispiel #39
0
 def view_writeColumnData_ToPasteboard_(self, view, data, pasteboard):
     if not self.drag_source:
         return NO
     wrapper = wrappermap.wrapper(view)
     drag_data = self.drag_source.begin_drag(wrapper, data)
     if not drag_data:
         return NO
     pasteboard.declareTypes_owner_((MIRO_DND_ITEM_LOCAL,), self)
     for typ, value in drag_data.items():
         stringval = repr((repr(value), typ))
         pasteboard.setString_forType_(stringval, MIRO_DND_ITEM_LOCAL)
     return YES
Beispiel #40
0
 def continueTracking_at_inView_(self, lastPoint, at, view):
     DRAG_THRESHOLD = 15
     wrapper = wrappermap.wrapper(view)
     if not wrapper.get_disabled():
         if (view.last_drag_event != 'right'
                 and at.x > self.start_x + DRAG_THRESHOLD):
             wrapper.emit("dragged-right")
             view.last_drag_event = 'right'
         elif (view.last_drag_event != 'left'
               and at.x < self.start_x - DRAG_THRESHOLD):
             view.last_drag_event = 'left'
             wrapper.emit("dragged-left")
     return YES
Beispiel #41
0
 def handleContextMenu_(self, event):
     self.window().makeFirstResponder_(self)
     point = self.convertPoint_fromView_(event.locationInWindow(), nil)
     row = self.rowAtPoint_(point)
     selection = self.selectedRowIndexes()
     if row != -1 and not selection.containsIndex_(row):
         index_set = NSIndexSet.alloc().initWithIndex_(row)
         self.selectRowIndexes_byExtendingSelection_(index_set, NO)
     wrapper = wrappermap.wrapper(self)
     if wrapper.context_menu_callback is not None:
         menu_items = wrapper.context_menu_callback(wrapper)
         menu = osxmenus.make_context_menu(menu_items)
         NSMenu.popUpContextMenu_withEvent_forView_(menu, event, self)
Beispiel #42
0
 def continueTracking_at_inView_(self, lastPoint, at, view):
     DRAG_THRESHOLD = 15
     wrapper = wrappermap.wrapper(view)
     if not wrapper.get_disabled():
         if (view.last_drag_event != 'right' and
                 at.x > self.start_x + DRAG_THRESHOLD):
             wrapper.emit("dragged-right")
             view.last_drag_event = 'right'
         elif (view.last_drag_event != 'left' and
                 at.x < self.start_x - DRAG_THRESHOLD):
             view.last_drag_event = 'left'
             wrapper.emit("dragged-left")
     return YES
Beispiel #43
0
 def sendKeyDownToWrapper_(self, event):
     """Give a keyDown event to the wrapper for our responder
     
     Return True if the wrapper handled the event
     """
     key = event.charactersIgnoringModifiers()
     if len(key) != 1 or not key.isalnum():
         key = osxmenus.REVERSE_KEYS_MAP.get(key)
     mods = osxmenus.translate_event_modifiers(event)
     wrapper = wrappermap.wrapper(self.responder)
     if isinstance(wrapper, Widget) or isinstance(wrapper, Window):
         if wrapper.emit('key-press', key, mods):
             return True
     return False
Beispiel #44
0
 def acceptDrop_dragInfo_parentIter_position_(self, view, drag_info, parent, position):
     typ = self.calcType_(drag_info)
     if typ:
         # XXX using eval sucks.
         data = eval(drag_info.draggingPasteboard().stringForType_(MIRO_DND_ITEM_LOCAL))
         ids, _ = data
         ids = eval(ids)
         wrapper = wrappermap.wrapper(view)
         self.drag_dest.accept_drop(
             wrapper, self.model, typ, drag_info.draggingSourceOperationMask(), parent, position, ids
         )
         return YES
     else:
         return NO
Beispiel #45
0
    def moveSliderTo(self, view, pos):
        if view.isVertical():
            size = view.bounds().size.height
        else:
            size = view.bounds().size.width

        slider_amount = self.calc_slider_amount(view, pos, size)
        value = (self.maxValue() - self.minValue()) * slider_amount
        self.setFloatValue_(value)
        wrapper = wrappermap.wrapper(view)
        if not wrapper.get_disabled():
            wrapper.emit('moved', value)
            if self.isContinuous():
                wrapper.emit('changed', value)
Beispiel #46
0
 def sendKeyDownToWrapper_(self, event):
     """Give a keyDown event to the wrapper for our responder
     
     Return True if the wrapper handled the event
     """
     key = event.charactersIgnoringModifiers()
     if len(key) != 1 or not key.isalnum():
         key = osxmenus.REVERSE_KEYS_MAP.get(key)
     mods = osxmenus.translate_event_modifiers(event)
     wrapper = wrappermap.wrapper(self.responder)
     if isinstance(wrapper, Widget) or isinstance(wrapper, Window):
         if wrapper.emit('key-press', key, mods):
             return True
     return False
Beispiel #47
0
    def moveSliderTo(self, view, pos):
        if view.isVertical():
            size = view.bounds().size.height
        else:
            size = view.bounds().size.width

        slider_amount = self.calc_slider_amount(view, pos, size)
        value = (self.maxValue() - self.minValue()) * slider_amount
        self.setFloatValue_(value)
        wrapper = wrappermap.wrapper(view)
        if not wrapper.get_disabled():
            wrapper.emit('moved', value)
            if self.isContinuous():
                wrapper.emit('changed', value)
Beispiel #48
0
 def startTrackingAt_inView_(self, at, view):
     wrapper = wrappermap.wrapper(view)
     start_pos = self.get_slider_pos(view)
     if self.isVertical():
         click_pos = at.y
     else:
         click_pos = at.x
     # only move the cursor if the click was outside the slider
     if abs(click_pos - start_pos) > view.knobThickness() / 2:
         self.moveSliderTo(view, click_pos)
         start_pos = click_pos
     view.mouse_tracking_info = MouseTrackingInfo(start_pos, click_pos)
     if not wrapper.get_disabled():
         wrapper.emit('pressed')
     return YES
Beispiel #49
0
 def startTrackingAt_inView_(self, at, view):
     wrapper = wrappermap.wrapper(view)
     start_pos = self.get_slider_pos(view)
     if self.isVertical():
         click_pos = at.y
     else:
         click_pos = at.x
     # only move the cursor if the click was outside the slider
     if abs(click_pos - start_pos) > view.knobThickness() / 2:
         self.moveSliderTo(view, click_pos)
         start_pos = click_pos
     view.mouse_tracking_info = MouseTrackingInfo(start_pos, click_pos)
     if not wrapper.get_disabled():
         wrapper.emit('pressed')
     return YES
Beispiel #50
0
 def acceptDrop_dragInfo_parentIter_position_(self, view, drag_info,
         parent, position):
     typ = self.calcType_(drag_info)
     if typ:
         # XXX using eval sucks.
         data = eval(drag_info.draggingPasteboard().stringForType_(MIRO_DND_ITEM_LOCAL))
         ids, _ = data
         ids = eval(ids)
         wrapper = wrappermap.wrapper(view)
         self.drag_dest.accept_drop(wrapper, self.model, typ, 
             drag_info.draggingSourceOperationMask(), parent,
             position, ids)
         return YES
     else:
         return NO
Beispiel #51
0
    def drawRect_(self, rect):
        context = drawing.DrawingContext(self, self.bounds(), rect)
        context.style = drawing.DrawingStyle()
        wrapper = wrappermap.wrapper(self)
        wrapper.state = 'normal'
        disabled = wrapper.get_disabled()
        if not disabled:
            if self.state() == NSOnState:
                wrapper.state = 'pressed'
            elif self.mouse_inside:
                wrapper.state = 'hover'
            else:
                wrapper.state = 'normal'

        wrapper.draw(context, self.layout_manager)
        self.layout_manager.reset()
Beispiel #52
0
 def continueTracking_at_inView_(self, lastPoint, at, view):
     if view.isVertical():
         pos = at.y
         size = view.bounds().size.height
     else:
         pos = at.x
         size = view.bounds().size.width
     slider_amount = self.calc_slider_amount(view, pos, size)
     value = (self.maxValue() - self.minValue()) * slider_amount
     self.setFloatValue_(value)
     wrapper = wrappermap.wrapper(view)
     if not wrapper.get_disabled():
         wrapper.emit('moved', value)
         if self.isContinuous():
             wrapper.emit('changed', value)
     return YES
Beispiel #53
0
 def validateDrop_dragInfo_parentIter_position_(self, view, drag_info,
                                                parent, position):
     typ = self.calcType_(drag_info)
     if typ:
         wrapper = wrappermap.wrapper(view)
         drop_action = self.drag_dest.validate_drop(
             wrapper, self.model, typ,
             drag_info.draggingSourceOperationMask(), parent, position)
         if not drop_action:
             return NSDragOperationNone
         if isinstance(drop_action, (tuple, list)):
             drop_action, iter = drop_action
             view.setDropRow_dropOperation_(
                 self.model.row_of_iter(view, iter), NSTableViewDropOn)
         return drop_action
     else:
         return NSDragOperationNone
Beispiel #54
0
    def scrollWheel_(self, event):
        wrapper = wrappermap.wrapper(self)
        if wrapper.get_disabled():
            return
        # NOTE: we ignore the scroll_step value passed into set_increments()
        # and calculate the change using deltaY, which is in device
        # coordinates.
        slider_size = wrapper.slider_size()
        if wrapper.is_horizontal():
            size = self.bounds().size.width
        else:
            size = self.bounds().size.height
        size -= slider_size

        range = self.maxValue() - self.minValue()
        value_change = (event.deltaY() / size) * range
        self.setFloatValue_(self.floatValue() + value_change)
        wrapper.emit('pressed')
        wrapper.emit('changed', self.floatValue())
        wrapper.emit('released')
Beispiel #55
0
 def cancelOperation_(self, event):
     wrappermap.wrapper(self).end_with_code(-1)
Beispiel #56
0
 def focusNextKeyView_(self, is_forward):
     current_focus = self._calc_current_focus_wrapper()
     my_wrapper = wrappermap.wrapper(self)
     next_focus = my_wrapper.get_next_tab_focus(current_focus, is_forward)
     if next_focus is not None:
         next_focus.focus()
Beispiel #57
0
 def isOpaque(self):
     return wrappermap.wrapper(self).is_opaque()
Beispiel #58
0
 def drawRect_(self, rect):
     context = drawing.DrawingContext(self, self.bounds(), rect)
     context.style = drawing.DrawingStyle()
     wrappermap.wrapper(self).draw(context, self.layout_manager)
     self.layout_manager.reset()
Beispiel #59
0
 def isVertical(self):
     return not wrappermap.wrapper(self).is_horizontal()
Beispiel #60
0
 def knobThickness(self):
     return wrappermap.wrapper(self).slider_size()