Dart Documentationbot_retainedMouse

Mouse class

class Mouse {
  static final Property<bool> isMouseOverProperty =
      new Property<bool>("IsMouseOver", false);
  static final Property<bool> isMouseDirectlyOverProperty =
      new Property<bool>("IsMouseDirectlyOver", false);
  static final Property<List<PElement>> _stageMouseCacheProperty =
      new Property<List<PElement>>("_stageMouseCacheProperty");

  static bool isMouseOver(PElement element) => isMouseOverProperty.get(element);

  static bool isMouseDirectlyOver(PElement element) =>
      isMouseDirectlyOverProperty.get(element);

  static List<PElement> markMouseOver(Stage stage,
      [Coordinate coordinate = null]) {
    requireArgumentNotNull(stage, 'stage');
    requireArgument(coordinate == null || coordinate.isValid, 'coordinate');

    final items = _stageMouseCacheProperty.get(stage);
    if (items != null) {
      items.forEach((e) {
        isMouseOverProperty.clear(e);
        isMouseDirectlyOverProperty.clear(e);
      });
      _stageMouseCacheProperty.clear(stage);
    }
    if (coordinate != null) {
      var hits = RetainedUtil.hitTest(stage, coordinate);
      _stageMouseCacheProperty.set(stage, hits);
      hits.forEach((e) {
        isMouseOverProperty.set(e, true);
      });
      if (hits.length > 0) {
        isMouseDirectlyOverProperty.set(hits[0], true);
      }
      return hits;
    }
    return null;
  }
}

Static Properties

final Property<bool> isMouseDirectlyOverProperty #

static final Property<bool> isMouseDirectlyOverProperty =
    new Property<bool>("IsMouseDirectlyOver", false);

final Property<bool> isMouseOverProperty #

static final Property<bool> isMouseOverProperty =
    new Property<bool>("IsMouseOver", false);

Static Methods

bool isMouseOver(PElement element) #

static bool isMouseOver(PElement element) => isMouseOverProperty.get(element);

bool isMouseDirectlyOver(PElement element) #

static bool isMouseDirectlyOver(PElement element) =>
    isMouseDirectlyOverProperty.get(element);

List<PElement> markMouseOver(Stage stage, [Coordinate coordinate = null]) #

static List<PElement> markMouseOver(Stage stage,
    [Coordinate coordinate = null]) {
  requireArgumentNotNull(stage, 'stage');
  requireArgument(coordinate == null || coordinate.isValid, 'coordinate');

  final items = _stageMouseCacheProperty.get(stage);
  if (items != null) {
    items.forEach((e) {
      isMouseOverProperty.clear(e);
      isMouseDirectlyOverProperty.clear(e);
    });
    _stageMouseCacheProperty.clear(stage);
  }
  if (coordinate != null) {
    var hits = RetainedUtil.hitTest(stage, coordinate);
    _stageMouseCacheProperty.set(stage, hits);
    hits.forEach((e) {
      isMouseOverProperty.set(e, true);
    });
    if (hits.length > 0) {
      isMouseDirectlyOverProperty.set(hits[0], true);
    }
    return hits;
  }
  return null;
}

Properties

final Type runtimeType #

inherited from Object

A representation of the runtime type of the object.

external Type get runtimeType;

Operators

bool operator ==(other) #

inherited from Object

The equality operator.

The default behavior for all Objects is to return true if and only if this and other are the same object.

If a subclass overrides the equality operator it should override the hashCode method as well to maintain consistency.

bool operator ==(other) => identical(this, other);

Methods

int hashCode() #

inherited from Object

Get a hash code for this object.

All objects have hash codes. Hash codes are guaranteed to be the same for objects that are equal when compared using the equality operator ==. Other than that there are no guarantees about the hash codes. They will not be consistent between runs and there are no distribution guarantees.

If a subclass overrides hashCode it should override the equality operator as well to maintain consistency.

external int hashCode();

noSuchMethod(String name, List args) #

inherited from Object

noSuchMethod is invoked when users invoke a non-existant method on an object. The name of the method and the arguments of the invocation are passed to noSuchMethod. If noSuchMethod returns a value, that value becomes the result of the original invocation.

The default behavior of noSuchMethod is to throw a noSuchMethodError.

external Dynamic noSuchMethod(String name, List args);

const Object() #

inherited from Object

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

const Object();

String toString() #

inherited from Object

Returns a string representation of this object.

external String toString();