Cairo__Examples1.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 21 Mar 2016 22:28:05 +0000
changeset 63 054f0513ea65
parent 57 2c9a342e1f2a
child 67 b8bfa65ab23b
permissions -rw-r--r--
Initial support for Cairo::Pattern except a mesh pattern.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/libcairo' }"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Cairo }"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
     5
AbstractExamples subclass:#Examples1
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
     6
	instanceVariableNames:''
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Cairo-Examples'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
63
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
    12
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!Examples1 methodsFor:'examples'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
example01: cr <example: '01 - arc'>
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
| xc yc radius angle1 angle2 |
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
xc := 128.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
yc := 128.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
radius := 100.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
angle1 := 45 * (Float pi / 180).
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
angle2 := 180 * (Float pi / 180).
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
cr sourceR: 1.0 G: 1.0 B: 1.0.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
cr lineWidth: 10.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
cr arcX: xc y: yc radius: radius from: angle1 to: angle2.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
cr stroke.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    "Created: / 26-02-2016 / 21:53:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
51
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    30
!
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    31
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    32
example21: cr <example: '21 - Display PNG from file'>
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    33
| png |
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    34
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    35
png := Cairo::Surface newPNGWithFile: (Smalltalk getBitmapFileName:'circle1.png' forPackage:#'stx:goodies/libcairo') pathName.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    36
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    37
cr sourceR: 1 G: 1 B: 1.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    38
cr rectangleX: 0 y: 0 width: 32 height: 32.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    39
cr fill.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    40
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    41
cr sourceR: 0 G: 0 B: 0.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    42
cr rectangleX: 32 y: 32 width: 32 height: 32.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    43
cr fill.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    44
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    45
cr sourceSurface: png x: 0 y: 0.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    46
cr paint.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    47
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    48
    "Created: / 28-02-2016 / 07:56:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    49
!
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    50
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    51
example22: cr <example: '22 - Rectangles - fill and stroke'>
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    52
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    53
Shows how stroke,fill and lineWidth plays together
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    54
"
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    55
cr lineWidth: 1.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    56
cr sourceR: 0 G: 0 B: 0.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    57
cr moveToX: 1   y: 15.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    58
cr lineToX: 130 y: 15.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    59
cr moveToX: 15  y: 1.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    60
cr lineToX: 15  y: 130.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    61
cr moveToX: 1   y: 115.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    62
cr lineToX: 130 y: 115.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    63
cr moveToX: 115 y: 1.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    64
cr lineToX: 115 y: 130.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    65
cr stroke.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    66
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    67
cr lineWidth: 10.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    68
cr sourceR: 1 G: 0 B: 0.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    69
cr rectangleX: 15 y: 15 width: 100 height: 100.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    70
cr stroke.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    71
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    72
cr sourceR: 0 G: 0 B: 1.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    73
cr rectangleX: 15 y: 65 width: 50 height: 50.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    74
cr fill.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    75
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    76
    "Created: / 28-02-2016 / 15:09:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    77
    "Modified: / 02-03-2016 / 21:10:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    78
!
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    79
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    80
example24: cr <example: '24 - Transparency'>
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    81
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    82
Shows half-transparent rounded rectangle over a
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    83
black-n-white checker board. Rounded corners are
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    84
antialiased for better look.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    85
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    86
| black white x y w h r pi |
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    87
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    88
"Display s checker board"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    89
black := Color black.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    90
white := Color white.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    91
cr lineWidth:0.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    92
1 to: 8 do:[:x |
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    93
    1 to: 8 do:[:y |  
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    94
        cr source: ((x + y) even ifTrue:[ black ] ifFalse:[ white ]).
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    95
        cr rectangleX: ((x - 1) * 32) + 1
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    96
                    y: ((y - 1) * 32) + 1
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    97
                width: 32 
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    98
               height: 32.        
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    99
        cr fill.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   100
    ]
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   101
].
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   102
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   103
"Show 50% transparent blue rectangle with 25% transparent
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   104
 red border. First, create the path:"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   105
x := 16.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   106
y := 16.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   107
w := 32 * 7.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   108
h := 32 * 7.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   109
r := 8.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   110
pi := Float pi.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   111
"top-left arc"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   112
cr arcX: x + r     y: y + r     radius: r from:         pi to: (3/2) * pi.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   113
" top-right arc"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   114
cr arcX: x + w - r y: y + r     radius: r from: (3/2) * pi to: 0.0.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   115
"bottom-right arc"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   116
cr arcX: x + w - r y: y + h - r radius: r from: 0.0        to: (1/2) * pi.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   117
"bottom-left atc"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   118
cr arcX: x + r     y: y + h - r radius: r from: (1/2) * pi to:         pi.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   119
cr closePath.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   120
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   121
"Show the border"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   122
cr lineWidth: 10.  
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   123
cr sourceR: 1 G: 0 B: 0 A: 0.75.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   124
cr strokeAndPreserve.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   125
cr sourceR: 0 G: 0 B: 1 A: 0.5.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   126
cr fill.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   127
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   128
    "Created: / 29-02-2016 / 18:45:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
63
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   129
!
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   130
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   131
example25: cr <example: '25 - Linear Gradient 1'>
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   132
"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   133
This shows a linear gradient
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   134
"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   135
| gradient |
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   136
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   137
gradient := Cairo::Pattern linearFromX: 32 y: 32 toX: (32*6) y: (32*6).
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   138
gradient addColor: (Color redByte:191 greenByte: 217 blueByte: 224)
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   139
           stopAt: 0.0.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   140
gradient addColor: (Color redByte:2 greenByte: 96 blueByte: 122)
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   141
           stopAt: 1.0.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   142
cr source: (Color redByte:2 greenByte: 96 blueByte: 122).
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   143
cr lineWidth: 3.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   144
cr rectangleX: 16  y: 16 width: (32*7)  height: (32*7).
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   145
cr strokeAndPreserve.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   146
cr source: gradient.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   147
cr fill.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   148
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   149
    "Created: / 21-03-2016 / 22:27:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   150
!
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   151
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   152
example26: cr <example: '26 - Linear Gradient 2'>
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   153
"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   154
Color stops in gradient patterns may have alpha as well!!
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   155
This shows a linear gradient with first stop being %80 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   156
teansparent.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   157
"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   158
| black white gradient |
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   159
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   160
"Display s checker board"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   161
black := Color black.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   162
white := Color white.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   163
cr lineWidth:0.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   164
1 to: 8 do:[:x |
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   165
    1 to: 8 do:[:y |  
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   166
        cr source: ((x + y) even ifTrue:[ black ] ifFalse:[ white ]).
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   167
        cr rectangleX: ((x - 1) * 32) + 1
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   168
                    y: ((y - 1) * 32) + 1
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   169
                width: 32 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   170
               height: 32.        
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   171
        cr fill.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   172
    ]
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   173
].
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   174
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   175
gradient := Cairo::Pattern linearFromX: 16 y: 32 * 4 toX: (32*8) - 16 y: 32*4.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   176
gradient addColor: ((Color redByte:191 greenByte: 217 blueByte: 224) alpha: 0.80)
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   177
           stopAt: 0.0.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   178
gradient addColor: ((Color redByte:2 greenByte: 96 blueByte: 122) alpha: 1.0)
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   179
           stopAt: 1.0.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   180
cr source: (Color redByte:2 greenByte: 96 blueByte: 122).
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   181
cr lineWidth: 3.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   182
cr rectangleX: 16  y: 16 width: (32*7)  height: (32*7).
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   183
cr strokeAndPreserve.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   184
cr source: gradient.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   185
cr fill.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   186
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   187
    "Created: / 21-03-2016 / 22:25:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
!Examples1 methodsFor:'private'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
performTest
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   193
    self performTestDrawingView: view
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   194
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   195
    "Created: / 26-02-2016 / 22:01:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   196
    "Modified: / 01-03-2016 / 10:59:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   197
!
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   199
performTestDrawingView: aView
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   200
    | cr |
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   201
    cr := Cairo::GraphicsContext onSurface: aView cairoSurface.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   202
    view transformation notNil ifTrue:[ 
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   203
        cr scale: view transformation scale.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   204
        cr translate: view transformation translation.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   205
    ].
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
    [
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   207
        self perform:testSelector sunitAsSymbol with:cr.
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
    ] ensure:[ 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
        cr release
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   212
    "Created: / 01-03-2016 / 10:57:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   215
!Examples1 methodsFor:'utilities - wiki'!
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   217
writeMarkdownOutputOn: aStream
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   218
    | name base |
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   220
    name := self name.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   221
    base := self screenshotFilename.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   222
    aStream nextPutAll: 'Output'; cr; cr.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   223
    aStream nextPutAll: '| '.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   224
    #(windows linux) do:[:os |
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   225
        self writeMarkdownLinkTo: ('%1_%2_100.png' bindWith: base with: os) text: ('%2' bindWith: name with: os capitalized) on: aStream.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   226
        aStream space.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   227
        aStream nextPut: $(.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   228
        self writeMarkdownLinkTo: ('%1_%2_800.png' bindWith: base with: os) text: '800%' on: aStream.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   229
        aStream nextPut: $).
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   230
        aStream nextPutAll: ' | '.
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
    ].
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   232
    aStream cr; cr.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   233
    self writeMarkdownLinkTo: ('%1_windows_100.png' bindWith: base) text: name inline: true on: aStream.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   234
    aStream cr; cr.
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   236
    "Created: / 01-03-2016 / 22:12:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   237
    "Modified: / 02-03-2016 / 22:29:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
63
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   240
!Examples1 class methodsFor:'documentation'!
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   241
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   242
version_HG
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   243
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   244
    ^ '$Changeset: <not expanded> $'
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   245
! !
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   246