Search in sources :

Example 1 with PointF

use of cli.System.Drawing.PointF in project playn by threerings.

the class IOSTextLayout method paint.

private void paint(CGBitmapContext bctx, CTLine line, float x, float y) {
    bctx.SaveState();
    bctx.TranslateCTM(x, y + ascent());
    bctx.ScaleCTM(1, -1);
    bctx.SetShouldAntialias(format.antialias);
    bctx.set_TextPosition(new PointF(0, 0));
    line.Draw(bctx);
    bctx.RestoreState();
}
Also used : PointF(cli.System.Drawing.PointF)

Example 2 with PointF

use of cli.System.Drawing.PointF in project playn by threerings.

the class IOSTouch method toTouchEvents.

private Event.Impl[] toTouchEvents(NSSet touches, UIEvent event) {
    final Event.Impl[] events = new Event.Impl[Convert.ToInt32(touches.get_Count())];
    touches.Enumerate(new NSSetEnumerator(new NSSetEnumerator.Method() {

        public void Invoke(NSObject obj, boolean[] stop) {
            UITouch touch = (UITouch) obj;
            PointF loc = touch.LocationInView(touch.get_View());
            // transform the point based on our current scale
            IPoint xloc = graphics.transformTouch(loc.get_X(), loc.get_Y());
            // on iOS the memory address of the UITouch object is the unique id
            int id = touch.get_Handle().ToInt32();
            events[_idx++] = new Event.Impl(new Events.Flags.Impl(), touch.get_Timestamp() * 1000, xloc.x(), xloc.y(), id);
            stop[0] = false;
        }

        private int _idx = 0;
    }));
    return events;
}
Also used : TouchImpl(playn.core.TouchImpl) NSObject(cli.MonoTouch.Foundation.NSObject) Events(playn.core.Events) NSSetEnumerator(cli.MonoTouch.Foundation.NSSetEnumerator) PointF(cli.System.Drawing.PointF) UIEvent(cli.MonoTouch.UIKit.UIEvent) IPoint(pythagoras.f.IPoint) UITouch(cli.MonoTouch.UIKit.UITouch) IPoint(pythagoras.f.IPoint)

Example 3 with PointF

use of cli.System.Drawing.PointF in project playn by threerings.

the class IOSPointer method toPointerEvent.

private Event.Impl toPointerEvent(NSSet touches, UIEvent event) {
    final Event.Impl[] eventw = new Event.Impl[1];
    touches.Enumerate(new NSSetEnumerator(new NSSetEnumerator.Method() {

        public void Invoke(NSObject obj, boolean[] stop) {
            UITouch touch = (UITouch) obj;
            int handle = touch.get_Handle().ToInt32();
            // if we have an active touch, we only care about that touch
            if (_active != 0 && handle != _active) {
                stop[0] = false;
            } else {
                _active = handle;
                PointF loc = touch.LocationInView(touch.get_View());
                // transform the point based on our current scale
                IPoint xloc = graphics.transformTouch(loc.get_X(), loc.get_Y());
                eventw[0] = new Event.Impl(new Events.Flags.Impl(), touch.get_Timestamp() * 1000, xloc.x(), xloc.y(), true);
                stop[0] = true;
            }
        }
    }));
    return eventw[0];
}
Also used : PointerImpl(playn.core.PointerImpl) NSObject(cli.MonoTouch.Foundation.NSObject) Events(playn.core.Events) NSSetEnumerator(cli.MonoTouch.Foundation.NSSetEnumerator) PointF(cli.System.Drawing.PointF) UIEvent(cli.MonoTouch.UIKit.UIEvent) IPoint(pythagoras.f.IPoint) UITouch(cli.MonoTouch.UIKit.UITouch) IPoint(pythagoras.f.IPoint)

Aggregations

PointF (cli.System.Drawing.PointF)3 NSObject (cli.MonoTouch.Foundation.NSObject)2 NSSetEnumerator (cli.MonoTouch.Foundation.NSSetEnumerator)2 UIEvent (cli.MonoTouch.UIKit.UIEvent)2 UITouch (cli.MonoTouch.UIKit.UITouch)2 Events (playn.core.Events)2 IPoint (pythagoras.f.IPoint)2 PointerImpl (playn.core.PointerImpl)1 TouchImpl (playn.core.TouchImpl)1