/** * @since Available in iOS 3.2 and later. */ public CGPoint[] getLineOrigins(CFRange range) { if (range == null) throw new NullPointerException("range"); int size = range.getLength() == 0 ? getLines().size() : (int)range.getLength(); if (size == 0) { return new CGPoint[0]; } CGPoint array = Struct.allocate(CGPoint.class, size); getLineOrigins(range, array); return array.toArray(size); } /*<methods>*/
/** * @since Available in iOS 3.2 and later. */ public CGPoint[] getPositions(@ByVal CFRange range) { CGPoint p = Struct.allocate(CGPoint.class, (int)range.getLength()); getPositions(range, p); return p.toArray((int) getGlyphCount()); } /**
/** * @since Available in iOS 3.2 and later. */ public CGSize[] getAdvances(@ByVal CFRange range) { CGSize s = Struct.allocate(CGSize.class, (int)range.getLength()); getAdvances(range, s); return s.toArray((int) getGlyphCount()); } /**
/** * @since Available in iOS 3.2 and later. */ public CGPoint[] getLineOrigins(CFRange range) { if (range == null) throw new NullPointerException("range"); int size = range.getLength() == 0 ? getLines().size() : (int)range.getLength(); if (size == 0) { return new CGPoint[0]; } CGPoint array = Struct.allocate(CGPoint.class, size); getLineOrigins(range, array); return array.toArray(size); } /*<methods>*/
/** * @since Available in iOS 3.2 and later. */ public CGPoint[] getLineOrigins(CFRange range) { if (range == null) throw new NullPointerException("range"); int size = range.getLength() == 0 ? getLines().size() : (int)range.getLength(); if (size == 0) { return new CGPoint[0]; } CGPoint array = Struct.allocate(CGPoint.class, size); getLineOrigins(range, array); return array.toArray(size); } /*<methods>*/
/** * @since Available in iOS 3.2 and later. */ public CGPoint[] getPositions(@ByVal CFRange range) { CGPoint p = Struct.allocate(CGPoint.class, (int)range.getLength()); getPositions(range, p); return p.toArray((int) getGlyphCount()); } /**
/** * @since Available in iOS 3.2 and later. */ public CGSize[] getAdvances(@ByVal CFRange range) { CGSize s = Struct.allocate(CGSize.class, (int)range.getLength()); getAdvances(range, s); return s.toArray((int) getGlyphCount()); } /**
public static RoboTextLayout[] layoutText(RoboGraphics gfx, String text, TextFormat format, TextWrap wrap) { text = normalizeEOL(text); final CTFont font = RoboFont.resolveFont(format.font); NSAttributedStringAttributes attribs = createAttribs(font); List<CTLine> lines = wrapLines(new NSAttributedString(text, attribs), wrap.width); RoboTextLayout[] layouts = new RoboTextLayout[lines.size()]; for (int ii = 0; ii < layouts.length; ii++) { CTLine line = lines.get(ii); CFRange range = line.getStringRange(); String ltext = text.substring((int)range.getLocation(), (int)(range.getLocation()+range.getLength())); layouts[ii] = new RoboTextLayout(gfx, ltext, format, font, line); } return layouts; }
/** * @since Available in iOS 3.2 and later. */ public CGSize[] getAdvances(@ByVal CFRange range) { CGSize s = Struct.allocate(CGSize.class, (int)range.getLength()); getAdvances(range, s); return s.toArray((int) getGlyphCount()); } /**
/** * @since Available in iOS 3.2 and later. */ public CGPoint[] getPositions(@ByVal CFRange range) { CGPoint p = Struct.allocate(CGPoint.class, (int)range.getLength()); getPositions(range, p); return p.toArray((int) getGlyphCount()); } /**
public static RoboTextLayout[] layoutText(RoboGraphics gfx, String text, TextFormat format, TextWrap wrap) { text = normalizeEOL(text); final RoboFont font = (format.font == null) ? RoboGraphics.defaultFont : (RoboFont) format.font; NSAttributedStringAttributes attribs = createAttribs(font); CFArray lines = wrapLines(new NSAttributedString(text, attribs), wrap.width); RoboTextLayout[] layouts = new RoboTextLayout[(int)lines.size()]; for (int ii = 0; ii < layouts.length; ii++) { CTLine line = lines.get(ii, CTLine.class); CFRange range = line.getStringRange(); String ltext = text.substring((int)range.getLocation(), (int)(range.getLocation()+range.getLength())); layouts[ii] = new RoboTextLayout(gfx, ltext, format, font, line); } return layouts; }