~hilaire-fernandes/drgeo/trunk

« back to all changes in this revision

Viewing changes to srcCuis/DrGeo.pck.st

  • Committer: Hilaire Fernandes
  • Date: 2021-12-04 20:28:07 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20211204202807-1ylqooyh75ltcxyu
SVG icons

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
'From Cuis 5.0 [latest update: #4995] on 2 December 2021 at 10:59:25 am'!
 
1
'From Cuis 5.0 [latest update: #4997] on 4 December 2021 at 9:26:31 pm'!
2
2
'Description '!
3
 
!provides: 'DrGeo' 1 237!
 
3
!provides: 'DrGeo' 1 244!
4
4
!requires: 'Morphic-Circular' 1 30 nil!
 
5
!requires: 'SVG' 1 7 nil!
5
6
!requires: 'YAXO' 1 18 nil!
6
7
!requires: 'WheelMorph' 1 1 nil!
7
8
!requires: 'WaitSpinner' 1 0 nil!
2198
2199
 
2199
2200
!classDefinition: #DrGPlatform category: 'DrGeo-System'!
2200
2201
Object subclass: #DrGPlatform
2201
 
        instanceVariableNames: 'toolbarIconSize canWeDisplaySpinner release'
 
2202
        instanceVariableNames: 'toolbarIconSize canWeDisplaySpinner'
2202
2203
        classVariableNames: ''
2203
2204
        poolDictionaries: ''
2204
2205
        category: 'DrGeo-System'!
2246
2247
DrGiPad class
2247
2248
        instanceVariableNames: ''!
2248
2249
 
2249
 
!classDefinition: #DrGiPadDemo category: 'DrGeo-System'!
2250
 
DrGiPad subclass: #DrGiPadDemo
2251
 
        instanceVariableNames: ''
2252
 
        classVariableNames: ''
2253
 
        poolDictionaries: ''
2254
 
        category: 'DrGeo-System'!
2255
 
!classDefinition: 'DrGiPadDemo class' category: 'DrGeo-System'!
2256
 
DrGiPadDemo class
2257
 
        instanceVariableNames: ''!
2258
 
 
2259
2250
!classDefinition: #DrGWorkstation category: 'DrGeo-System'!
2260
2251
DrGPlatform subclass: #DrGWorkstation
2261
2252
        instanceVariableNames: ''
2279
2270
!classDefinition: #DrGeoSystem category: 'DrGeo-System'!
2280
2271
Object subclass: #DrGeoSystem
2281
2272
        instanceVariableNames: ''
2282
 
        classVariableNames: 'Host LanShare NetworkDirectory NetworkPassword NetworkType NetworkUser UseNetwork'
 
2273
        classVariableNames: ''
2283
2274
        poolDictionaries: ''
2284
2275
        category: 'DrGeo-System'!
2285
2276
!classDefinition: 'DrGeoSystem class' category: 'DrGeo-System'!
2286
2277
DrGeoSystem class
2287
 
        instanceVariableNames: 'platform expirationDate'!
 
2278
        instanceVariableNames: 'platform'!
2288
2279
 
2289
2280
!classDefinition: #DrGWizardPage category: 'DrGeo-UI-Widgets'!
2290
2281
Object subclass: #DrGWizardPage
3634
3625
        super startUp.
3635
3626
! !
3636
3627
 
3637
 
!DrGiPadDemo methodsFor: 'initialize-release' stamp: 'hlsf 4/24/2020 00:05:08'!
3638
 
startUp
3639
 
        Author fullName: 'DrGeoUser'.
3640
 
        self installFont.
3641
 
        self setFontPreferences.
3642
 
        self checkForPaths.
3643
 
        self splash.
3644
 
        (World submorphs anySatisfy: [:morph | morph class == DrGWindow]) ifFalse:
3645
 
                [DrGeo newFullScreen]! !
3646
 
 
3647
3628
!DrGWorkstation methodsFor: 'initialize-release'!
3648
3629
startUp
3649
3630
        super startUp.
17146
17127
        dialog position: 25 @ 25! !
17147
17128
 
17148
17129
!DrGeo class methodsFor: 'user interface'!
17149
 
communityMenuOn: aBuilder
17150
 
        <drgeoMenu>
