~hilaire-fernandes/drgeo/trunk

« back to all changes in this revision

Viewing changes to src/DrGeo.pck.st

  • Committer: Hilaire Fernandes
  • Date: 2022-10-06 10:54:07 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20221006105407-i5ldcod88zei3c1w
New icons and action to play/pause/resume Smalltalk sketch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
'From Cuis 6.0 [latest update: #5494] on 1 October 2022 at 3:50:43 pm'!
 
1
'From Cuis 6.0 [latest update: #5494] on 6 October 2022 at 12:51:43 pm'!
2
2
'Description '!
3
 
!provides: 'DrGeo' 1 479!
 
3
!provides: 'DrGeo' 1 481!
4
4
!requires: 'Gettext' 1 17 nil!
5
5
!requires: 'SVG' 1 16 nil!
6
6
!requires: 'YAXO' 1 19 nil!
551
551
 
552
552
!classDefinition: #DrGSmalltalkSketchEditor category: 'DrGeo-UI-Widgets'!
553
553
DialogPanel subclass: #DrGSmalltalkSketchEditor
554
 
        instanceVariableNames: 'file drgeoView codeView pane sketchProcess'
 
554
        instanceVariableNames: 'file drgeoView codeView pane sketchProcess playButton'
555
555
        classVariableNames: ''
556
556
        poolDictionaries: ''
557
557
        category: 'DrGeo-UI-Widgets'!
3092
3092
- drgeoView : a morph where to plug the view of the compiled model
3093
3093
- codeView : editor of the model
3094
3094
- sketchProcess: the Smalltalk sketch is executed in its own thread
 
3095
- playButton: the button to play and pause the Smalltalk sketch execution
3095
3096
!
3096
3097
 
3097
3098
!DrGStylePanel commentStamp: '<historical>' prior: 0!
7057
7058
        super expand.
7058
7059
        self fullScreen! !
7059
7060
 
7060
 
!DrGSmalltalkSketchEditor methodsFor: 'GUI building' stamp: 'hlsf 4/23/2022 14:29:38'!
 
7061
!DrGSmalltalkSketchEditor methodsFor: 'GUI building' stamp: 'hlsf 10/6/2022 12:20:31'!
7061
7062
buildMorphicWindow
7062
7063
        super buildMorphicWindow.
7063
7064
        titleMorph showButtonsNamed: #(close collapse expand)! !
7101
7102
                addMorphUseAll: self newDrGeoRow;
7102
7103
                yourself! !
7103
7104
 
7104
 
!DrGSmalltalkSketchEditor methodsFor: 'GUI building' stamp: 'hlsf 9/28/2022 16:05:14'!
 
7105
!DrGSmalltalkSketchEditor methodsFor: 'GUI building' stamp: 'hlsf 10/6/2022 12:38:06'!
7105
7106
newToolbar
7106
7107
        ^ LayoutMorph newRow ::
7107
7108
                separation: 5@0 ;
