Cairo__PatternSolid.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 01 Aug 2019 18:43:54 +0100
changeset 87 d1313f80a9a7
parent 86 e434bd07e403
child 88 9d51db2ba641
permissions -rw-r--r--
Remove leftover `Makefile`
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
63
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/libcairo' }"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Cairo }"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
Pattern subclass:#PatternSolid
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Cairo-Objects'
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
86
e434bd07e403 Refactored `CairoGraphicsContext` finalization to avoid code duplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    12
63
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!PatternSolid methodsFor:'accessing'!
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
color
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    | rb gb bb ab a color |
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    rb := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    gb := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    bb := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    ab := ExternalBytes basicNew allocateBytes: ExternalBytes sizeofDouble.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
    [ 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
        CPrimitives cairo_pattern_get_rgba: self _: rb _: gb _: bb _: ab.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
        a := ab doubleAt: 1.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
        a = 1.0 ifTrue:[ 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
            color := Color 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
                           scaledRed: ((rb doubleAt: 1) * 16rFFFF) rounded
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
                         scaledGreen: ((gb doubleAt: 1) * 16rFFFF) rounded 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
                          scaledBlue: ((bb doubleAt: 1) * 16rFFFF) rounded
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
        ] ifFalse:[ 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
            color := TranslucentColor 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
                           scaledRed: ((rb doubleAt: 1) * 16rFFFF) rounded
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
                         scaledGreen: ((gb doubleAt: 1) * 16rFFFF) rounded 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
                          scaledBlue: ((bb doubleAt: 1) * 16rFFFF) rounded.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
            color alpha: a
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
        ].
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    ] ensure:[ 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
        rb free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
        gb free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
        bb free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
        ab free.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    ].
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    ^ color
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    "Created: / 04-03-2016 / 07:06:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "Modified: / 04-03-2016 / 16:13:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
! !
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
!PatternSolid methodsFor:'testing'!
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
isSolid
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    ^ true
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    "Created: / 04-03-2016 / 09:48:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
! !
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
86
e434bd07e403 Refactored `CairoGraphicsContext` finalization to avoid code duplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    58
!PatternSolid class methodsFor:'documentation'!
e434bd07e403 Refactored `CairoGraphicsContext` finalization to avoid code duplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    59
e434bd07e403 Refactored `CairoGraphicsContext` finalization to avoid code duplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    60
version_HG
e434bd07e403 Refactored `CairoGraphicsContext` finalization to avoid code duplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    61
e434bd07e403 Refactored `CairoGraphicsContext` finalization to avoid code duplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    62
    ^ '$Changeset: <not expanded> $'
e434bd07e403 Refactored `CairoGraphicsContext` finalization to avoid code duplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    63
! !
e434bd07e403 Refactored `CairoGraphicsContext` finalization to avoid code duplication
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
    64