17151
 
        (aBuilder item: #'Dr. Geo web' translated) 
17152
 
                parent: #'Community' translated;
17153
 
                action: [WebBrowser openOn: 'http://www.drgeo.eu'].
17154
 
        (aBuilder item: #'Documentation' translated) 
17155
 
                parent: #'Community' translated;
17156
 
                action: [WebBrowser openOn: 'http://www.drgeo.eu/help'].
17157
 
        (aBuilder item: #'User guide (local)' translated) 
17158
 
                parent: #'Community' translated;
17159
 
                action: [DrGeoSystem userGuide].
17160
 
        (aBuilder item: #'Translate' translated) 
17161
 
                parent: #'Community' translated;
17162
 
                action: [WebBrowser openOn: 'http://translate.drgeo.eu'].
17163
 
 
17164
 
        (aBuilder item: #'Discussion forum' translated) 
17165
 
                parent: #'Community' translated;
17166
 
                action: [WebBrowser openOn: 'http://forum.drgeo.eu'].
17167
 
        (aBuilder item: #'Report a bug' translated) 
17168
 
                parent: #'Community' translated;
17169
 
                action: [WebBrowser openOn: 'http://bug.drgeo.eu'].! !
17170
 
 
17171
 
!DrGeo class methodsFor: 'user interface'!
17172
17130
drgeoCopyright
17173
17131
        ^ 'Copyright 1996-2019 Hilaire Fernandes'! !
17174
17132
 
17474
17432
        OSPlatform current runCommand: command.! !
17475
17433
 
17476
17434
!DrGeoPresenter methodsFor: 'callback UI'!
17477
 
help
17478
 
        DrGeoSystem openURI: 'http://www.drgeo.eu/tablet'! !
17479
 
 
17480
 
!DrGeoPresenter methodsFor: 'callback UI'!
17481
17435
newFigure
17482
17436
        DrGeoSystem ifTablet: [
17483
17437
                (UIManager default 
19147
19101
fontPath
19148
19102
        ^  DirectoryEntry smalltalkImageDirectory! !
19149
19103
 
19150
 
!DrGPlatform methodsFor: 'path' stamp: 'hlsf 6/8/2021 19:45:31'!
19151
 
myDocPath
19152
 
"The path to the texts documentation"
19153
 
        ^ self rootPath / 'doc' / 'userGuide'! !
 
19104
!DrGPlatform methodsFor: 'path' stamp: 'hlsf 12/4/2021 19:40:46'!
 
19105
iconsPath
 
19106
        ^ self rootPath / 'resources' / 'icons'! !
19154
19107
 
19155
19108
!DrGPlatform methodsFor: 'path'!
19156
19109
myExportsPath
19161
19114
        ^self rootPath / 'MyScripts'! !
19162
19115
 
19163
19116
!DrGPlatform methodsFor: 'path'!
19164
 
mySharesPath
19165
 
        ^self rootPath / 'MyShares'! !
19166
 
 
19167
 
!DrGPlatform methodsFor: 'path'!
19168
19117
mySketchesPath
19169
19118
        ^self rootPath / 'MySketches'! !
19170
19119
 
19196
19145
smallFontSize
19197
19146
        ^ 13! !
19198
19147
 
19199
 
!DrGPlatform methodsFor: 'user interface' stamp: 'hlsf 10/2/2021 12:27:22'!
 
19148
!DrGPlatform methodsFor: 'user interface' stamp: 'hlsf 12/4/2021 21:22:37'!
19200
19149
toolbarIconSize
19201
 
        ^ 32! !
 
19150
        ^ 60! !
19202
19151
 
19203
19152
!DrGPlatform methodsFor: 'user interface' stamp: 'hlsf 9/23/2021 11:01:16'!
19204
19153
wheelHeight
19212
19161
wizardExtent
19213
19162
        ^550@350! !
19214
19163
 
19215
 
!DrGPlatform methodsFor: 'as yet unclassified'!
19216
 
openURI: string! !
19217
 
 
19218
19164
!DrGPlatform methodsFor: 'testing'!
19219
19165
isAndroid
19220
19166
        ^ false! !
19221
19167
 
19222
19168
!DrGPlatform methodsFor: 'testing'!
19223
 
isRelease
19224
 
        ^ release ifNil: [release _ false]! !
19225
 
 
19226
 
!DrGPlatform methodsFor: 'testing'!
19227
19169
isSystem
19228
19170
"Preferences for a DrGeo development environment"
19229
19171
        ^ false! !
19241
19183
canWeDisplaySpinner
19242
19184
        ^ canWeDisplaySpinner! !
19243
19185
 
19244
 
!DrGPlatform methodsFor: 'accessing'!
19245
 
release: boolean
19246
 
        release _ boolean ! !
19247
 
 
19248
19186
!DrGDevelopment methodsFor: 'initialization' stamp: 'hlsf 1/30/2021 15:07:06'!
19249
19187
initialize
19250
19188
        | fontDescription fontFamily fontFileEntry |
19280
19218
fontPath
19281
19219
        ^  self rootPath / 'build' / 'fonts'! !
19282
19220
 
19283
 
!DrGDevelopment methodsFor: 'path'!
19284
 
myDoc
19285
 
        ^ self repoPath / 'doc' / 'fr' / 'drgeoText'! !
19286
 
 
19287
 
!DrGDevelopment methodsFor: 'path'!
19288
 
myDocPath
19289
 
        ^ self repoPath / 'doc' / 'userGuide' / 'fr' / 'drgeoText'! !
 
19221
!DrGDevelopment methodsFor: 'path' stamp: 'hlsf 12/4/2021 19:41:55'!
 
19222
iconsPath
 
19223
        ^ self repoPath / 'graphics' / 'iconsSVG'! !
19290
19224
 
19291
19225
!DrGDevelopment methodsFor: 'path'!
19292
19226
myExportsPath
19358
19292
        TaskbarMorph showTaskbar: false.
19359
19293
        World color: Color white.! !
19360
19294
 
19361
 
!DrGAndroid methodsFor: 'as yet unclassified'!
19362
 
openURI: string
19363
 
        (Smalltalk at: #Android) openURI: string! !
19364
 
 
19365
19295
!DrGAndroid methodsFor: 'user interface'!
19366
19296
showVirtualKeyboard: boolean
19367
19297
        (Smalltalk at: #Android) onScreenKbd: (boolean ifTrue: [1] ifFalse: [0])! !
19447
19377
toolbarIconSize
19448
19378
        ^ 40! !
19449
19379
 
19450
 
!DrGiPadDemo methodsFor: 'path'!
19451
 
mySketchesPath
19452
 
        ^self rootPath / 'MySketches'! !
19453
 
 
19454
 
!DrGiPadDemo methodsFor: 'path' stamp: 'hlsf 6/8/2021 19:43:15'!
19455
 
rootPath
19456
 
        ^   DirectoryEntry smalltalkImageDirectory! !
19457
 
 
19458
 
!DrGiPadDemo methodsFor: 'user interface'!
19459
 
showVirtualKeyboard: boolean
19460
 
        "We do no have a virtual keyboard for now"! !
19461
 
 
19462
19380
!DrGWorkstation methodsFor: 'initialize-release'!
19463
19381
checkForPaths
19464
19382
        super checkForPaths.
20989
20907
        self addStartUp! !
20990
20908
 
20991
20909
!DrGeoSystem class methodsFor: 'class initialization'!
20992
 
beiPadDemo
20993
 
        "self beiPadDemo"
20994
 
        platform _ DrGiPadDemo new.
20995
 
        self addStartUp! !
20996
 
 
20997
 
!DrGeoSystem class methodsFor: 'class initialization'!
20998
 
expiresIn: duration
20999
 
        duration 
21000
 
                ifNil: [expirationDate _ nil]
21001
 
                ifNotNil: [expirationDate _ Date today + duration] ! !
21002
 
 
21003
 
!DrGeoSystem class methodsFor: 'class initialization'!
21004
20910
reset
21005
20911
        platform reset.
21006
20912
        DrGIcons reset.  "flush icons cach"! !
21039
20945
wizardExtent
21040
20946
        ^ platform wizardExtent! !
21041
20947
 
21042
 
!DrGeoSystem class methodsFor: 'help'!
21043
 
tableOfContents
21044
 
        ^ #(
21045
 
        #('Introduction' 'Introduction.txt')
21046
 
        #('Fonctions de base' 'Fonctions-de-base.txt'
21047
 
                #('Points' 'Points.txt')
21048
 
                #('Lignes' 'Lignes.txt')
21049
 
                #('Transformations' 'Transformations.txt')
21050
 
                #('Numériques et texte' 'Numeriques-et-texte.txt')
21051
 
                #('Script' 'Script.txt')
21052
 
                #('Macro-constructions' 'Macro-constructions.txt')
21053
 
                #('Outils du développeur' 'Outils-du-developpeur.txt')
21054
 
        )       
21055
 
        #('Préférences' 'Preferences.txt')
21056
 
        #('Fichiers et documents' 'Fichiers-et-documents.txt')
21057
 
        #('Fonctionnalités avancées' 'Fonctionnalites-avancees.txt'
21058
 
                #('Macro-construction' 'Macro-construction.txt'
21059
 
                        #('Créer une macro-construction' 'Creer-une-macro-construction.txt')
21060
 
                        #('Jouér une macro-construction' 'Jouer-une-macro-construction.txt'))
21061
 
                #('Script Pharo' 'Script-Pharo.txt'
21062
 
                        #('Script sans paramètre' 'Script-sans-parametre.txt')
21063
 
                        #('Script avec un paramètre' 'Script-avec-un-parametre.txt')
21064
 
                        #('Script avec deux paramètres' 'Script-avec-deux-parametres.txt')
21065
 
                        #('Exemple détaillé' 'Exemple-detaille-de-figure-avec-plusieurs-scripts.txt')
21066
 
                        #('Editer un script comme un pro' 'Editer-un-script-comme-un-pro.txt')
21067
 
                        #('Disséquer un script' 'Dissequer-un-script.txt')
21068
 
                        #('Méthodes de référence' 'Methodes-de-reference.txt')
21069
 
                        #('Aspect des objets' 'Aspect-des-objets.txt')  )
21070
 
                #('Figure Pharo' 'Figure-Pharo.txt'
21071
 
                        #('Exemples pour démarrer' 'Exemples-de-figure-Pharo.txt')
21072
 
                        #('Méthodes de référence' 'Interface-de-programmation.txt'
21073
 
                                #('Commandes générales' 'Commandes-generales.txt')
21074
 
                                #('Point' 'Point.txt')
21075
 
                                #('Droite' 'Droite.txt')
21076
 
                                #('Demi-droite' 'Demi_002ddroite.txt')
21077
 
                                #('Segment' 'Segment.txt')
21078
 
                                #('Cercle' 'Cercle.txt')
21079
 
                                #('Arc de cercle' 'Arc-de-cercle.txt')
21080
 
                                #('Polygone' 'Polygone.txt')
21081
 
                                #('Transformations géométriques' 'Transformations-geometriques.txt')
21082
 
                                #('Lieu de point' 'Lieu-de-point.txt')
21083
 
                                #('Vecteur' 'Vecteur.txt')
21084
 
                                #('Valeur numérique' 'Valeur-numerique.txt')
21085
 
                                #('Angle' 'Angle.txt')
21086
 
                                #('Equation' 'Equation.txt')
21087
 
                                #('Texte' 'Texte.txt')
21088
 
                                #('Style et attribut' 'Style-et-attribut.txt')
21089
 
                                #('Autres méthodes' 'Autres-methodes.txt')
21090
 
                        )
21091
 
                        #('Autres exemples' 'Exemples-supplementaires-de-figures-Pharo.txt')))
21092
 
        #('Exemples didactiques' 'Exemples-didactiques.txt')
21093
 
        #('Outils-du-developeur' 'Outils-du-developpeur.txt'
21094
 
                #('Espace de travail' 'Espace-de-travail.txt')
21095
 
                #('Profileur' 'Profileur.txt')
21096
 
                #('Débogueur' 'Debogueur.txt')
21097
 
                #('Inspecteur' 'Inspecteur.txt')
21098
 
                #('Chercheur' 'Chercheur.txt')
21099
 
                #('Spotter' 'Spotter.txt')
21100
 
        )               
21101
 
)! !
21102
 
 
21103
 
!DrGeoSystem class methodsFor: 'help'!
21104
 
topicFrom: array
21105
 
"array, with 2 or more elements. 
21106
 
1: element: topic title
21107
 
2: filename, its content is the topic content
21108
 
3: an array, subtopic (as this one)
21109
 
..."
21110
 
        | topic |
21111
 
        topic _ HelpTopic 
21112
 
                title: array first 
21113
 
                contents: (DrGeoSystem myDocPath / array second) contents.
21114
 
        (array allButFirst: 2) do: [:anArray | topic addSubtopic: (self topicFrom: anArray)].
21115
 
        ^ topic! !
21116
 
 
21117
 
!DrGeoSystem class methodsFor: 'help'!
21118
 
userGuide
21119
 
"Open a help browser on the DrGeo user guide"
21120
 
        | doc |
21121
 
        doc _ HelpTopic title: 'Guide utilisateur' contents: (DrGeoSystem myDocPath / 'drgeo.txt') contents.
21122
 
        self tableOfContents do: [ :aTopic |
21123
 
                doc addSubtopic: (self topicFrom: aTopic)].
21124
 
        HelpBrowser openOn: doc.! !
21125
 
 
21126
20948
!DrGeoSystem class methodsFor: 'font' stamp: 'hlsf 7/2/2020 11:13:05'!
21127
20949
canvasFont
21128
20950
        self flag: #drgeoTodo.
21169
20991
examplesPath
21170
20992
        ^ platform examplesPath! !
21171
20993
 
21172
 
!DrGeoSystem class methodsFor: 'path'!
21173
 
myDocPath
21174
 
"Access to the texts documentation for the Helper content"
21175
 
        ^ platform myDocPath! !
 
20994
!DrGeoSystem class methodsFor: 'path' stamp: 'hlsf 12/4/2021 19:40:05'!
 
20995
iconsPath
 
20996
        ^ platform iconsPath! !
21176
20997
 
21177
20998
!DrGeoSystem class methodsFor: 'path'!
21178
20999
myExportsPath
21184
21005
        ^ platform myScriptsPath! !
21185
21006
 
21186
21007
!DrGeoSystem class methodsFor: 'path'!
21187
 
mySharesPath
21188
 
        ^ platform mySharesPath! !
21189
 
 
21190
 
!DrGeoSystem class methodsFor: 'path'!
21191
21008
mySketchesPath
21192
21009
"Access to the my Sketch files. There are descirption in XML of geometry sketches."
21193
21010
        ^ platform mySketchesPath! !
21198
21015
        ^ platform mySmalltalkSketchesPath ! !
21199
21016
 
21200
21017
!DrGeoSystem class methodsFor: 'resources'!
21201
 
connectToNetwork: parentMorph
21202
 
|resource|
21203
 
        [resource _ (DrGDirectoryFTP host: self host)
21204
 
                login: self networkUser password: self networkPassword]
21205
 
                on: Error
21206
 
                do: [parentMorph abort: 'I can''t connect to server.
21207
 
Check the server settings.' translated.
21208
 
                        resource _ nil].
21209
 
        ^ resource ! !
21210
 
 
21211
 
!DrGeoSystem class methodsFor: 'resources'!
21212
21018
exampleResources
21213
21019
        ^ DrGDirectoryLocal new location: DrGeoSystem examplesPath pathString.! !
21214
21020
 
21216
21022
mySketchResources
21217
21023
        ^ DrGDirectoryLocal new location: DrGeoSystem mySketchesPath pathString.! !
21218
21024
 
21219
 
!DrGeoSystem class methodsFor: 'resources' stamp: 'hlsf 4/21/2020 21:37:35'!
21220
 
networkOpenShareOn: resource with: parentMorph
21221
 
        (resource location: self networkShare) ifTrue: [^ resource].
21222
 
        (self networkShare = 'SandBox') ifTrue:
21223
 
                [DrGeoSystem stopSpinner.
21224
 
                parentMorph abort: 'I can''t connect to network.' translated.
21225
 
                resource close.
21226
 
                ^ nil].
21227
 
        DrGeoSystem stopSpinner.
21228
 
        parentMorph abort: ('I can''t open the share {1}.
21229
 
Switch back to ''SandBox'' share.' translated format: {self networkShare}).
21230
 
        self networkShare: 'SandBox'.
21231
 
        parentMorph changed: #networkShare.
21232
 
        resource close.
21233
 
        ^ self networkResources: parentMorph.! !
21234
 
 
21235
 
!DrGeoSystem class methodsFor: 'resources'!
21236
 
networkResources: parentMorph
21237
 
"Open a network resource on the selected share"
21238
 
|resource|
21239
 
        ^ (resource _ self connectToNetwork: parentMorph) 
21240
 
                ifNil: [nil]
21241
 
                ifNotNil: [self networkOpenShareOn: resource  with: parentMorph]
21242
 
        ! !
21243
 
 
21244
 
!DrGeoSystem class methodsFor: 'resources' stamp: 'hlsf 4/21/2020 21:37:52'!
21245
 
networkResourcesCreateShare
21246
 
"Check the share exsists, if not create it"
21247
 
        |resource|
21248
 
        (resource _ self connectToNetwork: UIManager default) ifNil: [DrGeoSystem stopSpinner.. ^nil].
21249
 
        (resource shareExists: self networkShare) ifFalse: [
21250
 
                [resource makeDirectory: self networkShare]
21251
 
                        on: TelnetProtocolError 
21252
 
                        do: [UIManager default abort:  ('I can''t create the share {1}.' translated format: {self networkShare}).
21253
 
                                ^ nil]].
21254
 
        ^self networkOpenShareOn: resource with: UIManager default! !
21255
 
 
21256
 
!DrGeoSystem class methodsFor: 'settings'!
21257
 
drgeoSettingsOn: aBuilder
21258
 
        <drgeosettings>
21259
 
        (aBuilder group: #drgeoNet)
21260
 
                label: 'Network';
21261
 
                description: 'Dr. Geo network settings' translated;
21262
 
                noOrdering;
21263
 
                with: [
21264
 
                        (aBuilder setting: #useNetwork)
21265
 
                                label: 'Use network resources' translated;
21266
 
                                noOrdering;
21267
 
                                description: 'If checked you can set a server name, user and password to load and to save sketches.' translated;
21268
 
                                with: [
21269
 
                                        (aBuilder pickOne: #networkType)
21270
 
                                                label: 'Server type' translated;
21271
 
                                                description: 'The server type, FTP or WebDav';
21272
 
                                                default: #ftp;
21273
 
                                                domainValues: #(#ftp #http).
21274
 
                                        (aBuilder setting: #host)
21275
 
                                                label: 'Host' translated;
21276
 
                                                description: 'The server (i.e. ftp.drgeo.eu)' translated .
21277
 
                                        (aBuilder setting: #networkUser)
21278
 
                                                label: 'User name' translated;
21279
 
                                                description: 'The server user name' translated.
21280
 
                                        (aBuilder setting: #networkPassword)
21281
 
                                                type: #Password;
21282
 
                                                label: 'Password' translated;
21283
 
                                                description: 'The user password' translated.
21284
 
                                        (aBuilder setting: #networkShare)
21285
 
                                                label: 'Share' translated;
21286
 
                                                description: 'The server resources directory (i.e. private/drgeo)' translated ]]! !
21287
 
 
21288
 
!DrGeoSystem class methodsFor: 'settings'!
21289
 
host
21290
 
        ^ Host ifNil: [Host _ '']! !
21291
 
 
21292
 
!DrGeoSystem class methodsFor: 'settings'!
21293
 
host: string
21294
 
        Host _ string! !
21295
 
 
21296
 
!DrGeoSystem class methodsFor: 'settings'!
21297
 
lanShare
21298
 
        ^ LanShare ifNil: [ LanShare _ false ]! !
21299
 
 
21300
 
!DrGeoSystem class methodsFor: 'settings'!
21301
 
lanShare: aBoolean
21302
 
        LanShare _ aBoolean.
21303
 
        LanShare 
21304
 
                ifTrue: [ DrGeoLanServer current start ] 
21305
 
                ifFalse: [ DrGeoLanServer current stop; reset ]! !
21306
 
 
21307
 
!DrGeoSystem class methodsFor: 'settings'!
21308
 
lanShareSetting: aBuilder
21309
 
        <drgeosettings>
21310
 
        (aBuilder setting: #lanShare)
21311
 
                label: 'Local Network Share' translated;
21312
 
                description: 'If checked I share on the local area network the sketch files in my DrGeo.app/MyShares folder.' translated;
21313
 
                parent: #drgeoNet;
21314
 
                target: self! !
21315
 
 
21316
 
!DrGeoSystem class methodsFor: 'settings'!
21317
 
networkPassword
21318
 
        ^ NetworkPassword ifNil: [NetworkPassword _ '']! !
21319
 
 
21320
 
!DrGeoSystem class methodsFor: 'settings'!
21321
 
networkPassword: string
21322
 
        NetworkPassword _ string ! !
21323
 
 
21324
 
!DrGeoSystem class methodsFor: 'settings'!
21325
 
networkShare
21326
 
        ^ NetworkDirectory ifNil: [NetworkDirectory _ '']! !
21327
 
 
21328
 
!DrGeoSystem class methodsFor: 'settings'!
21329
 
networkShare: string
21330
 
        NetworkDirectory _ string ! !
21331
 
 
21332
 
!DrGeoSystem class methodsFor: 'settings'!
21333
 
networkType
21334
 
        ^ NetworkType ifNil: [NetworkType = #ftp]! !
21335
 
 
21336
 
!DrGeoSystem class methodsFor: 'settings'!
21337
 
networkType: symbol
21338
 
        NetworkType _ symbol! !
21339
 
 
21340
 
!DrGeoSystem class methodsFor: 'settings'!
21341
 
networkUser
21342
 
        ^ NetworkUser ifNil: [NetworkUser _ '']! !
21343
 
 
21344
 
!DrGeoSystem class methodsFor: 'settings'!
21345
 
networkUser: string
21346
 
        NetworkUser _ string ! !
21347
 
 
21348
 
!DrGeoSystem class methodsFor: 'settings'!
21349
 
release: boolean
21350
 
        platform release: boolean ! !
21351
 
 
21352
 
!DrGeoSystem class methodsFor: 'settings'!
21353
 
useNetwork
21354
 
        ^ UseNetwork ifNil: [UseNetwork _ false]! !
21355
 
 
21356
 
!DrGeoSystem class methodsFor: 'settings'!
21357
 
useNetwork: aBoolean
21358
 
        UseNetwork _ aBoolean! !
21359
 
 
21360
 
!DrGeoSystem class methodsFor: 'as yet unclassified'!
21361
 
openURI: string
21362
 
        platform openURI: string! !
21363
 
 
21364
21025
!DrGeoSystem class methodsFor: 'as yet unclassified'!
21365
21026
viewXml: filename 
21366
21027
        DrGeo serviceViewXml: (self examplesPath / filename) pathString! !
21386
21047
        ^ platform isAndroid! !
21387
21048
 
21388
21049
!DrGeoSystem class methodsFor: 'testing'!
21389
 
isRelease 
21390
 
"Are we in the public release mode of DrGeo"
21391
 
        ^ platform isRelease! !
21392
 
 
21393
 
!DrGeoSystem class methodsFor: 'testing'!
21394
21050
isSystem
21395
21051
"Are we in the DrGeo development environment"
21396
21052
        ^ platform isSystem! !
31454
31110
        ^ (DrGLineMorph from: 0@0 to: self menuExtent x @0 color: color width: thick) 
31455
31111
                dashedBorder: dash! !
31456
31112
 
31457
 
!DrGIcons class methodsFor: 'helpers' stamp: 'hlsf 10/3/2021 15:57:15'!
 
31113
!DrGIcons class methodsFor: 'helpers' stamp: 'hlsf 12/4/2021 19:37:08'!
31458
31114
for: symbol
31459
 
" Return a form at the default scale "
 
31115
" Return a form representing the icon at the toolbar icon size "
31460
31116
        ^ self scaled: symbol to: DrGeoSystem toolbarIconSize! !
31461
31117
 
31462
31118
!DrGIcons class methodsFor: 'helpers'!
31467
31123
menuInset
31468
31124
        ^ 4! !
31469
31125
 
31470
 
!DrGIcons class methodsFor: 'helpers' stamp: 'hlsf 10/2/2021 11:23:13'!
 
31126
!DrGIcons class methodsFor: 'helpers' stamp: 'hlsf 12/4/2021 19:53:50'!
31471
31127
scaled: symbol to: integer
31472
31128
| formSymbol |
31473
31129
        forms ifNil: [forms _ Dictionary new].
31474
 
        formSymbol _ symbol, integer asString.
 
31130
        formSymbol _ (symbol, integer asString) asSymbol.
31475
31131
        ^ forms 
31476
31132
                at: formSymbol 
31477
 
                ifAbsentPut: [
31478
 
                        integer = 48 
31479
 
                                ifTrue: [[self perform: symbol] on: MessageNotUnderstood do: [Theme current debugIcon]]
31480
 
                                ifFalse: [([self perform: symbol] on: MessageNotUnderstood do: [Theme current debugIcon]) magnifyTo: integer asPoint]]! !
 
31133
                ifAbsentPut: [ |svg |
 
31134
                        svg _ [SVGMainMorph fromFileNamed: (DrGeoSystem iconsPath / (symbol, '.svg')) pathName] 
 
31135
                                on: SVGWarning 
 
31136
                                do: [:warning | warning resume].
 
31137
                        svg imageForm: integer asPoint depth: 32]! !
31481
31138
 
31482
 
!DrGIcons class methodsFor: 'as yet unclassified'!
 
31139
!DrGIcons class methodsFor: 'initialize-release'!
31483
31140
reset
31484
31141
        forms _ nil! !
31485
31142
 
31503
31160
angleBisectorButtonData
31504
31161
        ^ {DrGAngleBisectorBuilder  title. #angleBisector. #createAngleBisector. DrGAngleBisectorBuilder description}! !
31505
31162
 
31506
 
!DrGUIControlsManager methodsFor: 'controls data'!
 
31163
!DrGUIControlsManager methodsFor: 'controls data' stamp: 'hlsf 12/4/2021 20:11:56'!
31507
31164
angleGeometricButtonData
31508
 
        ^ {DrGAngleGeometricBuilder title. #angleGeometric. #createAngleGeometric. DrGAngleGeometricBuilder description}! !
 
31165
        ^ {DrGAngleGeometricBuilder title. #geometricAngle. #createAngleGeometric. DrGAngleGeometricBuilder description}! !
31509
31166
 
31510
 
!DrGUIControlsManager methodsFor: 'controls data'!
 
31167
!DrGUIControlsManager methodsFor: 'controls data' stamp: 'hlsf 12/4/2021 20:10:14'!
31511
31168
angleOrientedButtonData
31512
 
        ^ {DrGAngleOrientedBuilder title. #angleOriented. #createAngleOriented. DrGAngleOrientedBuilder description}! !
 
31169
        ^ {DrGAngleOrientedBuilder title. #orientedAngle. #createAngleOriented. DrGAngleOrientedBuilder description}! !
31513
31170
 
31514
31171
!DrGUIControlsManager methodsFor: 'controls data'!
31515
31172
animate1ButtonData
31523
31180
animate3ButtonData
31524
31181
        ^ {'Animate x3' translated. #animate3. #animate3. 'Animate at speed 3.' translated}! !
31525
31182
 
31526
 
!DrGUIControlsManager methodsFor: 'controls data'!
 
31183
!DrGUIControlsManager methodsFor: 'controls data' stamp: 'hlsf 12/4/2021 20:12:31'!
31527
31184
animate4ButtonData
31528
 
        ^ {'Animate x4' translated. #animate4. #animate4. 'Animate at speed 4.' translated}! !
 
31185
        ^ {'Animate x4' translated. #animate3. #animate3. 'Animate at speed 4.' translated}! !
31529
31186
 
31530
31187
!DrGUIControlsManager methodsFor: 'controls data'!
31531
31188
arcButtonData
31535
31192
arcCenterButtonData
31536
31193
        ^ {DrGArcCenterBuilder title. #arcCenter. #createArcCenter. DrGArcCenterBuilder description}! !
31537
31194
 
31538
 
!DrGUIControlsManager methodsFor: 'controls data' stamp: 'hlsf 10/10/2021 11:49:52'!
 
31195
!DrGUIControlsManager methodsFor: 'controls data' stamp: 'hlsf 12/4/2021 19:56:30'!
31539
31196
axesButtonData
31540
 
        ^ {#axesWording. #grid. #axesOnOff. 'Show or hide the ox and oy axes.' translated. #isAxesVisible}! !
 
31197
        ^ {#axesWording. #axes. #axesOnOff. 'Show or hide the ox and oy axes.' translated. #isAxesVisible}! !
31541
31198
 
31542
31199
!DrGUIControlsManager methodsFor: 'controls data'!
31543
31200
circleButtonData
31572
31229
        ^ {#gridWording. #grid. #gridOnOff. 'Show or hide grid.' translated. #isGridVisible}! !
31573
31230
 
31574
31231
!DrGUIControlsManager methodsFor: 'controls data'!
31575
 
helpButtonData
31576
 
        ^ {'Help' translated. #help. #help. 'Open a web help page.' translated}! !
31577
 
 
31578
 
!DrGUIControlsManager methodsFor: 'controls data'!
31579
31232
homothetyButtonData
31580
31233
        ^ {DrGHomothetyBuilder title. #scale. #createHomothety. DrGHomothetyBuilder description}! !
31581
31234
 
31630
31283
multipleModeButtonData
31631
31284
        ^ {#createMultipleModeWording. #createMultiple. #createMultipleOnOff. 'Toggle between the build of several geometric objects and the build of one geometric object then move it.' translated. #isCreateMultipleMode}! !
31632
31285
 
31633
 
!DrGUIControlsManager methodsFor: 'controls data'!
 
31286
!DrGUIControlsManager methodsFor: 'controls data' stamp: 'hlsf 12/4/2021 19:56:18'!
31634
31287
newButtonData
31635
 
        ^ {'New' translated. #blankFigure. #newFigure. 'Open a new blank sketch.' translated}! !
 
31288
        ^ {'New' translated. #newSketch. #newFigure. 'Open a new blank sketch.' translated}! !
31636
31289
 
31637
31290
!DrGUIControlsManager methodsFor: 'controls data'!
31638
31291
openButtonData
32065
31718
                setBalloonText: array fourth;
32066
31719
                yourself        ! !
32067
31720
 
32068
 
!DrGUIControlsManager methodsFor: 'toolbars' stamp: 'hlsf 10/14/2021 09:35:29'!
 
31721
!DrGUIControlsManager methodsFor: 'toolbars' stamp: 'hlsf 12/4/2021 21:14:24'!
32069
31722
toolbar
32070
31723
        | toolsData dropDown |
32071
31724
        toolbar ifNotNil: [^ toolbar].
32076
31729
                add: self animateTools;                 yourself.
32077
31730
        toolbar _ CircularToolbarMorph new.
32078
31731
        toolbar 
 
31732
                color: (Color black alpha: 0.8);
32079
31733
                wantsToBeOnTop: true;
32080
31734
                buttonSize: DrGeoSystem toolbarIconSize.
32081
31735
        toolsData do: [:tools |