~drgeo-developers/drgeo/trunk

« back to all changes in this revision

Viewing changes to srcCuis/DrGeo.pck.st

  • Committer: Hilaire Fernandes
  • Date: 2022-06-04 21:04:55 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20220604210455-l0iyu2b6erdb34ig
Preference browser WIP

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
'From Cuis 6.0 [latest update: #5213] on 3 June 2022 at 10:29:35 pm'!
 
1
'From Cuis 6.0 [latest update: #5214] on 4 June 2022 at 11:01:03 pm'!
2
2
'Description '!
3
 
!provides: 'DrGeo' 1 397!
 
3
!provides: 'DrGeo' 1 400!
4
4
!requires: 'Gettext' 1 17 nil!
5
5
!requires: 'SVG' 1 16 nil!
6
6
!requires: 'YAXO' 1 19 nil!
868
868
DrGeoScriptTestResource class
869
869
        instanceVariableNames: ''!
870
870
 
 
871
!classDefinition: #DrGTypeColor category: 'DrGeo-System'!
 
872
PreferenceType subclass: #DrGTypeColor
 
873
        instanceVariableNames: ''
 
874
        classVariableNames: ''
 
875
        poolDictionaries: ''
 
876
        category: 'DrGeo-System'!
 
877
!classDefinition: 'DrGTypeColor class' category: 'DrGeo-System'!
 
878
DrGTypeColor class
 
879
        instanceVariableNames: ''!
 
880
 
 
881
!classDefinition: #DrGTypePointSize category: 'DrGeo-System'!
 
882
PreferenceType subclass: #DrGTypePointSize
 
883
        instanceVariableNames: ''
 
884
        classVariableNames: ''
 
885
        poolDictionaries: ''
 
886
        category: 'DrGeo-System'!
 
887
!classDefinition: 'DrGTypePointSize class' category: 'DrGeo-System'!
 
888
DrGTypePointSize class
 
889
        instanceVariableNames: ''!
 
890
 
871
891
!classDefinition: #DrGeo category: 'DrGeo-Main'!
872
892
Object subclass: #DrGeo
873
893
        instanceVariableNames: 'view domain presenter morphs undoneMorphs lastMorph notInteractive saved'
2928
2948
DrGeoTree class
2929
2949
        instanceVariableNames: ''!
2930
2950
 
2931
 
!classDefinition: #DrGTypeColor category: 'DrGeo-System'!
2932
 
PreferenceType subclass: #DrGTypeColor
2933
 
        instanceVariableNames: ''
2934
 
        classVariableNames: ''
2935
 
        poolDictionaries: ''
2936
 
        category: 'DrGeo-System'!
2937
 
!classDefinition: 'DrGTypeColor class' category: 'DrGeo-System'!
2938
 
DrGTypeColor class
2939
 
        instanceVariableNames: ''!
2940
 
 
2941
2951
 
2942
2952
!DrGeoDomain commentStamp: '<historical>' prior: 0!
2943
2953
This is the domain object for DrGeo, aka the top level Model instance for one DrGeo instance. 
3138
3148
!DrGeoScriptTestResource commentStamp: '' prior: 0!
3139
3149
I set up a canvas to use.!
3140
3150
 
 
3151
!DrGTypeColor commentStamp: '<historical>' prior: 0!
 
3152
A preference type for the colors used in a sketch.!
 
3153
 
 
3154
!DrGTypePointSize commentStamp: '<historical>' prior: 0!
 
3155
A preference type for the size of the point in a sketch.!
 
3156
 
3141
3157
!DrGeo commentStamp: '<historical>' prior: 0!
3142
3158
This is the DrGeo application model. It holds references to:
3143
3159
- domain: the geometric items constituting the sketch
10977
10993
isAvailable 
10978
10994
        ^ sketch notNil! !
10979
10995
 
 
10996
!DrGTypeColor methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 22:05:04'!
 
10997
colorIndex
 
10998
        ^ self class colorIndexOf: self value! !
 
10999
 
 
11000
!DrGTypeColor methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 22:06:22'!
 
11001
colorIndex: index
 
11002
        self value: (self class colorFor: index).
 
11003
        self changed: #colorIndex:! !
 
11004
 
 
11005
!DrGTypeColor methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 22:02:11'!
 
