Cairo__FontSlant.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 17 Feb 2016 06:43:31 +0000
changeset 40 28dfc583beb5
parent 34 97705b5a9411
child 88 9d51db2ba641
permissions -rw-r--r--
#displayString: in CairoGraphicsContext revamped Introduced a CairoScaledFont, a kind of FontDescription for Cairo fonts (Cairo::ScaledFont / cairo_scaled_font_t). CairoScaledFont provides a bridge between Smalltalk/X font API and Cairo the same way CairoGraphicsContext provides a bridge bewtween Smalltalk/X drawing API and Cairo. Don't use Cairo's "toy" text API to select font. Under X11, use FontConfig to select a proper font. However, for actual text rendering and measurements, Cairo's "toy" API is still used - it seems to be good enough, certainly as good as Core X11 / Xft text rendering for Latin-based left-to-right languages. At this point a TextEditView can be rendered using Cairo.

"{ Package: 'stx:goodies/libcairo' }"

"{ NameSpace: Cairo }"

SharedPool subclass:#FontSlant
	instanceVariableNames:''
	classVariableNames:'CAIRO_FONT_SLANT_NORMAL CAIRO_FONT_SLANT_ITALIC
		CAIRO_FONT_SLANT_OBLIQUE SymbolicFontSlantToCairoFontSlantMap'
	poolDictionaries:''
	category:'Cairo-Constants'
!


!FontSlant class methodsFor:'initialization'!

initialize

    CAIRO_FONT_SLANT_NORMAL := 0.
    CAIRO_FONT_SLANT_ITALIC := 1.
    CAIRO_FONT_SLANT_OBLIQUE := 2.

    SymbolicFontSlantToCairoFontSlantMap := Dictionary new.
    SymbolicFontSlantToCairoFontSlantMap at: 'roman' put: CAIRO_FONT_SLANT_NORMAL.
    SymbolicFontSlantToCairoFontSlantMap at: 'normal' put: CAIRO_FONT_SLANT_NORMAL.
    SymbolicFontSlantToCairoFontSlantMap at: 'italic' put: CAIRO_FONT_SLANT_ITALIC.
    SymbolicFontSlantToCairoFontSlantMap at: 'obligue' put: CAIRO_FONT_SLANT_OBLIQUE.

    "Modified: / 09-01-2015 / 15:12:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!FontSlant class methodsFor:'constants'!

CAIRO_FONT_SLANT_ITALIC

    ^CAIRO_FONT_SLANT_ITALIC
!

CAIRO_FONT_SLANT_NORMAL

    ^CAIRO_FONT_SLANT_NORMAL
!

CAIRO_FONT_SLANT_OBLIQUE

    ^CAIRO_FONT_SLANT_OBLIQUE
! !

!FontSlant class methodsFor:'documentation'!

version_HG

    ^ '$Changeset: <not expanded> $'
! !


FontSlant initialize!