ImageEditor.st
author Claus Gittinger <cg@exept.de>
Tue, 14 May 2019 09:46:21 +0200
changeset 3663 9d49ecf8661a
parent 3653 f66208efcf4b
child 3666 7ec8466f4f67
permissions -rw-r--r--
#UI_ENHANCEMENT by cg
class: TabListEditor class
changed:
#canvasSpec
#menu
#windowSpec
cg@3650
     1
"{ Encoding: utf8 }"
cg@3650
     2
tz@400
     3
"
tz@767
     4
 COPYRIGHT (c) 1997-1998 by eXept Software AG
tz@400
     5
              All Rights Reserved
tz@400
     6
tz@400
     7
 This software is furnished under a license and may be used
tz@400
     8
 only in accordance with the terms of that license and with the
tz@405
     9
 inclusion of the above copyright notice. This software may not
tz@400
    10
 be provided or otherwise made available to, or used by, any
tz@405
    11
 other person. No title to or ownership of the software is
tz@400
    12
 hereby transferred.
tz@400
    13
"
cg@1376
    14
"{ Package: 'stx:libtool2' }"
cg@1376
    15
cg@3180
    16
"{ NameSpace: Smalltalk }"
cg@3180
    17
cg@1975
    18
ResourceSpecEditor subclass:#ImageEditor
tz@975
    19
	instanceVariableNames:'imageEditView colorMapMode editMode mouseKeyColorMode
cg@1960
    20
		selectedColorIndex postOpenAction imageSeqNr drawingColormap
cg@2767
    21
		lastShiftUsedWrap lastGrabbedScreenArea
cg@3379
    22
		allowedToChangeImageDimensionAndDepth savedImage savedFile'
cg@3416
    23
	classVariableNames:'DefaultRelativeSizes LastColormapMode LastDirectory
cg@3497
    24
		LastSizeString LastURL MaskClipboard LastDepth
cg@3550
    25
		LastNumThresholdGrayColors LastMagnifyTo LastMagnifyBy
cg@3550
    26
		LastMagnifySmoothing'
cg@929
    27
	poolDictionaries:''
cg@929
    28
	category:'Interface-UIPainter'
tz@400
    29
!
tz@400
    30
tz@400
    31
!ImageEditor class methodsFor:'documentation'!
tz@400
    32
tz@400
    33
copyright
tz@400
    34
"
tz@767
    35
 COPYRIGHT (c) 1997-1998 by eXept Software AG
tz@400
    36
              All Rights Reserved
tz@400
    37
tz@400
    38
 This software is furnished under a license and may be used
tz@400
    39
 only in accordance with the terms of that license and with the
tz@405
    40
 inclusion of the above copyright notice. This software may not
tz@400
    41
 be provided or otherwise made available to, or used by, any
tz@405
    42
 other person. No title to or ownership of the software is
tz@400
    43
 hereby transferred.
tz@400
    44
"
tz@400
    45
!
tz@400
    46
tz@400
    47
documentation
tz@400
    48
"
tz@737
    49
    Image Editor allows you to create, design, modify or just inspect images.
cg@3375
    50
    It is also used subclasses as a tool to post-process captured screen images and
cg@3375
    51
    bitmaps in expecco.
tz@400
    52
cg@3530
    53
    The actual drawing functionality is found in ImageEditView;
cg@3530
    54
    the code here (an appModel) provides nice menus, previews, colormap manipulation etc.
cg@3530
    55
tz@400
    56
    [start with:]
tz@400
    57
        ImageEditor open
tz@941
    58
        ImageEditor openOnClass:Icon andSelector:#startIcon
cg@3466
    59
        (Image fromFile:'../../goodies/bitmaps/gifImages/garfield.gif') edit
cg@3466
    60
        (Image fromScreen:(0@0 corner:100@100)) edit
tz@400
    61
tz@400
    62
    [see also:]
tz@400
    63
        ImageEditView Image
tz@400
    64
tz@400
    65
    [author:]
tz@544
    66
        Thomas Zwick, eXept Software AG
cg@1806
    67
        Claus Gittinger, eXept Software AG
tz@400
    68
"
tz@400
    69
! !
tz@400
    70
tz@400
    71
!ImageEditor class methodsFor:'instance creation'!
tz@400
    72
sv@3357
    73
openLoadingImageWith:aBlock modal:modalBoolean
cg@3376
    74
    "opens an Image Editor on anImage.
cg@3427
    75
     Returns the editor (to access its attributes)"
cg@1975
    76
cg@1975
    77
    |editor|
cg@1975
    78
cg@1975
    79
    editor := self new.
cg@1975
    80
    editor allButOpen.
cg@1975
    81
    aBlock value:editor.
sv@3357
    82
    modalBoolean ifTrue:[
sv@3357
    83
        editor openWindowModal.
sv@3357
    84
    ] ifFalse:[
sv@3357
    85
        editor openWindow.
sv@3357
    86
    ].
cg@2764
    87
    ^ editor
cg@3427
    88
cg@3427
    89
    "Modified (comment): / 07-03-2017 / 16:36:16 / cg"
cg@1975
    90
!
cg@1975
    91
tz@400
    92
openModalOnClass: aClass andSelector: aSelector
cg@1975
    93
    "opens a modal Image Editor on aClass and aSelector.
cg@1975
    94
     Returns the real name of the edited resource method (in case, user changed it)."
cg@1975
    95
cg@1975
    96
    |imageEditor imageEditView className resourceClass resourceSelector| 
tz@400
    97
tz@400
    98
    imageEditor := self new.
tz@767
    99
tz@900
   100
    aClass isClass  ifTrue: [className := aClass name].
tz@900
   101
    aClass isString ifTrue: [className := aClass].      
tz@903
   102
    aClass isNil    ifTrue: [className := ''].      
tz@400
   103
cg@2764
   104
    imageEditor postOpenAction: [
cg@2764
   105
            imageEditView := imageEditor imageEditView. 
cg@2764
   106
            imageEditor loadFromOrPrepareForClass: aClass andSelector: aSelector
cg@2764
   107
        ].
tz@400
   108
    imageEditor openModal.
tz@400
   109
cg@1975
   110
    resourceClass := imageEditView resourceClass.
cg@1975
   111
    resourceSelector := imageEditView resourceSelector.
cg@1975
   112
cg@1975
   113
    (resourceClass isNil or:[resourceSelector isNil]) ifTrue:[^ nil].
cg@1975
   114
    ^ Array with:resourceClass with:resourceSelector
cg@1966
   115
cg@1966
   116
    "
cg@1966
   117
     self openModalOnClass: self andSelector: #leftMouseKeyIcon
cg@1966
   118
    "
tz@400
   119
!
tz@400
   120
sv@3357
   121
openModalOnFile:aFileName
cg@3427
   122
    "opens an Image Editor on aFileName.
cg@3427
   123
     Returns the editor (to access its attributes)"
cg@3427
   124
cg@3427
   125
    ^ self openOnFile:aFileName modal:true
sv@3357
   126
sv@3357
   127
    "
sv@3357
   128
     self openModalOnFile: '../../goodies/bitmaps/gifImages/back.gif'
sv@3357
   129
    "
cg@3411
   130
cg@3427
   131
    "Modified: / 07-03-2017 / 16:36:32 / cg"
sv@3357
   132
!
sv@3357
   133
cg@2764
   134
openModalOnImage:anImage
cg@2764
   135
    "opens a modal Image Editor on an image.
cg@2764
   136
     Returns the modified image or nil if unsaved/unchanged"
cg@2764
   137
cg@2764
   138
    |imageEditor imageEditView newImage| 
cg@2764
   139
cg@2764
   140
    imageEditor := self new.
cg@2767
   141
    imageEditor allowedToChangeImageDimensionAndDepth:false.
cg@2764
   142
    imageEditor postOpenAction: [
cg@2764
   143
            imageEditView := imageEditor imageEditView. 
cg@2764
   144
            imageEditor loadFromImage: anImage
cg@2764
   145
        ].
cg@2764
   146
    imageEditor openModal.
cg@2764
   147
cg@2766
   148
    newImage := imageEditor savedImage.
cg@2764
   149
    ^ newImage
cg@2764
   150
!
cg@2764
   151
cg@1966
   152
openOnClass:aClass andSelector:aSelector
cg@3427
   153
    "opens an Image Editor on aClass and aSelector.
cg@3427
   154
     Returns the editor (to access its attributes)"
cg@3427
   155
cg@3427
   156
    ^ self openOnClass:aClass andSelector:aSelector modal:false
cg@1057
   157
cg@1966
   158
    "
cg@1966
   159
     self openOnClass:self andSelector:#leftMouseKeyIcon
cg@1966
   160
     self openOnClass:self andSelector:nil
cg@1966
   161
    "
cg@1966
   162
cg@3427
   163
    "Modified: / 07-03-2017 / 16:36:58 / cg"
cg@3427
   164
!
cg@3427
   165
cg@3427
   166
openOnClass:aClass andSelector:aSelector modal:modal
cg@3427
   167
    "opens an Image Editor on aClass and aSelector.
cg@3427
   168
     Returns the editor (to access its attributes)"
cg@3427
   169
cg@3427
   170
    ^ self 
cg@3427
   171
        openLoadingImageWith:[:editor | 
cg@3427
   172
            editor loadFromClass:(aClass theNonMetaclass) andSelector:aSelector
cg@3427
   173
        ] 
cg@3427
   174
        modal:modal.
cg@3427
   175
cg@3427
   176
    "
cg@3427
   177
     self openOnClass:self andSelector:#leftMouseKeyIcon modal:true
cg@3427
   178
     self openOnClass:self andSelector:nil
cg@3427
   179
    "
cg@3427
   180
cg@3427
   181
    "Created: / 07-03-2017 / 16:34:36 / cg"
tz@400
   182
!
tz@400
   183
cg@1966
   184
openOnFile:aFileName
cg@3427
   185
    "opens an Image Editor on aFileName.
cg@3427
   186
     Returns the editor (to access its attributes)"
cg@3427
   187
cg@3427
   188
    ^ self openOnFile:aFileName modal:false   
cg@1966
   189
tz@767
   190
    "
cg@1975
   191
     self openOnFile: '../../goodies/bitmaps/gifImages/back.gif'
tz@767
   192
    "
tz@400
   193
cg@3427
   194
    "Modified: / 07-03-2017 / 16:37:33 / cg"
cg@3427
   195
!
cg@3427
   196
cg@3427
   197
openOnFile:aFileName modal:modal
cg@3427
   198
    "opens an Image Editor on aFileName.
cg@3427
   199
     Returns the editor (to access its attributes)"
cg@3427
   200
cg@3427
   201
    ^ self 
cg@3427
   202
        openLoadingImageWith:[:editor | 
cg@3427
   203
            editor loadFromFile:aFileName.
cg@3427
   204
        ] 
cg@3427
   205
        modal:modal.
cg@3427
   206
cg@3427
   207
    "
cg@3427
   208
     self openOnFile: '../../goodies/bitmaps/gifImages/back.gif' modal:false
cg@3427
   209
     self openOnFile: '../../goodies/bitmaps/gifImages/back.gif' modal:true
cg@3427
   210
    "
cg@3427
   211
cg@3427
   212
    "Created: / 07-03-2017 / 16:33:12 / cg"
tz@400
   213
!
tz@400
   214
cg@1966
   215
openOnImage:anImage
cg@3427
   216
    "opens an Image Editor on anImage.
cg@3427
   217
     Returns the editor (to access its attributes)"
cg@3427
   218
cg@3427
   219
    ^ self 
cg@3375
   220
        openLoadingImageWith:[:editor | editor loadFromImage: anImage ] 
cg@3375
   221
        modal:false
cg@1053
   222
cg@1966
   223
    "
cg@1966
   224
     self openOnImage: Icon startIcon
cg@1966
   225
    "
cg@1966
   226
cg@3427
   227
    "Modified: / 07-03-2017 / 16:37:57 / cg"
tz@400
   228
! !
tz@400
   229
tz@400
   230
!ImageEditor class methodsFor:'accessing'!
tz@400
   231
tz@400
   232
listOfColorMaps
tz@767
   233
    "returns the list of default color maps for a new image"
tz@400
   234
tz@400
   235
    |colorMap|
tz@898
   236
tz@400
   237
    (colorMap := OrderedCollection new)
tz@400
   238
        add: Color black;
tz@400
   239
        add: Color white;
tz@400
   240
        add: Color red;
tz@400
   241
        add: Color green;
tz@400
   242
        add: Color blue;
tz@400
   243
        add: Color cyan;
tz@400
   244
        add: Color yellow;
tz@400
   245
        add: Color magenta;
tz@898
   246
        add: (Color redByte: 127 greenByte:   0 blueByte:   0);
tz@898
   247
        add: (Color redByte:   0 greenByte: 127 blueByte:   0);
tz@898
   248
        add: (Color redByte:   0 greenByte:   0 blueByte: 127);
tz@898
   249
        add: (Color redByte:   0 greenByte: 127 blueByte: 127);
tz@898
   250
        add: (Color redByte: 127 greenByte: 127 blueByte:   0);
tz@898
   251
        add: (Color redByte: 127 greenByte:   0 blueByte: 127);
tz@898
   252
        add: (Color redByte: 127 greenByte: 127 blueByte: 127);
tz@898
   253
        add: (Color redByte: 170 greenByte: 170 blueByte: 170).
tz@898
   254