11006
colorMorphCollection
 
11007
        ^ self class colorMorphCollection! !
 
11008
 
 
11009
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:00'!
 
11010
blinkingColor
 
11011
        ^Color lightGray lighter lighter! !
 
11012
 
 
11013
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:08'!
 
11014
colorFor: index
 
11015
        ^ Color perform: (self colorSymbols at: index)! !
 
11016
 
 
11017
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:14'!
 
11018
colorIndexOf: aColor
 
11019
        ^self colors indexOf: (aColor alpha: 1)! !
 
11020
 
 
11021
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:21'!
 
11022
colorMorphCollection
 
11023
        ^ self colors collect: [:aColor |
 
11024
                ImageMorph new image: (DrGIcons colorForm: aColor )]! !
 
11025
 
 
11026
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:29'!
 
11027
colorSymbols
 
11028
        ^#(#black #blue #brown #green #magenta #orange #red #yellow #white)! !
 
11029
 
 
11030
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:35'!
 
11031
colors
 
11032
        ^ self colorSymbols collect: [:symbol | Color perform: symbol]! !
 
11033
 
 
11034
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:40'!
 
11035
hiddenColor
 
11036
        ^Color lightGray lighter lighter lighter! !
 
11037
 
 
11038
!DrGTypePointSize methodsFor: 'accessing' stamp: 'hlsf 6/4/2022 22:15:22'!
 
11039
pointSizeIndex
 
11040
        ^ self class pointSizeIndexOf: self value! !
 
11041
 
 
11042
!DrGTypePointSize methodsFor: 'accessing' stamp: 'hlsf 6/4/2022 22:38:08'!
 
11043
pointSizeIndex: anIndex
 
11044
        self value: (self class pointSizeFor: anIndex).
 
11045
        self changed: #pointSizeIndex:! !
 
11046
 
 
11047
!DrGTypePointSize methodsFor: 'accessing' stamp: 'hlsf 6/4/2022 22:35:07'!
 
11048
sizeMorphCollection
 
11049
        ^ self class sizeMorphCollection: #square! !
 
11050
 
 
11051
!DrGTypePointSize class methodsFor: 'accessing' stamp: 'hlsf 6/4/2022 14:55:59'!
 
11052
pointSizeFor: index
 
11053
        ^ self pointSizeSymbols at: index! !
 
11054
 
 
11055
!DrGTypePointSize class methodsFor: 'accessing' stamp: 'hlsf 6/4/2022 14:51:12'!
 
11056
pointSizeIndexOf: aSize
 
11057
        ^ self pointSizeSymbols indexOf: aSize! !
 
11058
 
 
11059
!DrGTypePointSize class methodsFor: 'accessing' stamp: 'hlsf 6/4/2022 14:48:04'!
 
11060
pointSizeSymbols
 
11061
        ^ #(#small #medium #large)! !
 
11062
 
 
11063
!DrGTypePointSize class methodsFor: 'accessing' stamp: 'hlsf 6/4/2022 14:49:50'!
 
11064
sizeMorphCollection: aShape
 
11065
        ^ self  pointSizeSymbols collect: [:symbol |
 
11066
                ImageMorph new image: (DrGIcons point: symbol color: Color black shape: aShape)].
 
11067
! !
 
11068
 
10980
11069
!DrGeo methodsFor: 'canvas' stamp: 'hlsf 3/27/2022 14:34:01'!
10981
11070
preview
10982
11071
"Return a form preview"
19982
20071
                named:  'Shape' translated
19983
20072
                help: 'Set the shape of the point.' translated! !
19984
20073
 
19985
 
!DrGPointStyle methodsFor: 'widget' stamp: 'hlsf 2/14/2022 09:04:05'!
 
20074
!DrGPointStyle methodsFor: 'widget' stamp: 'hlsf 6/4/2022 14:50:31'!
19986
20075
sizeMorphCollection
19987
 
        ^ DrGStylePreference sizeMorphCollection: shape! !
 
20076
        ^ DrGTypePointSize sizeMorphCollection: shape! !
19988
20077
 
19989
20078
!DrGPointStyle methodsFor: 'widget' stamp: 'hlsf 3/24/2022 11:14:49'!
19990
20079
sizeWidget
20069
20158
        morph redrawNeeded
