Cairo__Examples2.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 17 Jul 2018 19:50:23 +0200
changeset 86 e434bd07e403
parent 68 49418a5bf2ea
child 88 9d51db2ba641
permissions -rw-r--r--
Refactored `CairoGraphicsContext` finalization to avoid code duplication
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:#Examples2
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:'cairoify'
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
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    12
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!Examples2 methodsFor:'examples'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    15
example01a: gc <example: '01a - Rectangles'>
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    16
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    17
Shows how stroke,fill and lineWidth plays together. Here
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    18
CairoGraphicsContext produces slightly different output
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    19
than DeviceGraphicsContext. Making CairoGraphicsContext
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    20
to produce same output is difficult as, expecially when there's
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    21
some scaling involved, DeviceGraphicsContext does a wierd job.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    22
At the same time one may argue that cairo does it correctly,
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    23
so here we stick with Cairo's way...
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    24
"
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
gc lineWidth: 1.
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    26
gc paint: Color black.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    27
gc displayLineFromX: 1   y: 15  toX: 130 y: 15.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    28
gc displayLineFromX: 15  y: 1   toX: 15  y: 130.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    29
gc displayLineFromX: 1   y: 115 toX: 130 y: 115.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    30
gc displayLineFromX: 115 y: 1   toX: 115 y: 130.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    31
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    32
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    33
gc lineWidth: 10.
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
gc paint: Color red.
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    35
gc displayRectangleX: 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
    36
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
gc paint: Color blue.
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    38
gc fillRectangleX: 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
    39
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    40
    "Created: / 28-02-2016 / 15:43:52 / 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
    41
    "Modified (comment): / 02-03-2016 / 21:26:57 / 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
    42
!
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    43
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    44
example01b: gc <example: '01b - Rectangles'>
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    45
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    46
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
    47
Same as example 01a but with 1pixel wide lines
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    48
"
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    49
gc lineWidth: 1.
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
gc paint: Color black.
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    51
gc displayLineFromX: 1   y: 15  toX: 130 y: 15.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    52
gc displayLineFromX: 15  y: 1   toX: 15  y: 130.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    53
gc displayLineFromX: 1   y: 115 toX: 130 y: 115.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    54
gc displayLineFromX: 115 y: 1   toX: 115 y: 130.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    55
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    57
gc lineWidth: 1.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    58
gc paint: Color red.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    59
gc displayRectangleX: 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
    60
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    61
gc paint: Color blue.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    62
gc fillRectangleX: 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
    63
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
    64
    "Created: / 28-02-2016 / 15:44:04 / 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
    65
    "Modified (comment): / 02-03-2016 / 21:27:57 / 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
    66
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
51
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    68
example02: gc <example: '02 - Rectangles (rounded)'>
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    69
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    70
Display rounded rectangles. Try to zoom it to 800%, 
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    71
you'll a number of artefacts when displayed using 
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    72
native GC.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    73
"
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
gc lineWidth: 10.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
gc paint: Color red.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
gc displayRoundRectangleX: 10 y: 10 width: gc width - 20 height: gc height - 20
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
   wCorner: 30 hCorner: 30.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
gc paint: Color blue lighter.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
gc fillRoundRectangleX: 10 y: 10 rounded width: gc width - 20 height: (gc height - 20) rounded
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
   wCorner: 30 hCorner: 30.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
gc paint: Color black.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
gc lineWidth: 1.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
gc displayLineFromX: 1 y: (gc height / 2) rounded toX: gc width y: (gc height / 2) rounded.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    "Created: / 27-02-2016 / 09:04:11 / 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
    86
    "Modified (comment): / 02-03-2016 / 21:28:11 / 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
    87
!
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    88
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    89
example03: gc <example: '03 - PNG with alpha'>
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    90
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    91
Shows a PNG image with alpha over a pattern
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    92
(black and white rectangles). As the PNG has
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    93
alpha, the pattern should be visible 'underneath'
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
    94
"
51
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    95
| image |
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    96
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    97
gc paint: Color white.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
    98
gc fillRectangleX:1 y:1 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
    99
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   100
gc paint: Color black.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   101
gc fillRectangleX:33 y:33 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
   102
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   103
image := Image fromFile: 'square1.png' inPackage: 'stx:goodies/libcairo'.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   104
image displayOn: gc x: 1 y: 1.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   105
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   106
    "Created: / 27-02-2016 / 16:14:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   107
    "Modified: / 28-02-2016 / 14:50:00 / 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
   108
    "Modified (comment): / 02-03-2016 / 21:30: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
   109