cg@3346
   255
    0 to: 5 do: [:r|                                                    
cg@3346
   256
        0 to: 5 do: [:g|
cg@3346
   257
            0 to: 5 do: [:b|
tz@898
   258
                colorMap add: (Color redByte: (r*255//5) ceiling greenByte: (g*255//5) ceiling blueByte: (b*255//5) ceiling)
tz@400
   259
            ]
tz@400
   260
        ]
tz@400
   261
    ].
tz@400
   262
cg@3346
   263
    1 to: 25 do: [:g|                             
tz@898
   264
        colorMap add: (Color redByte: (g*255//26) ceiling greenByte: (g*255//26) ceiling blueByte: (g*255//26) ceiling)
tz@400
   265
    ].
tz@400
   266
cg@1847
   267
    ^ Dictionary new
cg@2571
   268
        at: #depth32 put:(FixedPalette redShift:16 redMask:16rFF greenShift:8 greenMask:16rFF blueShift:0 blueMask:16rFF);
cg@1847
   269
        at: #depth24 put:(FixedPalette redShift:16 redMask:16rFF greenShift:8 greenMask:16rFF blueShift:0 blueMask:16rFF);
cg@1847
   270
        at: #masked24 put:(FixedPalette redShift:16 redMask:16rFF greenShift:8 greenMask:16rFF blueShift:0 blueMask:16rFF);
cg@1847
   271
        at: #depth16 put:(FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F);
cg@1847
   272
        at: #masked16 put:(FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F);
cg@1847
   273
        at: #depth8  put: colorMap;
cg@1847
   274
        at: #masked8 put: colorMap;
cg@1847
   275
        at: #depth4  put: (colorMap copyFrom: 1 to: 16);
cg@1847
   276
        at: #masked4 put: (colorMap copyFrom: 1 to: 16);
cg@1847
   277
        at: #depth2  put: (colorMap copyFrom: 1 to: 4);
cg@1847
   278
        at: #masked2 put: (colorMap copyFrom: 1 to: 4);
cg@1847
   279
        at: #depth1  put: (colorMap copyFrom: 1 to: 2);
cg@1847
   280
        at: #masked1 put: (colorMap copyFrom: 1 to: 2);
tz@400
   281
        yourself
tz@400
   282
!
tz@400
   283
tz@400
   284
listOfDefaultSizes
tz@767
   285
    "returns the list of default sizes for a new image"
tz@400
   286
cg@1960
   287
    ^ #('8x8' '16x16' '22x22' '32x32' '48x48' '64x64')
cg@932
   288
cg@932
   289
    "Modified: / 31.7.1998 / 01:57:34 / cg"
cg@1847
   290
!
cg@1847
   291
cg@1847
   292
namesOfColorMaps
cg@1847
   293
    ^ Dictionary new
cg@2571
   294
        at: #depth32 put: '32-plane (rgba)';
cg@1847
   295
        at: #depth24 put: '24-plane';
cg@1847
   296
        at: #masked24 put: '24-plane + mask';
cg@1847
   297
        at: #depth16 put: '16-plane';
cg@1847
   298
        at: #masked16 put: '16-plane + mask';
cg@1847
   299
        at: #depth8  put: ' 8-plane';
cg@1847
   300
        at: #masked8 put: ' 8-plane + mask';
cg@1847
   301
        at: #depth4  put: ' 4-plane';
cg@1847
   302
        at: #masked4 put: ' 4-plane + mask';
cg@1847
   303
        at: #depth2  put: ' 2-plane';
cg@1847
   304
        at: #masked2 put: ' 2-plane + mask';
cg@1847
   305
        at: #depth1  put: ' 1-plane';
cg@1847
   306
        at: #masked1 put: ' 1-plane + mask' ;
cg@1847
   307
        yourself
tz@400
   308
! !
tz@400
   309
tz@460
   310
!ImageEditor class methodsFor:'help specs'!
tz@460
   311
cg@3644
   312
helpSpec
cg@3405
   313
    "This resource specification was automatically generated
cg@3405
   314
     by the UIHelpTool of ST/X."
cg@3405
   315
cg@3405
   316
    "Do not manually edit this!! If it is corrupted,
cg@3405
   317
     the UIHelpTool may not be able to read the specification."
cg@3405
   318
cg@3405
   319
    "
cg@3408
   320
     UIHelpTool openOnClass:ImageEditor
cg@3405
   321
    "
cg@3405
   322
cg@1545
   323
    <resource: #help>
cg@1545
   324
cg@3644
   325
    ^super helpSpec addPairsFrom: #(
cg@3405
   326
cg@3562
   327
#autoCropAll
cg@3562
   328
'Find and remove all borders'
cg@3562
   329
cg@3562
   330
#autoCropBottom
cg@3562
   331
'Find and remove bottom border'
cg@3562
   332
cg@3562
   333
#autoCropLeft
cg@3562
   334
'Find and remove left border'
cg@3562
   335
cg@3562
   336
#autoCropRight
cg@3562
   337
'Find and remove right border'
cg@3562
   338
cg@3562
   339
#autoCropTop
cg@3562
   340
'Find and remove top border'
cg@3562
   341
cg@3562
   342
#colorMap
cg@3562
   343
'ColorMap functions'
cg@3562
   344
cg@3562
   345
#colorMap1
cg@3562
   346
'Convert to depth-1 image'
cg@3562
   347
cg@3562
   348
#colorMap1M
cg@3562
   349
'Convert to depth-1 image plus mask'
cg@3562
   350
cg@3562
   351
#colorMap2
cg@3562
   352
'Convert to depth-2 image'
cg@3562
   353
cg@3562
   354
#colorMap24
cg@3562
   355
'Convert to depth-24 image (rgb)'
cg@3562
   356
cg@3562
   357
#colorMap2M
cg@3562
   358
'Convert to depth-2 image plus mask'
cg@3562
   359
cg@3562
   360
#colorMap32
cg@3562
   361
'Convert to depth-32 image (rgba)'
cg@3562
   362
cg@3562
   363
#colorMap4
cg@3562
   364
'Convert to depth-4 image'
cg@3562
   365
cg@3562
   366
#colorMap4M
cg@3562
   367
'Convert to depth-4 image plus mask'
cg@3562
   368
cg@3562
   369
#colorMap8
cg@3562
   370
'Convert to depth-8 image'
cg@3562
   371
cg@3562
   372
#colorMap8M
cg@3562
   373
'Convert to depth-8 image plus mask'
cg@3562
   374
cg@3562
   375
#colorMapTable
cg@3562
   376
'Shows a list of used colors of the image'
cg@3562
   377
cg@3562
   378
#compressColormap
cg@3562
   379
'Remove unneeded entries from the colorMap'
cg@3562
   380
cg@3562
   381
#cropAll
cg@3562
   382
'Crop (cut off) all four sides by the amounts entered into the above fields.'
cg@3562
   383
cg@3562
   384
#cropBottom
cg@3562
   385
'Cut off the specified number of pixels at the bottom'
cg@3562
   386
cg@3562
   387
#cropBySelectingArea
cg@3562
   388
'Select new area in the right detail view.'
cg@3562
   389
cg@3562
   390
#cropLeft
cg@3562
   391
'Cut off the specified number of pixels at the left'
cg@3562
   392
cg@3562
   393
#cropManual
cg@3562
   394
'Specify border(s) to remove.'
cg@3562
   395
cg@3562
   396
#cropRight
cg@3562
   397
'Cut off the specified number of pixels at the right'
cg@3562
   398
cg@3562
   399
#cropTop
cg@3562
   400
'Cut off the specified number of pixels at the top'
cg@3562
   401
cg@3562
   402
#cropubImage
cg@3562
   403
'Select a subarea as the image''s new dimension'
cg@3562
   404
cg@3562
   405
#drawModeBox
cg@3562
   406
'Rectangle Drawing Mode'
cg@3562
   407
cg@3562
   408
#drawModeCircle
cg@3562
   409
'Circle Drawing Mode'
cg@3562
   410
cg@3562
   411
#drawModeCopy
cg@3562
   412
'Area Copy Mode'
cg@3562
   413
cg@3562
   414
#drawModeCropSubImage
cg@3562
   415
'Select and extract a subimage'
cg@3562
   416
cg@3562
   417
#drawModeFill
cg@3562
   418
'Flood Fill Mode'
cg@3562
   419
cg@3562
   420
#drawModeFilledBox
cg@3562
   421
'Filled Rectangle Drawing Mode'
cg@3562
   422
cg@3562
   423
#drawModeFilledCircle
cg@3562
   424
'Filled Circle Drawing Mode'
cg@3562
   425
cg@3562
   426
#drawModeMaskOutsideCircle
cg@3562
   427
'Mask everything outside a Circle'
cg@3562
   428
cg@3562
   429
#drawModeMaskOutsideRectangle
cg@3562
   430
'Mask everything outside a Rectangle'
cg@3562
   431
cg@3562
   432
#drawModePaste
cg@3562
   433
'Paste-Over Mode (only paste pixels; keep mask as is)'
cg@3562
   434
cg@3562
   435
#drawModePasteMasked
cg@3562
   436
'Paste-Under Mode (only paste previously masked pixels)'
cg@3562
   437
cg@3562
   438
#drawModePasteUnder
cg@3562
   439
'Paste-Under Mode (only paste previously masked pixels where the new pixel is also masked)'
cg@3562
   440
cg@3562
   441
#drawModePasteWithMask
cg@3562
   442
'Paste-with-Mask Mode (both pixel and mask are pasted)'
cg@3562
   443
cg@3562
   444
#drawModePoint
cg@3562
   445
'Point Drawing Mode'
cg@3562
   446
cg@3562
   447
#drawModeSpecial
cg@3562
   448
'Special operations (select rectangle, then choose operation)'
cg@3562
   449
cg@3562
   450
#drawModeSpray
cg@3562
   451
'Spray Drawing Mode'
cg@3562
   452
cg@3562
   453
#drawingAlpha
cg@3562
   454
'The alpha value (in percent) to be used in edit operations.\If the "mask"-color is selected, only the alpha value will be changed.\Otherwise, the selected color plus this alpha value will be used for drawing'
cg@3562
   455
cg@3421
   456
#drawingColor1
cg@3421
   457
'The color associated to the left mouse button.\Also the color used in fill operations'
cg@3421
   458
cg@3421
   459
#drawingColor2
cg@3421
   460
'The color associated to the right mouse button.\Also the second color used in gradient fill operations'
cg@3421
   461
cg@3408
   462
#edit3DProjection
cg@3408
   463
'Generate a 3D projection'
cg@3408
   464
cg@3408
   465
#editFlipHorizontal
cg@3408
   466
'Flip the image horizontally'
cg@3408
   467
cg@3408
   468
#editFlipVertical
cg@3408
   469
'Flip the image vertically'
cg@3408
   470
cg@3408
   471
#editMagnifyImage
cg@3408
   472
'Magnify the image'
cg@3408
   473
cg@3408
   474
#editNegate
cg@3408
   475
'Invert the images colors'
cg@3408
   476
cg@3408
   477
#editResize
cg@3408
   478
'Resize the image (preserving the old image)'
cg@3408
   479
cg@3408
   480
#editRotate
cg@3408
   481
'Rotate the image'
cg@3408
   482
cg@3408
   483
#fileEditMask
cg@3408
   484
'Load Mask from a File'
cg@3408
   485
cg@3408
   486
#fileGrabImageFromScreen
cg@3408
   487
'Pick an image from the screen (specify area)'
cg@3408
   488
cg@3408
   489
#fileGrabImageFromWindow
cg@3408
   490
'Pick an image from a window on the screen (click on window)'
cg@3408
   491
cg@3408
   492
#fileLoadFromClass
cg@3408
   493
'Select and load an image from a resource method'
cg@3408
   494
cg@3408
   495
#fileLoadFromFile
cg@3408
   496
'Select and load an image from a file'
cg@3408
   497
cg@3408
   498
#fileLoadFromURL
cg@3408
   499
'Load an image from the net, given its URL'
cg@3408
   500
cg@3408
   501
#fileNewImage
cg@3408
   502
'Create a new image'
cg@3408
   503
cg@3408
   504
#fileNewImageFromClipboard
cg@3408
   505
'Create a new image and initialize it from the clipboard'
cg@3408
   506
cg@3408
   507
#fileNewMaskFromClipboard
cg@3408
   508
'Paste the image in the clipboard as a mask. Must be a depth-1 image'
cg@3408
   509
cg@3408
   510
#filePrint
cg@3417
   511
'Print the image on a postscript printer'
cg@3417
   512
cg@3417
   513
#filePrint
cg@3408
   514
'Print'
cg@3408
   515
cg@3408
   516
#fileSave
cg@3408
   517
'Save the image'
cg@3408
   518
cg@3408
   519
#fileSaveAs
cg@3408
   520
'Save the image to a file'
cg@3408
   521
cg@3408
   522
#fileSaveButtonImageAs
cg@3408
   523
'Save an image of a button with the image to a file (for html use)'
cg@3408
   524
cg@3408
   525
#fileSaveMaskAs
cg@3408
   526
'Save the mask of the image to a file'
cg@3408
   527
cg@3408
   528
#fileSaveMethod
cg@3408
   529
'Save the image as resource method in the current class and selector'
cg@3408
   530
cg@3408
   531
#fileSaveMethodAs
cg@3408
   532
'Save the image as resource method in a class'
cg@3408
   533
cg@3408
   534
#floodFillMaxError
cg@3433
   535
'Specify the max. allowed deviation from the clicked pixel in a flood-fill operation.\Pixels where the hue/light values differ less than that fraction\will be included in the fill.\The range must be between 0 and 1. With 0, only areas with exactly the same pixel will be filled.\With 1, every other pixel is included.\\When filling gradiented areas, start with small values, such as 0.05, and increase slowly (undo and try with higher value).\This is especially useful when masking background areas from screenshots.'
cg@3408
   536
cg@3562
   537
#hueShift
cg@3562
   538
''
cg@3562
   539
cg@3562
   540
#lightFactor
cg@3562
   541
''
cg@3562
   542
cg@3408
   543
#magnificationNumber
cg@3408
   544
'Shows the current magnification'
cg@3408
   545
cg@3408
   546
#magnifyImageDown
cg@3408
   547
'Decrease magnification'
cg@3408
   548
cg@3408
   549
#magnifyImageUp
cg@3408
   550
'Increase magnification'
cg@3408
   551
cg@3408
   552
#mouseKeyColorMode
cg@3408
   553
'Toggle between left and right mouse button color'
cg@3408
   554
cg@3408
   555
#nextImageInSequence
cg@3408
   556
'Go to the next image in the animated gif image sequence.'
cg@3408
   557
cg@3408
   558
#previewView
cg@3408
   559
'Shows a preview of the image'
cg@3408
   560
cg@3408
   561
#previousImageInSequence
cg@3408
   562
'Go to the previous image in the animated gif image sequence.'
cg@3408
   563
cg@3562
   564
#resetHueShift
cg@3562
   565
'Reset the hue shift to zero (for unchanged hue)'
cg@3562
   566
cg@3562
   567
#resetLightFactor
cg@3562
   568
'Reset the light factor to 1 (for unchanged brightness)'
cg@3562
   569
cg@3562
   570
#resetSaturationFactor
cg@3562
   571
'Reset the saturation factor to 1 (for unchanged saturation)'
cg@3562
   572
cg@3562
   573
#saturationFactor
cg@3562
   574
''
cg@3562
   575
cg@3408
   576
#settingsGridMagnification
cg@3408
   577
'Change the grid magnification of the edit view'
cg@3408
   578
cg@3405
   579
#xdrawModeBox
cg@3405
   580
'Rectangle'
cg@3405
   581
cg@3405
   582
#xdrawModeCopy
cg@3405
   583
'Copy'
cg@3405
   584
cg@3405
   585
#xdrawModeFill
cg@3405
   586
'Flood-fill'
cg@3405
   587
cg@3405
   588
#xdrawModeFilledBox
cg@3405
   589
'Filled rectangle'
cg@3405
   590
cg@3405
   591
#xdrawModePaste
cg@3405
   592
'Paste'
cg@3405
   593
cg@3405
   594
#xdrawModePasteUnder
cg@3405
   595
'Paste under'
cg@3405
   596
cg@3405
   597
#xdrawModePasteWithMask
cg@3405
   598
'Paste with Mask'
cg@3405
   599
cg@3405
   600
#xdrawModePoint
cg@3405
   601
'Point'
cg@3405
   602
cg@3405
   603
#xfileGrabImage
cg@3405
   604
'Pick from screen'
cg@3405
   605
cg@3405
   606
#xfileLoadFromClass
cg@3405
   607
'Load from method...'
cg@3405
   608
cg@3405
   609
#xfileLoadFromFile
cg@3405
   610
'Load from file...'
cg@3405
   611
cg@3405
   612
#xfileNewImage
cg@3405
   613
'New image'
cg@3405
   614
cg@3405
   615
#xfileSaveAs
cg@3405
   616
'Save to file...'
cg@3405
   617
cg@3405
   618
#xfileSaveMaskAs
cg@3405
   619
'Save mask to file...'
cg@3405
   620
cg@3405
   621
#xfileSaveMethod
cg@3405
   622
'Save as method'
cg@3405
   623
cg@3405
   624
#xfileSaveMethodAs
cg@3405
   625
'Save as Method...'
cg@3405
   626
cg@3405
   627
)
cg@3405
   628
cg@3513
   629
    "Modified: / 16-02-2017 / 12:30:55 / cg"
cg@3644
   630
    "Modified: / 28-02-2019 / 11:57:39 / Claus Gittinger"
tz@460
   631
! !
tz@460
   632
tz@737
   633
!ImageEditor class methodsFor:'image specs'!
tz@737
   634
cg@3419
   635
brighterIcon
cg@3419
   636
    "This resource specification was automatically generated
cg@3419
   637
     by the ImageEditor of ST/X."
cg@3419
   638
cg@3419
   639
    "Do not manually edit this!! If it is corrupted,
cg@3419
   640
     the ImageEditor may not be able to read the specification."
cg@3419
   641
cg@3419
   642
    "
cg@3419
   643
     self brighterIcon inspect
cg@3419
   644
     ImageEditor openOnClass:self andSelector:#brighterIcon
cg@3419
   645
     Icon flushCachedIcons
cg@3419
   646
    "
cg@3419
   647
cg@3419
   648
    <resource: #image>
cg@3419
   649
cg@3419
   650
    ^Icon
cg@3419
   651
        constantNamed:'ImageEditor class brighterIcon'
cg@3419
   652
        ifAbsentPut:[(Depth8Image width:14 height:14) bits:(ByteArray fromPackedString:'
cg@3419
   653
@PDA@PDA@PDA@PDA@PG%9^W%9^W%;>?/;>?/;>W%9^W%9^W/;>?/;>?/9^W%9^W%A [/;>?/;>?%9^W%9^TFA.?/;>?/;>W%9^W%9PXF;>?/;>?/9^W%A XF
cg@3419
   654
A XFA [/;>?%9^TFA XFA XFA.?/;>W%9^W%9PXF;>?/;>?/9^W%9^W%A [/;>?/;>?%9^W%9^TFA.?/;>?/;>W%9^W%9^W/;>?/;>?/9^W%9^W%9^?/;>?/
cg@3419
   655
;><A@PDA@PDA@PDA@PDA@P@a')
cg@3419
   656
            colorMapFromArray:#[88 88 88 0 0 0 255 0 0 0 255 0 0 0 255 0 255 255 255 255 127 255 0 255 127 0 0 0 127 0 0 0 127 0 127 127 127 127 0 127 0 127 127 127 127 170 170 170 0 0 51 0 0 102 0 0 153 0 0 204 0 51 0 0 51 51 0 51 102 0 51 153 0 51 204 0 51 255 0 102 0 0 102 51 0 102 102 0 102 153 0 102 204 0 102 255 0 153 0 0 153 51 0 153 102 0 153 153 0 153 204 0 153 255 0 204 0 0 204 51 0 204 102 0 204 153 0 204 204 0 204 255 0 255 51 0 255 102 0 255 153 0 255 204 51 0 0 51 0 51 51 0 102 51 0 153 51 0 204 51 0 255 51 51 0 51 51 51 51 51 102 51 51 153 51 51 204 51 51 255 51 102 0 51 102 51 51 102 102 51 102 153 51 102 204 51 102 255 51 153 0 51 153 51 51 153 102 51 153 153 51 153 204 51 153 255 51 204 0 51 204 51 51 204 102 51 204 153 51 204 204 51 204 255 51 255 0 51 255 51 51 255 102 51 255 153 51 255 204 51 255 255 102 0 0 102 0 51 102 0 102 102 0 153 102 0 204 102 0 255 102 51 0 102 51 51 102 51 102 102 51 153 102 51 204 102 51 255 102 102 0 102 102 51 102 102 102 102 102 153 102 102 204 102 102 255 102 153 0 102 153 51 102 153 102 102 153 153 102 153 204 102 153 255 102 204 0 102 204 51 102 204 102 102 204 153 102 204 204 102 204 255 102 255 0 102 255 51 102 255 102 102 255 153 102 255 204 102 255 255 153 0 0 153 0 51 153 0 102 153 0 153 153 0 204 153 0 255 153 51 0 153 51 51 153 51 102 153 51 153 153 51 204 153 51 255 153 102 0 153 102 51 153 102 102 153 102 153 153 102 204 153 102 255 153 153 0 153 153 51 153 153 102 153 153 153 153 153 204 153 153 255 153 204 0 153 204 51 153 204 102 153 204 153 153 204 204 153 204 255 153 255 0 153 255 51 153 255 102 153 255 153 153 255 204 153 255 255 204 0 0 204 0 51 204 0 102 204 0 153 204 0 204 204 0 255 204 51 0 204 51 51 204 51 102 204 51 153 204 51 204 204 51 255 204 102 0 204 102 51 204 102 102 204 102 153 204 102 204 204 102 255 204 153 0 204 153 51 204 153 102 204 153 153 204 153 204 204 153 255 204 204 0 204 204 51 204 204 102 204 204 153 204 204 204 204 204 255 204 255 0 204 255 51 204 255 102 204 255 153 204 255 204 204 255 255 255 0 51 255 0 102 255 0 153 255 0 204 255 51 0 255 51 51 255 51 102 255 51 153 255 51 204 255 51 255 255 102 0 255 102 51 255 102 102 255 102 153 255 102 204 255 102 255 255 153 0 255 153 51 255 153 102 255 153 153 255 153 204 255 153 255 255 204 0 255 204 51 255 204 102 255 204 153 255 204 204 255 204 255 255 255 51 255 255 102 255 255 153 255 255 204 255 255 255 9 9 9 19 19 19 29 29 29 39 39 39 49 49 49 58 58 58 68 68 68 78 78 78 98 98 98 107 107 107 117 117 117 137 137 137 147 147 147 156 156 156 166 166 166]
cg@3419
   657
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@C??O?<??3??O?<??3??O?<??3??O?<??0@@@@a'); yourself); yourself]
cg@3419
   658
!
cg@3419
   659
cg@2272
   660
circleIcon
cg@2272
   661
    "This resource specification was automatically generated
cg@2272
   662
     by the ImageEditor of ST/X."
cg@3442
   663
cg@2272
   664
    "Do not manually edit this!! If it is corrupted,
cg@2272
   665
     the ImageEditor may not be able to read the specification."
cg@3442
   666
cg@2272
   667
    "
cg@2272
   668
     self circleIcon inspect
cg@2272
   669
     ImageEditor openOnClass:self andSelector:#circleIcon
cg@3442
   670
     Icon flushCachedIcons
cg@3442
   671
    "
cg@3442
   672
cg@3442
   673
    <resource: #image>
cg@3442
   674
cg@3442
   675
    ^Icon
cg@3442
   676
        constantNamed:'ImageEditor class circleIcon'
cg@3442
   677
        ifAbsentPut:[(Depth1Image width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@QAAD@@@C@X@@@@@@@CLA @@@Q@AD@@@@@a')
cg@3442
   678
            colorMapFromArray:#[0 0 0 127 127 127]
cg@3442
   679
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@_@CF@PDC@XH@  BB@HLA PD@1 A<@@@@@a'); yourself); yourself]
sv@3121
   680
!
sv@3121
   681
sv@3121
   682
copyIcon
cg@2272
   683
    <resource: #image>
cg@1637
   684
    "This resource specification was automatically generated
cg@1637
   685
     by the ImageEditor of ST/X."
cg@1637
   686
    "Do not manually edit this!! If it is corrupted,
cg@1637
   687
     the ImageEditor may not be able to read the specification."
cg@1637
   688
    "
cg@1637
   689
     self copyIcon inspect
cg@1637
   690
     ImageEditor openOnClass:self andSelector:#copyIcon
sv@3121
   691
     Icon flushCachedIcons"
sv@3121
   692
    
sv@3121
   693
    ^ Icon constantNamed:'ImageEditor class copyIcon'
sv@3121
   694
        ifAbsentPut:[
sv@3121
   695
            (Depth2Image new)
sv@3121
   696
                width:14;
sv@3121
   697
                height:14;
sv@3121
   698
                photometric:(#palette);
sv@3121
   699
                bitsPerSample:(#( 2 ));
sv@3121
   700
                samplesPerPixel:(1);
sv@3121
   701
                bits:(ByteArray 
sv@3121
   702
                            fromPackedString:'@@@@@@@@@@@** @@J)UUTB*Z*)@*&**PJ)**$B*Z*)@*&**PJ)**$@@Z*)@@F**P@AUUT@@@@@@b');
sv@3121
   703
                colorMapFromArray:#[ 0 0 0 0 0 128 255 255 255 ];
sv@3121
   704
                mask:((ImageMask new)
sv@3121
   705
                            width:14;
sv@3121
   706
                            height:14;
sv@3121
   707
                            bits:(ByteArray 
sv@3121
   708
                                        fromPackedString:'@@C? O>@??3??O?<??3??O?<??3??@_<A?0@@@@a');
sv@3121
   709
                            yourself);
sv@3121
   710
                yourself
sv@3121
   711
        ]
cg@1637
   712
!
cg@1637
   713
cg@3417
   714
cropSubImageIcon
cg@3417
   715
    "This resource specification was automatically generated
cg@3417
   716
     by the ImageEditor of ST/X."
cg@3417
   717
cg@3417
   718
    "Do not manually edit this!! If it is corrupted,
cg@3417
   719
     the ImageEditor may not be able to read the specification."
cg@3417
   720
cg@3417
   721
    "
cg@3417
   722
     self cropSubImageIcon inspect
cg@3417
   723
     ImageEditor openOnClass:self andSelector:#cropSubImageIcon
cg@3417
   724
     Icon flushCachedIcons
cg@3417
   725
    "
cg@3417
   726
cg@3417
   727
    <resource: #image>
cg@3417
   728
cg@3417
   729
    ^Icon
cg@3417
   730
        constantNamed:'ImageEditor class cropSubImageIcon'
cg@3417
   731
        ifAbsentPut:[(Depth2Image width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@J**@@BUU @@%UX@@IUV@@BUU @@%UX@@J**@@@@@@@@@@@@@@@@@@b')
cg@3417
   732
            colorMapFromArray:#[0 0 0 255 255 255 127 127 127 0 255 0]
cg@3464
   733
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'??2@AH@D.@R?9K?$''>R_9I?$''?R_=HA4 @S??@@a'); yourself); yourself]
cg@3417
   734
!
cg@3417
   735
cg@3419
   736
darkerIcon
cg@3419
   737
    "This resource specification was automatically generated
cg@3419
   738
     by the ImageEditor of ST/X."
cg@3419
   739
cg@3419
   740
    "Do not manually edit this!! If it is corrupted,
cg@3419
   741
     the ImageEditor may not be able to read the specification."
cg@3419
   742
cg@3419
   743
    "
cg@3419
   744
     self darkerIcon inspect
cg@3419
   745
     ImageEditor openOnClass:self andSelector:#darkerIcon
cg@3419
   746
     Icon flushCachedIcons
cg@3419
   747
    "
cg@3419
   748
cg@3419
   749
    <resource: #image>
cg@3419
   750
cg@3419
   751
    ^Icon
cg@3419
   752
        constantNamed:'ImageEditor class darkerIcon'
cg@3419
   753
        ifAbsentPut:[(Depth8Image width:14 height:14) bits:(ByteArray fromPackedString:'
cg@3419
   754
@PDA@PDA@PDA@PDA@PG/;>?/;>?/9^W%9^W%9^?/;>?/;>?%9^W%9^W%;>?/;>?/;>W%9^W%9^W/;>?/;>?/9^W%9^W%9^?/;>?/;>?%9^W%9^W%;>?/A XF
cg@3419
   755
A XFA [%9^W/;><FA XFA XFA.W%9^?/;>?/;>?%9^W%9^W%;>?/;>?/;>W%9^W%9^W/;>?/;>?/9^W%9^W%9^?/;>?/;>?%9^W%9^W%;>?/;>?/;>W%9^W%
cg@3419
   756
9^TA@PDA@PDA@PDA@PDA@P@a')
cg@3419
   757
            colorMapFromArray:#[88 88 88 0 0 0 255 0 0 0 255 0 0 0 255 0 255 255 255 255 127 255 0 255 127 0 0 0 127 0 0 0 127 0 127 127 127 127 0 127 0 127 127 127 127 170 170 170 0 0 51 0 0 102 0 0 153 0 0 204 0 51 0 0 51 51 0 51 102 0 51 153 0 51 204 0 51 255 0 102 0 0 102 51 0 102 102 0 102 153 0 102 204 0 102 255 0 153 0 0 153 51 0 153 102 0 153 153 0 153 204 0 153 255 0 204 0 0 204 51 0 204 102 0 204 153 0 204 204 0 204 255 0 255 51 0 255 102 0 255 153 0 255 204 51 0 0 51 0 51 51 0 102 51 0 153 51 0 204 51 0 255 51 51 0 51 51 51 51 51 102 51 51 153 51 51 204 51 51 255 51 102 0 51 102 51 51 102 102 51 102 153 51 102 204 51 102 255 51 153 0 51 153 51 51 153 102 51 153 153 51 153 204 51 153 255 51 204 0 51 204 51 51 204 102 51 204 153 51 204 204 51 204 255 51 255 0 51 255 51 51 255 102 51 255 153 51 255 204 51 255 255 102 0 0 102 0 51 102 0 102 102 0 153 102 0 204 102 0 255 102 51 0 102 51 51 102 51 102 102 51 153 102 51 204 102 51 255 102 102 0 102 102 51 102 102 102 102 102 153 102 102 204 102 102 255 102 153 0 102 153 51 102 153 102 102 153 153 102 153 204 102 153 255 102 204 0 102 204 51 102 204 102 102 204 153 102 204 204 102 204 255 102 255 0 102 255 51 102 255 102 102 255 153 102 255 204 102 255 255 153 0 0 153 0 51 153 0 102 153 0 153 153 0 204 153 0 255 153 51 0 153 51 51 153 51 102 153 51 153 153 51 204 153 51 255 153 102 0 153 102 51 153 102 102 153 102 153 153 102 204 153 102 255 153 153 0 153 153 51 153 153 102 153 153 153 153 153 204 153 153 255 153 204 0 153 204 51 153 204 102 153 204 153 153 204 204 153 204 255 153 255 0 153 255 51 153 255 102 153 255 153 153 255 204 153 255 255 204 0 0 204 0 51 204 0 102 204 0 153 204 0 204 204 0 255 204 51 0 204 51 51 204 51 102 204 51 153 204 51 204 204 51 255 204 102 0 204 102 51 204 102 102 204 102 153 204 102 204 204 102 255 204 153 0 204 153 51 204 153 102 204 153 153 204 153 204 204 153 255 204 204 0 204 204 51 204 204 102 204 204 153 204 204 204 204 204 255 204 255 0 204 255 51 204 255 102 204 255 153 204 255 204 204 255 255 255 0 51 255 0 102 255 0 153 255 0 204 255 51 0 255 51 51 255 51 102 255 51 153 255 51 204 255 51 255 255 102 0 255 102 51 255 102 102 255 102 153 255 102 204 255 102 255 255 153 0 255 153 51 255 153 102 255 153 153 255 153 204 255 153 255 255 204 0 255 204 51 255 204 102 255 204 153 255 204 204 255 204 255 255 255 51 255 255 102 255 255 153 255 255 204 255 255 255 9 9 9 19 19 19 29 29 29 39 39 39 49 49 49 58 58 58 68 68 68 78 78 78 98 98 98 107 107 107 117 117 117 137 137 137 147 147 147 156 156 156 166 166 166]
cg@3419
   758
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@C??O?<??3??O?<??3??O?<??3??O?<??0@@@@a'); yourself); yourself]
cg@3419
   759
!
cg@3419
   760
sv@2155
   761
defaultIcon
sv@2155
   762
    <resource: #programImage>
sv@2155
   763
sv@2155
   764
    ^ ToolbarIconLibrary startImageEditorIcon
sv@2155
   765
!
sv@2155
   766
cg@3419
   767
editIcon
cg@3419
   768
    "This resource specification was automatically generated
cg@3419
   769
     by the ImageEditor of ST/X."
cg@3419
   770
cg@3419
   771
    "Do not manually edit this!! If it is corrupted,
cg@3419
   772
     the ImageEditor may not be able to read the specification."
cg@3419
   773
cg@3419
   774
    "
cg@3419
   775
     self editIcon inspect
cg@3419
   776
     ImageEditor openOnClass:self andSelector:#editIcon
cg@3419
   777
     Icon flushCachedIcons
cg@3419
   778
    "
cg@3419
   779
cg@3419
   780
    <resource: #image>
cg@3419
   781
cg@3419
   782
    ^Icon
cg@3419
   783
        constantNamed:'ImageEditor class editIcon'
cg@3419
   784
        ifAbsentPut:[(Depth8Image width:15 height:16) bits:(ByteArray fromPackedString:'
cg@3419
   785
@@@@@@@3V41AJ0T@@@@@@@@@@B1(TD4>EP@@@@@@@@@@@CA!!S4X2D@@@@@@@@@@@LV)XTTHX@@@@@@@@@@@@K6UTS$LR@@@@@@@@@@@9OE9VRQ8@@@@@@@@@
cg@3419
   786
@@@8Z5%WR!!P@@@@@@@@@@B8;X5)RG2@@@@@@@@@@@CY-W51SF @@@@@@@@@@@B5)XE4%E0@@@@@@@@@@@B%,Y3TO@@@@@@@@@@@@@BM,M04@@@@@@@@@@@@@
cg@3419
   787
@@ IDP@@@@@@@@@@@@@@@@\K@@@@@@@@@@@@@@@@@A,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@')
cg@3419
   788
            colorMapFromArray:#[0 0 0 0 137 0 0 206 0 87 87 87 133 60 36 145 109 112 155 31 0 160 115 98 161 124 106 163 140 130 166 46 5 169 113 95 174 218 230 182 93 58 183 59 8 186 100 65 192 147 138 193 129 103 193 132 116 195 100 52 195 120 93 197 82 32 204 208 220 205 177 176 207 90 27 210 109 64 210 140 105 213 175 169 213 217 227 215 172 138 220 114 42 222 120 43 222 209 212 223 137 33 223 153 96 226 180 137 228 90 9 228 142 66 232 174 56 234 184 145 240 178 78 241 195 142 241 212 187 242 102 12 242 177 95 245 202 137 245 209 172 247 181 30 247 183 8 247 198 128 248 122 26 248 194 1 248 198 0 248 201 137 248 203 113 248 214 181 249 193 57 249 210 160 250 206 0 253 222 69 253 226 47 254 116 14 254 128 21 254 136 5 254 141 47 254 144 8 254 147 36 254 147 47 254 158 0 254 158 1 254 159 21 254 161 10 254 162 0 254 165 54 254 165 69 254 167 2 254 167 5 254 171 10 254 176 36 254 177 17 254 178 11 254 181 24 254 184 75 254 184 94 254 187 34 254 191 0 254 191 42 254 191 54 254 194 26 254 197 55 254 201 65 254 203 3 254 203 78 254 203 97 254 207 47 254 209 81 254 212 90 254 213 16 254 214 81 254 216 73 254 219 0 254 220 37 254 223 0 254 225 166 254 226 7 254 226 119 254 231 26 254 231 65 254 231 201 254 239 98]
cg@3419
   789
            mask:((Depth1Image width:15 height:16) bits:(ByteArray fromPackedString:'A>@O0@?@G8@_ C<@O0A?@G8@_ A<@G @\@A @D@@@@@b'); yourself); yourself]
cg@3419
   790
!
cg@3419
   791
cg@3418
   792
emptyIcon
cg@3418
   793
    "This resource specification was automatically generated
cg@3418
   794
     by the ImageEditor of ST/X."
cg@3418
   795
cg@3418
   796
    "Do not manually edit this!! If it is corrupted,
cg@3418
   797
     the ImageEditor may not be able to read the specification."
cg@3418
   798
cg@3418
   799
    "
cg@3418
   800
     self emptyIcon inspect
cg@3418
   801
     ImageEditor openOnClass:self andSelector:#emptyIcon
cg@3418
   802
     Icon flushCachedIcons
cg@3418
   803
    "
cg@3418
   804
cg@3418
   805
    <resource: #image>
cg@3418
   806
cg@3418
   807
    ^Icon
cg@3418
   808
        constantNamed:'ImageEditor class emptyIcon'
cg@3418
   809
        ifAbsentPut:[(Depth4Image width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@3418
   810
@@@@@@@@@@@b')
cg@3418
   811
            colorMapFromArray:#[0 0 0]
cg@3418
   812
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a'); yourself); yourself]
cg@3418
   813
!
cg@3418
   814
cg@3418
   815
emptyIcon2
cg@3418
   816
    "This resource specification was automatically generated
cg@3418
   817
     by the ImageEditor of ST/X."
cg@3418
   818
cg@3418
   819
    "Do not manually edit this!! If it is corrupted,
cg@3418
   820
     the ImageEditor may not be able to read the specification."
cg@3418
   821
cg@3418
   822
    "
cg@3418
   823
     self emptyIcon2 inspect
cg@3418
   824
     ImageEditor openOnClass:self andSelector:#emptyIcon2
cg@3418
   825
     Icon flushCachedIcons
cg@3418
   826
    "
cg@3418
   827
cg@3418
   828
    <resource: #image>
cg@3418
   829
cg@3418
   830
    ^Icon
cg@3418
   831
        constantNamed:'ImageEditor class emptyIcon2'
cg@3418
   832
        ifAbsentPut:[(Depth4Image width:28 height:14) bits:(ByteArray fromPackedString:'
cg@3418
   833
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@3418
   834
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@3418
   835
@@@@@@@@@@@@@@@@@@@@@@@a')
cg@3418
   836
            colorMapFromArray:#[0 0 0]
cg@3418
   837
            mask:((Depth1Image width:28 height:14) bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b'); yourself); yourself]
cg@3418
   838
!
cg@3418
   839
cg@3405
   840
fillCircleIcon
cg@3405
   841
    "This resource specification was automatically generated
cg@3405
   842
     by the ImageEditor of ST/X."
cg@3405
   843
cg@3405
   844
    "Do not manually edit this!! If it is corrupted,
cg@3405
   845
     the ImageEditor may not be able to read the specification."
cg@3405
   846
cg@3405
   847
    "
cg@3405
   848
     self fillCircleIcon inspect
cg@3405
   849
     ImageEditor openOnClass:self andSelector:#fillCircleIcon
cg@3405
   850
     Icon flushCachedIcons
cg@3405
   851
    "
cg@3405
   852
cg@3405
   853
    <resource: #image>
cg@3405
   854
cg@3405
   855
    ^Icon
cg@3405
   856
        constantNamed:'ImageEditor class fillCircleIcon'
cg@3443
   857
        ifAbsentPut:[(Depth1Image width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@QA@@@@@B@H@@@@@@@CH@ @@@@@AD@@@@@a')
cg@3443
   858
            colorMapFromArray:#[0 0 0 127 127 127]
cg@3443
   859
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@_@C>@_<C?8O? ?>C?8O? _<@? A<@@@@@a'); yourself); yourself]
cg@3405
   860
!
cg@3405
   861
cg@3418
   862
fillDiagonalGradientRectIcon
cg@3418
   863
    "This resource specification was automatically generated
cg@3418
   864
     by the ImageEditor of ST/X."
cg@3418
   865
cg@3418
   866
    "Do not manually edit this!! If it is corrupted,
cg@3418
   867
     the ImageEditor may not be able to read the specification."
cg@3418
   868
cg@3418
   869
    "
cg@3418
   870
     self fillDiagonalGradientRectIcon inspect
cg@3418
   871
     ImageEditor openOnClass:self andSelector:#fillDiagonalGradientRectIcon
cg@3418
   872
     Icon flushCachedIcons
cg@3418
   873
    "
cg@3418
   874
cg@3418
   875
    <resource: #image>
cg@3418
   876
cg@3418
   877
    ^Icon
cg@3418
   878
        constantNamed:'ImageEditor class fillDiagonalGradientRectIcon'
cg@3418
   879
        ifAbsentPut:[(Depth4Image width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QDQDQD@@@DQDQDQ@@@ADH"H"H@@@QBH"H"@@@DP"L3L0@@ADH#L3L@@@QBH3DQ@@@DP"L1DP@@ADH#LQD@@@@@@@@@
cg@3418
   880
@@@@@@@@@@@b')
cg@3418
   881
            colorMapFromArray:#[0 0 0 255 0 0 127 0 0 191 0 0 91 0 0]
cg@3418
   882
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@C?0O?@?<C?0O?@?<C?0O?@?<C?0@@@@@@@a'); yourself); yourself]
cg@3418
   883
!
cg@3418
   884
cg@2871
   885
fillGradientRectIcon
sv@3121
   886
    <resource: #image>
cg@2871
   887
    "This resource specification was automatically generated
cg@2871
   888
     by the ImageEditor of ST/X."
cg@2871
   889
    "Do not manually edit this!! If it is corrupted,
cg@2871
   890
     the ImageEditor may not be able to read the specification."
cg@2871
   891
    "
cg@2871
   892
     self fillGradientRectIcon inspect
cg@2871
   893
     ImageEditor openOnClass:self andSelector:#fillGradientRectIcon
sv@3121
   894
     Icon flushCachedIcons"
sv@3121
   895
    
sv@3121
   896
    ^ Icon constantNamed:'ImageEditor class fillGradientRectIcon'
sv@3121
   897
        ifAbsentPut:[
sv@3121
   898
            (Depth4Image new)
sv@3121
   899
                width:14;
sv@3121
   900
                height:14;
sv@3121
   901
                photometric:(#palette);
sv@3121
   902
                bitsPerSample:(#[ 4 ]);
sv@3121
   903
                samplesPerPixel:(1);
sv@3121
   904
                bits:(ByteArray 
sv@3121
   905
                            fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ADQDQDQ@@@QDQDQDP@@BH"H"H"@@@"H"H"H @@L3L3L3L@@CL3L3L3@@@QDQDQDP@@DQDQDQD@@@@@@@@@
sv@3121
   906
@@@@@@@@@@@b');
sv@3121
   907
                colorMapFromArray:#[ 0 0 0 255 0 0 127 0 0 191 0 0 63 0 0 ];
sv@3121
   908
                mask:((ImageMask new)
sv@3121
   909
                            width:14;
sv@3121
   910
                            height:14;
sv@3121
   911
                            bits:(ByteArray 
sv@3121
   912
                                        fromPackedString:'@@@@@C?0O?@?<C?0O?@?<C?0O?@?<C?0@@@@@@@a');
sv@3121
   913
                            yourself);
sv@3121
   914
                yourself
sv@3121
   915
        ]
sv@3121
   916
!
sv@3121
   917
sv@3121
   918
fillHorizontalGradientRectIcon
cg@2871
   919
    "This resource specification was automatically generated
cg@2871
   920
     by the ImageEditor of ST/X."
cg@3418
   921
cg@2871
   922
    "Do not manually edit this!! If it is corrupted,
cg@2871
   923
     the ImageEditor may not be able to read the specification."
cg@3418
   924
cg@2871
   925
    "
cg@2871
   926
     self fillHorizontalGradientRectIcon inspect
cg@2871
   927
     ImageEditor openOnClass:self andSelector:#fillHorizontalGradientRectIcon
cg@3418
   928
     Icon flushCachedIcons
cg@3418
   929
    "
cg@3418
   930
cg@3418
   931
    <resource: #image>
cg@3418
   932
cg@3418
   933
    ^Icon
cg@3418
   934
        constantNamed:'ImageEditor class fillHorizontalGradientRectIcon'
cg@3418
   935
        ifAbsentPut:[(Depth4Image width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@ADH#LQD@@@QBH3DQ@@@DP"L1DP@@ADH#LQD@@@QBH3DQ@@@DP"L1DP@@ADH#LQD@@@QBH3DQ@@@DP"L1DP@@ADH#LQD@@@@@@@@@
cg@3418
   936
@@@@@@@@@@@b')
cg@3418
   937
            colorMapFromArray:#[0 0 0 255 0 0 127 0 0 191 0 0 91 0 0]
cg@3418
   938
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@C?0O?@?<C?0O?@?<C?0O?@?<C?0@@@@@@@a'); yourself); yourself]
sv@3121
   939
!
sv@3121
   940
sv@3121
   941
fillIcon
cg@2871
   942
    <resource: #image>
cg@1637
   943
    "This resource specification was automatically generated
cg@1637
   944
     by the ImageEditor of ST/X."
cg@1637
   945
    "Do not manually edit this!! If it is corrupted,
cg@1637
   946
     the ImageEditor may not be able to read the specification."
cg@1637
   947
    "
cg@1637
   948
     self fillIcon inspect
cg@1637
   949
     ImageEditor openOnClass:self andSelector:#fillIcon
sv@3121
   950
     Icon flushCachedIcons"
sv@3121
   951
    
sv@3121
   952
    ^ Icon constantNamed:'ImageEditor class fillIcon'
sv@3121
   953
        ifAbsentPut:[
sv@3121
   954
            (Depth2Image new)
sv@3121
   955
                width:14;
sv@3121
   956
                height:14;
sv@3121
   957
                photometric:(#palette);
sv@3121
   958
                bitsPerSample:(#( 2 ));
sv@3121
   959
                samplesPerPixel:(1);
sv@3121
   960
                bits:(ByteArray 
sv@3121
   961
                            fromPackedString:'@@@@@@@@@@@@@ @@@@*H@@D*(@@DUUP@EAUU@AAEU@@@@U@@DDA@@@@@@@@PP@@@@@@@@@@@@@@b');
sv@3121
   962
                colorMapFromArray:#[ 0 0 0 255 0 0 255 255 255 ];
sv@3121
   963
                mask:((ImageMask new)
sv@3121
   964
                            width:14;
sv@3121
   965
                            height:14;
sv@3121
   966
                            bits:(ByteArray 
sv@3121
   967
                                        fromPackedString:'C @Q@BN@I<@?8C?0[?!!G<@O P\@@ D@@@@@@@@@a');
sv@3121
   968
                            yourself);
sv@3121
   969
                yourself
sv@3121
   970
        ]
sv@3121
   971
!
sv@3121
   972
sv@3121
   973
fillRectIcon
cg@1637
   974
    <resource: #image>
cg@1637
   975
    "This resource specification was automatically generated
cg@1637
   976
     by the ImageEditor of ST/X."
cg@1637
   977
    "Do not manually edit this!! If it is corrupted,
cg@1637
   978
     the ImageEditor may not be able to read the specification."
cg@1637
   979
    "
cg@1637
   980
     self fillRectIcon inspect
cg@1637
   981
     ImageEditor openOnClass:self andSelector:#fillRectIcon
sv@3121
   982
     Icon flushCachedIcons"
sv@3121
   983
    
sv@3121
   984
    ^ Icon constantNamed:'ImageEditor class fillRectIcon'
sv@3121
   985
        ifAbsentPut:[
sv@3121
   986
            (Depth1Image new)
sv@3121
   987
                width:14;
sv@3121
   988
                height:14;
sv@3121
   989
                photometric:(#palette);
sv@3121
   990
                bitsPerSample:(#( 1 ));
sv@3121
   991
                samplesPerPixel:(1);
sv@3121
   992
                bits:(ByteArray 
sv@3121
   993
                            fromPackedString:'@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@a');
sv@3121
   994
                colorMapFromArray:#[ 0 0 0 255 0 0 ];
sv@3121
   995
                mask:((ImageMask new)
sv@3121
   996
                            width:14;
sv@3121
   997
                            height:14;
sv@3121
   998
                            bits:(ByteArray 
sv@3121
   999
                                        fromPackedString:'@@@@@C?0O?@?<C?0O?@?<C?0O?@?<C?0@@@@@@@a');
sv@3121
  1000
                            yourself);
sv@3121
  1001
                yourself
sv@3121
  1002
        ]
sv@3121
  1003
!
sv@3121
  1004
sv@3121
  1005
fillVerticalGradientRectIcon
cg@2871
  1006
    "This resource specification was automatically generated
cg@2871
  1007
     by the ImageEditor of ST/X."
cg@3418
  1008
cg@2871
  1009
    "Do not manually edit this!! If it is corrupted,
cg@2871
  1010
     the ImageEditor may not be able to read the specification."
cg@3418
  1011
cg@2871
  1012
    "
cg@3418
  1013
     self fillVerticalGradientRectIcon inspect
cg@3418
  1014
     ImageEditor openOnClass:self andSelector:#fillVerticalGradientRectIcon
cg@3418
  1015
     Icon flushCachedIcons
cg@3418
  1016
    "
cg@3418
  1017
cg@3418
  1018
    <resource: #image>
cg@3418
  1019
cg@3418
  1020
    ^Icon
cg@3418
  1021
        constantNamed:'ImageEditor class fillVerticalGradientRectIcon'
cg@3418
  1022
        ifAbsentPut:[(Depth4Image width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DQDQDQD@@ADQDQDQ@@@H"H"H"H@@BH"H"H"@@@3L3L3L0@@L3L3L3L@@ADQDQDQ@@@QDQDQDP@@DQDQDQD@@@@@@@@@
cg@3418
  1023
@@@@@@@@@@@b')
cg@3418
  1024
            colorMapFromArray:#[0 0 0 255 0 0 127 0 0 191 0 0 91 0 0]
cg@3418
  1025
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@C?0O?@?<C?0O?@?<C?0O?@?<C?0@@@@@@@a'); yourself); yourself]
sv@3121
  1026
!
sv@3121
  1027
sv@3121
  1028
flipHorizontalIcon
cg@2871
  1029
    <resource: #image>
cg@2837
  1030
    "This resource specification was automatically generated
cg@2837
  1031
     by the ImageEditor of ST/X."
cg@2837
  1032
    "Do not manually edit this!! If it is corrupted,
cg@2837
  1033
     the ImageEditor may not be able to read the specification."
cg@2837
  1034
    "
cg@2837
  1035
     self flipHorizontalIcon inspect
cg@2837
  1036
     ImageEditor openOnClass:self andSelector:#flipHorizontalIcon
sv@3121
  1037
     Icon flushCachedIcons"
sv@3121
  1038
    
sv@3121
  1039
    ^ Icon constantNamed:'ImageEditor class flipHorizontalIcon'
sv@3121
  1040
        ifAbsentPut:[
sv@3121
  1041
            (Depth1Image new)
sv@3121
  1042
                width:14;
sv@3121
  1043
                height:14;
sv@3121
  1044
                photometric:(#palette);
sv@3121
  1045
                bitsPerSample:(#( 1 ));
sv@3121
  1046
                samplesPerPixel:(1);
sv@3121
  1047
                bits:(ByteArray 
sv@3121
  1048
                            fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
sv@3121
  1049
                colorMapFromArray:#[ 0 0 0 ];
sv@3121
  1050
                mask:((ImageMask new)
sv@3121
  1051
                            width:14;
sv@3121
  1052
                            height:14;
sv@3121
  1053
                            bits:(ByteArray 
sv@3121
  1054
                                        fromPackedString:'@@@A@C?8HP )JC$8_?1??C$8JR !!BC?8@P@@@@@a');
sv@3121
  1055
                            yourself);
sv@3121
  1056
                yourself
sv@3121
  1057
        ]
sv@3121
  1058
!
sv@3121
  1059
sv@3121
  1060
flipVerticalIcon
cg@2837
  1061
    <resource: #image>
cg@2837
  1062
    "This resource specification was automatically generated
cg@2837
  1063
     by the ImageEditor of ST/X."
cg@2837
  1064
    "Do not manually edit this!! If it is corrupted,
cg@2837
  1065
     the ImageEditor may not be able to read the specification."
cg@2837
  1066
    "
cg@2837
  1067
     self flipVerticalIcon inspect
cg@2837
  1068
     ImageEditor openOnClass:self andSelector:#flipVerticalIcon
sv@3121
  1069
     Icon flushCachedIcons"
sv@3121
  1070
    
sv@3121
  1071
    ^ Icon constantNamed:'ImageEditor class flipVerticalIcon'
sv@3121
  1072
        ifAbsentPut:[
sv@3121
  1073
            (Depth1Image new)
sv@3121
  1074
                width:14;
sv@3121
  1075
                height:14;
sv@3121
  1076
                photometric:(#palette);
sv@3121
  1077
                bitsPerSample:(#( 1 ));
sv@3121
  1078
                samplesPerPixel:(1);
sv@3121
  1079
                bits:(ByteArray 
sv@3121
  1080
                            fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a');
sv@3121
  1081
                colorMapFromArray:#[ 0 0 0 ];
sv@3121
  1082
                mask:((ImageMask new)
sv@3121
  1083
                            width:14;
sv@3121
  1084
                            height:14;
sv@3121
  1085
                            bits:(ByteArray 
sv@3121
  1086
                                        fromPackedString:'@@@C@C?0I9@/4BLPH1A?>BLPH1@/4B^PO?@C@@@a');
sv@3121
  1087
                            yourself);
sv@3121
  1088
                yourself
sv@3121
  1089
        ]
sv@3121
  1090
!
sv@3121
  1091
sv@3121
  1092
leftMouseKeyIcon
cg@2837
  1093
    <resource: #image>
tz@737
  1094
    "This resource specification was automatically generated
tz@737
  1095
     by the ImageEditor of ST/X."
tz@737
  1096
    "Do not manually edit this!! If it is corrupted,
tz@737
  1097
     the ImageEditor may not be able to read the specification."
tz@737
  1098
    "
cg@1405
  1099
     self leftMouseKeyIcon inspect
tz@737
  1100
     ImageEditor openOnClass:self andSelector:#leftMouseKeyIcon
sv@3121
  1101
     Icon flushCachedIcons"
sv@3121
  1102
    
sv@3121
  1103
    ^ Icon constantNamed:'ImageEditor class leftMouseKeyIcon'
sv@3121
  1104
        ifAbsentPut:[
sv@3121
  1105
            (Depth2Image new)
sv@3121
  1106
                width:16;
sv@3121
  1107
                height:16;
sv@3121
  1108
                photometric:(#palette);
sv@3121
  1109
                bitsPerSample:(#( 2 ));
sv@3121
  1110
                samplesPerPixel:(1);
sv@3121
  1111
                bits:(ByteArray 
sv@3121
  1112
                            fromPackedString:'@@@@@@@@@@@@@@@@@EJJ@@AR" @@T((@@@@@@@B** @@**(@@J**@@B** @@**(@@J**@@@**@@@@@@@@@@@@@@a');
sv@3121
  1113
                colorMapFromArray:#[ 0 0 0 255 0 0 255 255 255 ];
sv@3121
  1114
                mask:((ImageMask new)
sv@3121
  1115
                            width:16;
sv@3121
  1116
                            height:16;
sv@3121
  1117
                            bits:(ByteArray 
sv@3121
  1118
                                        fromPackedString:'@@@@@@?0G? _>A?8G? _>A?8G? _>A?8G? O<@_ @@@b');
sv@3121
  1119
                            yourself);
sv@3121
  1120
                yourself
sv@3121
  1121
        ]
sv@3121
  1122
!
sv@3121
  1123
cg@3405
  1124
maskOutsideCircleIcon
cg@3405
  1125
    "This resource specification was automatically generated
cg@3405
  1126
     by the ImageEditor of ST/X."
cg@3405
  1127
cg@3405
  1128
    "Do not manually edit this!! If it is corrupted,
cg@3405
  1129
     the ImageEditor may not be able to read the specification."
cg@3405
  1130
cg@3405
  1131
    "
cg@3405
  1132
     self maskOutsideCircleIcon inspect
cg@3405
  1133
     ImageEditor openOnClass:self andSelector:#maskOutsideCircleIcon
cg@3405
  1134
     Icon flushCachedIcons
cg@3405
  1135
    "
cg@3405
  1136
cg@3405
  1137
    <resource: #image>
cg@3405
  1138
cg@3405
  1139
    ^Icon
cg@3405
  1140
        constantNamed:'ImageEditor class maskOutsideCircleIcon'
cg@3405
  1141
        ifAbsentPut:[(Depth1Image width:14 height:14) bits:(ByteArray fromPackedString:'??3??O1=<A3 CN@L0@S@AL@G8@3 CO@\?G3??@@a')
cg@3407
  1142
            colorMapFromArray:#[0 0 0 255 127 127]
cg@3405
  1143
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'??3??O?<??3??O?<??3??O?<??3??O?<??3??@@a'); yourself); yourself]
cg@3405
  1144
!
cg@3405
  1145
cg@3405
  1146
maskOutsideRectangleIcon
cg@3405
  1147
    "This resource specification was automatically generated
cg@3405
  1148
     by the ImageEditor of ST/X."
cg@3405
  1149
cg@3405
  1150
    "Do not manually edit this!! If it is corrupted,
cg@3405
  1151
     the ImageEditor may not be able to read the specification."
cg@3405
  1152
cg@3405
  1153
    "
cg@3405
  1154
     self maskOutsideRectangleIcon inspect
cg@3405
  1155
     ImageEditor openOnClass:self andSelector:#maskOutsideRectangleIcon
cg@3405
  1156
     Icon flushCachedIcons
cg@3405
  1157
    "
cg@3405
  1158
cg@3405
  1159
    <resource: #image>
cg@3405
  1160
cg@3405
  1161
    ^Icon
cg@3405
  1162
        constantNamed:'ImageEditor class maskOutsideRectangleIcon'
cg@3405
  1163
        ifAbsentPut:[(Depth1Image width:14 height:14) bits:(ByteArray fromPackedString:'??3??L@M0@3@CL@L0@3@CL@L0@3@CL@L??7??@@a')
cg@3407
  1164
            colorMapFromArray:#[0 0 0 255 127 127]
cg@3405
  1165
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'??3??O?<??3??O?<??3??O?<??3??O?<??3??@@a'); yourself); yourself]
cg@3405
  1166
!
cg@3405
  1167
sv@3121
  1168
pasteIcon
cg@1637
  1169
    "This resource specification was automatically generated
cg@1637
  1170
     by the ImageEditor of ST/X."
cg@3561
  1171
cg@1637
  1172
    "Do not manually edit this!! If it is corrupted,
cg@1637
  1173
     the ImageEditor may not be able to read the specification."
cg@3561
  1174
cg@1637
  1175
    "
cg@1637
  1176
     self pasteIcon inspect
cg@1637
  1177
     ImageEditor openOnClass:self andSelector:#pasteIcon
cg@3561
  1178
     Icon flushCachedIcons
cg@3561
  1179
    "
cg@3561
  1180
cg@1637
  1181
    <resource: #image>
cg@3561
  1182
cg@3561
  1183
    ^Icon
cg@3561
  1184
        constantNamed:'ImageEditor class pasteIcon'
cg@3561
  1185
        ifAbsentPut:[(Depth8Image width:14 height:14) bits:(ByteArray fromPackedString:'
cg@3561
  1186
:N#(:N#(:N#(:N#(:N#(:N#(:O#8:N#(:N#(:N#5>^#8:N#8:OW9:N#(:O''(=/[6=/[6:OW(:N#(=^#(:N#(:N#(>^#(:N#9=_''5>_W9=_''5:N#(:@DA@PDA
cg@3561
  1187
@PDA=_''(@@C(@_[6= @@@@@@@@@@@N A=/[6@@XFA XFA @@:@G6=/X@A X@@@XF@@C(@_[6= @F@@@@@@X@@N A=/[6@@XF@@@FA @@@@DA@PD@A XFA XF
cg@3561
  1188
@@@@@@@@@@@@@@@@@@@@@@@a')
cg@3561
  1189
            colorMapFromArray:#[0 0 0 0 0 128 128 128 0 128 128 128 212 208 200 255 255 0 255 255 255 0 0 51 0 0 102 0 0 153 0 0 204 0 0 255 0 51 0 0 51 51 0 51 102 0 51 153 0 51 204 0 51 255 0 102 0 0 102 51 0 102 102 0 102 153 0 102 204 0 102 255 0 153 0 0 153 51 0 153 102 0 153 153 0 153 204 0 153 255 0 204 0 0 204 51 0 204 102 0 204 153 0 204 204 0 204 255 0 255 0 0 255 51 0 255 102 0 255 153 0 255 204 0 255 255 51 0 0 51 0 51 51 0 102 51 0 153 51 0 204 51 0 255 51 51 0 51 51 51 51 51 102 51 51 153 51 51 204 51 51 255 51 102 0 51 102 51 51 102 102 51 102 153 51 102 204 51 102 255 51 153 0 51 153 51 51 153 102 51 153 153 51 153 204 51 153 255 51 204 0 51 204 51 51 204 102 51 204 153 51 204 204 51 204 255 51 255 0 51 255 51 51 255 102 51 255 153 51 255 204 51 255 255 102 0 0 102 0 51 102 0 102 102 0 153 102 0 204 102 0 255 102 51 0 102 51 51 102 51 102 102 51 153 102 51 204 102 51 255 102 102 0 102 102 51 102 102 102 102 102 153 102 102 204 102 102 255 102 153 0 102 153 51 102 153 102 102 153 153 102 153 204 102 153 255 102 204 0 102 204 51 102 204 102 102 204 153 102 204 204 102 204 255 102 255 0 102 255 51 102 255 102 102 255 153 102 255 204 102 255 255 153 0 0 153 0 51 153 0 102 153 0 153 153 0 204 153 0 255 153 51 0 153 51 51 153 51 102 153 51 153 153 51 204 153 51 255 153 102 0 153 102 51 153 102 102 153 102 153 153 102 204 153 102 255 153 153 0 153 153 51 153 153 102 153 153 153 153 153 204 153 153 255 153 204 0 153 204 51 153 204 102 153 204 153 153 204 204 153 204 255 153 255 0 153 255 51 153 255 102 153 255 153 153 255 204 153 255 255 204 0 0 204 0 51 204 0 102 204 0 153 204 0 204 204 0 255 204 51 0 204 51 51 204 51 102 204 51 153 204 51 204 204 51 255 204 102 0 204 102 51 204 102 102 204 102 153 204 102 204 204 102 255 204 153 0 204 153 51 204 153 102 204 153 153 204 153 204 204 153 255 204 204 0 204 204 51 204 204 102 204 204 153 204 204 204 204 204 255 204 255 0 204 255 51 204 255 102 204 255 153 204 255 204 204 255 255 255 0 0 255 0 51 255 0 102 255 0 153 255 0 204 255 0 255 255 51 0 255 51 51 255 51 102 255 51 153 255 51 204 255 51 255 255 102 0 255 102 51 255 102 102 255 102 153 255 102 204 255 102 255 255 153 0 255 153 51 255 153 102 255 153 153 255 153 204 255 153 255 255 204 0 255 204 51 255 204 102 255 204 153 255 204 204 255 204 255 255 255 51 255 255 102 255 255 153 255 255 204 9 9 9 19 19 19 29 29 29 39 39 39 49 49 49 58 58 58 68 68 68 78 78 78 88 88 88 98 98 98 107 107 107 117 117 117 127 127 127 137 137 137 147 147 147 156 156 156 166 166 166 176 176 176 186 186 186 196 196 196 205 205 205 215 215 215 225 225 225 235 235 235 245 245 245 191 191 191 233 231 227 127 127 127 255 255 127 191 191 127]
cg@3561
  1190
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'C0A?8O?0??C?<O?0??C?>O?8??#?>O?8_? G>@@a'); yourself); yourself]
cg@3561
  1191
!
cg@3561
  1192
cg@3561
  1193
pasteMaskedIcon
cg@1637
  1194
    "This resource specification was automatically generated
cg@1637
  1195
     by the ImageEditor of ST/X."
cg@3561
  1196
cg@1637
  1197
    "Do not manually edit this!! If it is corrupted,
cg@1637
  1198
     the ImageEditor may not be able to read the specification."
cg@3561
  1199
cg@3561
  1200
    "
cg@3561
  1201
     self pasteMaskedIcon inspect
cg@3561
  1202
     ImageEditor openOnClass:self andSelector:#pasteMaskedIcon
cg@3561
  1203
     Icon flushCachedIcons
cg@3561
  1204
    "
cg@3561
  1205
cg@3561
  1206
    <resource: #image>
cg@3561
  1207
cg@3561
  1208
    ^Icon
cg@3561
  1209
        constantNamed:'ImageEditor class pasteMaskedIcon'
cg@3561
  1210
        ifAbsentPut:[(Depth8Image width:14 height:14) bits:(ByteArray fromPackedString:'
cg@3561
  1211
:N#(:N#(:N#(:N#(:N#(:N#(:O#8:N#(:N#(:N#5>^#8:N#8:OW9:N#(:O''(=/[6=/[6:OW(:N#(=^#(:N#(:N#(>^#(:N#9=_''5>_W9=_''5:N#(:@DA@PDA
cg@3561
  1212
@PDA=_''(@@C(@_[6=/[6= D@@@@@@N A=/[6= XFA XFA @@:@G6=/[6A X@@@XF@@C(@_[6=/XF= @@@@X@@N A=/[6= XF@@@FA @@@@DA@PDA@PDAA XF
cg@3561
  1213
@@@@@@@@@@@@@@@@@@@@@@@a')
cg@3561
  1214
            colorMapFromArray:#[0 0 0 0 0 128 128 128 0 128 128 128 212 208 200 255 255 0 255 255 255 0 0 51 0 0 102 0 0 153 0 0 204 0 0 255 0 51 0 0 51 51 0 51 102 0 51 153 0 51 204 0 51 255 0 102 0 0 102 51 0 102 102 0 102 153 0 102 204 0 102 255 0 153 0 0 153 51 0 153 102 0 153 153 0 153 204 0 153 255 0 204 0 0 204 51 0 204 102 0 204 153 0 204 204 0 204 255 0 255 0 0 255 51 0 255 102 0 255 153 0 255 204 0 255 255 51 0 0 51 0 51 51 0 102 51 0 153 51 0 204 51 0 255 51 51 0 51 51 51 51 51 102 51 51 153 51 51 204 51 51 255 51 102 0 51 102 51 51 102 102 51 102 153 51 102 204 51 102 255 51 153 0 51 153 51 51 153 102 51 153 153 51 153 204 51 153 255 51 204 0 51 204 51 51 204 102 51 204 153 51 204 204 51 204 255 51 255 0 51 255 51 51 255 102 51 255 153 51 255 204 51 255 255 102 0 0 102 0 51 102 0 102 102 0 153 102 0 204 102 0 255 102 51 0 102 51 51 102 51 102 102 51 153 102 51 204 102 51 255 102 102 0 102 102 51 102 102 102 102 102 153 102 102 204 102 102 255 102 153 0 102 153 51 102 153 102 102 153 153 102 153 204 102 153 255 102 204 0 102 204 51 102 204 102 102 204 153 102 204 204 102 204 255 102 255 0 102 255 51 102 255 102 102 255 153 102 255 204 102 255 255 153 0 0 153 0 51 153 0 102 153 0 153 153 0 204 153 0 255 153 51 0 153 51 51 153 51 102 153 51 153 153 51 204 153 51 255 153 102 0 153 102 51 153 102 102 153 102 153 153 102 204 153 102 255 153 153 0 153 153 51 153 153 102 153 153 153 153 153 204 153 153 255 153 204 0 153 204 51 153 204 102 153 204 153 153 204 204 153 204 255 153 255 0 153 255 51 153 255 102 153 255 153 153 255 204 153 255 255 204 0 0 204 0 51 204 0 102 204 0 153 204 0 204 204 0 255 204 51 0 204 51 51 204 51 102 204 51 153 204 51 204 204 51 255 204 102 0 204 102 51 204 102 102 204 102 153 204 102 204 204 102 255 204 153 0 204 153 51 204 153 102 204 153 153 204 153 204 204 153 255 204 204 0 204 204 51 204 204 102 204 204 153 204 204 204 204 204 255 204 255 0 204 255 51 204 255 102 204 255 153 204 255 204 204 255 255 255 0 0 255 0 51 255 0 102 255 0 153 255 0 204 255 0 255 255 51 0 255 51 51 255 51 102 255 51 153 255 51 204 255 51 255 255 102 0 255 102 51 255 102 102 255 102 153 255 102 204 255 102 255 255 153 0 255 153 51 255 153 102 255 153 153 255 153 204 255 153 255 255 204 0 255 204 51 255 204 102 255 204 153 255 204 204 255 204 255 255 255 51 255 255 102 255 255 153 255 255 204 9 9 9 19 19 19 29 29 29 39 39 39 49 49 49 58 58 58 68 68 68 78 78 78 88 88 88 98 98 98 107 107 107 117 117 117 127 127 127 137 137 137 147 147 147 156 156 156 166 166 166 176 176 176 186 186 186 196 196 196 205 205 205 215 215 215 225 225 225 235 235 235 245 245 245 191 191 191 233 231 227 127 127 127 255 255 127 191 191 127]
cg@3561
  1215
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'C0A?8O?0??C?<O?0??C?>O?8??#?>O?8_? G>@@a'); yourself); yourself]
cg@3561
  1216
!
cg@3561
  1217
cg@3561
  1218
pasteUnderIcon
cg@3561
  1219
    "This resource specification was automatically generated
cg@3561
  1220
     by the ImageEditor of ST/X."
cg@3561
  1221
cg@3561
  1222
    "Do not manually edit this!! If it is corrupted,
cg@3561
  1223
     the ImageEditor may not be able to read the specification."
cg@3561
  1224
cg@1637
  1225
    "
cg@1637
  1226
     self pasteUnderIcon inspect
cg@1637
  1227
     ImageEditor openOnClass:self andSelector:#pasteUnderIcon
cg@3561
  1228
     Icon flushCachedIcons
cg@3561
  1229
    "
cg@3561
  1230
cg@3561
  1231
    <resource: #image>
cg@3561
  1232
cg@3561
  1233
    ^Icon
cg@3561
  1234
        constantNamed:'ImageEditor class pasteUnderIcon'
cg@3561
  1235
        ifAbsentPut:[(Depth8Image width:14 height:14) bits:(ByteArray fromPackedString:'
cg@3561
  1236
:N#(:N#(:N#(:N#(:N#(:N#(:O#8:N#(:N#(:N#5>^#8:N#8:OW9:N#(:O''(=/[6=/[6:OW(:N#(=^#(:N#(:N#(>^#(:N#9=_''5>_W9=_''5:N#(:@DA@PDA
cg@3561
  1237
@PDA=_''(@@C(@_K2</K2< D@@@@@@N A</K2</K2@PXFA @@:@G2</K2</H@@@XF@@C(@_K2</K2@@@@@@X@@N A</K2</K2@@@FA @@@@DA@PDA@PDAA XF
cg@3561
  1238
@@@@@@@@@@@@@@@@@@@@@@@a')
cg@3561
  1239
            colorMapFromArray:#[0 0 0 0 0 128 128 128 0 128 128 128 212 208 200 255 255 0 255 255 255 0 0 51 0 0 102 0 0 153 0 0 204 0 0 255 0 51 0 0 51 51 0 51 102 0 51 153 0 51 204 0 51 255 0 102 0 0 102 51 0 102 102 0 102 153 0 102 204 0 102 255 0 153 0 0 153 51 0 153 102 0 153 153 0 153 204 0 153 255 0 204 0 0 204 51 0 204 102 0 204 153 0 204 204 0 204 255 0 255 0 0 255 51 0 255 102 0 255 153 0 255 204 0 255 255 51 0 0 51 0 51 51 0 102 51 0 153 51 0 204 51 0 255 51 51 0 51 51 51 51 51 102 51 51 153 51 51 204 51 51 255 51 102 0 51 102 51 51 102 102 51 102 153 51 102 204 51 102 255 51 153 0 51 153 51 51 153 102 51 153 153 51 153 204 51 153 255 51 204 0 51 204 51 51 204 102 51 204 153 51 204 204 51 204 255 51 255 0 51 255 51 51 255 102 51 255 153 51 255 204 51 255 255 102 0 0 102 0 51 102 0 102 102 0 153 102 0 204 102 0 255 102 51 0 102 51 51 102 51 102 102 51 153 102 51 204 102 51 255 102 102 0 102 102 51 102 102 102 102 102 153 102 102 204 102 102 255 102 153 0 102 153 51 102 153 102 102 153 153 102 153 204 102 153 255 102 204 0 102 204 51 102 204 102 102 204 153 102 204 204 102 204 255 102 255 0 102 255 51 102 255 102 102 255 153 102 255 204 102 255 255 153 0 0 153 0 51 153 0 102 153 0 153 153 0 204 153 0 255 153 51 0 153 51 51 153 51 102 153 51 153 153 51 204 153 51 255 153 102 0 153 102 51 153 102 102 153 102 153 153 102 204 153 102 255 153 153 0 153 153 51 153 153 102 153 153 153 153 153 204 153 153 255 153 204 0 153 204 51 153 204 102 153 204 153 153 204 204 153 204 255 153 255 0 153 255 51 153 255 102 153 255 153 153 255 204 153 255 255 204 0 0 204 0 51 204 0 102 204 0 153 204 0 204 204 0 255 204 51 0 204 51 51 204 51 102 204 51 153 204 51 204 204 51 255 204 102 0 204 102 51 204 102 102 204 102 153 204 102 204 204 102 255 204 153 0 204 153 51 204 153 102 204 153 153 204 153 204 204 153 255 204 204 0 204 204 51 204 204 102 204 204 153 204 204 204 204 204 255 204 255 0 204 255 51 204 255 102 204 255 153 204 255 204 204 255 255 255 0 0 255 0 51 255 0 102 255 0 153 255 0 204 255 0 255 255 51 0 255 51 51 255 51 102 255 51 153 255 51 204 255 51 255 255 102 0 255 102 51 255 102 102 255 102 153 255 102 204 255 102 255 255 153 0 255 153 51 255 153 102 255 153 153 255 153 204 255 153 255 255 204 0 255 204 51 255 204 102 255 204 153 255 204 204 255 204 255 255 255 51 255 255 102 255 255 153 255 255 204 9 9 9 19 19 19 29 29 29 39 39 39 49 49 49 58 58 58 68 68 68 78 78 78 88 88 88 98 98 98 107 107 107 117 117 117 127 127 127 137 137 137 147 147 147 156 156 156 166 166 166 176 176 176 186 186 186 196 196 196 205 205 205 215 215 215 225 225 225 235 235 235 245 245 245 191 191 191 233 231 227 127 127 127 255 255 127 191 191 127]
cg@3561
  1240
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'C0A?8O?0??C?<O?0??C?>O?8??#?>O?8_? G>@@a'); yourself); yourself]
sv@3121
  1241
!
sv@3121
  1242
sv@3121
  1243
pasteWithMaskIcon
cg@1637
  1244
    "This resource specification was automatically generated
cg@1637
  1245
     by the ImageEditor of ST/X."
cg@3561
  1246
cg@1637
  1247
    "Do not manually edit this!! If it is corrupted,
cg@1637
  1248
     the ImageEditor may not be able to read the specification."
cg@3561
  1249
cg@1637
  1250
    "
cg@1637
  1251
     self pasteWithMaskIcon inspect
cg@1637
  1252
     ImageEditor openOnClass:self andSelector:#pasteWithMaskIcon
cg@3561
  1253
     Icon flushCachedIcons
cg@3561
  1254
    "
cg@3561
  1255
cg@3561
  1256
    <resource: #image>
cg@3561
  1257
cg@3561
  1258
    ^Icon
cg@3561
  1259
        constantNamed:'ImageEditor class pasteWithMaskIcon'
cg@3561
  1260
        ifAbsentPut:[(Depth8Image width:14 height:14) bits:(ByteArray fromPackedString:'
cg@3561
  1261
:N#(:N#(:N#(:N#(:N#(:N#(:O#8:N#(:N#(:N#5>^#8:N#8:OW9:N#(:O''(=/[6=/[6:OW(:N#(=^#(:N#(:N#(>^#(:N#9=_''5>_W9=_''5:N#(:@DA@PDA
cg@3561
  1262
@PDA=_''(@@C(@_C0<OC0<O@@@@@@@N A<OC0<@XFA XFA @@:@G0<OC0A [0@@XF@@C(@_C0<O@F<O@@@@X@@N A<OC0<@XF<@@FA @@@@DA@PD@A XFA XF
cg@3561
  1263
@@@@@@@@@@@@@@@@@@@@@@@a')
cg@3561
  1264
            colorMapFromArray:#[0 0 0 0 0 128 128 128 0 128 128 128 212 208 200 255 255 0 255 255 255 0 0 51 0 0 102 0 0 153 0 0 204 0 0 255 0 51 0 0 51 51 0 51 102 0 51 153 0 51 204 0 51 255 0 102 0 0 102 51 0 102 102 0 102 153 0 102 204 0 102 255 0 153 0 0 153 51 0 153 102 0 153 153 0 153 204 0 153 255 0 204 0 0 204 51 0 204 102 0 204 153 0 204 204 0 204 255 0 255 0 0 255 51 0 255 102 0 255 153 0 255 204 0 255 255 51 0 0 51 0 51 51 0 102 51 0 153 51 0 204 51 0 255 51 51 0 51 51 51 51 51 102 51 51 153 51 51 204 51 51 255 51 102 0 51 102 51 51 102 102 51 102 153 51 102 204 51 102 255 51 153 0 51 153 51 51 153 102 51 153 153 51 153 204 51 153 255 51 204 0 51 204 51 51 204 102 51 204 153 51 204 204 51 204 255 51 255 0 51 255 51 51 255 102 51 255 153 51 255 204 51 255 255 102 0 0 102 0 51 102 0 102 102 0 153 102 0 204 102 0 255 102 51 0 102 51 51 102 51 102 102 51 153 102 51 204 102 51 255 102 102 0 102 102 51 102 102 102 102 102 153 102 102 204 102 102 255 102 153 0 102 153 51 102 153 102 102 153 153 102 153 204 102 153 255 102 204 0 102 204 51 102 204 102 102 204 153 102 204 204 102 204 255 102 255 0 102 255 51 102 255 102 102 255 153 102 255 204 102 255 255 153 0 0 153 0 51 153 0 102 153 0 153 153 0 204 153 0 255 153 51 0 153 51 51 153 51 102 153 51 153 153 51 204 153 51 255 153 102 0 153 102 51 153 102 102 153 102 153 153 102 204 153 102 255 153 153 0 153 153 51 153 153 102 153 153 153 153 153 204 153 153 255 153 204 0 153 204 51 153 204 102 153 204 153 153 204 204 153 204 255 153 255 0 153 255 51 153 255 102 153 255 153 153 255 204 153 255 255 204 0 0 204 0 51 204 0 102 204 0 153 204 0 204 204 0 255 204 51 0 204 51 51 204 51 102 204 51 153 204 51 204 204 51 255 204 102 0 204 102 51 204 102 102 204 102 153 204 102 204 204 102 255 204 153 0 204 153 51 204 153 102 204 153 153 204 153 204 204 153 255 204 204 0 204 204 51 204 204 102 204 204 153 204 204 204 204 204 255 204 255 0 204 255 51 204 255 102 204 255 153 204 255 204 204 255 255 255 0 0 255 0 51 255 0 102 255 0 153 255 0 204 255 0 255 255 51 0 255 51 51 255 51 102 255 51 153 255 51 204 255 51 255 255 102 0 255 102 51 255 102 102 255 102 153 255 102 204 255 102 255 255 153 0 255 153 51 255 153 102 255 153 153 255 153 204 255 153 255 255 204 0 255 204 51 255 204 102 255 204 153 255 204 204 255 204 255 255 255 51 255 255 102 255 255 153 255 255 204 9 9 9 19 19 19 29 29 29 39 39 39 49 49 49 58 58 58 68 68 68 78 78 78 88 88 88 98 98 98 107 107 107 117 117 117 127 127 127 137 137 137 147 147 147 156 156 156 166 166 166 176 176 176 186 186 186 196 196 196 205 205 205 215 215 215 225 225 225 235 235 235 245 245 245 191 191 191 233 231 227 127 127 127 255 255 127 191 191 127]
cg@3561
  1265
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'C0A?8O?0??C?<O?0??C?>O?8??#?>O?8_? G>@@a'); yourself); yourself]
sv@3121
  1266
!
sv@3121
  1267
sv@3121
  1268
pointIcon
cg@1637
  1269
    <resource: #image>
cg@1637
  1270
    "This resource specification was automatically generated
cg@1637
  1271
     by the ImageEditor of ST/X."
cg@1637
  1272
    "Do not manually edit this!! If it is corrupted,
cg@1637
  1273
     the ImageEditor may not be able to read the specification."
cg@1637
  1274
    "
cg@1637
  1275
     self pointIcon inspect
cg@1637
  1276
     ImageEditor openOnClass:self andSelector:#pointIcon
sv@3121
  1277
     Icon flushCachedIcons"
sv@3121
  1278
    
sv@3121
  1279
    ^ Icon constantNamed:'ImageEditor class pointIcon'
sv@3121
  1280
        ifAbsentPut:[
sv@3121
  1281
            (Depth1Image new)
sv@3121
  1282
                width:14;
sv@3121
  1283
                height:14;
sv@3121
  1284
                photometric:(#palette);
sv@3121
  1285
                bitsPerSample:(#( 1 ));
sv@3121
  1286
                samplesPerPixel:(1);
sv@3121
  1287
                bits:(ByteArray 
sv@3121
  1288
                            fromPackedString:'@@@@@@@A@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@a');
sv@3121
  1289
                colorMapFromArray:#[ 0 0 0 255 255 255 ];
sv@3121
  1290
                mask:((ImageMask new)
sv@3121
  1291
                            width:14;
sv@3121
  1292
                            height:14;
sv@3121
  1293
                            bits:(ByteArray 
sv@3121
  1294
                                        fromPackedString:'@@@@@@@0@G@@8@G@@8@G@@8@G@@X@@@@@@@@@@@a');
sv@3121
  1295
                            yourself);
sv@3121
  1296
                yourself
sv@3121
  1297
        ]
sv@3121
  1298
!
sv@3121
  1299
sv@3121
  1300
rectIcon
cg@1637
  1301
    <resource: #image>
cg@1637
  1302
    "This resource specification was automatically generated
cg@1637
  1303
     by the ImageEditor of ST/X."
cg@1637
  1304
    "Do not manually edit this!! If it is corrupted,
cg@1637
  1305
     the ImageEditor may not be able to read the specification."
cg@1637
  1306
    "
cg@1637
  1307
     self rectIcon inspect
cg@1637
  1308
     ImageEditor openOnClass:self andSelector:#rectIcon
sv@3121
  1309
     Icon flushCachedIcons"
sv@3121
  1310
    
sv@3121
  1311
    ^ Icon constantNamed:'ImageEditor class rectIcon'
sv@3121
  1312
        ifAbsentPut:[
sv@3121
  1313
            (Depth1Image new)
sv@3121
  1314
                width:14;
sv@3121
  1315
                height:14;
sv@3121
  1316
                photometric:(#palette);
sv@3121
  1317
                bitsPerSample:(#( 1 ));
sv@3121
  1318
                samplesPerPixel:(1);
sv@3121
  1319
                bits:(ByteArray 
sv@3121
  1320
                            fromPackedString:'@@@@@@@A@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@a');
sv@3121
  1321
                colorMapFromArray:#[ 0 0 0 255 0 0 ];
sv@3121
  1322
                mask:((ImageMask new)
sv@3121
  1323
                            width:14;
sv@3121
  1324
                            height:14;
sv@3121
  1325
                            bits:(ByteArray 
sv@3121
  1326
                                        fromPackedString:'@@@@@C?0HA@ DB@PHA@ DB@PHA@ DC?0@@@@@@@a');
sv@3121
  1327
                            yourself);
sv@3121
  1328
                yourself
sv@3121
  1329
        ]
sv@3121
  1330
!
sv@3121
  1331
sv@3121
  1332
rightMouseKeyIcon
cg@1637
  1333
    <resource: #image>
tz@737
  1334
    "This resource specification was automatically generated
tz@737
  1335
     by the ImageEditor of ST/X."
tz@737
  1336
    "Do not manually edit this!! If it is corrupted,
tz@737
  1337
     the ImageEditor may not be able to read the specification."
tz@737
  1338
    "
cg@1405
  1339
     self rightMouseKeyIcon inspect
tz@737
  1340
     ImageEditor openOnClass:self andSelector:#rightMouseKeyIcon
sv@3121
  1341
     Icon flushCachedIcons"
sv@3121
  1342
    
sv@3121
  1343
    ^ Icon constantNamed:'ImageEditor class rightMouseKeyIcon'
sv@3121
  1344
        ifAbsentPut:[
sv@3121
  1345
            (Depth2Image new)
sv@3121
  1346
                width:16;
sv@3121
  1347
                height:16;
sv@3121
  1348
                photometric:(#palette);
sv@3121
  1349
                bitsPerSample:(#( 2 ));
sv@3121
  1350
                samplesPerPixel:(1);
sv@3121
  1351
                bits:(ByteArray 
sv@3121
  1352
                            fromPackedString:'@@@@@@@@@@@@@@@@@JJE@@B"!!P@@((T@@@@@@@B** @@**(@@J**@@B** @@**(@@J**@@@**@@@@@@@@@@@@@@a');
sv@3121
  1353
                colorMapFromArray:#[ 0 0 0 255 0 0 255 255 255 ];
sv@3121
  1354
                mask:((ImageMask new)
sv@3121
  1355
                            width:16;
sv@3121
  1356
                            height:16;
sv@3121
  1357
                            bits:(ByteArray 
sv@3121
  1358
                                        fromPackedString:'@@@@@@?0G? _>A?8G? _>A?8G? _>A?8G? O<@_ @@@b');
sv@3121
  1359
                            yourself);
sv@3121
  1360
                yourself
sv@3121
  1361
        ]
sv@3121
  1362
!
sv@3121
  1363
cg@3419
  1364
slightlyBrighterIcon
cg@3419
  1365
    "This resource specification was automatically generated
cg@3419
  1366
     by the ImageEditor of ST/X."
cg@3419
  1367
cg@3419
  1368
    "Do not manually edit this!! If it is corrupted,
cg@3419
  1369
     the ImageEditor may not be able to read the specification."
cg@3419
  1370
cg@3419
  1371
    "
cg@3419
  1372
     self slightlyBrighterIcon inspect
cg@3419
  1373
     ImageEditor openOnClass:self andSelector:#slightlyBrighterIcon
cg@3419
  1374
     Icon flushCachedIcons
cg@3419
  1375
    "
cg@3419
  1376
cg@3419
  1377
    <resource: #image>
cg@3419
  1378
cg@3419
  1379
    ^Icon
cg@3419
  1380
        constantNamed:'ImageEditor class slightlyBrighterIcon'
cg@3419
  1381
        ifAbsentPut:[(Depth8Image width:14 height:14) bits:(ByteArray fromPackedString:'
cg@3419
  1382
@PDA@PDA@PDA@PDA@PD@@@@@@@@@;>?/;>?/;0@@@@@@@@C/;>?/;>?/@@@@@@@@A [/;>?/;><@@@@@@@@FA.?/;>?/;0@@@@@@@@XF;>?/;>?/@@@@A XF
cg@3419
  1383
A XFA [/;><@@@@FA XFA XFA.?/;0@@@@@@@@XF;>?/;>?/@@@@@@@@A [/;>?/;><@@@@@@@@FA.?/;>?/;0@@@@@@@@C/;>?/;>?/@@@@@@@@@N?/;>?/
cg@3419
  1384
;><A@PDA@PDA@PDA@PDA@P@a')
cg@3419
  1385
            colorMapFromArray:#[88 88 88 0 0 0 255 0 0 0 255 0 0 0 255 0 255 255 255 255 127 255 0 255 127 0 0 0 127 0 0 0 127 0 127 127 127 127 0 127 0 127 127 127 127 170 170 170 0 0 51 0 0 102 0 0 153 0 0 204 0 51 0 0 51 51 0 51 102 0 51 153 0 51 204 0 51 255 0 102 0 0 102 51 0 102 102 0 102 153 0 102 204 0 102 255 0 153 0 0 153 51 0 153 102 0 153 153 0 153 204 0 153 255 0 204 0 0 204 51 0 204 102 0 204 153 0 204 204 0 204 255 0 255 51 0 255 102 0 255 153 0 255 204 51 0 0 51 0 51 51 0 102 51 0 153 51 0 204 51 0 255 51 51 0 51 51 51 51 51 102 51 51 153 51 51 204 51 51 255 51 102 0 51 102 51 51 102 102 51 102 153 51 102 204 51 102 255 51 153 0 51 153 51 51 153 102 51 153 153 51 153 204 51 153 255 51 204 0 51 204 51 51 204 102 51 204 153 51 204 204 51 204 255 51 255 0 51 255 51 51 255 102 51 255 153 51 255 204 51 255 255 102 0 0 102 0 51 102 0 102 102 0 153 102 0 204 102 0 255 102 51 0 102 51 51 102 51 102 102 51 153 102 51 204 102 51 255 102 102 0 102 102 51 102 102 102 102 102 153 102 102 204 102 102 255 102 153 0 102 153 51 102 153 102 102 153 153 102 153 204 102 153 255 102 204 0 102 204 51 102 204 102 102 204 153 102 204 204 102 204 255 102 255 0 102 255 51 102 255 102 102 255 153 102 255 204 102 255 255 153 0 0 153 0 51 153 0 102 153 0 153 153 0 204 153 0 255 153 51 0 153 51 51 153 51 102 153 51 153 153 51 204 153 51 255 153 102 0 153 102 51 153 102 102 153 102 153 153 102 204 153 102 255 153 153 0 153 153 51 153 153 102 153 153 153 153 153 204 153 153 255 153 204 0 153 204 51 153 204 102 153 204 153 153 204 204 153 204 255 153 255 0 153 255 51 153 255 102 153 255 153 153 255 204 153 255 255 204 0 0 204 0 51 204 0 102 204 0 153 204 0 204 204 0 255 204 51 0 204 51 51 204 51 102 204 51 153 204 51 204 204 51 255 204 102 0 204 102 51 204 102 102 204 102 153 204 102 204 204 102 255 204 153 0 204 153 51 204 153 102 204 153 153 204 153 204 204 153 255 204 204 0 204 204 51 204 204 102 204 204 153 204 204 204 204 204 255 204 255 0 204 255 51 204 255 102 204 255 153 204 255 204 204 255 255 255 0 51 255 0 102 255 0 153 255 0 204 255 51 0 255 51 51 255 51 102 255 51 153 255 51 204 255 51 255 255 102 0 255 102 51 255 102 102 255 102 153 255 102 204 255 102 255 255 153 0 255 153 51 255 153 102 255 153 153 255 153 204 255 153 255 255 204 0 255 204 51 255 204 102 255 204 153 255 204 204 255 204 255 255 255 51 255 255 102 255 255 153 255 255 204 255 255 255 9 9 9 19 19 19 29 29 29 39 39 39 49 49 49 58 58 58 68 68 68 78 78 78 98 98 98 107 107 107 117 117 117 137 137 137 147 147 147 156 156 156 166 166 166]
cg@3419
  1386
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@C??O?<??3??O?<??3??O?<??3??O?<??0@@@@a'); yourself); yourself]
cg@3419
  1387
!
cg@3419
  1388
cg@3419
  1389
slightlyDarkerIcon
cg@3419
  1390
    "This resource specification was automatically generated
cg@3419
  1391
     by the ImageEditor of ST/X."
cg@3419
  1392
cg@3419
  1393
    "Do not manually edit this!! If it is corrupted,
cg@3419
  1394
     the ImageEditor may not be able to read the specification."
cg@3419
  1395
cg@3419
  1396
    "
cg@3419
  1397
     self slightlyDarkerIcon inspect
cg@3419
  1398
     ImageEditor openOnClass:self andSelector:#slightlyDarkerIcon
cg@3419
  1399
     Icon flushCachedIcons
cg@3419
  1400
    "
cg@3419
  1401
cg@3419
  1402
    <resource: #image>
cg@3419
  1403
cg@3419
  1404
    ^Icon
cg@3419
  1405
        constantNamed:'ImageEditor class slightlyDarkerIcon'
cg@3419
  1406
        ifAbsentPut:[(Depth8Image width:14 height:14) bits:(ByteArray fromPackedString:'
cg@3419
  1407
@PDA@PDA@PDA@PDA@PG/;>?/;>?/@@@@@@@@@N?/;>?/;><@@@@@@@@@;>?/;>?/;0@@@@@@@@C/;>?/;>?/@@@@@@@@@N?/;>?/;><@@@@@@@@@;>?/A XF
cg@3419
  1408
A XFA X@@@C/;><FA XFA XFA @@@N?/;>?/;><@@@@@@@@@;>?/;>?/;0@@@@@@@@C/;>?/;>?/@@@@@@@@@N?/;>?/;><@@@@@@@@@;>?/;>?/;0@@@@@@
cg@3419
  1409
@@@A@PDA@PDA@PDA@PDA@P@a')
cg@3419
  1410
            colorMapFromArray:#[88 88 88 0 0 0 255 0 0 0 255 0 0 0 255 0 255 255 255 255 127 255 0 255 127 0 0 0 127 0 0 0 127 0 127 127 127 127 0 127 0 127 127 127 127 170 170 170 0 0 51 0 0 102 0 0 153 0 0 204 0 51 0 0 51 51 0 51 102 0 51 153 0 51 204 0 51 255 0 102 0 0 102 51 0 102 102 0 102 153 0 102 204 0 102 255 0 153 0 0 153 51 0 153 102 0 153 153 0 153 204 0 153 255 0 204 0 0 204 51 0 204 102 0 204 153 0 204 204 0 204 255 0 255 51 0 255 102 0 255 153 0 255 204 51 0 0 51 0 51 51 0 102 51 0 153 51 0 204 51 0 255 51 51 0 51 51 51 51 51 102 51 51 153 51 51 204 51 51 255 51 102 0 51 102 51 51 102 102 51 102 153 51 102 204 51 102 255 51 153 0 51 153 51 51 153 102 51 153 153 51 153 204 51 153 255 51 204 0 51 204 51 51 204 102 51 204 153 51 204 204 51 204 255 51 255 0 51 255 51 51 255 102 51 255 153 51 255 204 51 255 255 102 0 0 102 0 51 102 0 102 102 0 153 102 0 204 102 0 255 102 51 0 102 51 51 102 51 102 102 51 153 102 51 204 102 51 255 102 102 0 102 102 51 102 102 102 102 102 153 102 102 204 102 102 255 102 153 0 102 153 51 102 153 102 102 153 153 102 153 204 102 153 255 102 204 0 102 204 51 102 204 102 102 204 153 102 204 204 102 204 255 102 255 0 102 255 51 102 255 102 102 255 153 102 255 204 102 255 255 153 0 0 153 0 51 153 0 102 153 0 153 153 0 204 153 0 255 153 51 0 153 51 51 153 51 102 153 51 153 153 51 204 153 51 255 153 102 0 153 102 51 153 102 102 153 102 153 153 102 204 153 102 255 153 153 0 153 153 51 153 153 102 153 153 153 153 153 204 153 153 255 153 204 0 153 204 51 153 204 102 153 204 153 153 204 204 153 204 255 153 255 0 153 255 51 153 255 102 153 255 153 153 255 204 153 255 255 204 0 0 204 0 51 204 0 102 204 0 153 204 0 204 204 0 255 204 51 0 204 51 51 204 51 102 204 51 153 204 51 204 204 51 255 204 102 0 204 102 51 204 102 102 204 102 153 204 102 204 204 102 255 204 153 0 204 153 51 204 153 102 204 153 153 204 153 204 204 153 255 204 204 0 204 204 51 204 204 102 204 204 153 204 204 204 204 204 255 204 255 0 204 255 51 204 255 102 204 255 153 204 255 204 204 255 255 255 0 51 255 0 102 255 0 153 255 0 204 255 51 0 255 51 51 255 51 102 255 51 153 255 51 204 255 51 255 255 102 0 255 102 51 255 102 102 255 102 153 255 102 204 255 102 255 255 153 0 255 153 51 255 153 102 255 153 153 255 153 204 255 153 255 255 204 0 255 204 51 255 204 102 255 204 153 255 204 204 255 204 255 255 255 51 255 255 102 255 255 153 255 255 204 255 255 255 9 9 9 19 19 19 29 29 29 39 39 39 49 49 49 58 58 58 68 68 68 78 78 78 98 98 98 107 107 107 117 117 117 137 137 137 147 147 147 156 156 156 166 166 166]
cg@3419
  1411
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@C??O?<??3??O?<??3??O?<??3??O?<??0@@@@a'); yourself); yourself]
cg@3419
  1412
!
cg@3419
  1413
cg@3191
  1414
smoothIcon
cg@3191
  1415
    "This resource specification was automatically generated
cg@3191
  1416
     by the ImageEditor of ST/X."
cg@3191
  1417
cg@3191
  1418
    "Do not manually edit this!! If it is corrupted,
cg@3191
  1419
     the ImageEditor may not be able to read the specification."
cg@3191
  1420
cg@3191
  1421
    "
cg@3191
  1422
     self smoothIcon inspect
cg@3191
  1423
     ImageEditor openOnClass:self andSelector:#smoothIcon
cg@3191
  1424
     Icon flushCachedIcons
cg@3191
  1425
    "
cg@3191
  1426
cg@3191
  1427
    <resource: #image>
cg@3191
  1428
cg@3191
  1429
    ^Icon
cg@3191
  1430
        constantNamed:'ImageEditor smoothIcon'
cg@3191
  1431
        ifAbsentPut:[(Depth4Image new) width:14; height:14; bits:(ByteArray fromPackedString:'@@@@@@@@@@@RH@@@H!!@@HRD@@RD @BHQ@@DRH@@ADP@ADP@@@@@QD@@@@@@@DQ@@@@@@@ADP@@@@@QD@@QD@@BHQ@@DRH@@!!HP@AHR@@D"@@@BHP@@@@@@@@
cg@3191
  1432
@@@@@@@@@@@b') ; colorMapFromArray:#[127 126 127 255 0 0 255 255 255]; mask:((ImageMask new) width:14; height:14; bits:(ByteArray fromPackedString:'_?1<_G1<_G1??D_DQ<QG1G?<_G1<_G1<_?0@@@@a') ; yourself); yourself]
cg@3191
  1433
!
cg@3191
  1434
sv@3121
  1435
specialCircleIcon
cg@2881
  1436
    "This resource specification was automatically generated
cg@2881
  1437
     by the ImageEditor of ST/X."
cg@3442
  1438
cg@2881
  1439
    "Do not manually edit this!! If it is corrupted,
cg@2881
  1440
     the ImageEditor may not be able to read the specification."
cg@3442
  1441
cg@2881
  1442
    "
cg@2881
  1443
     self specialCircleIcon inspect
cg@2881
  1444
     ImageEditor openOnClass:self andSelector:#specialCircleIcon
cg@3442
  1445
     Icon flushCachedIcons
cg@3442
  1446
    "
cg@3442
  1447
cg@3442
  1448
    <resource: #image>
cg@3442
  1449
cg@3442
  1450
    ^Icon
cg@3442
  1451
        constantNamed:'ImageEditor class specialCircleIcon'
cg@3442
  1452
        ifAbsentPut:[(Depth2Image width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@@@@@@@PA@@@RBD@@P@@P@P@@A@D@@@PA@@@D@PHHA@A@@A@@D@A@@@PA@@@@@@@@@@@@@b')
cg@3442
  1453
            colorMapFromArray:#[0 0 0 255 0 0 127 127 127]
cg@3442
  1454
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@-@E:@''$D^HQ8!!G"D^HH1@PH@-@@0@@@@@a'); yourself); yourself]
sv@3121
  1455
!
sv@3121
  1456
cg@3419
  1457
specialRectangleIcon
cg@1637
  1458
    "This resource specification was automatically generated
cg@1637
  1459
     by the ImageEditor of ST/X."
cg@3419
  1460
cg@1637
  1461
    "Do not manually edit this!! If it is corrupted,
cg@1637
  1462
     the ImageEditor may not be able to read the specification."
cg@3419
  1463
cg@1637
  1464
    "
cg@3419
  1465
     self specialRectangleIcon inspect
cg@3419
  1466
     ImageEditor openOnClass:self andSelector:#specialRectangleIcon
cg@3419
  1467
     Icon flushCachedIcons
cg@3419
  1468
    "
cg@3419
  1469
cg@3419
  1470
    <resource: #image>
cg@3419
  1471
cg@3419
  1472
    ^Icon
cg@3419
  1473
        constantNamed:'ImageEditor class specialRectangleIcon'
cg@3442
  1474
        ifAbsentPut:[(Depth2Image width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@@@@@@@UPAU@DBB@PA@@@D@P@@A@D@@@PA@@@D@PHHA@D@@@PA@@@D@UPAU@@@@@@@@@@@@b')
cg@3442
  1475
            colorMapFromArray:#[0 0 0 255 0 0 127 127 127]
cg@3442
  1476
            mask:((ImageMask width:14 height:14) bits:(ByteArray fromPackedString:'@@@@@G-8Q8!!G"D^HQ8!!G"D^HP0!!@BG-8@0@@@@@a'); yourself); yourself]
sv@3121
  1477
!
sv@3121
  1478
sv@3121
  1479
sprayIcon
cg@2375
  1480
    "This resource specification was automatically generated
cg@2375
  1481
     by the ImageEditor of ST/X."
cg@3191
  1482
cg@2375
  1483
    "Do not manually edit this!! If it is corrupted,
cg@2375
  1484
     the ImageEditor may not be able to read the specification."
cg@3191
  1485
cg@2375
  1486
    "
cg@2375
  1487
     self sprayIcon inspect
cg@2375
  1488
     ImageEditor openOnClass:self andSelector:#sprayIcon
cg@3191
  1489
     Icon flushCachedIcons
cg@3191
  1490
    "
cg@3191
  1491
cg@3191
  1492
    <resource: #image>
cg@3191
  1493
cg@3191
  1494
    ^Icon
cg@3191
  1495
        constantNamed:'ImageEditor sprayIcon'
cg@3191
  1496
        ifAbsentPut:[(Depth4Image new) width:14; height:14; bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@P@@@@@@DA@P@@@@@PDA@@@@@@@PDA@@@@@@@PD@@@@"H@@PD@@@H"@@@@@@@ADP@@@@@@@QD@@@@@@@DQ@@@@@@@ADP@@
cg@3191
  1497
@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((ImageMask new) width:14; height:14; bits:(ByteArray fromPackedString:'@@@@@@@HA%PF*@ITA2 O%@>@C8@O @>@C8@O @@a') ; yourself); yourself]
martin@1433
  1498
! !
tz@737
  1499
tz@400
  1500
!ImageEditor class methodsFor:'interface specs'!
tz@400
  1501
cg@1650
  1502
changeHLSDialogSpec
cg@1650
  1503
    "This resource specification was automatically generated
cg@1650
  1504
     by the UIPainter of ST/X."
cg@1650
  1505
cg@1650
  1506
    "Do not manually edit this!! If it is corrupted,
cg@1650
  1507
     the UIPainter may not be able to read the specification."
cg@1650
  1508
cg@1650
  1509
    "
cg@1650
  1510
     UIPainter new openOnClass:ImageEditor andSelector:#changeHLSDialogSpec
cg@1650
  1511
     ImageEditor new openInterface:#changeHLSDialogSpec
cg@1650
  1512
    "
cg@1650
  1513
cg@1650
  1514
    <resource: #canvas>
cg@1650
  1515
cg@1650
  1516
    ^ 
cg@3468
  1517
    #(FullSpec
cg@3468
  1518
       name: changeHLSDialogSpec
cg@3562
  1519
       uuid: 'b5dfeb64-6197-11e8-a86d-b8f6b1108e05'
cg@3468
  1520
       window: 
cg@3468
  1521
      (WindowSpec
cg@3468
  1522
         label: 'HLS Edit Dialog'
cg@3468
  1523
         name: 'HLS Edit Dialog'
cg@3562
  1524
         uuid: '3787f3b8-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1525
         min: (Point 10 10)
cg@3468
  1526
         bounds: (Rectangle 0 0 378 312)
cg@3468
  1527
       )
cg@3468
  1528
       component: 
cg@3468
  1529
      (SpecCollection
cg@3468
  1530
         collection: (
cg@3468
  1531
          (LabelSpec
cg@3468
  1532
             label: 'Hue-Shift:'
cg@3468
  1533
             name: 'HueLabel'
cg@3562
  1534
             layout: (LayoutFrame 4 0 21 0 171 0 43 0)
cg@3562
  1535
             activeHelpKey: hueShift
cg@3562
  1536
             uuid: '3787f638-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1537
             translateLabel: true
cg@3468
  1538
             adjust: right
cg@3468
  1539
           )
cg@3468
  1540
          (InputFieldSpec
cg@3468
  1541
             name: 'HueShiftEntryField'
cg@3562
  1542
             layout: (LayoutFrame 172 0 21 0 243 0 43 0)
cg@3562
  1543
             activeHelpKey: hueShift
cg@3562
  1544
             uuid: '3787f84a-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1545
             tabable: true
cg@3562
  1546
             model: hueShiftHolder
cg@3468
  1547
             type: numberInRange
cg@3468
  1548
             minValue: 0
cg@3468
  1549
             maxValue: 360
cg@3468
  1550
             acceptChannel: acceptChannel
cg@3562
  1551
             acceptOnPointerLeave: true
cg@3468
  1552
           )
cg@3468
  1553
          (ThumbWheelSpec
cg@3468
  1554
             name: 'HueWheel'
cg@3468
  1555
             layout: (LayoutFrame 246 0 22 0 363 0 42 0)
cg@3562
  1556
             activeHelpKey: hueShift
cg@3562
  1557
             uuid: '3787fafc-6194-11e8-a86d-b8f6b1108e05'
cg@3562
  1558
             model: hueShiftHolder
cg@3468
  1559
             orientation: horizontal
cg@3468
  1560
             step: 1
cg@3468
  1561
             endlessRotation: true
cg@3468
  1562
           )
cg@3562
  1563
          (ActionButtonSpec
cg@3562
  1564
             name: 'resetHueShift'
cg@3562
  1565
             layout: (LayoutFrame -10 1 27 0 0 1 37 0)
cg@3562
  1566
             activeHelpKey: resetHueShift
cg@3562
  1567
             uuid: 'e8c1e754-6196-11e8-a86d-b8f6b1108e05'
cg@3562
  1568
             translateLabel: true
cg@3562
  1569
             model: resetHueShift
cg@3562
  1570
           )
cg@3468
  1571
          (LabelSpec
cg@3468
  1572
             label: 'Light Factor:'
cg@3468
  1573
             name: 'LightLabel'
cg@3562
  1574
             layout: (LayoutFrame 4 0 50 0 171 0 72 0)
cg@3562
  1575
             activeHelpKey: lightFactor
cg@3562
  1576
             uuid: '3787fda4-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1577
             translateLabel: true
cg@3468
  1578
             adjust: right
cg@3468
  1579
           )
cg@3468
  1580
          (InputFieldSpec
cg@3468
  1581
             name: 'LightEntryField'
cg@3562
  1582
             layout: (LayoutFrame 172 0 50 0 243 0 72 0)
cg@3562
  1583
             activeHelpKey: lightFactor
cg@3562
  1584
             uuid: '3787feee-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1585
             tabable: true
cg@3562
  1586
             model: lightFactorHolder
cg@3468
  1587
             type: numberInRange
cg@3562
  1588
             minValue: 0.0
cg@3562
  1589
             maxValue: 10.0
cg@3468
  1590
             acceptChannel: acceptChannel
cg@3562
  1591
             acceptOnPointerLeave: true
cg@3468
  1592
           )
cg@3468
  1593
          (ThumbWheelSpec
cg@3468
  1594
             name: 'LightWheel'
cg@3468
  1595
             layout: (LayoutFrame 246 0 51 0 363 0 71 0)
cg@3562
  1596
             activeHelpKey: lightFactor
cg@3562
  1597
             uuid: '378800d8-6194-11e8-a86d-b8f6b1108e05'
cg@3562
  1598
             model: lightFactorHolder
cg@3468
  1599
             orientation: horizontal
cg@3562
  1600
             start: 0.0
cg@3562
  1601
             stop: 10.0
cg@3562
  1602
             step: 0.001
cg@3562
  1603
           )
cg@3562
  1604
          (ActionButtonSpec
cg@3562
  1605
             name: 'Button3'
cg@3562
  1606
             layout: (LayoutFrame -10 1 56 0 0 1 66 0)
cg@3562
  1607
             activeHelpKey: resetLightFactor
cg@3562
  1608
             uuid: 'e8c1eb50-6196-11e8-a86d-b8f6b1108e05'
cg@3562
  1609
             translateLabel: true
cg@3562
  1610
             model: resetLightFactor
cg@3468
  1611
           )
cg@3468
  1612
          (LabelSpec
cg@3468
  1613
             label: 'Saturation Factor:'
cg@3468
  1614
             name: 'SaturationLabel'
cg@3562
  1615
             layout: (LayoutFrame 4 0 79 0 171 0 101 0)
cg@3562
  1616
             activeHelpKey: saturationFactor
cg@3562
  1617
             uuid: '3788022c-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1618
             translateLabel: true
cg@3468
  1619
             adjust: right
cg@3468
  1620
           )
cg@3468
  1621
          (InputFieldSpec
cg@3468
  1622
             name: 'SaturationEntryField'
cg@3562
  1623
             layout: (LayoutFrame 172 0 79 0 243 0 101 0)
cg@3562
  1624
             activeHelpKey: saturationFactor
cg@3562
  1625
             uuid: '37880358-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1626
             tabable: true
cg@3562
  1627
             model: saturationFactorHolder
cg@3468
  1628
             type: numberInRange
cg@3562
  1629
             minValue: 0.0
cg@3562
  1630
             maxValue: 10.0
cg@3468
  1631
             acceptChannel: acceptChannel
cg@3562
  1632
             acceptOnPointerLeave: true
cg@3468
  1633
           )
cg@3468
  1634
          (ThumbWheelSpec
cg@3468
  1635
             name: 'SaturationWheel'
cg@3468
  1636
             layout: (LayoutFrame 246 0 80 0 363 0 100 0)
cg@3562
  1637
             activeHelpKey: saturationFactor
cg@3562
  1638
             uuid: '3788051a-6194-11e8-a86d-b8f6b1108e05'
cg@3562
  1639
             model: saturationFactorHolder
cg@3468
  1640
             orientation: horizontal
cg@3562
  1641
             start: 0.0
cg@3562
  1642
             stop: 10.0
cg@3562
  1643
             step: 0.001
cg@3562
  1644
           )
cg@3562
  1645
          (ActionButtonSpec
cg@3562
  1646
             name: 'Button4'
cg@3562
  1647
             layout: (LayoutFrame -10 1 85 0 0 1 95 0)
cg@3562
  1648
             activeHelpKey: resetSaturationFactor
cg@3562
  1649
             uuid: 'e8c1efce-6196-11e8-a86d-b8f6b1108e05'
cg@3562
  1650
             translateLabel: true
cg@3562
  1651
             model: resetSaturationFactor
cg@3468
  1652
           )
cg@3468
  1653
          (LabelSpec
cg@3468
  1654
             label: 'Color Shift'
cg@3468
  1655
             name: 'Label2'
cg@3468
  1656
             layout: (LayoutFrame 5 0 127 0 -15 0.5 149 0)
cg@3562
  1657
             uuid: '37880650-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1658
             translateLabel: true
cg@3468
  1659
           )
cg@3468
  1660
          (LabelSpec
cg@3468
  1661
             name: 'HueColorLabel'
cg@3468
  1662
             layout: (LayoutFrame 18 0.0 150 0 -41 0.5 234 0)
cg@3562
  1663
             uuid: '37880768-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1664
             level: -1
cg@3468
  1665
             backgroundChannel: hlsColor
cg@3468
  1666
             translateLabel: true
cg@3468
  1667
           )
cg@3468
  1668
          (LabelSpec
cg@3468
  1669
             label: 'Preview'
cg@3468
  1670
             name: 'Label3'
cg@3468
  1671
             layout: (LayoutFrame 5 0.5 127 0 -5 1 149 0)
cg@3562
  1672
             uuid: '37880894-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1673
             translateLabel: true
cg@3468
  1674
           )
cg@3468
  1675
          (LabelSpec
cg@3468
  1676
             name: 'PreviewLabel'
cg@3468
  1677
             layout: (LayoutFrame 36 0.5 150 0 -23 1.0 234 0)
cg@3562
  1678
             uuid: '378809ac-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1679
             level: -1
cg@3468
  1680
             translateLabel: true
cg@3468
  1681
             labelChannel: previewImageHolder
cg@3468
  1682
           )
cg@3468
  1683
          (HorizontalPanelViewSpec
cg@3468
  1684
             name: 'HorizontalPanel1'
cg@3562
  1685
             layout: (LayoutFrame 0 0.0 -30 1 -16 1.0 0 1)
cg@3562
  1686
             uuid: '37880ace-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1687
             horizontalLayout: fitSpace
cg@3468
  1688
             verticalLayout: center
cg@3468
  1689
             horizontalSpace: 3
cg@3468
  1690
             verticalSpace: 3
cg@3468
  1691
             reverseOrderIfOKAtLeft: true
cg@3468
  1692
             component: 
cg@3468
  1693
            (SpecCollection
cg@3468
  1694
               collection: (
cg@3468
  1695
                (ActionButtonSpec
cg@3468
  1696
                   label: 'Cancel'
cg@3468
  1697
                   name: 'Button1'
cg@3562
  1698
                   uuid: '37880cd6-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1699
                   translateLabel: true
cg@3468
  1700
                   tabable: true
cg@3468
  1701
                   model: cancel
cg@3562
  1702
                   extent: (Point 175 28)
cg@1650
  1703
                 )
cg@3468
  1704
                (ActionButtonSpec
cg@3468
  1705
                   label: 'OK'
cg@3468
  1706
                   name: 'Button2'
cg@3562
  1707
                   uuid: '37880ee8-6194-11e8-a86d-b8f6b1108e05'
cg@3468
  1708
                   translateLabel: true
cg@3468
  1709
                   tabable: true
cg@3468
  1710
                   model: accept
cg@3562
  1711
                   extent: (Point 175 28)
cg@3468
  1712
                 )
cg@3468
  1713
                )
cg@3468
  1714
              
cg@3468
  1715
             )
cg@3468
  1716
             keepSpaceForOSXResizeHandleH: true
cg@1650
  1717
           )
cg@3468
  1718
          )
cg@3468
  1719
        
cg@3468
  1720
       )
cg@3468
  1721
     )
cg@3562
  1722
cg@3562
  1723
    "Modified: / 27-05-2018 / 12:27:58 / Claus Gittinger"
cg@1650
  1724
!
cg@1650
  1725
cg@3413
  1726
cropSpec
tz@737
  1727
    "This resource specification was automatically generated
tz@737
  1728
     by the UIPainter of ST/X."
tz@519
  1729
tz@737
  1730
    "Do not manually edit this!! If it is corrupted,
tz@737
  1731
     the UIPainter may not be able to read the specification."
tz@519
  1732
tz@519
  1733
    "
cg@3413
  1734
     UIPainter new openOnClass:ImageEditor andSelector:#cropSpec
cg@3413
  1735
     ImageEditor new openInterface:#cropSpec
tz@519
  1736
    "
tz@519
  1737
tz@519
  1738
    <resource: #canvas>
tz@519
  1739
cg@1457
  1740
    ^ 
cg@3376
  1741
    #(FullSpec
cg@3413
  1742
       name: cropSpec
cg@3376
  1743
       window: 
cg@3376
  1744
      (WindowSpec
cg@3376
  1745
         label: 'Crop Border(s)'
cg@3376
  1746
         name: 'Crop Border(s)'
cg@3376
  1747
         min: (Point 10 10)
cg@3408
  1748
         bounds: (Rectangle 0 0 364 312)
cg@3376
  1749
       )
cg@3376
  1750
       component: 
cg@3376
  1751
      (SpecCollection
cg@3376
  1752
         collection: (
cg@3376
  1753
          (LabelSpec
cg@3376
  1754
             label: 'Left:'
cg@3413
  1755
             name: 'CropLeftLabel'
cg@3376
  1756
             layout: (LayoutFrame 14 0 24 0 90 0 46 0)
cg@3413
  1757
             activeHelpKey: cropLeft
cg@3376
  1758
             translateLabel: true
cg@3404
  1759
             adjust: left
cg@3376
  1760
           )
cg@3376
  1761
          (InputFieldSpec
cg@3413
  1762
             name: 'CropLeftEntryField'
cg@3404
  1763
             layout: (LayoutFrame 95 0 24 0 125 0 46 0)
cg@3413
  1764
             activeHelpKey: cropLeft
cg@3376
  1765
             tabable: true
cg@3413
  1766
             model: cropLeftAmount
cg@3376
  1767
             type: number
cg@3376
  1768
             acceptChannel: acceptChannel
cg@3376
  1769
             acceptOnPointerLeave: false
cg@3376
  1770
           )
cg@3376
  1771
          (ActionButtonSpec
cg@3413
  1772
             label: 'Crop Now'
cg@3413
  1773
             name: 'CropLeftNowButton'
cg@3417
  1774
             layout: (LayoutFrame 133 0 21 0 229 0 50 0)
cg@3413
  1775
             activeHelpKey: cropLeft
cg@3376
  1776
             translateLabel: true
cg@3376
  1777
             resizeForLabel: true
cg@3376
  1778
             tabable: true
cg@3413
  1779
             model: cropLeftNow
cg@3376
  1780
             autoRepeat: true
cg@3376
  1781
             usePreferredWidth: true
cg@3376
  1782
           )
cg@3417
  1783
          (ActionButtonSpec
cg@3417
  1784
             label: 'Auto'
cg@3417
  1785
             name: 'Button6'
cg@3417
  1786
             layout: (LayoutFrame 236 0 21 0 289 0 50 0)
cg@3417
  1787
             activeHelpKey: autoCropLeft
cg@3417
  1788
             translateLabel: true
cg@3417
  1789
             resizeForLabel: true
cg@3417
  1790
             tabable: true
cg@3417
  1791
             model: autoCropLeft
cg@3417
  1792
             autoRepeat: true
cg@3417
  1793
             usePreferredWidth: true
cg@3417
  1794
           )
cg@3376
  1795
          (LabelSpec
cg@3376
  1796
             label: 'Right:'
cg@3413
  1797
             name: 'CropRightLabel'
cg@3376
  1798
             layout: (LayoutFrame 14 0 55 0 90 0 77 0)
cg@3413
  1799
             activeHelpKey: cropRight
cg@3376
  1800
             translateLabel: true
cg@3404
  1801
             adjust: left
cg@3376
  1802
           )
cg@3376
  1803
          (InputFieldSpec
cg@3413
  1804
             name: 'CropRightEntryField'
cg@3404
  1805
             layout: (LayoutFrame 95 0 55 0 125 0 77 0)
cg@3413
  1806
             activeHelpKey: cropRight
cg@3376
  1807
             tabable: true
cg@3413
  1808
             model: cropRightAmount
cg@3376
  1809
             type: number
cg@3376
  1810
             acceptChannel: acceptChannel
cg@3376
  1811
             acceptOnPointerLeave: false
cg@3376
  1812
           )
cg@3376
  1813
          (ActionButtonSpec
cg@3413
  1814
             label: 'Crop Now'
cg@3413
  1815
             name: 'CropRightButton'
cg@3417
  1816
             layout: (LayoutFrame 133 0 51 0 229 0 80 0)
cg@3413
  1817
             activeHelpKey: cropRight
cg@3376
  1818
             translateLabel: true
cg@3376
  1819
             resizeForLabel: true
cg@3376
  1820
             tabable: true
cg@3413
  1821
             model: cropRightNow
cg@3376
  1822
             autoRepeat: true
cg@3376
  1823
             usePreferredWidth: true
cg@3376
  1824
           )
cg@3417
  1825
          (ActionButtonSpec
cg@3417
  1826
             label: 'Auto'
cg@3417
  1827
             name: 'Button7'
cg@3417
  1828
             layout: (LayoutFrame 236 0 51 0 289 0 80 0)
cg@3417
  1829
             activeHelpKey: autoCropRight
cg@3417
  1830
             translateLabel: true
cg@3417
  1831
             resizeForLabel: true
cg@3417
  1832
             tabable: true
cg@3417
  1833
             model: autoCropRight
cg@3417
  1834
             autoRepeat: true
cg@3417
  1835
             usePreferredWidth: true
cg@3417
  1836
           )
cg@3376
  1837
          (LabelSpec
cg@3376
  1838
             label: 'Top:'
cg@3413
  1839
             name: 'CropTopLabel'
cg@3376
  1840
             layout: (LayoutFrame 14 0 85 0 90 0 107 0)
cg@3413
  1841
             activeHelpKey: cropTop
cg@3376
  1842
             translateLabel: true
cg@3404
  1843
             adjust: left
cg@3376
  1844
           )
cg@3376
  1845
          (InputFieldSpec
cg@3413
  1846
             name: 'CropTopEntryField'
cg@3404
  1847
             layout: (LayoutFrame 95 0 85 0 125 0 107 0)
cg@3413
  1848
             activeHelpKey: cropTop
cg@3376
  1849
             tabable: true
cg@3413
  1850
             model: cropTopAmount
cg@3376
  1851
             type: number
cg@3376
  1852
             acceptChannel: acceptChannel
cg@3376
  1853
             acceptOnPointerLeave: false
cg@3376
  1854
           )
cg@3376
  1855
          (ActionButtonSpec
cg@3413
  1856
             label: 'Crop Now'
cg@3413
  1857
             name: 'CropTopButton'
cg@3417
  1858
             layout: (LayoutFrame 133 0 81 0 229 0 110 0)
cg@3413
  1859
             activeHelpKey: cropTop
cg@3376
  1860
             translateLabel: true
cg@3376
  1861
             resizeForLabel: true
cg@3376
  1862
             tabable: true
cg@3413
  1863
             model: cropTopNow
cg@3376
  1864
             autoRepeat: true
cg@3376
  1865
             usePreferredWidth: true
cg@3376
  1866
           )
cg@3417
  1867
          (ActionButtonSpec
cg@3417
  1868
             label: 'Auto'
cg@3417
  1869
             name: 'Button8'
cg@3417
  1870
             layout: (LayoutFrame 236 0 81 0 289 0 110 0)
cg@3417
  1871
             activeHelpKey: autoCropTop
cg@3417
  1872
             translateLabel: true
cg@3417
  1873
             resizeForLabel: true
cg@3417
  1874
             tabable: true
cg@3417
  1875
             model: autoCropTop
cg@3417
  1876
             autoRepeat: true
cg@3417
  1877
             usePreferredWidth: true
cg@3417
  1878
           )
cg@3376
  1879
          (LabelSpec
cg@3376
  1880
             label: 'Bottom:'
cg@3413
  1881
             name: 'CropBottomLabel'
cg@3376
  1882
             layout: (LayoutFrame 14 0 115 0 90 0 137 0)
cg@3413
  1883
             activeHelpKey: cropBottom
cg@3376
  1884
             translateLabel: true
cg@3404
  1885
             adjust: left
cg@3376
  1886
           )
cg@3376
  1887
          (InputFieldSpec
cg@3413
  1888
             name: 'CropBottomEntryField'
cg@3404
  1889
             layout: (LayoutFrame 95 0 115 0 125 0 137 0)
cg@3413
  1890
             activeHelpKey: cropBottom
cg@3376
  1891
             tabable: true
cg@3413
  1892
             model: cropBottomAmount
cg@3376
  1893
             type: number
cg@3376
  1894
             acceptChannel: acceptChannel
cg@3376
  1895
             acceptOnPointerLeave: false
cg@3376
  1896
           )
cg@3376
  1897
          (ActionButtonSpec
cg@3413
  1898
             label: 'Crop Now'
cg@3413
  1899
             name: 'CropBottomButton'
cg@3417
  1900
             layout: (LayoutFrame 133 0 111 0 229 0 140 0)
cg@3413
  1901
             activeHelpKey: cropBottom
cg@3376
  1902
             translateLabel: true
cg@3376
  1903
             resizeForLabel: true
cg@3376
  1904
             tabable: true
cg@3413
  1905
             model: cropBottomNow
cg@3376
  1906
             autoRepeat: true
cg@3376
  1907
             usePreferredWidth: true
cg@3376
  1908
           )
cg@3408
  1909
          (ActionButtonSpec
cg@3417
  1910
             label: 'Auto'
cg@3417
  1911
             name: 'Button9'
cg@3417
  1912
             layout: (LayoutFrame 236 0 111 0 289 0 140 0)
cg@3417
  1913
             activeHelpKey: autoCropBottom
cg@3417
  1914
             translateLabel: true
cg@3417
  1915
             resizeForLabel: true
cg@3417
  1916
             tabable: true
cg@3417
  1917
             model: autoCropBottom
cg@3417
  1918
             autoRepeat: true
cg@3417
  1919
             usePreferredWidth: true
cg@3417
  1920
           )
cg@3417
  1921
          (ActionButtonSpec
cg@3417
  1922
             label: 'All'
cg@3408
  1923
             name: 'Button4'
cg@3417
  1924
             layout: (LayoutFrame 133 0 148 0 229 0 176 0)
cg@3413
  1925
             activeHelpKey: cropAll
cg@3408
  1926
             translateLabel: true
cg@3408
  1927
             resizeForLabel: true
cg@3408
  1928
             tabable: true
cg@3408
  1929
             model: applyCropAction
cg@3408
  1930
           )
cg@3376
  1931
          (HorizontalPanelViewSpec
cg@3376
  1932
             name: 'HorizontalPanel1'
cg@3413
  1933
             layout: (LayoutFrame 0 0.0 -30 1 0 1.0 0 1)
cg@3400
  1934
             visibilityChannel: cropBoxIsDialog
cg@3376
  1935
             horizontalLayout: fitSpace
cg@3376
  1936
             verticalLayout: center
cg@3376
  1937
             horizontalSpace: 3
cg@3376
  1938
             verticalSpace: 3
cg@3376
  1939
             reverseOrderIfOKAtLeft: true
cg@3376
  1940
             component: 
cg@3376
  1941
            (SpecCollection
cg@3376
  1942
               collection: (
cg@3376
  1943
                (ActionButtonSpec
cg@3376
  1944
                   label: 'Cancel'
cg@3376
  1945
                   name: 'Button1'
cg@3376
  1946
                   translateLabel: true
cg@3376
  1947
                   resizeForLabel: true
cg@3376
  1948
                   tabable: true
cg@3376
  1949
                   model: cancel
cg@3413
  1950
                   extent: (Point 116 28)
cg@1457
  1951
                 )
cg@3376
  1952
                (ActionButtonSpec
cg@3376
  1953
                   label: 'Apply'
cg@3376
  1954
                   name: 'Button3'
cg@3376
  1955
                   translateLabel: true
cg@3376
  1956
                   resizeForLabel: true
cg@3376
  1957
                   tabable: true
cg@3408
  1958
                   model: applyCropAction
cg@3413
  1959
                   extent: (Point 116 28)
cg@3376
  1960
                 )
cg@3376
  1961
                (ActionButtonSpec
cg@3376
  1962
                   label: 'OK'
cg@3376
  1963
                   name: 'Button2'
cg@3376
  1964
                   translateLabel: true
cg@3376
  1965
                   resizeForLabel: true
cg@3376
  1966
                   tabable: true
cg@3376
  1967
                   model: accept
cg@3413
  1968
                   extent: (Point 116 28)
cg@3376
  1969
                 )
cg@3376
  1970
                )
cg@3376
  1971
              
cg@3376
  1972
             )
cg@3408
  1973
           )
cg@3417
  1974
          (ActionButtonSpec
cg@3417
  1975
             label: 'All'
cg@3417
  1976
             name: 'Button10'
cg@3417
  1977
             layout: (LayoutFrame 236 0 148 0 289 0 176 0)
cg@3417
  1978
             activeHelpKey: autoCropAll
cg@3417
  1979
             translateLabel: true
cg@3417
  1980
             resizeForLabel: true
cg@3417
  1981
             tabable: true
cg@3417
  1982
             model: autoCropAll
cg@3417
  1983
           )
cg@3376
  1984
          )
cg@3376
  1985
        
cg@3376
  1986
       )
cg@3376
  1987
     )
cg@986
  1988
!
cg@986
  1989
sv@1740
  1990
dialogSpecForNewImage
cg@1557
  1991
    "This resource specification was automatically generated
cg@1557
  1992
     by the UIPainter of ST/X."
cg@1557
  1993
cg@1557
  1994
    "Do not manually edit this!! If it is corrupted,
cg@1557
  1995
     the UIPainter may not be able to read the specification."
cg@1557
  1996
cg@1557
  1997
    "
sv@1740
  1998
     UIPainter new openOnClass:ImageEditor andSelector:#dialogSpecForNewImage
sv@1740
  1999
     ImageEditor new openInterface:#dialogSpecForNewImage
cg@1557
  2000
    "
cg@1557
  2001
cg@1557
  2002
    <resource: #canvas>
cg@1557
  2003
cg@1557
  2004
    ^ 
cg@3494
  2005
    #(FullSpec
cg@3494
  2006
       name: dialogSpecForNewImage
cg@3494
  2007
       window: 
cg@3494
  2008
      (WindowSpec
cg@3494
  2009
         label: 'New Image'
cg@3494
  2010
         name: 'New Image'
cg@3494
  2011
         min: (Point 10 10)
cg@3494
  2012
         bounds: (Rectangle 0 0 301 119)
cg@3494
  2013
       )
cg@3494
  2014
       component: 
cg@3494
  2015
      (SpecCollection
cg@3494
  2016
         collection: (
cg@3494
  2017
          (ViewSpec
cg@3494
  2018
             name: 'View'
cg@3494
  2019
             layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 -35 1.0)
cg@3494
  2020
             level: 1
cg@3494
  2021
             component: 
cg@3494
  2022
            (SpecCollection
cg@3494
  2023
               collection: (
cg@3494
  2024
                (FramedBoxSpec
cg@3494
  2025
                   label: 'Size'
cg@3494
  2026
                   name: 'framedBox1'
cg@3494
  2027
                   layout: (LayoutFrame 1 0.0 7 0.0 0 0.40000000000000002 76 0)
cg@3494
  2028
                   style: (FontDescription helvetica medium roman 12)
cg@3494
  2029
                   labelPosition: topLeft
cg@3494
  2030
                   translateLabel: true
cg@3494
  2031
                   component: 
cg@3494
  2032
                  (SpecCollection
cg@3494
  2033
                     collection: (
cg@3494
  2034
                      (ComboBoxSpec
cg@3494
  2035
                         name: 'defaultSizesComboBox'
cg@3494
  2036
                         layout: (LayoutFrame 0 0.0 10 0.0 0 1 35 0.0)
cg@3494
  2037
                         model: selectionOfSize
cg@3494
  2038
                         type: string
cg@3494
  2039
                         acceptOnPointerLeave: false
cg@3494
  2040
                         comboList: listOfDefaultSizes
cg@3494
  2041
                         isFilenameBox: false
sv@1740
  2042
                       )
cg@3494
  2043
                      )
cg@3494
  2044
                    
cg@3494
  2045
                   )
cg@3494
  2046
                 )
cg@3494
  2047
                (FramedBoxSpec
cg@3494
  2048
                   label: 'Color Map'
cg@3494
  2049
                   name: 'framedBox2'
cg@3494
  2050
                   layout: (LayoutFrame 0 0.40000000000000002 7 0.0 -1 1.0 76 0)
cg@3494
  2051
                   style: (FontDescription helvetica medium roman 12)
cg@3494
  2052
                   labelPosition: topLeft
cg@3494
  2053
                   translateLabel: true
cg@3494
  2054
                   component: 
cg@3494
  2055
                  (SpecCollection
cg@3494
  2056
                     collection: (
cg@3494
  2057
                      (ComboListSpec
cg@3494
  2058
                         name: 'colorMapComboBox'
cg@3494
  2059
                         layout: (LayoutFrame 0 0.0 10 0.0 0 1 35 0.0)
cg@3494
  2060
                         model: selectionOfColorMap
cg@3494
  2061
                         comboList: listOfColorMaps
cg@3494
  2062
                         useIndex: false
cg@3494
  2063
                         hidePullDownMenuButton: false
sv@1740
  2064
                       )
cg@3494
  2065
                      )
cg@3494
  2066
                    
cg@3494
  2067
                   )
cg@1557
  2068
                 )
cg@3494
  2069
                )
cg@3494
  2070
              
cg@3494
  2071
             )
cg@1557
  2072
           )
cg@3494
  2073
          (UISubSpecification
cg@3494
  2074
             name: 'windowSpecForCommitWithoutChannels'
cg@3494
  2075
             layout: (LayoutFrame 2 0.0 -37 1 -2 1.0 -2 1.0)
cg@3494
  2076
             minorKey: windowSpecForCommitWithoutChannels
cg@3494
  2077
             keepSpaceForOSXResizeHandleH: true
cg@3494
  2078
           )
cg@3494
  2079
          )
cg@3494
  2080
        
cg@3494
  2081
       )
cg@3494
  2082
     )
cg@1557
  2083
!
cg@1557
  2084
cg@3413
  2085
floodFillToleranceSpec
cg@3413
  2086
    "This resource specification was automatically generated
cg@3413
  2087
     by the UIPainter of ST/X."
cg@3413
  2088
cg@3413
  2089
    "Do not manually edit this!! If it is corrupted,
cg@3413
  2090
     the UIPainter may not be able to read the specification."
cg@3413
  2091
cg@3413
  2092
    "
cg@3413
  2093
     UIPainter new openOnClass:ImageEditor andSelector:#floodFillToleranceSpec
cg@3413
  2094
     ImageEditor new openInterface:#floodFillToleranceSpec
cg@3413
  2095
    "
cg@3413
  2096
cg@3413
  2097
    <resource: #canvas>
cg@3413
  2098
cg@3413
  2099
    ^ 
cg@3413
  2100
    #(FullSpec
cg@3413
  2101
       name: floodFillToleranceSpec
cg@3413
  2102
       window: 
cg@3413
  2103
      (WindowSpec
cg@3413
  2104
         label: 'Flood Fill Tolerance'
cg@3413
  2105
         name: 'Flood Fill Tolerance'
cg@3413
  2106
         min: (Point 10 10)
cg@3413
  2107
         bounds: (Rectangle 0 0 364 312)
cg@3413
  2108
       )
cg@3413
  2109
       component: 
cg@3413
  2110
      (SpecCollection
cg@3413
  2111
         collection: (
cg@3413
  2112
          (LabelSpec
cg@3413
  2113
             label: 'Flood Fill Tolerance:'
cg@3413
  2114
             name: 'Label1'
cg@3413
  2115
             layout: (LayoutFrame 14 0 10 0 242 0 32 0)
cg@3413
  2116
             activeHelpKey: floodFillMaxError
cg@3413
  2117
             visibilityChannel: cropBoxIsNotDialog
cg@3413
  2118
             translateLabel: true
cg@3413
  2119
             adjust: left
cg@3413
  2120
           )
cg@3413
  2121
          (LabelSpec
cg@3413
  2122
             label: 'Hue:'
cg@3413
  2123
             name: 'Label2'
cg@3440
  2124
             layout: (LayoutFrame 29 0 38 0 127 0 60 0)
cg@3413
  2125
             activeHelpKey: floodFillMaxError
cg@3413
  2126
             visibilityChannel: cropBoxIsNotDialog
cg@3413
  2127
             translateLabel: true
cg@3413
  2128
             adjust: left
cg@3413
  2129
           )
cg@3413
  2130
          (InputFieldSpec
cg@3413
  2131
             name: 'EntryField2'
cg@3413
  2132
             layout: (LayoutFrame 132 0 38 0 190 0 60 0)
cg@3413
  2133
             activeHelpKey: floodFillMaxError
cg@3413
  2134
             visibilityChannel: cropBoxIsNotDialog
cg@3413
  2135
             tabable: true
cg@3413
  2136
             model: floodFillMaxHueError
cg@3413
  2137
             type: number
cg@3413
  2138
             acceptChannel: acceptChannel
cg@3413
  2139
             acceptOnPointerLeave: true
cg@3413
  2140
           )
cg@3413
  2141
          (LabelSpec
cg@3413
  2142
             label: 'Light:'
cg@3413
  2143
             name: 'Label3'
cg@3440
  2144
             layout: (LayoutFrame 29 0 64 0 127 0 86 0)
cg@3413
  2145
             activeHelpKey: floodFillMaxError
cg@3413
  2146
             visibilityChannel: cropBoxIsNotDialog
cg@3413
  2147
             translateLabel: true
cg@3413
  2148
             adjust: left
cg@3413
  2149
           )
cg@3413
  2150
          (InputFieldSpec
cg@3413
  2151
             name: 'EntryField3'
cg@3413
  2152
             layout: (LayoutFrame 132 0 64 0 190 0 86 0)
cg@3413
  2153
             activeHelpKey: floodFillMaxError
cg@3413
  2154
             visibilityChannel: cropBoxIsNotDialog
cg@3413
  2155
             tabable: true
cg@3413
  2156
             model: floodFillMaxLightError
cg@3413
  2157
             type: number
cg@3413
  2158
             acceptChannel: acceptChannel
cg@3413
  2159
             acceptOnPointerLeave: true
cg@3413
  2160
           )
cg@3413
  2161
          (HorizontalPanelViewSpec
cg@3413
  2162
             name: 'HorizontalPanel1'
cg@3413
  2163
             layout: (LayoutFrame 0 0.0 -30 1 0 1.0 0 1)
cg@3413
  2164
             visibilityChannel: cropBoxIsDialog
cg@3413
  2165
             horizontalLayout: fitSpace
cg@3413
  2166
             verticalLayout: center
cg@3413
  2167
             horizontalSpace: 3
cg@3413
  2168
             verticalSpace: 3
cg@3413
  2169
             reverseOrderIfOKAtLeft: true
cg@3413
  2170
             component: 
cg@3413
  2171
            (SpecCollection
cg@3413
  2172
               collection: (
cg@3413
  2173
                (ActionButtonSpec
cg@3413
  2174
                   label: 'Cancel'
cg@3413
  2175
                   name: 'Button1'
cg@3413
  2176
                   translateLabel: true
cg@3413
  2177
                   resizeForLabel: true
cg@3413
  2178
                   tabable: true
cg@3413
  2179
                   model: cancel
cg@3413
  2180
                   extent: (Point 116 28)
cg@3413
  2181
                 )
cg@3413
  2182
                (ActionButtonSpec
cg@3413
  2183
                   label: 'Apply'
cg@3413
  2184
                   name: 'Button3'
cg@3413
  2185
                   translateLabel: true
cg@3413
  2186
                   resizeForLabel: true
cg@3413
  2187
                   tabable: true
cg@3413
  2188
                   model: applyCropAction
cg@3413
  2189
                   extent: (Point 116 28)
cg@3413
  2190
                 )
cg@3413
  2191
                (ActionButtonSpec
cg@3413
  2192
                   label: 'OK'
cg@3413
  2193
                   name: 'Button2'
cg@3413
  2194
                   translateLabel: true
cg@3413
  2195
                   resizeForLabel: true
cg@3413
  2196
                   tabable: true
cg@3413
  2197
                   model: accept
cg@3413
  2198
                   extent: (Point 116 28)
cg@3413
  2199
                 )
cg@3413
  2200
                )
cg@3413
  2201
              
cg@3413
  2202
             )
cg@3413
  2203
           )
cg@3413
  2204
          )
cg@3413
  2205
        
cg@3413
  2206
       )
cg@3413
  2207
     )
cg@3413
  2208
!
cg@3413
  2209
sv@1740
  2210
shiftDialogSpec
cg@1480
  2211
    "This resource specification was automatically generated
cg@1480
  2212
     by the UIPainter of ST/X."
cg@1480
  2213
cg@1480
  2214
    "Do not manually edit this!! If it is corrupted,
cg@1480
  2215
     the UIPainter may not be able to read the specification."
cg@1480
  2216
cg@1480
  2217
    "
sv@1740
  2218
     UIPainter new openOnClass:ImageEditor andSelector:#shiftDialogSpec
sv@1740
  2219
     ImageEditor new openInterface:#shiftDialogSpec
cg@1480
  2220
    "
cg@1480
  2221
cg@1480
  2222
    <resource: #canvas>
cg@1480
  2223
cg@1480
  2224
    ^ 
sv@1740
  2225
     #(FullSpec
sv@1740
  2226
        name: shiftDialogSpec
sv@1740
  2227
        window: 
sv@1740
  2228
       (WindowSpec
sv@1740
  2229
          label: 'Shift'
sv@1740
  2230
          name: 'Shift'
sv@1740
  2231
          min: (Point 10 10)
sv@1740
  2232
          bounds: (Rectangle 14 46 259 229)
cg@1480
  2233
        )
sv@1740
  2234
        component: 
sv@1740
  2235
       (SpecCollection
sv@1740
  2236
          collection: (
sv@1740
  2237
           (LabelSpec
sv@1740
  2238
              label: 'Amount:'
sv@1740
  2239
              name: 'AmountLabel'
sv@1740
  2240
              layout: (LayoutFrame 14 0 21 0 90 0 43 0)
sv@1740
  2241
              translateLabel: true
sv@1740
  2242
              adjust: right
cg@1480
  2243
            )
sv@1740
  2244
           (InputFieldSpec
sv@1740
  2245
              name: 'AmountEntryField'
sv@1740
  2246
              layout: (LayoutFrame 95 0 21 0 139 0 43 0)
sv@1740
  2247
              tabable: true
sv@1740
  2248
              model: shiftAmount
sv@1740
  2249
              type: number
sv@1740
  2250
              acceptChannel: acceptChannel
sv@1740
  2251
              acceptOnPointerLeave: false
cg@1480
  2252
            )
sv@1740
  2253
           (HorizontalPanelViewSpec
sv@1740
  2254
              name: 'HorizontalPanel1'
sv@1740
  2255
              layout: (LayoutFrame 0 0.0 -30 1 0 1.0 0 1)
sv@1740
  2256
              horizontalLayout: fitSpace
sv@1740
  2257
              verticalLayout: center
sv@1740
  2258
              horizontalSpace: 3
sv@1740
  2259
              verticalSpace: 3
sv@1740
  2260
              reverseOrderIfOKAtLeft: true
sv@1740
  2261
              component: 
sv@1740
  2262
             (SpecCollection
sv@1740
  2263
                collection: (
sv@1740
  2264
                 (ActionButtonSpec
sv@1740
  2265
                    label: 'Cancel'
sv@1740
  2266
                    name: 'Button1'
sv@1740
  2267
                    translateLabel: true
sv@1740
  2268
                    tabable: true
sv@1740
  2269
                    model: cancel
sv@1740
  2270
                    extent: (Point 118 22)
cg@1480
  2271
                  )
sv@1740
  2272
                 (ActionButtonSpec
sv@1740
  2273
                    label: 'OK'
sv@1740
  2274
                    name: 'Button2'
sv@1740
  2275
                    translateLabel: true
sv@1740
  2276
                    tabable: true
sv@1740
  2277
                    model: accept
sv@1740
  2278
                    extent: (Point 118 22)
cg@1480
  2279
                  )
cg@1480
  2280
                 )
cg@1480
  2281
               
cg@1480
  2282
              )
cg@1480
  2283
            )
sv@1740
  2284
           (ArrowButtonSpec
sv@1740
  2285
              name: 'upArrowButton'
sv@1740
  2286
              layout: (LayoutFrame 105 0 63 0 127 0 85 0)
sv@1740
  2287
              model: shiftUpNow
sv@1740
  2288
              isTriggerOnDown: true
sv@1740
  2289
              autoRepeat: true
sv@1740
  2290
              actionValue: ''
sv@1740
  2291
              direction: up
sv@1740
  2292
            )
sv@1740
  2293
           (ArrowButtonSpec
sv@1740
  2294
              name: 'leftArrowButton'
sv@1740
  2295
              layout: (LayoutFrame 84 0 86 0 106 0 108 0)
sv@1740
  2296
              model: shiftLeftNow
sv@1740
  2297
              isTriggerOnDown: true
sv@1740
  2298
              autoRepeat: true
sv@1740
  2299
              actionValue: ''
sv@1740
  2300
              direction: left
sv@1740
  2301
            )
sv@1740
  2302
           (ArrowButtonSpec
sv@1740
  2303
              name: 'rightArrowButton'
sv@1740
  2304
              layout: (LayoutFrame 126 0 86 0 148 0 108 0)
sv@1740
  2305
              model: shiftRightNow
sv@1740
  2306
              isTriggerOnDown: true
sv@1740
  2307
              autoRepeat: true
sv@1740
  2308
              actionValue: ''
sv@1740
  2309
              direction: right
sv@1740
  2310
            )
sv@1740
  2311
           (ArrowButtonSpec
sv@1740
  2312
              name: 'downArrowButton'
sv@1740
  2313
              layout: (LayoutFrame 105 0 107 0 127 0 129 0)
sv@1740
  2314
              model: shiftDownNow
sv@1740
  2315
              isTriggerOnDown: true
sv@1740
  2316
              autoRepeat: true
sv@1740
  2317
              actionValue: ''
sv@1740
  2318
              direction: down
sv@1740
  2319
            )
sv@1740
  2320
           (CheckBoxSpec
sv@1740
  2321
              label: 'Wrap'
sv@1740
  2322
              name: 'CheckBox1'
sv@1740
  2323
              layout: (LayoutFrame 153 0 22 0 289 0 44 0)
sv@1740
  2324
              model: wrap
sv@1740
  2325
              translateLabel: true
sv@1740
  2326
            )
cg@1480
  2327
           )
cg@1480
  2328
         
cg@1480
  2329
        )
cg@1480
  2330
      )
cg@1480
  2331
!
cg@1480
  2332
cg@3413
  2333
uncropSpec
sv@1740
  2334
    "This resource specification was automatically generated
sv@1740
  2335
     by the UIPainter of ST/X."
cg@1796
  2336
sv@1740
  2337
    "Do not manually edit this!! If it is corrupted,
sv@1740
  2338
     the UIPainter may not be able to read the specification."
cg@1796
  2339
sv@1740
  2340
    "
cg@3413
  2341
     UIPainter new openOnClass:ImageEditor andSelector:#uncropSpec
cg@3413
  2342
     ImageEditor new openInterface:#uncropSpec
sv@1740
  2343
    "
cg@1796
  2344
cg@1796
  2345
    <resource: #canvas>
cg@1796
  2346
cg@1796
  2347
    ^ 
cg@3413
  2348
    #(FullSpec
cg@3413
  2349
       name: uncropSpec
cg@3413
  2350
       window: 
cg@3413
  2351
      (WindowSpec
cg@3413
  2352
         label: 'Add Border(s)'
cg@3413
  2353
         name: 'Add Border(s)'
cg@3413
  2354
         min: (Point 10 10)
cg@3413
  2355
         max: (Point 800 478)
cg@3413
  2356
         bounds: (Rectangle 0 0 261 228)
cg@3413
  2357
       )
cg@3413
  2358
       component: 
cg@3413
  2359
      (SpecCollection
cg@3413
  2360
         collection: (
cg@3413
  2361
          (LabelSpec
cg@3413
  2362
             label: 'Left:'
cg@3413
  2363
             name: 'Label1'
cg@3413
  2364
             layout: (LayoutFrame 14 0 21 0 90 0 43 0)
cg@3413
  2365
             translateLabel: true
cg@3413
  2366
             adjust: right
cg@3413
  2367
           )
cg@3413
  2368
          (InputFieldSpec
cg@3413
  2369
             name: 'EntryField1'
cg@3413
  2370
             layout: (LayoutFrame 95 0 21 0 132 0 43 0)
cg@3413
  2371
             model: cropLeftAmount
cg@3413
  2372
             type: number
cg@3413
  2373
             acceptOnPointerLeave: false
cg@3413
  2374
           )
cg@3413
  2375
          (LabelSpec
cg@3413
  2376
             label: 'Right:'
cg@3413
  2377
             name: 'Label2'
cg@3413
  2378
             layout: (LayoutFrame 14 0 51 0 90 0 73 0)
cg@3413
  2379
             translateLabel: true
cg@3413
  2380
             adjust: right
cg@3413
  2381
           )
cg@3413
  2382
          (InputFieldSpec
cg@3413
  2383
             name: 'EntryField2'
cg@3413
  2384
             layout: (LayoutFrame 95 0 51 0 132 0 73 0)
cg@3413
  2385
             model: cropRightAmount
cg@3413
  2386
             type: number
cg@3413
  2387
             acceptOnPointerLeave: false
cg@3413
  2388
           )
cg@3413
  2389
          (LabelSpec
cg@3413
  2390
             label: 'Top:'
cg@3413
  2391
             name: 'Label3'
cg@3413
  2392
             layout: (LayoutFrame 14 0 81 0 90 0 103 0)
cg@3413
  2393
             translateLabel: true
cg@3413
  2394
             adjust: right
cg@3413
  2395
           )
cg@3413
  2396
          (InputFieldSpec
cg@3413
  2397
             name: 'EntryField3'
cg@3413
  2398
             layout: (LayoutFrame 95 0 81 0 132 0 103 0)
cg@3413
  2399
             model: cropTopAmount
cg@3413
  2400
             type: number
cg@3413
  2401
             acceptOnPointerLeave: false
cg@3413
  2402
           )
cg@3413
  2403
          (LabelSpec
cg@3413
  2404
             label: 'Bottom:'
cg@3413
  2405
             name: 'Label4'
cg@3413
  2406
             layout: (LayoutFrame 14 0 111 0 90 0 133 0)
cg@3413
  2407
             translateLabel: true
cg@3413
  2408
             adjust: right
cg@3413
  2409
           )
cg@3413
  2410
          (InputFieldSpec
cg@3413
  2411
             name: 'EntryField4'
cg@3413
  2412
             layout: (LayoutFrame 95 0 111 0 132 0 133 0)
cg@3413
  2413
             model: cropBottomAmount
cg@3413
  2414
             type: number
cg@3413
  2415
             acceptOnPointerLeave: false
cg@3413
  2416
           )
cg@3413
  2417
          (HorizontalPanelViewSpec
cg@3413
  2418
             name: 'HorizontalPanel1'
cg@3413
  2419
             layout: (LayoutFrame 0 0.0 -30 1 0 1.0 0 1)
cg@3413
  2420
             horizontalLayout: fitSpace
cg@3413
  2421
             verticalLayout: center
cg@3413
  2422
             horizontalSpace: 3
cg@3413
  2423
             verticalSpace: 3
cg@3413
  2424
             reverseOrderIfOKAtLeft: true
cg@3413
  2425
             component: 
cg@3413
  2426
            (SpecCollection
cg@3413
  2427
               collection: (
cg@3413
  2428
                (ActionButtonSpec
cg@3413
  2429
                   label: 'Cancel'
cg@3413
  2430
                   name: 'Button1'
cg@3413
  2431
                   translateLabel: true
cg@3413
  2432
                   model: cancel
cg@3413
  2433
                   extent: (Point 124 22)
cg@1796
  2434
                 )
cg@3413
  2435
                (ActionButtonSpec
cg@3413
  2436
                   label: 'OK'
cg@3413
  2437
                   name: 'Button2'
cg@3413
  2438
                   translateLabel: true
cg@3413
  2439
                   model: accept
cg@3413
  2440
                   extent: (Point 125 22)
cg@3413
  2441
                 )
cg@3413
  2442
                )
cg@3413
  2443
              
cg@3413
  2444
             )
cg@1796
  2445
           )
cg@3413
  2446
          )
cg@3413
  2447
        
cg@3413
  2448
       )
cg@3413
  2449
     )
sv@1740
  2450
!
sv@1740
  2451
tz@767
  2452
windowSpec
tz@767
  2453
    "This resource specification was automatically generated
tz@767
  2454
     by the UIPainter of ST/X."
tz@767
  2455
tz@767
  2456
    "Do not manually edit this!! If it is corrupted,
tz@767
  2457
     the UIPainter may not be able to read the specification."
tz@767
  2458
tz@767
  2459
    "
tz@767
  2460
     UIPainter new openOnClass:ImageEditor andSelector:#windowSpec
tz@767
  2461
     ImageEditor new openInterface:#windowSpec
tz@767
  2462
     ImageEditor open
tz@767
  2463
    "
tz@767
  2464
tz@767
  2465
    <resource: #canvas>
tz@767
  2466
cg@1558
  2467
    ^ 
cg@3195
  2468
    #(FullSpec
cg@3195
  2469
       name: windowSpec
mawalch@3546
  2470
       uuid: 'ea3a8340-1e4a-11b2-83b1-485b39758412'
cg@3195
  2471
       window: 
cg@3195
  2472
      (WindowSpec
cg@3195
  2473
         label: 'Image Editor'
cg@3195
  2474
         name: 'Image Editor'
mawalch@3546
  2475
         uuid: 'ea3a8bec-1e4a-11b2-83b1-485b39758412'
cg@3443
  2476
         min: (Point 800 400)
cg@3443
  2477
         bounds: (Rectangle 0 0 800 446)
cg@3195
  2478
         menu: menu
cg@3195
  2479
         icon: defaultIcon
cg@3195
  2480
       )
cg@3195
  2481
       component: 
cg@3195
  2482
      (SpecCollection
cg@3195
  2483
         collection: (
cg@3195
  2484
          (MenuPanelSpec
cg@3195
  2485
             name: 'menuToolbarView'
cg@3195
  2486
             layout: (LayoutFrame 0 0.0 0 0 0 1.0 32 0)
mawalch@3546
  2487
             style: (FontDescription helvetica medium roman 10 #'iso10646-1' nil nil)
mawalch@3546
  2488
             uuid: 'ea3a98c6-1e4a-11b2-83b1-485b39758412'
cg@3195
  2489
             menu: menuToolbar
cg@3195
  2490
             showSeparatingLines: true
cg@3195
  2491
           )
cg@3195
  2492
          (VariableHorizontalPanelSpec
cg@3195
  2493
             name: 'mainPanel'
cg@3195
  2494
             layout: (LayoutFrame 0 0.0 34 0.0 0 1.0 -26 1.0)
mawalch@3546
  2495
             uuid: 'ea3a9eca-1e4a-11b2-83b1-485b39758412'
cg@3195
  2496
             snapMode: both
cg@3195
  2497
             barLevel: 0
cg@3195
  2498
             component: 
cg@3195
  2499
            (SpecCollection
cg@3195
  2500
               collection: (
cg@3195
  2501
                (ViewSpec
cg@3195
  2502
                   name: 'leftView'
mawalch@3546
  2503
                   uuid: 'ea3aa3d4-1e4a-11b2-83b1-485b39758412'
cg@3195
  2504
                   level: 1
cg@3195
  2505
                   component: 
cg@3195
  2506
                  (SpecCollection
cg@3195
  2507
                     collection: (
cg@3195
  2508
                      (VariableVerticalPanelSpec
cg@3195
  2509
                         name: 'verticalPanel'
cg@3195
  2510
                         layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
mawalch@3546
  2511
                         uuid: 'ea3aa672-1e4a-11b2-83b1-485b39758412'
cg@3195
  2512
                         level: 0
cg@3195
  2513
                         snapMode: both
cg@3195
  2514
                         component: 
cg@3195
  2515
                        (SpecCollection
cg@3195
  2516
                           collection: (
cg@3195
  2517
                            (ViewSpec
cg@3404
  2518
                               name: 'ColorAnCropBox'
mawalch@3546
  2519
                               uuid: 'ea3aa992-1e4a-11b2-83b1-485b39758412'
cg@3195
  2520
                               component: 
cg@3195
  2521
                              (SpecCollection
cg@3195
  2522
                                 collection: (
cg@3413
  2523
                                  (TabViewSpec
cg@3413
  2524
                                     name: 'TabHeader1'
cg@3413
  2525
                                     layout: (LayoutFrame 0 0 0 0 0 1 36 0)
mawalch@3546
  2526
                                     uuid: 'ea3aab9a-1e4a-11b2-83b1-485b39758412'
cg@3413
  2527
                                     model: colorCropTabSelectionIndexHolder
cg@3413
  2528
                                     menu: colorCropTabLabelList
cg@3413
  2529
                                     useIndex: true
cg@3413
  2530
                                     translateLabel: true
cg@3413
  2531
                                   )
cg@3413
  2532
                                  (ViewSpec
cg@3413
  2533
                                     name: 'ColorBox'
cg@3413
  2534
                                     layout: (LayoutFrame 0 0 36 0 0 1 0 1)
mawalch@3546
  2535
                                     uuid: 'ea3ab0ae-1e4a-11b2-83b1-485b39758412'
cg@3413
  2536
                                     visibilityChannel: colorBoxVisibleHolder
cg@3413
  2537
                                     component: 
cg@3413
  2538
                                    (SpecCollection
cg@3413
  2539
                                       collection: (
cg@3413
  2540
                                        (MenuPanelSpec
cg@3413
  2541
                                           name: 'MouseButtonColorToolBar'
cg@3413
  2542
                                           layout: (LayoutFrame 0 0.0 0 0 0 1.0 24 0)
mawalch@3546
  2543
                                           uuid: 'ea3ab2d4-1e4a-11b2-83b1-485b39758412'
cg@3413
  2544
                                           level: 0
cg@3413
  2545
                                           menu: menuMouseButtonColors
cg@3413
  2546
                                         )
cg@3487
  2547
                                        (LabelSpec
cg@3487
  2548
                                           label: 'Label'
cg@3487
  2549
                                           name: 'Label1'
cg@3487
  2550
                                           layout: (LayoutFrame -160 1 0 0 -104 1 22 0)
mawalch@3546
  2551
                                           activeHelpKey: drawingAlpha
mawalch@3546
  2552
                                           uuid: 'ea3ab590-1e4a-11b2-83b1-485b39758412'
mawalch@3546
  2553
                                           visibilityChannel: alphaVisibleHolder
cg@3487
  2554
                                           translateLabel: true
cg@3487
  2555
                                           labelChannel: alphaText
cg@3487
  2556
                                         )
cg@3487
  2557
                                        (InputFieldSpec
cg@3487
  2558
                                           name: 'EntryField1'
cg@3487
  2559
                                           layout: (LayoutFrame -106 1 2 0 -56 1 22 0)
mawalch@3546
  2560
                                           activeHelpKey: drawingAlpha
mawalch@3546
  2561
                                           uuid: 'ea3aba90-1e4a-11b2-83b1-485b39758412'
mawalch@3546
  2562
                                           visibilityChannel: alphaVisibleHolder
mawalch@3546
  2563
                                           model: alphaHolder
mawalch@3546
  2564
                                           type: numberInRange
cg@3487
  2565
                                           acceptOnReturn: true
cg@3487
  2566
                                           acceptOnTab: true
mawalch@3546
  2567
                                           numChars: 3
mawalch@3546
  2568
                                           minValue: 0
mawalch@3546
  2569
                                           maxValue: 100
cg@3487
  2570
                                           acceptOnPointerLeave: true
cg@3487
  2571
                                         )
cg@3421
  2572
                                        (ViewSpec
cg@3421
  2573
                                           name: 'Box1'
cg@3421
  2574
                                           layout: (LayoutFrame -40 1.0 4 0 -26 1.0 18 0)
cg@3421
  2575
                                           activeHelpKey: drawingColor1
mawalch@3546
  2576
                                           uuid: 'ea3ac1c0-1e4a-11b2-83b1-485b39758412'
cg@3421
  2577
                                           level: -1
cg@3421
  2578
                                           backgroundChannel: drawingColor1Holder
cg@3421
  2579
                                         )
cg@3421
  2580
                                        (ViewSpec
cg@3421
  2581
                                           name: 'Box2'
cg@3421
  2582
                                           layout: (LayoutFrame -25 1.0 4 0 -11 1.0 18 0)
cg@3421
  2583
                                           activeHelpKey: drawingColor2
mawalch@3546
  2584
                                           uuid: 'ea3ac418-1e4a-11b2-83b1-485b39758412'
cg@3421
  2585
                                           level: -1
cg@3421
  2586
                                           backgroundChannel: drawingColor2Holder
cg@3421
  2587
                                         )
cg@3413
  2588
                                        (DataSetSpec
cg@3413
  2589
                                           name: 'colorDataSetView'
cg@3413
  2590
                                           layout: (LayoutFrame 0 0.0 26 0.0 0 1.0 0 1.0)
cg@3413
  2591
                                           activeHelpKey: colorMapTable
mawalch@3546
  2592
                                           style: (FontDescription helvetica medium roman 10 #'iso10646-1' nil nil)
mawalch@3546
  2593
                                           uuid: 'ea3ac652-1e4a-11b2-83b1-485b39758412'
cg@3413
  2594
                                           model: selectedColors
cg@3475
  2595
                                           menu: colorMapMenuHolder
cg@3413
  2596
                                           hasHorizontalScrollBar: true
cg@3413
  2597
                                           hasVerticalScrollBar: true
cg@3413
  2598
                                           miniScrollerHorizontal: true
cg@3413
  2599
                                           miniScrollerVertical: true
cg@3413
  2600
                                           dataList: listOfColors
cg@3413
  2601
                                           has3Dseparators: true
cg@3413
  2602
                                           doubleClickSelector: doubleClickOnColor:
cg@3413
  2603
                                           columnHolder: colorTableColumns
cg@3413
  2604
                                           multipleSelectOk: true
cg@3413
  2605
                                           verticalSpacing: 1
cg@3413
  2606
                                           columnAdaptor: colorColumnAdaptor
cg@3413
  2607
                                         )
cg@3413
  2608
                                        )
cg@3413
  2609
                                      
cg@3413
  2610
                                     )
cg@3413
  2611
                                   )
cg@3413
  2612
                                  (ViewSpec
cg@3413
  2613
                                     name: 'FloodFillBox'
cg@3413
  2614
                                     layout: (LayoutFrame 0 0 36 0 0 1 0 1)
mawalch@3546
  2615
                                     uuid: 'ea3acfda-1e4a-11b2-83b1-485b39758412'
cg@3413
  2616
                                     visibilityChannel: floodFillBoxVisibleHolder
cg@3413
  2617
                                     component: 
cg@3413
  2618
                                    (SpecCollection
cg@3413
  2619
                                       collection: (
cg@3413
  2620
                                        (UISubSpecification
cg@3413
  2621
                                           name: 'SubSpecification2'
cg@3413
  2622
                                           layout: (LayoutFrame 0 0 0 0 0 1 0 1)
mawalch@3546
  2623
                                           uuid: 'ea3ad21e-1e4a-11b2-83b1-485b39758412'
cg@3413
  2624
                                           minorKey: floodFillToleranceSpec
cg@3413
  2625
                                         )
cg@3413
  2626
                                        )
cg@3413
  2627
                                      
cg@3413
  2628
                                     )
cg@3413
  2629
                                   )
cg@3400
  2630
                                  (ViewSpec
cg@3400
  2631
                                     name: 'CropBox'
cg@3413
  2632
                                     layout: (LayoutFrame 0 0 36 0 0 1 0 1)
mawalch@3546
  2633
                                     uuid: 'ea3ad552-1e4a-11b2-83b1-485b39758412'
cg@3400
  2634
                                     visibilityChannel: cropBoxVisibleHolder
cg@3400
  2635
                                     component: 
cg@3400
  2636
                                    (SpecCollection
cg@3400
  2637
                                       collection: (
cg@3400
  2638
                                        (UISubSpecification
cg@3400
  2639
                                           name: 'SubSpecification1'
cg@3400
  2640
                                           layout: (LayoutFrame 0 0 0 0 0 1 0 1)
mawalch@3546
  2641
                                           uuid: 'ea3ad76e-1e4a-11b2-83b1-485b39758412'
cg@3413
  2642
                                           minorKey: cropSpec
cg@3400
  2643
                                         )
cg@3400
  2644
                                        )
cg@3400
  2645
                                      
cg@3400
  2646
                                     )
cg@3400
  2647
                                   )
cg@3195
  2648
                                  )
cg@3195
  2649
                                
cg@3195
  2650
                               )
cg@1558
  2651
                             )
cg@3195
  2652
                            (ArbitraryComponentSpec
cg@3195
  2653
                               name: 'imagePreView'
cg@3195
  2654
                               activeHelpKey: previewView
mawalch@3546
  2655
                               uuid: 'ea3ad9a8-1e4a-11b2-83b1-485b39758412'
cg@3195
  2656
                               menu: previewMenu
cg@3195
  2657
                               hasHorizontalScrollBar: true
cg@3195
  2658
                               hasVerticalScrollBar: true
cg@3195
  2659
                               miniScrollerHorizontal: false
cg@3195
  2660
                               miniScrollerVertical: false
cg@3195
  2661
                               hasBorder: false
cg@3195
  2662
                               component: ImageView
cg@3195
  2663
                             )
cg@3195
  2664
                            )
cg@3195
  2665
                          
cg@3195
  2666
                         )
cg@3195
  2667
                         handles: (Any 0.5 1.0)
cg@1558
  2668
                       )
cg@3195
  2669
                      )
cg@3195
  2670
                    
cg@3195
  2671
                   )
cg@3195
  2672
                 )
cg@3195
  2673
                (ViewSpec
cg@3195
  2674
                   name: 'rightView'
mawalch@3546
  2675
                   uuid: 'ea3ade8a-1e4a-11b2-83b1-485b39758412'
cg@3195
  2676
                   component: 
cg@3195
  2677
                  (SpecCollection
cg@3195
  2678
                     collection: (
cg@3195
  2679
                      (MenuPanelSpec
cg@3195
  2680
                         name: 'ToolBar1'
cg@3195
  2681
                         layout: (LayoutFrame 0 0 0 0.0 28 0 0 1.0)
mawalch@3546
  2682
                         uuid: 'ea3ae0b0-1e4a-11b2-83b1-485b39758412'
cg@3195
  2683
                         level: 1
cg@3195
  2684
                         menu: toolsMenuToolbar
cg@3195
  2685
                         verticalLayout: true
cg@3195
  2686
                         centerItems: true
cg@3195
  2687
                         textDefault: true
cg@3195
  2688
                       )
cg@3195
  2689
                      (ViewSpec
cg@3195
  2690
                         name: 'editingView'
cg@3195
  2691
                         layout: (LayoutFrame 28 0.0 0 0.0 0 1.0 0 1.0)
mawalch@3546
  2692
                         uuid: 'ea3ae3bc-1e4a-11b2-83b1-485b39758412'
cg@3195
  2693
                         level: 1
cg@3195
  2694
                         component: 
cg@3195
  2695
                        (SpecCollection
cg@3195
  2696
                           collection: (
cg@3195
  2697
                            (ArbitraryComponentSpec
cg@3195
  2698
                               name: 'imageEditView'
cg@3195
  2699
                               layout: (LayoutFrame 2 0.0 2 0.0 -2 1.0 -24 1.0)
mawalch@3546
  2700
                               uuid: 'ea3ae5ec-1e4a-11b2-83b1-485b39758412'
cg@3195
  2701
                               hasHorizontalScrollBar: true
cg@3195
  2702
                               hasVerticalScrollBar: true
cg@3195
  2703
                               hasBorder: false
cg@3195
  2704
                               component: ImageEditView
cg@1637
  2705
                             )
cg@3195
  2706
                            (LabelSpec
cg@3195
  2707
                               name: 'coordLabel'
cg@3195
  2708
                               layout: (LayoutFrame 2 0.0 -22 1 -83 1.0 0 1.0)
mawalch@3546
  2709
                               uuid: 'ea3ae8da-1e4a-11b2-83b1-485b39758412'
cg@3195
  2710
                               level: -1
cg@3195
  2711
                               translateLabel: true
cg@3195
  2712
                               labelChannel: imageInfoHolder
cg@3195
  2713
                               resizeForLabel: false
cg@3195
  2714
                               adjust: left
cg@3195
  2715
                             )
cg@3195
  2716
                            (ArrowButtonSpec
cg@3195
  2717
                               name: 'magnifyDownButton'
cg@3195
  2718
                               layout: (LayoutFrame -80 1 -22 1 -58 1 0 1)
cg@3195
  2719
                               activeHelpKey: magnifyImageDown
mawalch@3546
  2720
                               uuid: 'ea3aebd2-1e4a-11b2-83b1-485b39758412'
cg@3195
  2721
                               translateLabel: true
cg@3195
  2722
                               model: doMagnifyDown
cg@3195
  2723
                               enableChannel: imageIsLoadedHolder
cg@3195
  2724
                               isTriggerOnDown: true
cg@3479
  2725
                               autoRepeat: true
cg@3195
  2726
                               direction: left
cg@3195
  2727
                             )
cg@3195
  2728
                            (ArrowButtonSpec
cg@3195
  2729
                               name: 'magnifyUpButton'
cg@3195
  2730
                               layout: (LayoutFrame -24 1 -22 1 -2 1 0 1)
cg@3195
  2731
                               activeHelpKey: magnifyImageUp
mawalch@3546
  2732
                               uuid: 'ea3af26c-1e4a-11b2-83b1-485b39758412'
cg@3195
  2733
                               translateLabel: true
cg@3195
  2734
                               model: doMagnifyUp
cg@3195
  2735
                               enableChannel: imageIsLoadedHolder
cg@3195
  2736
                               isTriggerOnDown: true
cg@3479
  2737
                               autoRepeat: true
cg@3195
  2738
                               direction: right
cg@3195
  2739
                             )
cg@3195
  2740
                            (InputFieldSpec
cg@3195
  2741
                               name: 'magnificationInputField'
cg@3195
  2742
                               layout: (LayoutFrame -57 1 -22 1 -26 1 0 1)
cg@3195
  2743
                               activeHelpKey: magnificationNumber
mawalch@3546
  2744
                               uuid: 'ea3af62c-1e4a-11b2-83b1-485b39758412'
cg@3195
  2745
                               enableChannel: imageIsLoadedHolder
cg@3195
  2746
                               model: magnificationHolder
cg@3195
  2747
                               type: numberInRange
cg@3195
  2748
                               acceptOnReturn: true
cg@3195
  2749
                               acceptOnTab: true
cg@3195
  2750
                               numChars: 2
cg@3195
  2751
                               minValue: 1
cg@3195
  2752
                               maxValue: 99
cg@3195
  2753
                               acceptOnPointerLeave: true
cg@3195
  2754
                             )
cg@3195
  2755
                            )
cg@3195
  2756
                          
cg@3195
  2757
                         )
cg@1558
  2758
                       )
cg@3195
  2759
                      )
cg@3195
  2760
                    
cg@3195
  2761
                   )
cg@1558
  2762
                 )
cg@3195
  2763
                )
cg@3195
  2764
              
cg@3195
  2765
             )
cg@3443
  2766
             handles: (Any 0.47999999999999998 1.0)
cg@1558
  2767
           )
cg@3195
  2768
          (UISubSpecification
cg@3195
  2769
             name: 'infoBarSubSpec'
cg@3195
  2770
             layout: (LayoutFrame 0 0.0 -24 1 0 1.0 0 1.0)
mawalch@3546
  2771
             uuid: 'ea3afaf0-1e4a-11b2-83b1-485b39758412'
cg@3195
  2772
             majorKey: ToolApplicationModel
cg@3195
  2773
             minorKey: windowSpecForInfoBar
cg@3195
  2774
           )
cg@3195
  2775
          )
cg@3195
  2776
        
cg@3195
  2777
       )
cg@3195
  2778
     )
tz@519
  2779
! !
tz@519
  2780
tz@519
  2781
!ImageEditor class methodsFor:'menu specs'!
tz@519
  2782
cg@1053
  2783
colorMapMenu
cg@1053
  2784
    "This resource specification was automatically generated
cg@1053
  2785
     by the MenuEditor of ST/X."
cg@1053
  2786
cg@1053
  2787
    "Do not manually edit this!! If it is corrupted,
cg@1053
  2788
     the MenuEditor may not be able to read the specification."
cg@1053
  2789
cg@3592
  2790
cg@1053
  2791
    "
cg@1847
  2792
     MenuEditor new openOnClass:ImageEditor andSelector:#colorMapMenu
cg@1847
  2793
     (Menu new fromLiteralArrayEncoding:(ImageEditor colorMapMenu)) startUp
cg@1053
  2794
    "
cg@1053
  2795
cg@1053
  2796
    <resource: #menu>
cg@1053
  2797
cg@1847
  2798
    ^ 
cg@1847
  2799
     #(Menu
cg@1847
  2800
        (
cg@1847
  2801
         (MenuItem
cg@3475
  2802
            enabled: canAddColorToColormapHolder
cg@1847
  2803
            label: 'Add Color'
cg@1847
  2804
            itemValue: addColorToColormap
cg@1847
  2805
          )
cg@1847
  2806
         (MenuItem
cg@3475
  2807
            enabled: canAddColorToColormapHolder