20070
20159
! !
20071
20160
 
20072
 
!DrGPointStyle methodsFor: 'accessing'!
 
20161
!DrGPointStyle methodsFor: 'accessing' stamp: 'hlsf 6/4/2022 14:51:28'!
20073
20162
pointSizeIndex
20074
20163
        "Answer the index of thickness"
20075
 
        ^DrGStylePreference pointSizeIndexOf: pointSize! !
 
20164
        ^DrGTypePointSize pointSizeIndexOf: pointSize! !
20076
20165
 
20077
 
!DrGPointStyle methodsFor: 'accessing' stamp: 'hlsf 2/13/2022 10:28:22'!
 
20166
!DrGPointStyle methodsFor: 'accessing' stamp: 'hlsf 6/4/2022 14:55:37'!
20078
20167
pointSizeIndex: index
20079
20168
        "Set the value of thickness"
20080
 
        self pointSize: (DrGStylePreference pointSizeFor: index).
 
20169
        self pointSize: (DrGTypePointSize pointSizeFor: index).
20081
20170
        self changed: #pointSizeIndex:! !
20082
20171
 
20083
20172
!DrGPointStyle methodsFor: 'accessing'!
22558
22647
        ^ self current pointColor: (self colorFor: anIndex)! !
22559
22648
 
22560
22649
!DrGStylePreference class methodsFor: 'point'!
22561
 
pointColorWidget
22562
 
        ^ self colorWidget: #pointColorIndex! !
22563
 
 
22564
 
!DrGStylePreference class methodsFor: 'point'!
22565
22650
pointExtentFor: pointSize
22566
22651
        pointSize == #small ifTrue: [^ 6@6].
22567
22652
        pointSize == #large ifTrue: [^ 10@10].
22607
22692
        ^ self current! !
22608
22693
 
22609
22694
!DrGStylePreference class methodsFor: 'point'!
22610
 
pointSizeFor: index
22611
 
        ^ self pointSizeSymbols at: index! !
22612
 
 
22613
 
!DrGStylePreference class methodsFor: 'point'!
22614
22695
pointSizeIndex
22615
22696
        ^ self pointSizeIndexOf: self current pointSize! !
22616
22697
 
22618
22699
pointSizeIndex: anIndex
22619
22700
        ^ self current pointSize: (self pointSizeFor: anIndex)! !
22620
22701
 
22621
 
!DrGStylePreference class methodsFor: 'point'!
22622
 
pointSizeIndexOf: aSize
22623
 
        ^ self pointSizeSymbols indexOf: aSize! !
22624
 
 
22625
 
!DrGStylePreference class methodsFor: 'point'!
22626
 
pointSizeSymbols
22627
 
        ^ #(#small #medium #large)! !
22628
 
 
22629
 
!DrGStylePreference class methodsFor: 'point'!
22630
 
pointSizeWidget
22631
 
        ^ (UITheme builder
22632
 
                        newMorphDropListFor: self
22633
 
                        list: #sizeMorphCollection
22634
 
                        getSelected: #pointSizeIndex
22635
 
                        setSelected: #pointSizeIndex:
22636
 
                        help: nil) ! !