!
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   110
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   111
example04: gc <example: '04 - PNG with alpha II'>
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   112
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   113
Shows a another PNG image with alpha over a pattern.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   114
"     
51
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   115
| image |
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   116
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   117
gc paint: Color white.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   118
gc fillRectangleX:1 y:1 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
   119
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   120
gc paint: Color black.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   121
gc fillRectangleX:33 y:33 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
   122
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   123
image := Image fromFile: 'circle1.png' inPackage: 'stx:goodies/libcairo'.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   124
image displayOn: gc x: 1 y: 1.
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   125
5293f2b851ab CairGraphicsContext: added support for displaying images with alpha channel
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 50
diff changeset
   126
    "Created: / 28-02-2016 / 14:49:51 / 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
   127
    "Modified (comment): / 02-03-2016 / 21:30:28 / 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
   128
!
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   129
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   130
example05: gc <example: '05 - Checkerboard'>
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   131
"
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   132
Display a 8x8 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
   133
Try to zoom it to 800%, you'll see that native GC
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   134
(DeviceGraphicsContext) does the scaling wrong:
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   135
the corners of squares do not quote touch. Indeed,
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   136
Cairo does it right.
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   137
"
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   138
| black white |
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   139
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   140
black := Color black.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   141
white := Color white.
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   142
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   143
1 to: 8 do:[:x |
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   144
    1 to: 8 do:[:y |  
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   145
        gc paint: ((x + y) even ifTrue:[ black ] ifFalse:[ white ]).
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   146
        gc fillRectangleX: ((x - 1) * 32) + 1
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   147
                        y: ((y - 1) * 32) + 1
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   148
                    width: 32 height: 32.        
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   149
    ]
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   150
].
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   151
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   152
    "Created: / 28-02-2016 / 15:06:03 / 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
   153
    "Modified (comment): / 29-02-2016 / 18:42:59 / 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
   154
!
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   155
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   156
example06: gc <example: '06 - Transparency'>
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   157
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   158
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
   159
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
   160
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
   161
