~hilaire-fernandes/drgeo/trunk

« back to all changes in this revision

Viewing changes to src/DrGeo.pck.st

  • Committer: Hilaire Fernandes
  • Date: 2023-11-07 19:49:52 UTC
  • Revision ID: hilaire@drgeo.eu-20231107194952-y6qr6k8k97xezikn
SVG export fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
'From Cuis 6.0 [latest update: #6068] on 2 November 2023 at 5:00:57 pm'!
 
1
'From Cuis 6.0 [latest update: #6068] on 7 November 2023 at 8:39:00 pm'!
2
2
'Description '!
3
 
!provides: 'DrGeo' 1 641!
 
3
!provides: 'DrGeo' 1 642!
4
4
!requires: 'Gettext' 1 17 nil!
5
5
!requires: 'SVG' 1 16 nil!
6
6
!requires: 'YAXO' 1 19 nil!
6597
6597
        super initialize.
6598
6598
        previews _ #()! !
6599
6599
 
6600
 
!DrGFileOpenMorph methodsFor: 'geometry' stamp: 'hlsf 12/25/2021 16:39:40'!
 
6600
!DrGFileOpenMorph methodsFor: 'geometry' stamp: 'hlsf 11/7/2023 14:21:35'!
6601
6601
minimumExtent
6602
 
        ^ 1000@600! !
 
6602
        ^ 1000@500! !
6603
6603
 
6604
6604
!DrGFileOpenMorph class methodsFor: 'instance creation' stamp: 'hlsf 10/14/2021 21:04:26'!
6605
6605
open
30752
30752
        self styleOf: rect StrokeWidth: bw color: bc fillColor: nil.
30753
30753
        svgTree addElement: rect! !
30754
30754
 
30755
 
!DrGSvgCanvas methodsFor: 'drawing' stamp: 'hlsf 3/18/2023 11:05:05'!
 
30755
!DrGSvgCanvas methodsFor: 'drawing' stamp: 'hlsf 11/7/2023 20:19:32'!
30756
30756
line: pt1 to: pt2 width: w color: c
30757
30757
        | line |
30758
30758
        line := XMLElement 
30761
30761
                        #x1 -> pt1 x asString . #y1 -> pt1 y asString .
30762
30762
                        #x2 -> pt2 x asString . #y2 -> pt2 y asString   .
30763
30763
                        #'stroke-width' -> w asString. #stroke -> c hexHtml .
30764
 
                        #'stroke-linecap' -> 'butt' } asDictionary.
 
30764
                        #'stroke-linecap' -> 'round' } asDictionary.
30765
30765
        svgTree addElement: line
30766
30766
        ! !
30767
30767
 
30885
30885
        self styleOf: element StrokeWidth: strokeWidth color: strokeColor 
30886
30886
                strokeDashArray: nil strokeDashArrayOffset: nil fillColor: fillColor ! !
30887
30887
 
30888
 
!DrGSvgCanvas methodsFor: 'private' stamp: 'hlsf 5/31/2023 19:52:19'!
 
30888
!DrGSvgCanvas methodsFor: 'private' stamp: 'hlsf 11/7/2023 20:34:45'!
30889
30889
styleOf: element StrokeWidth: strokeWidth color: strokeColor strokeDashArray: sda strokeDashArrayOffset: sdao fillColor: fillColor
30890
30890
"
30891
30891
        Apply style to a given element (node) 
30902
30902
                ifNotNil: [
30903
30903
                        element attributeAt: #fill put: fillColor hexHtml.
30904
30904
                        fillColor isOpaque ifFalse: [element attributeAt: #'fill-opacity' put: fillColor alpha asString] ]
30905
 
                ifNil: [element attributeAt: #fill put: 'transparent']
 
30905
                ifNil: [element attributeAt: #fill put: 'nonce']
30906
30906
! !
30907
30907
 
30908
30908
!DrGeoCommandLineHandler methodsFor: 'as yet unclassified'!
31721
31721
        self parseStyleOfCurve: item with: aNode.
31722
31722
        item origin: (Point readFrom: (aNode attributeAt: #origin ifAbsent: [^self]))! !
31723
31723
 
31724
 
!DrGeoXml methodsFor: 'svg write' stamp: 'hlsf 8/4/2023 17:49:49'!
 
31724
!DrGeoXml methodsFor: 'svg write' stamp: 'hlsf 11/7/2023 20:21:08'!
31725
31725
exportToSvg: stream
31726
31726
        | doc writer root canvas |
31727
31727
        doc := XMLDocument new.
31730
31730
                named: #svg 
31731
31731
                attributes: {
31732
31732
                        #version -> '1.1'.
31733
 
                        #baseProfile -> 'full'.
31734
31733
                        #width -> self drawable morphExtent x asString.
31735
31734
                        #height -> self drawable morphExtent y asString.
31736
31735
                        #xmlns -> 'http://www.w3.org/2000/svg' } asDictionary.