public MouseEventsDrawable(IDrawable sourceDrawable, IReadonlyPosition position, IReadonlySize size) : base( sourceDrawable, position, size) { if (!(sourceDrawable is IMouseEventsHandler)) { throw new ArgumentException( "Unable to create mapped drawable with mouse event handling from object without IMouseEventHandler interface"); } }
public void AddDrawable(IDrawable drawable, IReadonlyPosition position, IReadonlySize size) { var newDrawable = drawable is IMouseEventsHandler ? new MouseEventsDrawable(drawable, position, size) : new MappedDrawable(drawable, position, size); if (_drawableAreas == null) { throw new InvalidOperationException("Unexpected drawable state: drawable areas container is null"); } _drawableAreas.Add(newDrawable); }
public MappedDrawable(IDrawable sourceDrawable, IReadonlyPosition position, IReadonlySize size) { SourceDrawable = sourceDrawable; Position = position; Size = size; }