Method: Fox::Canvas::ShapeCanvas#onLeftBtnPress

Defined in:
lib/fox16/canvas.rb

#onLeftBtnPress(sender, sel, evt) ⇒ Object

Left button press



506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
# File 'lib/fox16/canvas.rb', line 506

def onLeftBtnPress(sender, sel, evt)
  handle(self, MKUINT(0, SEL_FOCUS_SELF), evt)
  if enabled?
    grab
    flags &= ~FLAG_UPDATE

    # Give target the first chance at handling this
    return 1 if target && (target.handle(self, MKUINT(message, SEL_LEFTBUTTONPRESS), evt) != 0)

    # Locate shape
    shape = findShape(evt.win_x, evt.win_y)

    # No shape here
    if shape.nil?
      return 1
    end

    # Change current shape
    @currentShape = shape

    # Change item selection
    if shape.enabled? && !shape.selected?
      selectShape(shape, true)
    end

    # Are we dragging?
    if shape.selected? && shape.draggable?
      flags |= FLAG_TRYDRAG
    end

    flags |= FLAG_PRESSED
    return 1
  end
  return 0
end