7108
7109
                addMorph: (self button: #open action: #loadSketch help: 'Edit a Smalltalk sketch.' translated);
7109
7110
                addMorph: (self button: #keep action: #keepSketch help: 'Save this Smalltalk sketch.' translated);
7110
 
                addMorph: (self button: #useScript action: #executeSketch help: 'Execute the Smalltalk sketch.' translated);
 
7111
                addMorph: (playButton _ self button: #play action: #executeSketch help: 'Play the Smalltalk sketch.' translated);
7111
7112
                addMorph: (self button: #stop action: #stopSketch help: 'Stop the execution of the Smalltalk sketch.' translated);
7112
7113
                yourself! !
7113
7114
 
 
7115
!DrGSmalltalkSketchEditor methodsFor: 'GUI building' stamp: 'hlsf 10/6/2022 12:44:50'!
 
7116
switchToPauseButton
 
7117
 
7118
Switch to pause sketch action 
 
7119
"
 
7120
        playButton 
 
7121
                icon: (DrGIcons for: #pause);
 
7122
                action: #pauseSketch;
 
7123
                setBalloonText: 'Pause the Smalltalk sketch.' translated;
 
7124
                redrawNeeded ! !
 
7125
 
 
7126
!DrGSmalltalkSketchEditor methodsFor: 'GUI building' stamp: 'hlsf 10/6/2022 12:44:47'!
 
7127
switchToPlayButton
 
7128
 
7129
Switch to play sketch action 
 
7130
"
 
7131
        playButton 
 
7132
                icon: (DrGIcons for: #play);
 
7133
                action: #executeSketch;
 
7134
                setBalloonText: 'Play the Smalltalk sketch.' translated;
 
7135
                redrawNeeded ! !
 
7136
 
 
7137
!DrGSmalltalkSketchEditor methodsFor: 'GUI building' stamp: 'hlsf 10/6/2022 12:44:44'!
 
7138
switchToResumeButton
 
7139
 
7140
Switch to resume sketch action
 
7141
"
 
7142
        playButton 
 
7143
                icon: (DrGIcons for: #resume);
 
7144
                action: #resumeSketch;
 
7145
                setBalloonText: 'Resume the Smalltalk sketch.' translated;
 
7146
                redrawNeeded ! !
 
7147
 
7114
7148
!DrGSmalltalkSketchEditor methodsFor: 'initialization' stamp: 'hlsf 4/16/2022 17:32:41'!
7115
7149
initialize
7116
7150
        super initialize.
7176
7210
        self clearView.
7177
7211
        drgeoView addMorph: aSketch view.! !
7178
7212
 
7179
 
!DrGSmalltalkSketchEditor methodsFor: 'actions' stamp: 'hlsf 9/28/2022 16:54:56'!
 
7213
!DrGSmalltalkSketchEditor methodsFor: 'actions' stamp: 'hlsf 10/6/2022 12:27:12'!
7180
7214
executeSketch
7181
7215
        codeView scroller acceptContents.
7182
 
        self stopSketch.
 
7216
        self switchToPauseButton.
7183
7217
        sketchProcess _ [ | t |
7184
7218
                t _ DateAndTime now.
7185
7219
                Compiler evaluate: model.
 
7220
                " When we get there, sketch has been entirely executed, switch back to play button "
 
7221
                self switchToPlayButton.
7186
7222
                Transcript show: DateAndTime now - t ;cr] newProcess.
7187
7223
        sketchProcess 
7188
7224
                priority: Processor userSchedulingPriority ;
7224
7260
        self changed: #acceptedContents.
7225
7261
        self clearView! !
7226
7262
 
7227
 
!DrGSmalltalkSketchEditor methodsFor: 'actions' stamp: 'hlsf 9/28/2022 15:46:22'!
 
7263
!DrGSmalltalkSketchEditor methodsFor: 'actions' stamp: 'hlsf 10/6/2022 12:28:44'!
 
7264
pauseSketch
 
7265
        sketchProcess suspend.
 
7266
        self switchToResumeButton ! !
 
7267
 
 
7268
!DrGSmalltalkSketchEditor methodsFor: 'actions' stamp: 'hlsf 10/6/2022 12:28:58'!
 
7269
resumeSketch
 
7270
        sketchProcess resume.
 
7271
        self switchToPauseButton! !
 
7272
 
 
7273
!DrGSmalltalkSketchEditor methodsFor: 'actions' stamp: 'hlsf 10/6/2022 12:25:45'!
7228
7274
stopSketch
7229
 
        sketchProcess ifNotNil: [sketchProcess terminate].
7230
 
        sketchProcess _ nil! !
 
7275
        sketchProcess   ifNotNil: [
 
7276
                sketchProcess terminate.
 
7277
                sketchProcess _ nil.
 
7278
                self switchToPlayButton ]
 
7279
        ! !
7231
7280
 
7232
7281
!DrGSmalltalkSketchEditor methodsFor: 'geometry' stamp: 'hlsf 4/23/2022 14:19:25'!
7233
7282
expand
11656
11705
                (PopUpMenu labels: ' Ok ' icons: {DrGIcons drgeo}) 
11657
11706
                        startUpNonModalWithCaption:  DrGeo drgeoInformationString ]! !
11658
11707
 
11659
 
!DrGeo class methodsFor: 'user interface' stamp: 'hlsf 4/10/2022 13:08:22'!
 
11708
!DrGeo class methodsFor: 'user interface' stamp: 'hlsf 10/6/2022 11:20:03'!
11660
11709
drgeoCopyright
11661
 
        ^ 'Copyright 1996-2022 Hilaire Fernandes'! !
 
11710
        ^ 'Source code application: Copyright 1996-2022 Hilaire Fernandes
 
11711
Icons: Copyright 1999 Fr�d�ric Toussaint
 
11712
Icons: Copyright 2021-2022 David Caula (imppao)'! !
11662
11713
 
11663
11714
!DrGeo class methodsFor: 'user interface' stamp: 'hlsf 9/19/2022 19:00:40'!
11664
11715
drgeoInformationString