"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   162
| black white |
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   163
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   164
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
   165
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
   166
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   167
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
   168
    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
   169
        gc paint: ((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
   170
        gc fillRectangleX: ((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
   171
                        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
   172
                    width: 32 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
   173
    ]
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   174
].
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   175
gc 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
   176
gc paint: (Color red alpha: 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
   177
gc displayRoundRectangleX: 16 y: 16 width: 32 * 7 height: 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
   178
   wCorner: 16 hCorner: 16.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   179
gc paint: (Color blue alpha: 0.50).
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   180
gc fillRoundRectangleX: 16 y: 16 width: 32 * 7 height: 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
   181
   wCorner: 16 hCorner: 16.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   182
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   183
    "Created: / 29-02-2016 / 18:38:17 / 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
   184
    "Modified: / 29-02-2016 / 20:40:39 / 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
   185
!
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
example07: gc <example: '07 - Mask - 1bit'>
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   188
"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   189
Shows displaying lines and rectangles with
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   190
mask.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   191
"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   192
| mask |
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   193
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   194
mask := Image width:2 height:2 fromArray:#[2r10000000 
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   195
                                           2r01000000].      
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   196
gc paint: Color red.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   197
gc mask: mask asImage.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   198
gc lineWidth: 1.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   199
gc displayLineFromX: 10 y: 10 toX: 90 y: 10.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   200
gc displayLineFromX: 10 y: 10 toX: 10 y: 90.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   201
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   202
mask := Image width:16 height:16 fromArray:#[2r11110000 2r11110000
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   203
                                             2r11110000 2r11110000
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   204
                                             2r11110000 2r11110000
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   205
                                             2r11110000 2r11110000
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   206
                                             2r00001111 2r00001111
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   207
                                             2r00001111 2r00001111
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   208
                                             2r00001111 2r00001111
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   209
                                             2r00001111 2r00001111
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   210
                                             2r11110000 2r11110000
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   211
                                             2r11110000 2r11110000
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   212
                                             2r11110000 2r11110000
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   213
                                             2r11110000 2r11110000
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   214
                                             2r00001111 2r00001111
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   215
                                             2r00001111 2r00001111
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   216
                                             2r00001111 2r00001111
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   217
                                             2r00001111 2r00001111].
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   218
gc paint: Color blue.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   219
gc maskOrigin: 4@4.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   220
gc mask: mask asImage.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   221
gc fillRectangleX: 30 y: 30 width: 40 height: 40.
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   222
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   223
    "Created: / 07-03-2016 / 21:40:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
054f0513ea65 Initial support for Cairo::Pattern
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 57
diff changeset
   224
    "Modified: / 08-03-2016 / 21:42:33 / 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
   225
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
!Examples2 methodsFor:'private'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
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
   230
    cairoify := false.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   231
    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
   232
    cairoify := true.
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 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
   234
    cairoify := nil.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   235
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: / 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
   237
    "Modified: / 01-03-2016 / 13:06:33 / 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
   238
!
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   240
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
   241
    cairoify ifTrue:[ 
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   242
        | dGC cGC |
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   243
68
49418a5bf2ea Examples: Indicate Cairo or Native rendering
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   244
        view topView label: 'Cairo - ' , self name.    
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   245
        dGC := view instVarNamed: #gc.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   246
        cGC := CairoGraphicsContext onDeviceGraphicsContext: dGC.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   247
        [
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   248
            view instVarNamed: #gc put: cGC.    
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   249
            self perform: testSelector sunitAsSymbol with: aView.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   250
        ] ensure:[ 
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   251
            view instVarNamed: #gc put: dGC.    
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   252
            cGC destroyCR.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   253
        ].                  
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   254
    ] ifFalse:[ 
68
49418a5bf2ea Examples: Indicate Cairo or Native rendering
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   255
        view topView label: 'Native - ' , self name.    
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   256
        self perform: testSelector sunitAsSymbol with: aView.
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   259
    "Created: / 01-03-2016 / 13:03:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
68
49418a5bf2ea Examples: Indicate Cairo or Native rendering
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 63
diff changeset
   260
    "Modified: / 22-03-2016 / 20:16:11 / 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
   261
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   263
!Examples2 methodsFor:'utilities'!
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   265
screenshotFilename
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   266
    ^ super screenshotFilename 
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   267
            , (cairoify == true ifTrue:[ '_cairo' ] ifFalse:[ '_native' ]).
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   269
    "Created: / 01-03-2016 / 21:39: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
   270
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   272
writeScreenshotsInDirectory:directory 
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   273
    cairoify := false.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   274
    super writeScreenshotsInDirectory:directory.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   275
    cairoify := true.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   276
    super writeScreenshotsInDirectory:directory.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   277
    cairoify := nil.
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   278
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   279
    "
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   280
     (Cairo::Examples2 selector: #example06:) writeScreenshotsInDirectory: '/tmp'
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   281
    "
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   282
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   283
    "Created: / 01-03-2016 / 13:11:13 / 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
   284
    "Modified: / 01-03-2016 / 17:19:05 / jv"
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   285
    "Modified (comment): / 01-03-2016 / 21:48:25 / 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
   286
! !
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   287
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   288
!Examples2 methodsFor:'utilities - markdown'!
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   289
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   290
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
   291
    | name base |
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   292
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   293
    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
   294
    base := super screenshotFilename."/ use super here so we wong get "_cairo" or "_native" suffix here
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   295
    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
   296
    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
   297
    #(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
   298
        #(cairo native) do:[:type |
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   299
            self writeMarkdownLinkTo: ('%1_%2_%3_100.png' bindWith: base with: type with: os) text: ('%2, %3' bindWith: name with: os capitalized with: type 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
   300
            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
   301
            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
   302
            self writeMarkdownLinkTo: ('%1_%2_%3_800.png' bindWith: base with: type 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
   303
            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
   304
            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
   305
        ]
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
    ].
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   307
    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
   308
    self writeMarkdownLinkTo: ('%1_cairo_windows_100.png' bindWith: base) text: name , ' - Cairo' 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
   309
    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
   310
    self writeMarkdownLinkTo: ('%1_native_windows_100.png' bindWith: base) text: name, ' - Native'  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
   311
    aStream cr; cr.
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
57
2c9a342e1f2a Examples: added utility methods to automatically generate wiki page from examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 53
diff changeset
   313
    "Modified: / 02-03-2016 / 22:30:05 / 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
   314
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
53
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   316
!Examples2 class methodsFor:'documentation'!
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   317
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   318
version_HG
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   319
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   320
    ^ '$Changeset: <not expanded> $'
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   321
! !
57718b3ac316 Examples: added more examples demostraint drawing/filling rectangles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 51
diff changeset
   322