From 0b904d2beac81da636bb1b8ab51143c855d8da9a Mon Sep 17 00:00:00 2001 From: Martin Dias Date: Fri, 3 May 2024 18:30:44 -0400 Subject: [PATCH] Canvas: deprecate #drawText:font: in favor of #drawGlyphs:font: It was too confusing to call "text" to an array of glyphs. --- .../AeCanvasTest.class.st | 10 +++++--- src/Alexandrie-Canvas/AeCanvas.class.st | 25 ++++++++++++++++--- .../AeHarfbuzzRenderExample.class.st | 2 +- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/Alexandrie-Canvas-Tests/AeCanvasTest.class.st b/src/Alexandrie-Canvas-Tests/AeCanvasTest.class.st index d5e5bbe..99020a6 100644 --- a/src/Alexandrie-Canvas-Tests/AeCanvasTest.class.st +++ b/src/Alexandrie-Canvas-Tests/AeCanvasTest.class.st @@ -353,7 +353,10 @@ AeCanvasTest >> renderGlyphs: aCairoGlyphsArray scaledFont: aCairoScaledFont on: | metrics baseline | "Calculate text metrics" - metrics := aeCanvas metricsFor: aCairoGlyphsArray font: aCairoScaledFont. + metrics := + aeCanvas + metricsFor: aCairoGlyphsArray + font: aCairoScaledFont. baseline := metrics bearingX @ metrics ascent negated. "Draw baseline" @@ -376,9 +379,8 @@ AeCanvasTest >> renderGlyphs: aCairoGlyphsArray scaledFont: aCairoScaledFont on: aeCanvas setSourceColor: Color orange; pathTranslate: baseline; - drawText: aCairoGlyphsArray - font: aCairoScaledFont. - + drawGlyphs: aCairoGlyphsArray + font: aCairoScaledFont ] { #category : #tests } diff --git a/src/Alexandrie-Canvas/AeCanvas.class.st b/src/Alexandrie-Canvas/AeCanvas.class.st index 1cc0fda..9832804 100644 --- a/src/Alexandrie-Canvas/AeCanvas.class.st +++ b/src/Alexandrie-Canvas/AeCanvas.class.st @@ -69,6 +69,14 @@ AeCanvas class >> newFor: aeCairoSurface [ yourself ] +{ #category : #'API - text' } +AeCanvas >> appendGlyphsPath: aeGlyphArray font: aScaledFont [ + + cairoContext + scaledFont: aScaledFont; + appendGlyphsPath: aeGlyphArray +] + { #category : #converting } AeCanvas >> asForm [ @@ -326,6 +334,14 @@ AeCanvas >> drawFigureWithExplicitBorderOutsideAndNoBackground [ cairoContext clip ] +{ #category : #'API - text' } +AeCanvas >> drawGlyphs: aeGlyphArray font: aScaledFont [ + + cairoContext + scaledFont: aScaledFont; + showGlyphs: aeGlyphArray +] + { #category : #private } AeCanvas >> drawNothingButMayClip [ @@ -337,10 +353,13 @@ AeCanvas >> drawNothingButMayClip [ { #category : #'API - text' } AeCanvas >> drawText: aeGlyphArray font: aScaledFont [ + self + deprecated: 'Use #drawGlyphs:font: instead' + transformWith: + '`@receiver drawText: `@arg1 font: `@arg2' -> + '`@receiver drawGlyphs: `@arg1 font: `@arg2'. - cairoContext - scaledFont: aScaledFont; - showGlyphs: aeGlyphArray + self drawGlyphs: aeGlyphArray font: aScaledFont ] { #category : #accessing } diff --git a/src/Alexandrie-Harfbuzz-Tests/AeHarfbuzzRenderExample.class.st b/src/Alexandrie-Harfbuzz-Tests/AeHarfbuzzRenderExample.class.st index 2c644d9..9178a01 100644 --- a/src/Alexandrie-Harfbuzz-Tests/AeHarfbuzzRenderExample.class.st +++ b/src/Alexandrie-Harfbuzz-Tests/AeHarfbuzzRenderExample.class.st @@ -166,7 +166,7 @@ AeHarfbuzzRenderExample >> newForm [ aeCanvas pathTranslate: 0 @ (fontHeight*1.1). aeCanvas setSourceColor: Color green muchDarker. aeCanvas - drawText: self glyphArrayWithHarfbuzz + drawGlyphs: self glyphArrayWithHarfbuzz font: cairoScaledFont. ^ aeCanvas asForm