XGraphicsContext.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 03 Oct 2017 11:38:15 +0100
branchjv
changeset 8188 00df122d8bd4
parent 7772 a59648e60593
permissions -rw-r--r--
X11: backed out changeset 03ebf4f9a91d This is no good, it completely trashes copy-paste on X11.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libview' }"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
7718
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
     3
"{ NameSpace: Smalltalk }"
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
     4
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
DeviceGraphicsContext subclass:#XGraphicsContext
7541
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
     6
	instanceVariableNames:'depth xftDrawId cairoSurfaceId'
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Interface-Graphics'
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!XGraphicsContext methodsFor:'accessing'!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
7541
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    15
depth
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    16
    ^ depth
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    17
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    18
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
xftDrawId
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    ^ xftDrawId
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
xftDrawId:anXftDrawHandle
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    xftDrawId := anXftDrawHandle.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "Modified (format): / 23-06-2014 / 21:28:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
7718
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    29
!XGraphicsContext methodsFor:'initialization & release'!
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
7718
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    31
destroy
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    32
    xftDrawId notNil ifTrue:[ 
7772
a59648e60593 XFT: Make destroying of an `XftDraw*` more robust
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7718
diff changeset
    33
        | id |
a59648e60593 XFT: Make destroying of an `XftDraw*` more robust
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7718
diff changeset
    34
a59648e60593 XFT: Make destroying of an `XftDraw*` more robust
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7718
diff changeset
    35
	id := xftDrawId.
a59648e60593 XFT: Make destroying of an `XftDraw*` more robust
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7718
diff changeset
    36
        xftDrawId := nil.
a59648e60593 XFT: Make destroying of an `XftDraw*` more robust
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7718
diff changeset
    37
        XftFontDescription xftDrawDestroy: id.  
7718
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    38
    ].
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    39
    super destroy.
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    40
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    41
    "Created: / 25-11-2016 / 00:10:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6e51fc8b207f XFT: Drop support for shared drawables.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7541
diff changeset
    42
!
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
prepareForReinit
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    "kludge - clear drawableId and gcId
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
     needed after snapin"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    super prepareForReinit.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    xftDrawId := nil.
6727
f3449322bf47 Added cairoSurfaceId to support Cairo rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6726
diff changeset
    50
    cairoSurfaceId := nil.
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    "Created: / 09-10-2014 / 00:02:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6727
f3449322bf47 Added cairoSurfaceId to support Cairo rendering.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6726
diff changeset
    53
    "Modified: / 26-12-2014 / 22:51:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
7541
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    56
!XGraphicsContext methodsFor:'view creation'!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    57
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    58
createBitmapFromArray:data width:width height:height
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    59
    depth := 1.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    60
    super createBitmapFromArray:data width:width height:height
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    61
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    62
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    63
createPixmapWidth:w height:h depth:d
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    64
    depth := d.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    65
    super createPixmapWidth:w height:h depth:d
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    66
! !
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6727
diff changeset
    67
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
!XGraphicsContext class methodsFor:'documentation'!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
version_HG
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    ^ '$Changeset: <not expanded> $'
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74