22637
 
 
22638
22702
!DrGStylePreference class methodsFor: 'point' stamp: 'hlsf 2/13/2022 00:07:32'!
22639
22703
shapeMorphCollection
22640
22704
        ^ self pointShapeSymbols collect: [:symbol |
22641
22705
                ImageMorph new image: (DrGIcons         point: (self pointExtentFor: #medium) color: Color black        shape: symbol)].
22642
22706
! !
22643
22707
 
22644
 
!DrGStylePreference class methodsFor: 'point' stamp: 'hlsf 2/14/2022 09:03:51'!
22645
 
sizeMorphCollection: aShape
22646
 
        ^ self  pointSizeSymbols collect: [:symbol |
22647
 
                ImageMorph new image: (DrGIcons point: symbol color: Color black shape: aShape)].
22648
 
! !
22649
 
 
22650
22708
!DrGStylePreference class methodsFor: 'ray'!
22651
22709
rayColor
22652
22710
"respond the singleton, widget build up set later"
23305
23363
mySketchResources
23306
23364
        ^ DrGDirectoryLocal new location: DrGeoSystem mySketchesPath pathString.! !
23307
23365
 
23308
 
!DrGeoSystem class methodsFor: 'preferences' stamp: 'hlsf 6/3/2022 22:26:58'!
 
23366
!DrGeoSystem class methodsFor: 'preferences' stamp: 'hlsf 6/4/2022 22:16:06'!
23309
23367
initPointPreferences
23310
23368
        PreferenceNG 
23311
23369
                name: #DrGeoPointColor
23312
23370
                description: 'Default colour of a point.' translated 
23313
23371
                category: #DrGeoPoint 
23314
23372
                type:  (DrGTypeColor with: #DrGeoPointColor)
23315
 
                value: Color red! !
 
23373
                value: Color red.
 
23374
        PreferenceNG 
 
23375
                name: #DrGeoPointSize
 
23376
                description: 'Default size of a point.' translated 
 
23377
                category: #DrGeoPoint 
 
23378
                type:  (DrGTypePointSize with: #DrGeoPointSize)
 
23379
                value: #small! !
23316
23380
 
23317
23381
!DrGeoSystem class methodsFor: 'preferences' stamp: 'hlsf 6/3/2022 11:42:23'!
23318
23382
initPreferences
34221
34285
                app: anApp ;
34222
34286
                yourself! !
34223
34287
 
34224
 
!DrGTypeColor methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 22:05:04'!
34225
 
colorIndex
34226
 
        ^ self class colorIndexOf: self value! !
34227
 
 
34228
 
!DrGTypeColor methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 22:06:22'!
34229
 
colorIndex: index
34230
 
        self value: (self class colorFor: index).
34231
 
        self changed: #colorIndex:! !
34232
 
 
34233
 
!DrGTypeColor methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 22:02:11'!
34234
 
colorMorphCollection
34235
 
        ^ self class colorMorphCollection! !
34236
 
 
34237
 
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:00'!
34238
 
blinkingColor
34239
 
        ^Color lightGray lighter lighter! !
34240
 
 
34241
 
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:08'!
34242
 
colorFor: index
34243
 
        ^ Color perform: (self colorSymbols at: index)! !
34244
 
 
34245
 
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:14'!
34246
 
colorIndexOf: aColor
34247
 
        ^self colors indexOf: (aColor alpha: 1)! !
34248
 
 
34249
 
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:21'!
34250
 
colorMorphCollection
34251
 
        ^ self colors collect: [:aColor |
34252
 
                ImageMorph new image: (DrGIcons colorForm: aColor )]! !
34253
 
 
34254
 
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:29'!
34255
 
colorSymbols
34256
 
        ^#(#black #blue #brown #green #magenta #orange #red #yellow #white)! !
34257
 
 
34258
 
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:35'!
34259
 
colors
34260
 
        ^ self colorSymbols collect: [:symbol | Color perform: symbol]! !
34261
 
 
34262
 
!DrGTypeColor class methodsFor: 'accessing' stamp: 'hlsf 6/3/2022 11:36:40'!
34263
 
hiddenColor
34264
 
        ^Color lightGray lighter lighter lighter! !
34265
 
 
34266
34288
!Object methodsFor: '*DrGeo' stamp: 'hlsf 6/20/2021 11:37:54'!
34267
34289
isAngleItem
34268
34290
        ^false! !
34544
34566
                autoDeselect: false;
34545
34567
                setBalloonText: aPref description.
34546
34568
        views at: aPref name capitalized put: listMorph! !
 
34569
 
 
34570
!PreferenceBrowserVisitor methodsFor: '*DrGeo' stamp: 'hlsf 6/4/2022 22:34:16'!
 
34571
visitDrGTypePointSizePreference: aPref
 
34572
        | listMorph |
 
34573
        listMorph  _ DropDownButtonMorph 
 
34574
                model: aPref type 
 
34575
                listGetter: #sizeMorphCollection 
 
34576
                indexGetter: #pointSizeIndex 
 
34577
                indexSetter: #pointSizeIndex: ::
 
34578
                autoDeselect: false;
 
34579
                setBalloonText: aPref description.
 
34580
        views at: aPref name capitalized put: listMorph! !
34547
34581
DrGDirectionItem initialize!