UILayoutTool.st
author Claus Gittinger <cg@exept.de>
Sat, 21 Jul 2012 18:58:03 +0200
changeset 2898 c7f6c498df6a
parent 2794 56fb74312287
child 2949 325e4c28a579
permissions -rw-r--r--
category of:15 methods
ca@163
     1
"
ca@163
     2
 COPYRIGHT (c) 1995 by eXept Software AG
ca@163
     3
              All Rights Reserved
ca@163
     4
ca@163
     5
 This software is furnished under a license and may be used
ca@163
     6
 only in accordance with the terms of that license and with the
ca@163
     7
 inclusion of the above copyright notice.   This software may not
ca@163
     8
 be provided or otherwise made available to, or used by, any
ca@163
     9
 other person.  No title to or ownership of the software is
ca@163
    10
 hereby transferred.
ca@163
    11
"
cg@1409
    12
"{ Package: 'stx:libtool2' }"
cg@1409
    13
ca@163
    14
ApplicationModel subclass:#UILayoutTool
ca@1305
    15
	instanceVariableNames:'modifiedHolder aspects selection currentTool layoutView tabList
ca@1305
    16
		layoutSpec toolsDictionary'
ca@163
    17
	classVariableNames:''
ca@163
    18
	poolDictionaries:''
ca@163
    19
	category:'Interface-UIPainter'
ca@163
    20
!
ca@163
    21
cg@1343
    22
ApplicationModel subclass:#AnyLayout
cg@1339
    23
	instanceVariableNames:''
cg@1339
    24
	classVariableNames:''
cg@1339
    25
	poolDictionaries:''
cg@1339
    26
	privateIn:UILayoutTool
cg@1339
    27
!
cg@1339
    28
ca@1447
    29
UILayoutTool::AnyLayout subclass:#AlignmentOrigin
ca@1447
    30
	instanceVariableNames:''
ca@1447
    31
	classVariableNames:''
ca@1447
    32
	poolDictionaries:''
ca@1447
    33
	privateIn:UILayoutTool
ca@1447
    34
!
ca@1447
    35
ca@1447
    36
UILayoutTool::AnyLayout subclass:#Extent
ca@1447
    37
	instanceVariableNames:''
ca@1447
    38
	classVariableNames:''
ca@1447
    39
	poolDictionaries:''
ca@1447
    40
	privateIn:UILayoutTool
ca@1447
    41
!
ca@1447
    42
cg@1409
    43
UILayoutTool::AnyLayout subclass:#LayoutFrame
cg@1409
    44
	instanceVariableNames:''
werner@1826
    45
	classVariableNames:'DefaultFixPartHeight'
cg@1409
    46
	poolDictionaries:''
cg@1409
    47
	privateIn:UILayoutTool
cg@1409
    48
!
cg@1409
    49
ca@1447
    50
UILayoutTool::AnyLayout subclass:#LayoutOrigin
ca@1334
    51
	instanceVariableNames:''
ca@1334
    52
	classVariableNames:''
ca@1334
    53
	poolDictionaries:''
ca@1334
    54
	privateIn:UILayoutTool
ca@1334
    55
!
ca@1334
    56
cg@1343
    57
UILayoutTool::AnyLayout subclass:#Point
ca@1304
    58
	instanceVariableNames:''
ca@1304
    59
	classVariableNames:''
ca@1304
    60
	poolDictionaries:''
ca@1304
    61
	privateIn:UILayoutTool
ca@1304
    62
!
ca@1304
    63
cg@1343
    64
UILayoutTool::AnyLayout subclass:#Rectangle
cg@1343
    65
	instanceVariableNames:''
cg@1343
    66
	classVariableNames:''
cg@1343
    67
	poolDictionaries:''
cg@1343
    68
	privateIn:UILayoutTool
cg@1343
    69
!
cg@1343
    70
ca@163
    71
!UILayoutTool class methodsFor:'documentation'!
ca@163
    72
ca@163
    73
copyright
ca@163
    74
"
ca@163
    75
 COPYRIGHT (c) 1995 by eXept Software AG
ca@163
    76
              All Rights Reserved
ca@163
    77
ca@163
    78
 This software is furnished under a license and may be used
ca@163
    79
 only in accordance with the terms of that license and with the
ca@163
    80
 inclusion of the above copyright notice.   This software may not
ca@163
    81
 be provided or otherwise made available to, or used by, any
ca@163
    82
 other person.  No title to or ownership of the software is
ca@163
    83
 hereby transferred.
ca@163
    84
"
ca@163
    85
ca@163
    86
ca@163
    87
ca@163
    88
!
ca@163
    89
ca@163
    90
documentation
ca@163
    91
"
ca@163
    92
    used by the UIPainter to manipulate the layout of the selected component
ca@163
    93
ca@163
    94
    [author:]
ca@163
    95
        Claus Atzkern
ca@163
    96
ca@163
    97
    [see also:]
ca@163
    98
        UIPainter
ca@163
    99
        UIHelpTool
ca@163
   100
        UISpecificationTool
ca@163
   101
"
ca@163
   102
ca@163
   103
ca@163
   104
! !
ca@163
   105
ca@163
   106
!UILayoutTool class methodsFor:'constants'!
ca@163
   107
ca@163
   108
label
ca@163
   109
    ^ 'Layout'
ca@163
   110
! !
ca@163
   111
ca@184
   112
!UILayoutTool class methodsFor:'help specs'!
ca@184
   113
ca@184
   114
helpSpec
tz@741
   115
    "This resource specification was automatically generated
tz@741
   116
     by the UIHelpTool of ST/X."
tz@741
   117
tz@741
   118
    "Do not manually edit this!! If it is corrupted,
tz@741
   119
     the UIHelpTool may not be able to read the specification."
ca@293
   120
ca@184
   121
    "
tz@741
   122
     UIHelpTool openOnClass:UILayoutTool    
ca@293
   123
    "
ca@293
   124
tz@741
   125
    <resource: #help>
tz@741
   126
tz@741
   127
    ^super helpSpec addPairsFrom:#(
tz@741
   128
tz@741
   129
#cornerX
tz@741
   130
'Absolute corner x of the selected widget.'
tz@741
   131
tz@741
   132
#cornerY
tz@741
   133
'Absolute corner y of the selected widget.'
tz@741
   134
tz@741
   135
#layoutTool
tz@741
   136
'Tool to set the layout of the selected widget.'
ca@184
   137
ca@184
   138
#leftAbsolute
tz@714
   139
'Offset of the left edge; positive is to the right, negative to the left.'
ca@184
   140
tz@741
   141
#leftRelative
tz@741
   142
'Relative origin x of the selected widget.'
ca@201
   143
ca@201
   144
#makeLeftAbsolute
cg@1339
   145
'Compute pure-absolute x'
ca@201
   146
tz@741
   147
#makeLeftRelative
cg@1955
   148
'Compute pure-fractional x.'
cg@1339
   149
cg@1339
   150
#makeLeftRelativeFromRight
cg@1339
   151
'Compute fraction+offset for x relative to containers right.'
tz@741
   152
tz@741
   153
#makeTopAbsolute
cg@1339
   154
'Compute pure-absolute y.'
ca@184
   155
ca@201
   156
#makeTopRelative
cg@1955
   157
'Compute pure-fractional y.'
cg@1339
   158
cg@1339
   159
#makeTopRelativeFromBottom
cg@1339
   160
'Compute fraction+offset for y relative to containers bottom.'
ca@201
   161
tz@741
   162
#originX
tz@741
   163
'Absolute origin x of the selected widget.'
ca@184
   164
tz@741
   165
#originY
tz@741
   166
'Absolute origin y of the selected widget.'
tz@741
   167
tz@741
   168
#topAbsolute
tz@741
   169
'Offset of the top edge; positive is to the bottom, negative to the top.'
ca@184
   170
ca@201
   171
#topRelative
tz@714
   172
'Relative origin y of the selected widget.'
ca@184
   173
ca@184
   174
)
ca@184
   175
! !
ca@184
   176
ca@163
   177
!UILayoutTool class methodsFor:'interface specs'!
ca@163
   178
ca@184
   179
layoutOriginSpec
tz@741
   180
    "This resource specification was automatically generated
tz@741
   181
     by the UIPainter of ST/X."
ca@184
   182
tz@741
   183
    "Do not manually edit this!! If it is corrupted,
tz@741
   184
     the UIPainter may not be able to read the specification."
ca@184
   185
ca@184
   186
    "
cg@259
   187
     UIPainter new openOnClass:UILayoutTool andSelector:#layoutOriginSpec
cg@259
   188
     UILayoutTool new openInterface:#layoutOriginSpec
ca@184
   189
    "
ca@184
   190
ca@184
   191
    <resource: #canvas>
ca@184
   192
ca@1304
   193
    ^ 
sv@1738
   194
     #(FullSpec
sv@1738
   195
        name: layoutOriginSpec
sv@1738
   196
        window: 
sv@1738
   197
       (WindowSpec
sv@1738
   198
          label: 'UILayoutTool'
sv@1738
   199
          name: 'UILayoutTool'
sv@1738
   200
          min: (Point 10 10)
ca@2207
   201
          bounds: (Rectangle 0 0 345 107)
ca@1304
   202
        )
sv@1738
   203
        component: 
sv@1738
   204
       (SpecCollection
sv@1738
   205
          collection: (
sv@1738
   206
           (FramedBoxSpec
sv@1738
   207
              label: 'Origin'
sv@1738
   208
              name: 'FramedBox'
sv@1738
   209
              layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 108 0)
sv@1738
   210
              labelPosition: topLeft
ca@2207
   211
              translateLabel: true
sv@1738
   212
              component: 
sv@1738
   213
             (SpecCollection
sv@1738
   214
                collection: (
sv@1738
   215
                 (LabelSpec
sv@1738
   216
                    label: 'Relative:'
sv@1738
   217
                    name: 'labelRelative'
sv@1738
   218
                    layout: (Point 103 6)
cg@1874
   219
                    translateLabel: true
ca@1304
   220
                  )
sv@1738
   221
                 (LabelSpec
sv@1738
   222
                    label: 'Offset:'
sv@1738
   223
                    name: 'labelAbsolute'
sv@1738
   224
                    layout: (Point 203 6)
cg@1874
   225
                    translateLabel: true
ca@1304
   226
                  )
sv@1738
   227
                 (LabelSpec
sv@1738
   228
                    label: 'Left:'
sv@1738
   229
                    name: 'labelLeft'
sv@1738
   230
                    layout: (AlignmentOrigin 68 0 27 0 1 0)
cg@1874
   231
                    translateLabel: true
cg@1339
   232
                  )
sv@1738
   233
                 (ActionButtonSpec
sv@1738
   234
                    label: 'imageFractX'
sv@1738
   235
                    name: 'actionRelativeLeft'
sv@1738
   236
                    layout: (LayoutFrame 77 0 24 0 99 0 46 0)
sv@1738
   237
                    activeHelpKey: makeLeftRelative
sv@1738
   238
                    hasCharacterOrientedLabel: false
sv@1738
   239
                    tabable: true
sv@1738
   240
                    model: relativeLeft
ca@1304
   241
                  )
sv@1738
   242
                 (InputFieldSpec
sv@1738
   243
                    name: 'fieldLeftFraction'
ca@2207
   244
                    layout: (LayoutFrame 102 0 25 0 152 0 47 0)
sv@1738
   245
                    activeHelpKey: leftRelative
sv@1738
   246
                    tabable: true
sv@1738
   247
                    model: leftFraction
sv@1738
   248
                    group: inputGroup
sv@1738
   249
                    type: numberOrNil
sv@1738
   250
                    acceptChannel: acceptChannel
sv@1738
   251
                    modifiedChannel: modifiedChannel
sv@1738
   252
                    acceptOnPointerLeave: false
ca@1304
   253
                  )
sv@1738
   254
                 (ActionButtonSpec
ca@2207
   255
                    label: 'imageAbsX'
ca@2207
   256
                    name: 'actionAbsoluteLeft'
ca@2207
   257
                    layout: (LayoutFrame 178 0 24 0 200 0 46 0)
ca@2207
   258
                    activeHelpKey: makeLeftAbsolute
ca@2207
   259
                    hasCharacterOrientedLabel: false
ca@2207
   260
                    tabable: true
ca@2207
   261
                    model: absoluteLeft
ca@2207
   262
                  )
ca@2207
   263
                 (InputFieldSpec
ca@2207
   264
                    name: 'fieldLeftOffset'
ca@2207
   265
                    layout: (LayoutFrame 203 0 24 0 253 0 46 0)
ca@2207
   266
                    activeHelpKey: leftAbsolute
ca@2207
   267
                    tabable: true
ca@2207
   268
                    model: leftOffset
ca@2207
   269
                    group: inputGroup
ca@2207
   270
                    type: numberOrNil
ca@2207
   271
                    acceptChannel: acceptChannel
ca@2207
   272
                    modifiedChannel: modifiedChannel
ca@2207
   273
                    acceptOnPointerLeave: false
ca@2207
   274
                  )
ca@2207
   275
                 (ActionButtonSpec
sv@1738
   276
                    label: 'imageAbsXFromRight'
sv@1738
   277
                    name: 'actionRightRelativeLeft'
sv@1738
   278
                    layout: (LayoutFrame 257 0 24 0 279 0 46 0)
sv@1738
   279
                    activeHelpKey: makeLeftRelativeFromRight
sv@1738
   280
                    hasCharacterOrientedLabel: false
sv@1738
   281
                    tabable: true
sv@1738
   282
                    model: rightRelativeLeft
ca@1304
   283
                  )
sv@1738
   284
                 (LabelSpec
sv@1738
   285
                    label: 'Top:'
sv@1738
   286
                    name: 'labelTop'
sv@1738
   287
                    layout: (AlignmentOrigin 68 0 54 0 1 0)
cg@1874
   288
                    translateLabel: true
cg@1339
   289
                  )
sv@1738
   290
                 (ActionButtonSpec
sv@1738
   291
                    label: 'imageFractY'
sv@1738
   292
                    name: 'actionRelativeTop'
sv@1738
   293
                    layout: (LayoutFrame 77 0 51 0 99 0 73 0)
sv@1738
   294
                    activeHelpKey: makeTopRelative
sv@1738
   295
                    hasCharacterOrientedLabel: false
sv@1738
   296
                    tabable: true
sv@1738
   297
                    model: relativeTop
ca@1304
   298
                  )
sv@1738
   299
                 (InputFieldSpec
sv@1738
   300
                    name: 'fieldTopFraction'
sv@1738
   301
                    layout: (LayoutFrame 103 0 51 0 153 0 73 0)
sv@1738
   302
                    activeHelpKey: topRelative
sv@1738
   303
                    tabable: true
sv@1738
   304
                    model: topFraction
sv@1738
   305
                    group: inputGroup
sv@1738
   306
                    type: numberOrNil
sv@1738
   307
                    acceptChannel: acceptChannel
sv@1738
   308
                    modifiedChannel: modifiedChannel
sv@1738
   309
                    acceptOnPointerLeave: false
ca@1304
   310
                  )
sv@1738
   311
                 (ActionButtonSpec
ca@2207
   312
                    label: 'imageAbsY'
ca@2207
   313
                    name: 'actionAbsoluteTop'
ca@2207
   314
                    layout: (LayoutFrame 178 0 51 0 200 0 73 0)
ca@2207
   315
                    activeHelpKey: makeTopAbsolute
sv@1738
   316
                    hasCharacterOrientedLabel: false
sv@1738
   317
                    tabable: true
ca@2207
   318
                    model: absoluteTop
ca@1304
   319
                  )
sv@1738
   320
                 (InputFieldSpec
sv@1738
   321
                    name: 'fieldTopOffset'
sv@1738
   322
                    layout: (LayoutFrame 203 0 51 0 253 0 73 0)
sv@1738
   323
                    activeHelpKey: topAbsolute
sv@1738
   324
                    tabable: true
sv@1738
   325
                    model: topOffset
sv@1738
   326
                    group: inputGroup
sv@1738
   327
                    type: numberOrNil
sv@1738
   328
                    acceptChannel: acceptChannel
sv@1738
   329
                    modifiedChannel: modifiedChannel
sv@1738
   330
                    acceptOnPointerLeave: false
ca@1304
   331
                  )
sv@1738
   332
                 (ActionButtonSpec
ca@2207
   333
                    label: 'imageAbsYFromBottom'
ca@2207
   334
                    name: 'actionBottomRelativeTop'
ca@2207
   335
                    layout: (LayoutFrame 257 0 51 0 279 0 73 0)
ca@2207
   336
                    activeHelpKey: makeTopRelativeFromBottom
sv@1738
   337
                    hasCharacterOrientedLabel: false
sv@1738
   338
                    tabable: true
ca@2207
   339
                    model: bottomRelativeTop
ca@1304
   340
                  )
ca@1304
   341
                 )
ca@1304
   342
               
ca@184
   343
              )
ca@1304
   344
            )
ca@1304
   345
           )
ca@1304
   346
         
ca@1304
   347
        )
ca@184
   348
      )
ca@184
   349
!
ca@184
   350
ca@184
   351
layoutPointSpec
tz@741
   352
    "This resource specification was automatically generated
tz@741
   353
     by the UIPainter of ST/X."
ca@184
   354
tz@741
   355
    "Do not manually edit this!! If it is corrupted,
tz@741
   356
     the UIPainter may not be able to read the specification."
ca@184
   357
ca@184
   358
    "
cg@259
   359
     UIPainter new openOnClass:UILayoutTool andSelector:#layoutPointSpec
cg@259
   360
     UILayoutTool new openInterface:#layoutPointSpec
ca@184
   361
    "
cg@259
   362
ca@184
   363
    <resource: #canvas>
ca@184
   364
sv@1738
   365
    ^ 
sv@1738
   366
     #(FullSpec
sv@1738
   367
        name: layoutPointSpec
sv@1738
   368
        window: 
sv@1738
   369
       (WindowSpec
sv@1738
   370
          label: 'UILayoutTool'
sv@1738
   371
          name: 'UILayoutTool'
sv@1738
   372
          min: (Point 10 10)
sv@1738
   373
          bounds: (Rectangle 14 46 292 170)
sv@1738
   374
        )
sv@1738
   375
        component: 
sv@1738
   376
       (SpecCollection
sv@1738
   377
          collection: (
sv@1738
   378
           (FramedBoxSpec
sv@1738
   379
              label: 'Origin'
sv@1738
   380
              name: 'FramedBox'
sv@1738
   381
              layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 94 0)
sv@1738
   382
              labelPosition: topLeft
cg@1874
   383
                    translateLabel: true
sv@1738
   384
              component: 
sv@1738
   385
             (SpecCollection
sv@1738
   386
                collection: (
sv@1738
   387
                 (LabelSpec
sv@1738
   388
                    label: 'Left:'
sv@1738
   389
                    name: 'labelOriginY'
sv@1738
   390
                    layout: (AlignmentOrigin 83 0 14 0 1 0)
cg@1874
   391
                    translateLabel: true
sv@1738
   392
                  )
sv@1738
   393
                 (InputFieldSpec
sv@1738
   394
                    name: 'fieldOriginX'
sv@1738
   395
                    layout: (LayoutFrame 85 0 11 0 135 0 33 0)
sv@1738
   396
                    activeHelpKey: originX
sv@1738
   397
                    tabable: true
sv@1738
   398
                    model: leftOffset
sv@1738
   399
                    group: inputGroup
sv@1738
   400
                    type: numberOrNil
sv@1738
   401
                    acceptChannel: acceptChannel
sv@1738
   402
                    modifiedChannel: modifiedChannel
sv@1738
   403
                    acceptOnPointerLeave: false
sv@1738
   404
                  )
sv@1738
   405
                 (LabelSpec
sv@1738
   406
                    label: 'Top:'
sv@1738
   407
                    name: 'labelOriginX'
sv@1738
   408
                    layout: (AlignmentOrigin 83 0 39 0 1 0)
cg@1874
   409
                    translateLabel: true
sv@1738
   410
                  )
sv@1738
   411
                 (InputFieldSpec
sv@1738
   412
                    name: 'fieldOriginY'
sv@1738
   413
                    layout: (LayoutFrame 85 0 36 0 135 0 58 0)
sv@1738
   414
                    activeHelpKey: originY
sv@1738
   415
                    tabable: true
sv@1738
   416
                    model: topOffset
sv@1738
   417
                    group: inputGroup
sv@1738
   418
                    type: numberOrNil
sv@1738
   419
                    acceptChannel: acceptChannel
sv@1738
   420
                    modifiedChannel: modifiedChannel
sv@1738
   421
                    acceptOnPointerLeave: false
sv@1738
   422
                  )
sv@1738
   423
                 )
sv@1738
   424
               
ca@184
   425
              )
sv@1738
   426
            )
sv@1738
   427
           )
sv@1738
   428
         
sv@1738
   429
        )
ca@184
   430
      )
ca@184
   431
!
ca@184
   432
ca@163
   433
slices
ca@163
   434
    ^ #(
ca@163
   435
        ( 'Frame'          LayoutFrame)
ca@163
   436
        ( 'Origin'         LayoutOrigin)
ca@163
   437
        ( 'Alig.Origin'    AlignmentOrigin)
ca@163
   438
        ( 'Point'          Point)
ca@163
   439
        ( 'Rectangle'      Rectangle)
ca@163
   440
        ( 'Extent'         Extent)
ca@163
   441
       ) 
ca@163
   442
ca@163
   443
!
ca@163
   444
ca@163
   445
windowSpec
tz@741
   446
    "This resource specification was automatically generated
tz@741
   447
     by the UIPainter of ST/X."
ca@163
   448
tz@741
   449
    "Do not manually edit this!! If it is corrupted,
tz@741
   450
     the UIPainter may not be able to read the specification."
ca@163
   451
ca@163
   452
    "
ca@163
   453
     UIPainter new openOnClass:UILayoutTool andSelector:#windowSpec
ca@163
   454
     UILayoutTool new openInterface:#windowSpec
tz@741
   455
     UILayoutTool open
ca@163
   456
    "
ca@163
   457
ca@163
   458
    <resource: #canvas>
ca@163
   459
ca@1305
   460
    ^ 
sv@1738
   461
     #(FullSpec
sv@1738
   462
        name: windowSpec
sv@1738
   463
        window: 
sv@1738
   464
       (WindowSpec
sv@1738
   465
          label: 'UILayoutTool'
sv@1738
   466
          name: 'UILayoutTool'
sv@1738
   467
          min: (Point 10 10)
ca@1790
   468
          bounds: (Rectangle 12 22 354 321)
ca@1305
   469
        )
sv@1738
   470
        component: 
sv@1738
   471
       (SpecCollection
sv@1738
   472
          collection: (
sv@1738
   473
           (NoteBookViewSpec
sv@1738
   474
              name: 'NoteBook'
sv@1738
   475
              layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
sv@1738
   476
              activeHelpKey: layoutTool
sv@1738
   477
              enableChannel: enableChannel
sv@1738
   478
              tabable: true
sv@1738
   479
              model: noteBookModel
sv@1738
   480
              menu: noteBookList
sv@1738
   481
              direction: bottom
ca@1790
   482
              translateLabel: true
sv@1738
   483
              canvas: layoutCanvasHolder
sv@1738
   484
              tabTopMargin: 0
sv@1738
   485
              tabBottomMargin: 0
sv@1738
   486
              keepCanvasAlive: true
sv@1738
   487
              tabLevel: 0
ca@1305
   488
            )
ca@1305
   489
           )
ca@1305
   490
         
ca@1305
   491
        )
ca@163
   492
      )
ca@163
   493
! !
ca@163
   494
cg@1781
   495
!UILayoutTool class methodsFor:'resources'!
cg@1781
   496
cg@1781
   497
classResources
cg@1781
   498
    "my translations are found in the UIPainter classes resources"
cg@1781
   499
cg@1781
   500
    ^ UIPainter classResources 
cg@1781
   501
! !
cg@1781
   502
ca@163
   503
!UILayoutTool methodsFor:'accessing'!
ca@163
   504
cg@1063
   505
acceptChannel
cg@1063
   506
    "return the value of the instance variable 'acceptChannel' (automatically generated)"
cg@1063
   507
cg@1063
   508
    ^ masterApplication acceptChannel
cg@1063
   509
!
cg@1063
   510
ca@163
   511
layout
ca@163
   512
    "returns configued layout or nil
ca@163
   513
    "
ca@1305
   514
    ^ currentTool notNil ifTrue:[currentTool layout]
ca@1305
   515
                        ifFalse:[nil]
ca@163
   516
!
ca@163
   517
ca@163
   518
layoutType
ca@163
   519
    "returns current layout type or nil
ca@163
   520
    "
ca@163
   521
    |slice|
ca@163
   522
ca@163
   523
    (slice := self selectedSlice) notNil ifTrue:[
ca@163
   524
        ^ slice last
ca@163
   525
    ].
ca@163
   526
  ^ nil
ca@163
   527
!
ca@163
   528
ca@163
   529
layoutView
ca@163
   530
    "returns current edited view
ca@163
   531
    "
ca@163
   532
    ^ layoutView
ca@163
   533
!
ca@163
   534
cg@1072
   535
layoutView:aView type:aTypeOrNil spec:aSpec
ca@283
   536
    "change current edited view
ca@283
   537
    "
ca@163
   538
    |type name list|
ca@163
   539
ca@163
   540
    layoutView := aView.
cg@1072
   541
    layoutSpec := aSpec.
ca@163
   542
cg@1074
   543
    (self aspectFor:#defaultExtentEnabled) value:(aSpec class ==  WindowSpec) not.
cg@1074
   544
werner@1826
   545
    aTypeOrNil notNil ifTrue:[ 
ca@163
   546
        self class slices findFirst:[:e|
cg@2533
   547
            e last == aTypeOrNil 
cg@2533
   548
                ifTrue:[name := e first. true] 
cg@2533
   549
                ifFalse:[false].
ca@163
   550
        ].
werner@1826
   551
        list := Array with:name with: 'Frame'.
ca@283
   552
    ] ifFalse:[
ca@283
   553
        (type := UIPainterView layoutType:layoutView) notNil ifTrue:[
ca@283
   554
            self class slices findFirst:[:e|
cg@2533
   555
                e last == type ifTrue:[name := e first. true] ifFalse:[false]
ca@283
   556
            ].
ca@283
   557
            list := tabList.
werner@1826
   558
            type == #Extent ifTrue:[ 
ca@283
   559
                aView superView specClass isLayoutContainer ifTrue:[
ca@283
   560
                    list := Array with:name
ca@283
   561
                ] ifFalse:[
ca@283
   562
                    list := list copyWith:name
ca@283
   563
                ]
ca@235
   564
            ]
ca@235
   565
        ]
ca@163
   566
    ].
ca@163
   567
    self noteBookList  value:list.
ca@163
   568
    self noteBookModel value:name.
ca@163
   569
    self update.
ca@163
   570
!
ca@163
   571
ca@163
   572
modifiedHolder:aValueHolder
ca@163
   573
    "set the value holder set to true in case of modifying attributes
ca@163
   574
    "
ca@163
   575
    modifiedHolder notNil ifTrue:[
ca@163
   576
        modifiedHolder removeDependent:self. 
ca@163
   577
    ].
ca@163
   578
ca@163
   579
    (modifiedHolder := aValueHolder) notNil ifTrue:[
ca@163
   580
        modifiedHolder addDependent:self.
ca@163
   581
    ].
ca@163
   582
ca@163
   583
!
ca@163
   584
ca@163
   585
update
ca@163
   586
    "update from view
ca@163
   587
    "
ca@1305
   588
    |view|
ca@163
   589
ca@1305
   590
    (selection notNil and:[currentTool notNil]) ifTrue:[
cg@1072
   591
        (view := layoutView) notNil ifTrue:[
ca@1305
   592
            currentTool fetch:view spec:layoutSpec
ca@163
   593
        ]
ca@163
   594
    ].
ca@163
   595
        
ca@163
   596
! !
ca@163
   597
ca@163
   598
!UILayoutTool methodsFor:'aspects'!
ca@163
   599
ca@163
   600
aspectFor:aKey
cg@2365
   601
    "returns the aspect for a aKey or nil"
cg@2365
   602
cg@2365
   603
    ^ aspects at:aKey ifAbsent:[ super aspectFor:aKey ]
ca@163
   604
!
ca@163
   605
ca@1305
   606
layoutCanvasHolder
ca@1305
   607
    |holder|
ca@1305
   608
ca@1305
   609
    (holder := builder bindingAt:#layoutCanvasHolder) isNil ifTrue:[
ca@1305
   610
        holder := ValueHolder new.
ca@1305
   611
        builder aspectAt:#layoutCanvasHolder put:holder
ca@1305
   612
    ].
ca@1305
   613
  ^ holder
ca@1305
   614
!
ca@1305
   615
cg@1072
   616
notUsingDefaultExtent
cg@1072
   617
    |holder|
cg@1072
   618
cg@1072
   619
    (holder := builder bindingAt:#notUsingDefaultExtent) isNil ifTrue:[
cg@1072
   620
        holder := BlockValue forLogicalNot:(self aspectFor:#useDefaultExtent).
cg@1072
   621
        builder aspectAt:#notUsingDefaultExtent put:holder.
cg@1072
   622
    ].
cg@1072
   623
    ^ holder
cg@1072
   624
cg@1072
   625
!
cg@1072
   626
ca@163
   627
noteBookList
cg@2322
   628
    "holds the list of tab labels"
cg@2322
   629
cg@2322
   630
    ^ builder valueAspectFor:#noteBookList initialValue:nil
ca@163
   631
!
ca@163
   632
ca@163
   633
noteBookModel
ca@163
   634
    "automatically generated by UIPainter ..."
ca@163
   635
ca@163
   636
    |holder|
ca@163
   637
ca@163
   638
    (holder := builder bindingAt:#noteBookModel) isNil ifTrue:[
ca@163
   639
        holder := AspectAdaptor new subject:self; forAspect:#selection.
ca@163
   640
        builder aspectAt:#noteBookModel put:holder.
ca@163
   641
    ].
ca@163
   642
    ^ holder
ca@163
   643
! !
ca@163
   644
ca@163
   645
!UILayoutTool methodsFor:'change & update'!
ca@163
   646
ca@163
   647
update:something with:aParameter from:changedObject
ca@163
   648
    "one of my models changed its value
ca@163
   649
    "
ca@163
   650
    changedObject ~~ modifiedHolder ifTrue:[
ca@163
   651
        modifiedHolder value ~~ true ifTrue:[
ca@163
   652
            modifiedHolder isNil ifFalse:[
ca@163
   653
                modifiedHolder value:true
ca@163
   654
            ]
ca@163
   655
        ]
ca@163
   656
    ]
ca@163
   657
ca@163
   658
! !
ca@163
   659
ca@163
   660
!UILayoutTool methodsFor:'converting absolute'!
ca@163
   661
ca@163
   662
absolute:what xOrY:xOrY
cg@1339
   663
    "compute what as absolute (i.e. fraction=0, offset >= 0)"
cg@1339
   664
cg@1339
   665
    |extent fraction offset fractSymb offsetSymb 
cg@1339
   666
     newOffset newFraction fractHolder offsetHolder|
ca@163
   667
ca@163
   668
    extent     := (self layoutView superView computeExtent) perform:xOrY.
ca@163
   669
    fractSymb  := (what, 'Fraction') asSymbol.
ca@163
   670
    offsetSymb := (what,   'Offset') asSymbol.
cg@1198
   671
    fractHolder := (self aspectFor:fractSymb).
cg@1198
   672
    offsetHolder := (self aspectFor:offsetSymb).
cg@1198
   673
    fraction   := fractHolder  value.
cg@1198
   674
    offset     := offsetHolder value.
cg@1339
   675
cg@1339
   676
    newOffset := offset + ((fraction * extent) asInteger).
cg@1339
   677
    newFraction := 0.
ca@163
   678
cg@1339
   679
    fractHolder  value:newFraction.
cg@1343
   680
    offsetHolder value:newOffset.
ca@163
   681
!
ca@163
   682
ca@163
   683
absoluteBottom
cg@1339
   684
    "compute bottom as absolute (i.e. fraction=0, offset >= 0)"
cg@1339
   685
ca@163
   686
    self absolute:'bottom' xOrY:#y
ca@163
   687
ca@163
   688
!
ca@163
   689
ca@163
   690
absoluteLeft
cg@1339
   691
    "compute left as absolute (i.e. fraction=0, offset >= 0)"
cg@1339
   692
ca@163
   693
    self absolute:'left' xOrY:#x
ca@163
   694
ca@163
   695
!
ca@163
   696
ca@163
   697
absoluteRight
cg@1339
   698
    "compute right as absolute (i.e. fraction=0, offset >= 0)"
cg@1339
   699
ca@163
   700
    self absolute:'right' xOrY:#x
ca@163
   701
ca@163
   702
!
ca@163
   703
ca@163
   704
absoluteTop
cg@1339
   705
    "compute top as absolute (i.e. fraction=0, offset >= 0)"
cg@1339
   706
ca@163
   707
    self absolute:'top' xOrY:#y
ca@163
   708
ca@163
   709
! !
ca@163
   710
cg@1339
   711
!UILayoutTool methodsFor:'converting absolute from corner'!
cg@1339
   712
cg@1339
   713
bottomRelativeBottom
cg@1339
   714
    "compute bottom relative to containers bottom (fraction=1, offset negative)"
cg@1339
   715
cg@1339
   716
    self cornerRelative:'bottom' xOrY:#y
cg@1339
   717
cg@1339
   718
!
cg@1339
   719
cg@1339
   720
bottomRelativeTop
cg@1339
   721
    "compute top relative to containers bottom (fraction=1, offset negative)"
cg@1339
   722
cg@1339
   723
    self cornerRelative:'top' xOrY:#y
cg@1339
   724
cg@1339
   725
!
cg@1339
   726
cg@1339
   727
cornerRelative:what xOrY:xOrY
cg@1339
   728
    "compute what relative to the corner (i.e. fraction=1, offset negative)"
cg@1339
   729
cg@1339
   730
    |extent fraction offset fractSymb offsetSymb 
cg@1339
   731
     newFraction newOffset fractHolder offsetHolder|
ca@163
   732
ca@163
   733
    extent     := (self layoutView superView computeExtent) perform:xOrY.
ca@163
   734
    fractSymb  := (what, 'Fraction') asSymbol.
ca@163
   735
    offsetSymb := (what,   'Offset') asSymbol.
cg@1198
   736
    fractHolder := (self aspectFor:fractSymb).
cg@1198
   737
    offsetHolder := (self aspectFor:offsetSymb).
cg@1198
   738
    fraction   := fractHolder  value.
cg@1198
   739
    offset     := offsetHolder value.
cg@1339
   740
cg@1339
   741
    newOffset := offset + ((fraction * extent) asInteger).
cg@1339
   742
    newOffset := newOffset - extent.
cg@1339
   743
    newFraction := 1.
cg@1339
   744
cg@1339
   745
    fractHolder  value:newFraction.
cg@1339
   746
    offsetHolder value:newOffset.
ca@163
   747
ca@163
   748
ca@163
   749
ca@163
   750
!
ca@163
   751
cg@1339
   752
rightRelativeLeft
cg@1339
   753
    "compute left relative to containers right (fraction=1, offset negative)"
cg@1339
   754
cg@1339
   755
    self cornerRelative:'left' xOrY:#x
cg@1339
   756
cg@1339
   757
!
cg@1339
   758
cg@1339
   759
rightRelativeRight
cg@1339
   760
    "compute right relative to containers right (fraction=1, offset negative)"
cg@1339
   761
cg@1339
   762
    self cornerRelative:'right' xOrY:#x
cg@1339
   763
cg@1339
   764
! !
cg@1339
   765
cg@1339
   766
!UILayoutTool methodsFor:'converting relative'!
cg@1339
   767
cg@1339
   768
relative:what xOrY:xOrY
cg@1339
   769
    "compute what relative to the origin (i.e. fraction=0..1, offset 0)"
cg@1339
   770
cg@1339
   771
    |extent fraction offset fractSymb offsetSymb 
cg@1339
   772
     newFraction newOffset
cg@1339
   773
     fractHolder offsetHolder|
cg@1339
   774
cg@1339
   775
    extent     := (self layoutView superView computeExtent) perform:xOrY.
cg@1339
   776
    fractSymb  := (what, 'Fraction') asSymbol.
cg@1339
   777
    offsetSymb := (what,   'Offset') asSymbol.
cg@1339
   778
    fractHolder := (self aspectFor:fractSymb).
cg@1339
   779
    offsetHolder := (self aspectFor:offsetSymb).
cg@1339
   780
    fraction   := fractHolder  value.
cg@1339
   781
    offset     := offsetHolder value.
cg@1339
   782
cg@1339
   783
    newFraction   := (fraction + (offset / extent)) asFloat.
cg@1339
   784
    newOffset := 0.
cg@1339
   785
cg@1339
   786
    (newFraction > 1.0) ifTrue:[newFraction := 1.0].
cg@1339
   787
    (newFraction < 0.0) ifTrue:[newFraction := 0].
cg@1339
   788
cg@1339
   789
    offsetHolder value:newOffset.
cg@1339
   790
    fractHolder  value:newFraction.
cg@1339
   791
cg@1339
   792
cg@1339
   793
cg@1339
   794
!
cg@1339
   795
ca@163
   796
relativeBottom
cg@1339
   797
    "compute bottom relative to the origin (i.e. fraction=0..1, offset 0)"
cg@1339
   798
ca@163
   799
    self relative:'bottom' xOrY:#y
ca@163
   800
ca@163
   801
ca@163
   802
!
ca@163
   803
ca@163
   804
relativeLeft
cg@1339
   805
    "compute left relative to the origin (i.e. fraction=0..1, offset 0)"
cg@1339
   806
ca@163
   807
    self relative:'left' xOrY:#x
ca@163
   808
ca@163
   809
!
ca@163
   810
ca@163
   811
relativeRight
cg@1339
   812
    "compute right relative to the origin (i.e. fraction=0..1, offset 0)"
cg@1339
   813
ca@163
   814
    self relative:'right' xOrY:#x
ca@163
   815
ca@163
   816
!
ca@163
   817
ca@163
   818
relativeTop
cg@1339
   819
    "compute top relative to the origin (i.e. fraction=0..1, offset 0)"
cg@1339
   820
ca@163
   821
    self relative:'top' xOrY:#y
ca@163
   822
ca@163
   823
! !
ca@163
   824
ca@163
   825
!UILayoutTool methodsFor:'initialization'!
ca@163
   826
ca@163
   827
initialize
ca@163
   828
    "initialize channels
ca@163
   829
    "
ca@221
   830
    |slices size|
ca@221
   831
ca@163
   832
    super initialize.
ca@163
   833
ca@163
   834
    aspects  := IdentityDictionary new.
ca@1305
   835
    toolsDictionary := IdentityDictionary new.
ca@163
   836
ca@163
   837
    #(  bottomFraction          bottomOffset
ca@163
   838
        leftFraction            leftOffset
ca@163
   839
        topFraction             topOffset
ca@163
   840
        rightFraction           rightOffset
ca@163
   841
        leftAlignmentFraction   topAlignmentFraction
cg@1268
   842
        (useDefaultExtent     false)
cg@1268
   843
        (defaultExtentEnabled false)
cg@2379
   844
cg@2379
   845
        (usePreferredWidth false)
cg@2379
   846
        (usePreferredHeight false)
cg@2379
   847
        (useDynamicPreferredWidth false)
cg@2379
   848
        (useDynamicPreferredHeight false)
ca@163
   849
    )
ca@163
   850
cg@1268
   851
    do:[:aKeyOrPair| |holder key val|
cg@1268
   852
        (key := aKeyOrPair) isSymbol ifFalse:[
cg@1268
   853
            key := aKeyOrPair first.
cg@1268
   854
            val := aKeyOrPair second
cg@1268
   855
        ].
cg@1268
   856
        holder := val asValue.
ca@163
   857
        holder addDependent:self.
cg@1268
   858
        aspects at:key put:holder.
ca@163
   859
    ].
ca@163
   860
ca@221
   861
    slices  := self class slices.
ca@221
   862
    size    := slices size - 1.
ca@221
   863
    tabList := Array new:size.
ca@163
   864
ca@221
   865
    1 to:size do:[:i| tabList at:i put:((slices at:i) first) ].
ca@163
   866
! !
ca@163
   867
ca@163
   868
!UILayoutTool methodsFor:'selection'!
ca@163
   869
ca@163
   870
selectedSlice
cg@2022
   871
    "returns the slice assigned to the selection or nil"
cg@2022
   872
cg@2022
   873
    selection isNil ifTrue:[^ nil].
cg@2022
   874
    ^ self class slices detect:[:aSlice | aSlice first = selection] ifNone:nil
cg@2022
   875
cg@2022
   876
"/    selection notNil ifTrue:[
cg@2022
   877
"/        self class slices do:[:aSlice|
cg@2022
   878
"/            aSlice first = selection ifTrue:[
cg@2022
   879
"/                ^ aSlice
cg@2022
   880
"/            ]
cg@2022
   881
"/        ]
cg@2022
   882
"/    ].
cg@2022
   883
"/    ^ nil
ca@163
   884
!
ca@163
   885
ca@163
   886
selection
ca@163
   887
    ^ selection
ca@163
   888
!
ca@163
   889
ca@163
   890
selection:aSelection
sv@1726
   891
    |appl slice sel key view|
ca@163
   892
ca@293
   893
    aSelection isNumber ifTrue:[
ca@293
   894
        aSelection ~~ 0 ifTrue:[sel := tabList at:aSelection]
ca@293
   895
    ] ifFalse:[
ca@293
   896
        sel := aSelection
ca@293
   897
    ].
ca@1305
   898
ca@293
   899
    selection = sel ifFalse:[
ca@293
   900
        (selection := sel) notNil ifTrue:[
ca@1305
   901
            key := selection asSymbol.
ca@1305
   902
            appl := toolsDictionary at:key ifAbsent:nil.
ca@1305
   903
ca@1305
   904
            appl isNil ifTrue:[
ca@1334
   905
                view  := ApplicationSubView new.
ca@1305
   906
                slice := self selectedSlice.
ca@1305
   907
                appl  := slice last asString.
ca@1305
   908
                appl := Smalltalk classNamed:(self class name asString, '::', appl).
ca@1305
   909
                appl := appl new.
ca@1305
   910
                appl masterApplication:self.
ca@1305
   911
                appl createBuilder.
ca@1305
   912
                view client:appl.
ca@1305
   913
                appl window:view.
ca@1305
   914
                toolsDictionary at:key put:appl.
ca@1305
   915
            ] ifFalse:[
ca@1305
   916
                view := appl window
cg@1332
   917
            ].
cg@1332
   918
            modifiedHolder value:true.
ca@163
   919
        ].
ca@1305
   920
        currentTool := appl.
ca@1305
   921
        self layoutCanvasHolder value:view.
ca@163
   922
    ].
ca@163
   923
    self update
cg@1332
   924
cg@1332
   925
    "Modified: / 4.2.2000 / 22:31:41 / cg"
cg@1332
   926
! !
cg@1332
   927
cg@1343
   928
!UILayoutTool::AnyLayout class methodsFor:'image specs'!
cg@1343
   929
cg@1343
   930
imageAbsX
cg@1332
   931
    "This resource specification was automatically generated
cg@1343
   932
     by the ImageEditor of ST/X."
cg@1332
   933
cg@1332
   934
    "Do not manually edit this!! If it is corrupted,
cg@1343
   935
     the ImageEditor may not be able to read the specification."
cg@1332
   936
cg@1332
   937
    "
cg@1343
   938
     self imageAbsX inspect
cg@1343
   939
     ImageEditor openOnClass:self andSelector:#imageAbsX
cg@2269
   940
     Icon flushCachedIcons
cg@1332
   941
    "
cg@1332
   942
cg@1343
   943
    <resource: #image>
cg@1343
   944
cg@1343
   945
    ^Icon
cg@2269
   946
        constantNamed:'UILayoutTool::AnyLayout class imageAbsX'
cg@2269
   947
        ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@1343
   948
<@BP@I@N$L*P*)BZ''8*@@(@B''8*P&)B*$L*PC)@@<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@1343
   949
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
   950
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'<@C0@O@N<L;0;/C>??;??/?>??;0?/C.<L;0C/@@<@@b') ; yourself); yourself]
ca@1447
   951
!
cg@1343
   952
cg@1343
   953
imageAbsXFromRight
cg@1343
   954
    "This resource specification was automatically generated
cg@1343
   955
     by the ImageEditor of ST/X."
cg@1343
   956
cg@1343
   957
    "Do not manually edit this!! If it is corrupted,
cg@1343
   958
     the ImageEditor may not be able to read the specification."
cg@1343
   959
cg@1332
   960
    "
cg@1343
   961
     self imageAbsXFromRight inspect
cg@1343
   962
     ImageEditor openOnClass:self andSelector:#imageAbsXFromRight
cg@2269
   963
     Icon flushCachedIcons
cg@1332
   964
    "
cg@1343
   965
cg@1343
   966
    <resource: #image>
cg@1343
   967
cg@1343
   968
    ^Icon
cg@2269
   969
        constantNamed:'UILayoutTool::AnyLayout class imageAbsXFromRight'
cg@2269
   970
        ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@<@BW@IT0%UBU$IT_%@@T@AT_%YBUTIT0%0BP@I@@<b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@<@C7@O\0=7C7<O_?=??7??_?=?C7\O\0=0C0@O@@<b') ; yourself); yourself]
ca@1447
   971
!
cg@1343
   972
cg@1343
   973
imageAbsY
cg@1343
   974
    "This resource specification was automatically generated
cg@1343
   975
     by the ImageEditor of ST/X."
cg@1343
   976
cg@1343
   977
    "Do not manually edit this!! If it is corrupted,
cg@1343
   978
     the ImageEditor may not be able to read the specification."
cg@1343
   979
cg@1343
   980
    "
cg@1343
   981
     self imageAbsY inspect
cg@1343
   982
     ImageEditor openOnClass:self andSelector:#imageAbsY
cg@2269
   983
     Icon flushCachedIcons
cg@1343
   984
    "
cg@1343
   985
cg@1343
   986
    <resource: #image>
cg@1343
   987
cg@1343
   988
    ^Icon
cg@2269
   989
        constantNamed:'UILayoutTool::AnyLayout class imageAbsY'
cg@2269
   990
        ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A?''<BP@I@@$@BPA98D@ HD@P O''0 AC?<@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??????????<C0@O@@<@C0A?8G? O<@_ O?0??C?<@@@b') ; yourself); yourself]
ca@1447
   991
!
cg@1343
   992
cg@1343
   993
imageAbsYFromBottom
cg@1343
   994
    "This resource specification was automatically generated
cg@1343
   995
     by the ImageEditor of ST/X."
cg@1343
   996
cg@1343
   997
    "Do not manually edit this!! If it is corrupted,
cg@1343
   998
     the ImageEditor may not be able to read the specification."
cg@1343
   999
cg@1343
  1000
    "
cg@1343
  1001
     self imageAbsYFromBottom inspect
cg@1343
  1002
     ImageEditor openOnClass:self andSelector:#imageAbsYFromBottom
cg@2269
  1003
     Icon flushCachedIcons
cg@1343
  1004
    "
cg@1343
  1005
cg@1343
  1006
    <resource: #image>
cg@1343
  1007
cg@1343
  1008
    ^Icon
cg@2269
  1009
        constantNamed:'UILayoutTool::AnyLayout class imageAbsYFromBottom'
cg@2269
  1010
        ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@??B@DO''0DH@ PD@ ^^@I@@$@BP@I@?''>@@X@A??<b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@??C?<O?0G8@?0G? _>@O@@<@C0@O@??????????<b') ; yourself); yourself]
ca@1447
  1011
!
cg@1343
  1012
cg@1343
  1013
imageFractX
cg@1343
  1014
    "This resource specification was automatically generated
cg@1343
  1015
     by the ImageEditor of ST/X."
cg@1343
  1016
cg@1343
  1017
    "Do not manually edit this!! If it is corrupted,
cg@1343
  1018
     the ImageEditor may not be able to read the specification."
cg@1343
  1019
cg@1343
  1020
    "
cg@1343
  1021
     self imageFractX inspect
cg@1343
  1022
     ImageEditor openOnClass:self andSelector:#imageFractX
cg@2269
  1023
     Icon flushCachedIcons
cg@1343
  1024
    "
cg@1343
  1025
cg@1343
  1026
    <resource: #image>
cg@1343
  1027
cg@1343
  1028
    ^Icon
cg@2269
  1029
        constantNamed:'UILayoutTool::AnyLayout class imageFractX'
cg@2269
  1030
        ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@1343
  1031
<@>PBY@I&A&TJYII$X&@@X@A$X&RRYP)&A&PBY@I<@<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@1343
  1032
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
  1033
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'<@?0C?@O>A?<O?9????????????>_?0?>A?0C?@O<@<b') ; yourself); yourself]
ca@1447
  1034
!
cg@1343
  1035
cg@1343
  1036
imageFractY
cg@1343
  1037
    "This resource specification was automatically generated
cg@1343
  1038
     by the ImageEditor of ST/X."
cg@1343
  1039
cg@1343
  1040
    "Do not manually edit this!! If it is corrupted,
cg@1343
  1041
     the ImageEditor may not be able to read the specification."
cg@1343
  1042
cg@1343
  1043
    "
cg@1343
  1044
     self imageFractY inspect
cg@1343
  1045
     ImageEditor openOnClass:self andSelector:#imageFractY
cg@2269
  1046
     Icon flushCachedIcons
cg@1343
  1047
    "
cg@1343
  1048
cg@1343
  1049
    <resource: #image>
cg@1343
  1050
cg@1343
  1051
    ^Icon
cg@2269
  1052
        constantNamed:'UILayoutTool::AnyLayout class imageFractY'
cg@2269
  1053
        ifAbsentPut:[(Depth1Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A?''<PB@ PAB@BP@I@AB@HDA@H?''>@@X@A??<b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??????????<_>@?0A>@C0@O@A>@O<A?8??????????<b') ; yourself); yourself]
cg@1409
  1054
! !
cg@1409
  1055
cg@1332
  1056
!UILayoutTool::AlignmentOrigin class methodsFor:'help specs'!
cg@1332
  1057
cg@1332
  1058
helpSpec
cg@1332
  1059
    "This resource specification was automatically generated
cg@1332
  1060
     by the UIHelpTool of ST/X."
cg@1332
  1061
cg@1332
  1062
    "Do not manually edit this!! If it is corrupted,
cg@1332
  1063
     the UIHelpTool may not be able to read the specification."
cg@1332
  1064
cg@1332
  1065
    "
cg@1332
  1066
     UIHelpTool openOnClass:UILayoutTool::AlignmentOrigin    
cg@1332
  1067
    "
cg@1332
  1068
cg@1332
  1069
    <resource: #help>
cg@1332
  1070
cg@1332
  1071
    ^super helpSpec addPairsFrom:#(
cg@1332
  1072
cg@1332
  1073
#alignBottomCenter
cg@2794
  1074
'Aligns the widget''s bottomCenter to location.'
cg@1332
  1075
cg@1332
  1076
#alignBottomLeft
cg@2794
  1077
'Aligns the widget''s bottomLeft to location.'
cg@1332
  1078
cg@1332
  1079
#alignBottomRight
cg@2794
  1080
'Aligns the widget''s bottomRight to location.'
cg@1332
  1081
cg@1332
  1082
#alignCenter
cg@2794
  1083
'Aligns the widget''s center to location.'
cg@1332
  1084
cg@1332
  1085
#alignHorizontal
cg@2794
  1086
'Horizontal relative position of the alignment point of the widget (that point is aligned with the above origin).'
cg@1332
  1087
cg@1332
  1088
#alignLeftCenter
cg@2794
  1089
'Aligns the widget''s leftCenter to location.'
cg@1332
  1090
cg@1332
  1091
#alignRightCenter
cg@2794
  1092
'Aligns the widget''s rightCenter to location.'
cg@1332
  1093
cg@1332
  1094
#alignTopCenter
cg@2794
  1095
'Aligns the widget''s topCenter to location.'
cg@1332
  1096
cg@1332
  1097
#alignTopLeft
cg@2794
  1098
'Aligns the widget''s topLeft to location.'
cg@1332
  1099
cg@1332
  1100
#alignTopRight
cg@2794
  1101
'Aligns the widget''s topRight to location.'
cg@1332
  1102
cg@1332
  1103
#alignVertical
cg@2794
  1104
'Vertical relative position of the alignment point of the widget (that point is aligned with the above origin).'
cg@1332
  1105
cg@1332
  1106
)
cg@2794
  1107
cg@2794
  1108
    "Modified: / 28-07-2010 / 10:05:41 / cg"
cg@1332
  1109
! !
cg@1332
  1110
cg@1332
  1111
!UILayoutTool::AlignmentOrigin class methodsFor:'interface specs'!
cg@1332
  1112
cg@1332
  1113
windowSpec
cg@1332
  1114
    "This resource specification was automatically generated
cg@1332
  1115
     by the UIPainter of ST/X."
cg@1332
  1116
cg@1332
  1117
    "Do not manually edit this!! If it is corrupted,
cg@1332
  1118
     the UIPainter may not be able to read the specification."
cg@1332
  1119
cg@1332
  1120
    "
cg@1332
  1121
     UIPainter new openOnClass:UILayoutTool::AlignmentOrigin andSelector:#windowSpec
cg@1332
  1122
     UILayoutTool::AlignmentOrigin new openInterface:#windowSpec
cg@1332
  1123
     UILayoutTool::AlignmentOrigin open
cg@1332
  1124
    "
cg@1332
  1125
cg@1332
  1126
    <resource: #canvas>
cg@1332
  1127
cg@1332
  1128
    ^ 
sv@1738
  1129
     #(FullSpec
sv@1738
  1130
        name: windowSpec
sv@1738
  1131
        window: 
sv@1738
  1132
       (WindowSpec
sv@1738
  1133
          label: 'UILayoutTool-AlignmentOrigin'
sv@1738
  1134
          name: 'UILayoutTool-AlignmentOrigin'
sv@1738
  1135
          min: (Point 10 10)
sv@1738
  1136
          bounds: (Rectangle 14 46 419 253)
cg@1332
  1137
        )
sv@1738
  1138
        component: 
sv@1738
  1139
       (SpecCollection
sv@1738
  1140
          collection: (
sv@1738
  1141
           (UISubSpecification
sv@1738
  1142
              name: 'layoutOriginSpec'
sv@1738
  1143
              layout: (LayoutFrame 1 0.0 6 0 0 1.0 111 0)
sv@1738
  1144
              majorKey: UILayoutTool
sv@1738
  1145
              minorKey: layoutOriginSpec
cg@1332
  1146
            )
sv@1738
  1147
           (FramedBoxSpec
sv@1738
  1148
              label: 'Alignment'
sv@1738
  1149
              name: 'FramedBox'
sv@1738
  1150
              layout: (LayoutFrame 1 0.0 113 0 0 1.0 208 0)
sv@1738
  1151
              labelPosition: topLeft
cg@1874
  1152
              translateLabel: true
sv@1738
  1153
              component: 
sv@1738
  1154
             (SpecCollection
sv@1738
  1155
                collection: (
sv@1738
  1156
                 (LabelSpec
sv@1738
  1157
                    label: 'Horizontal:'
sv@1738
  1158
                    name: 'alignHLabel'
sv@1738
  1159
                    layout: (AlignmentOrigin 88 0 17 0 1 0)
sv@1738
  1160
                    adjust: right
cg@1874
  1161
                    translateLabel: true
cg@1332
  1162
                  )
sv@1738
  1163
                 (InputFieldSpec
sv@1738
  1164
                    name: 'leftAlignmentFractionField'
sv@1738
  1165
                    layout: (LayoutFrame 90 0 14 0 147 0 36 0)
sv@1738
  1166
                    activeHelpKey: alignHorizontal
sv@1738
  1167
                    tabable: true
sv@1738
  1168
                    model: leftAlignmentFraction
sv@1738
  1169
                    group: inputGroup
sv@1738
  1170
                    type: numberOrNil
sv@1738
  1171
                    acceptOnLostFocus: true
sv@1738
  1172
                    acceptChannel: acceptChannel
sv@1738
  1173
                    modifiedChannel: modifiedChannel
sv@1738
  1174
                    acceptOnPointerLeave: false
cg@1332
  1175
                  )
sv@1738
  1176
                 (LabelSpec
sv@1738
  1177
                    label: 'Vertical:'
sv@1738
  1178
                    name: 'alignVLabel'
sv@1738
  1179
                    layout: (AlignmentOrigin 88 0 43 0 1 0)
sv@1738
  1180
                    adjust: right
cg@1874
  1181
                    translateLabel: true
cg@1332
  1182
                  )
sv@1738
  1183
                 (InputFieldSpec
sv@1738
  1184
                    name: 'topAlignmentFractionField'
sv@1738
  1185
                    layout: (LayoutFrame 90 0 40 0 147 0 62 0)
sv@1738
  1186
                    activeHelpKey: alignVertical
sv@1738
  1187
                    tabable: true
sv@1738
  1188
                    model: topAlignmentFraction
sv@1738
  1189
                    group: inputGroup
sv@1738
  1190
                    type: numberOrNil
sv@1738
  1191
                    acceptOnLostFocus: true
sv@1738
  1192
                    acceptChannel: acceptChannel
sv@1738
  1193
                    modifiedChannel: modifiedChannel
sv@1738
  1194
                    acceptOnPointerLeave: false
cg@1332
  1195
                  )
sv@1738
  1196
                 (DividerSpec
sv@1738
  1197
                    name: 'separator1'
sv@1738
  1198
                    layout: (LayoutFrame 204 0 19 0 245 0 22 0)
cg@1332
  1199
                  )
sv@1738
  1200
                 (DividerSpec
sv@1738
  1201
                    name: 'separator2'
sv@1738
  1202
                    layout: (LayoutFrame 204 0 55 0 245 0 58 0)
cg@1332
  1203
                  )
sv@1738
  1204
                 (DividerSpec
sv@1738
  1205
                    name: 'separator3'
sv@1738
  1206
                    layout: (LayoutFrame 196 0 28 0 199 0 50 0)
sv@1738
  1207
                    orientation: vertical
cg@1332
  1208
                  )
sv@1738
  1209
                 (DividerSpec
sv@1738
  1210
                    name: 'separator4'
sv@1738
  1211
                    layout: (LayoutFrame 250 0 28 0 253 0 50 0)
sv@1738
  1212
                    orientation: vertical
cg@1332
  1213
                  )
sv@1738
  1214
                 (ActionButtonSpec
sv@1738
  1215
                    name: 'alignTopLeft'
sv@1738
  1216
                    layout: (LayoutFrame 190 0 14 0 204 0 28 0)
sv@1738
  1217
                    activeHelpKey: alignTopLeft
sv@1738
  1218
                    tabable: true
sv@1738
  1219
                    model: alignTopLeft
cg@1332
  1220
                  )
sv@1738
  1221
                 (ActionButtonSpec
sv@1738
  1222
                    name: 'alignTopCenter'
sv@1738
  1223
                    layout: (LayoutFrame 217 0 14 0 231 0 28 0)
sv@1738
  1224
                    activeHelpKey: alignTopCenter
sv@1738
  1225
                    tabable: true
sv@1738
  1226
                    model: alignTopCenter
cg@1332
  1227
                  )
sv@1738
  1228
                 (ActionButtonSpec
sv@1738
  1229
                    name: 'alignTopRight'
sv@1738
  1230
                    layout: (LayoutFrame 245 0 14 0 259 0 28 0)
sv@1738
  1231
                    activeHelpKey: alignTopRight
sv@1738
  1232
                    tabable: true
sv@1738
  1233
                    model: alignTopRight
cg@1332
  1234
                  )
sv@1738
  1235
                 (ActionButtonSpec
sv@1738
  1236
                    name: 'alignLeftCenter'
sv@1738
  1237
                    layout: (LayoutFrame 190 0 32 0 204 0 46 0)
sv@1738
  1238
                    activeHelpKey: alignLeftCenter
sv@1738
  1239
                    tabable: true
sv@1738
  1240
                    model: alignLeftCenter
cg@1332
  1241
                  )
sv@1738
  1242
                 (ActionButtonSpec
sv@1738
  1243
                    name: 'alignCenter'
sv@1738
  1244
                    layout: (LayoutFrame 217 0 32 0 231 0 46 0)
sv@1738
  1245
                    activeHelpKey: alignCenter
sv@1738
  1246
                    tabable: true
sv@1738
  1247
                    model: alignCenter
cg@1332
  1248
                  )
sv@1738
  1249
                 (ActionButtonSpec
sv@1738
  1250
                    name: 'alignRightCenter'
sv@1738
  1251
                    layout: (LayoutFrame 245 0 32 0 259 0 46 0)
sv@1738
  1252
                    activeHelpKey: alignRightCenter
sv@1738
  1253
                    tabable: true
sv@1738
  1254
                    model: alignRightCenter
cg@1332
  1255
                  )
sv@1738
  1256
                 (ActionButtonSpec
sv@1738
  1257
                    name: 'alignBottomLeft'
sv@1738
  1258
                    layout: (LayoutFrame 190 0 50 0 204 0 64 0)
sv@1738
  1259
                    activeHelpKey: alignBottomLeft
sv@1738
  1260
                    tabable: true
sv@1738
  1261
                    model: alignBottomLeft
cg@1332
  1262
                  )
sv@1738
  1263
                 (ActionButtonSpec
sv@1738
  1264
                    name: 'alignBottomCenter'
sv@1738
  1265
                    layout: (LayoutFrame 217 0 50 0 231 0 64 0)
sv@1738
  1266
                    activeHelpKey: alignBottomCenter
sv@1738
  1267
                    tabable: true
sv@1738
  1268
                    model: alignBottomCenter
cg@1332
  1269
                  )
sv@1738
  1270
                 (ActionButtonSpec
sv@1738
  1271
                    name: 'alignBottomRight'
sv@1738
  1272
                    layout: (LayoutFrame 245 0 50 0 259 0 64 0)
sv@1738
  1273
                    activeHelpKey: alignBottomRight
sv@1738
  1274
                    tabable: true
sv@1738
  1275
                    model: alignBottomRight
cg@1332
  1276
                  )
cg@1332
  1277
                 )
cg@1332
  1278
               
cg@1332
  1279
              )
cg@1332
  1280
            )
cg@1332
  1281
           )
cg@1332
  1282
         
cg@1332
  1283
        )
cg@1332
  1284
      )
cg@1332
  1285
! !
cg@1332
  1286
cg@1332
  1287
!UILayoutTool::AlignmentOrigin methodsFor:'accessing'!
cg@1332
  1288
cg@1332
  1289
fetch:aView spec:aSpec
cg@1332
  1290
    "fetch alignmentOrigin
cg@1332
  1291
    "
cg@1332
  1292
    |layout type 
cg@1332
  1293
     leftAlignmentFractionHolder topAlignmentFractionHolder
cg@1332
  1294
     leftOffsetHolder leftFractionHolder topOffsetHolder topFractionHolder|
cg@1332
  1295
cg@1332
  1296
    type   := UIPainterView layoutType:aView.
cg@1332
  1297
    layout := aView geometryLayout.
cg@1332
  1298
cg@1332
  1299
    leftOffsetHolder := (self aspectFor:#leftOffset).
cg@1332
  1300
    leftFractionHolder := (self aspectFor:#leftFraction).
cg@1332
  1301
    topOffsetHolder := (self aspectFor:#topOffset).
cg@1332
  1302
    topFractionHolder := (self aspectFor:#topFraction).
cg@1332
  1303
    leftAlignmentFractionHolder := (self aspectFor:#leftAlignmentFraction).
cg@1332
  1304
    topAlignmentFractionHolder := (self aspectFor:#topAlignmentFraction).
cg@1332
  1305
cg@1332
  1306
    layout isLayout ifTrue:[
cg@1332
  1307
        leftOffsetHolder   value:(layout leftOffset).
cg@1332
  1308
        leftFractionHolder value:(layout leftFraction).
cg@1332
  1309
        topOffsetHolder    value:(layout topOffset).
cg@1332
  1310
        topFractionHolder  value:(layout topFraction).
cg@1332
  1311
cg@1332
  1312
        type == #AlignmentOrigin ifTrue:[
cg@1332
  1313
            leftAlignmentFractionHolder value:(layout leftAlignmentFraction).
cg@1332
  1314
            topAlignmentFractionHolder  value:(layout topAlignmentFraction).
cg@1332
  1315
          ^ self
cg@1332
  1316
        ]
cg@1332
  1317
    ] ifFalse:[
cg@1332
  1318
        layout := aView computeOrigin.
cg@1332
  1319
cg@1332
  1320
        leftOffsetHolder   value:(layout x).
cg@1332
  1321
        leftFractionHolder value:0.
cg@1332
  1322
        topOffsetHolder    value:(layout y).
cg@1332
  1323
        topFractionHolder  value:0.
cg@1332
  1324
    ].
cg@1332
  1325
    leftAlignmentFractionHolder value:0.
cg@1332
  1326
    topAlignmentFractionHolder  value:0.
cg@1332
  1327
cg@1332
  1328
cg@1332
  1329
!
cg@1332
  1330
cg@1332
  1331
layout
cg@1332
  1332
    "returns current layout as alignmentOrigin
cg@1332
  1333
    "
cg@1332
  1334
    |layout|
cg@1332
  1335
cg@1332
  1336
    layout  := Smalltalk::AlignmentOrigin new.
cg@1332
  1337
cg@1581
  1338
    layout 
cg@1581
  1339
        leftFraction:(((self aspectFor:#leftFraction) value) ? 0)
cg@1581
  1340
              offset:(((self aspectFor:#leftOffset)   value) ? 0)
cg@1581
  1341
        topFraction:(((self aspectFor:#topFraction)  value) ? 0)
cg@1581
  1342
             offset:(((self aspectFor:#topOffset)    value) ? 0).
cg@1581
  1343
cg@1581
  1344
    layout 
cg@1581
  1345
        leftAlignmentFraction:(((self aspectFor:#leftAlignmentFraction) value) ? 0)
cg@1581
  1346
        topAlignmentFraction:(((self aspectFor:#topAlignmentFraction)  value) ? 0).
cg@1332
  1347
cg@1332
  1348
  ^ layout
cg@1332
  1349
! !
cg@1332
  1350
cg@1332
  1351
!UILayoutTool::AlignmentOrigin methodsFor:'alignment'!
cg@1332
  1352
cg@1332
  1353
alignBottomCenter
cg@1332
  1354
    self makeAlignLeft:0.5 top:1
cg@1332
  1355
cg@1332
  1356
cg@1332
  1357
!
cg@1332
  1358
cg@1332
  1359
alignBottomLeft
cg@1332
  1360
    self makeAlignLeft:0 top:1
cg@1332
  1361
cg@1332
  1362
cg@1332
  1363
!
cg@1332
  1364
cg@1332
  1365
alignBottomRight
cg@1332
  1366
    self makeAlignLeft:1 top:1
cg@1332
  1367
cg@1332
  1368
cg@1332
  1369
!
cg@1332
  1370
cg@1332
  1371
alignCenter
cg@1332
  1372
    self makeAlignLeft:0.5 top:0.5
cg@1332
  1373
cg@1332
  1374
cg@1332
  1375
!
cg@1332
  1376
cg@1332
  1377
alignLeftCenter
cg@1332
  1378
    self makeAlignLeft:0 top:0.5
cg@1332
  1379
cg@1332
  1380
cg@1332
  1381
!
cg@1332
  1382
cg@1332
  1383
alignRightCenter
cg@1332
  1384
    self makeAlignLeft:1 top:0.5
cg@1332
  1385
cg@1332
  1386
cg@1332
  1387
!
cg@1332
  1388
cg@1332
  1389
alignTopCenter
cg@1332
  1390
    self makeAlignLeft:0.5 top:0
cg@1332
  1391
cg@1332
  1392
cg@1332
  1393
!
cg@1332
  1394
cg@1332
  1395
alignTopLeft
cg@1332
  1396
    self makeAlignLeft:0 top:0
cg@1332
  1397
cg@1332
  1398
cg@1332
  1399
!
cg@1332
  1400
cg@1332
  1401
alignTopRight
cg@1332
  1402
    self makeAlignLeft:1 top:0
cg@1332
  1403
cg@1332
  1404
cg@1332
  1405
!
cg@1332
  1406
cg@1332
  1407
makeAlignLeft:leftAlignmentFraction top:topAlignmentFraction
cg@1332
  1408
    |lAF tAF lO tO ext lAHolder tAHolder lOHolder tOHolder|
cg@1332
  1409
cg@1332
  1410
    lAF     := (lAHolder := self aspectFor:#leftAlignmentFraction) value ? 0.
cg@1332
  1411
    tAF     := (tAHolder := self aspectFor:#topAlignmentFraction)  value ? 0.
cg@1332
  1412
    ext     := (self aspectFor:#layoutView) computeExtent.
cg@1332
  1413
cg@1332
  1414
    lAHolder value:leftAlignmentFraction.
cg@1332
  1415
    tAHolder  value:topAlignmentFraction.
cg@1332
  1416
cg@1332
  1417
    lO := (lOHolder := self aspectFor:#leftOffset) value ? 0.
cg@1332
  1418
    tO := (tOHolder := self aspectFor:#topOffset)  value ? 0.
cg@1332
  1419
cg@1332
  1420
    lO := lO + (ext x * (leftAlignmentFraction - lAF)).
cg@1332
  1421
    tO := tO + (ext y * (topAlignmentFraction  - tAF)).
cg@1332
  1422
cg@1332
  1423
    lOHolder value:(lO rounded).
cg@1332
  1424
    tOHolder value:(tO rounded).
cg@1332
  1425
cg@1332
  1426
!
cg@1332
  1427
cg@1332
  1428
makeAlignTopRight
cg@1332
  1429
    self makeAlignLeft:1 top:0
cg@1332
  1430
cg@1332
  1431
ca@1304
  1432
! !
ca@1304
  1433
cg@1339
  1434
!UILayoutTool::Extent class methodsFor:'help specs'!
cg@1339
  1435
cg@1339
  1436
helpSpec
cg@1339
  1437
    "This resource specification was automatically generated
cg@1339
  1438
     by the UIHelpTool of ST/X."
cg@1339
  1439
cg@1339
  1440
    "Do not manually edit this!! If it is corrupted,
cg@1339
  1441
     the UIHelpTool may not be able to read the specification."
cg@1339
  1442
cg@1339
  1443
    "
cg@1339
  1444
     UIHelpTool openOnClass:UILayoutTool::Extent    
cg@1339
  1445
    "
cg@1339
  1446
cg@1339
  1447
    <resource: #help>
cg@1339
  1448
cg@1339
  1449
    ^super helpSpec addPairsFrom:#(
cg@1339
  1450
cg@1339
  1451
#hrzExtent
cg@1339
  1452
'Horizontal extent of the selected widget.'
cg@1339
  1453
cg@1339
  1454
#vrtExtent
cg@1339
  1455
'Vertical extent of the selected widget.'
cg@1339
  1456
cg@1339
  1457
)
cg@1339
  1458
! !
cg@1339
  1459
cg@1339
  1460
!UILayoutTool::Extent class methodsFor:'interface specs'!
ca@1334
  1461
ca@1334
  1462
windowSpec
ca@1334
  1463
    "This resource specification was automatically generated
ca@1334
  1464
     by the UIPainter of ST/X."
ca@1334
  1465
ca@1334
  1466
    "Do not manually edit this!! If it is corrupted,
ca@1334
  1467
     the UIPainter may not be able to read the specification."
ca@1334
  1468
ca@1334
  1469
    "
cg@1339
  1470
     UIPainter new openOnClass:UILayoutTool::Extent andSelector:#windowSpec
cg@1339
  1471
     UILayoutTool::Extent new openInterface:#windowSpec
cg@1339
  1472
     UILayoutTool::Extent open
ca@1334
  1473
    "
ca@1334
  1474
ca@1334
  1475
    <resource: #canvas>
ca@1334
  1476
cg@1339
  1477
    ^ 
sv@1738
  1478
     #(FullSpec
sv@1738
  1479
        name: windowSpec
sv@1738
  1480
        window: 
sv@1738
  1481
       (WindowSpec
sv@1738
  1482
          label: 'UILayoutTool-Extent'
sv@1738
  1483
          name: 'UILayoutTool-Extent'
sv@1738
  1484
          min: (Point 10 10)
sv@2478
  1485
          bounds: (Rectangle 0 0 505 149)
cg@1339
  1486
        )
sv@1738
  1487
        component: 
sv@1738
  1488
       (SpecCollection
sv@1738
  1489
          collection: (
sv@1738
  1490
           (FramedBoxSpec
sv@1738
  1491
              label: 'Extent'
sv@1738
  1492
              name: 'FramedBox'
ca@1804
  1493
              layout: (LayoutFrame 0 0.0 6 0.0 0 1.0 145 0)
sv@1738
  1494
              labelPosition: topLeft
cg@2022
  1495
              translateLabel: true
sv@1738
  1496
              component: 
sv@1738
  1497
             (SpecCollection
sv@1738
  1498
                collection: (
sv@1738
  1499
                 (LabelSpec
sv@1738
  1500
                    label: 'Width:'
sv@1738
  1501
                    name: 'labelWidth'
sv@2478
  1502
                    layout: (AlignmentOrigin 89 0 41 0 1 0.5)
cg@2022
  1503
                    translateLabel: true
sv@1738
  1504
                    adjust: right
cg@1339
  1505
                  )
sv@1738
  1506
                 (InputFieldSpec
sv@1738
  1507
                    name: 'fieldLeftOffset'
sv@2478
  1508
                    layout: (LayoutFrame 90 0 30 0 140 0 52 0)
sv@1738
  1509
                    activeHelpKey: hrzExtent
sv@1738
  1510
                    enableChannel: notUsingDefaultExtent
sv@1738
  1511
                    tabable: true
sv@1738
  1512
                    model: leftOffset
sv@1738
  1513
                    group: inputGroup
sv@1738
  1514
                    type: numberOrNil
sv@1738
  1515
                    acceptOnLostFocus: true
sv@1738
  1516
                    acceptChannel: acceptChannel
sv@1738
  1517
                    modifiedChannel: modifiedChannel
sv@1738
  1518
                    acceptOnPointerLeave: false
cg@1339
  1519
                  )
sv@1738
  1520
                 (LabelSpec
sv@1738
  1521
                    label: 'Height:'
sv@1738
  1522
                    name: 'labelHeight'
sv@2478
  1523
                    layout: (AlignmentOrigin 89 0 66 0 1 0.5)
cg@2022
  1524
                    translateLabel: true
sv@1738
  1525
                    adjust: right
cg@1339
  1526
                  )
sv@1738
  1527
                 (InputFieldSpec
sv@1738
  1528
                    name: 'fieldRightOffset'
sv@2478
  1529
                    layout: (LayoutFrame 90 0 55 0 140 0 77 0)
sv@1738
  1530
                    activeHelpKey: vrtExtent
sv@1738
  1531
                    enableChannel: notUsingDefaultExtent
sv@1738
  1532
                    tabable: true
cg@2022
  1533
                    model: topOffset
sv@1738
  1534
                    group: inputGroup
sv@1738
  1535
                    type: numberOrNil
sv@1738
  1536
                    acceptOnLostFocus: true
sv@1738
  1537
                    acceptChannel: acceptChannel
sv@1738
  1538
                    modifiedChannel: modifiedChannel
sv@1738
  1539
                    acceptOnPointerLeave: false
cg@1339
  1540
                  )
sv@1738
  1541
                 (CheckBoxSpec
sv@2478
  1542
                    label: 'Use Preferred'
sv@2478
  1543
                    name: 'CheckBox1'
sv@2478
  1544
                    layout: (LayoutFrame 169 0 30 0 275 0 52 0)
sv@2478
  1545
                    model: usePreferredWidth
sv@2478
  1546
                    translateLabel: true
sv@2478
  1547
                  )
sv@2478
  1548
                 (CheckBoxSpec
sv@2478
  1549
                    label: 'Dynamic'
sv@2478
  1550
                    name: 'CheckBox3'
sv@2478
  1551
                    layout: (LayoutFrame 276 0 30 0 353 0 52 0)
sv@2478
  1552
                    model: useDynamicPreferredWidth
sv@2478
  1553
                    translateLabel: true
sv@2478
  1554
                  )
sv@2478
  1555
                 (CheckBoxSpec
sv@2478
  1556
                    label: 'Use Preferred'
sv@2478
  1557
                    name: 'CheckBox2'
sv@2478
  1558
                    layout: (LayoutFrame 169 0 58 0 275 0 80 0)
sv@2478
  1559
                    model: usePreferredHeight
sv@2478
  1560
                    translateLabel: true
sv@2478
  1561
                  )
sv@2478
  1562
                 (CheckBoxSpec
sv@2478
  1563
                    label: 'Dynamic'
sv@2478
  1564
                    name: 'CheckBox4'
sv@2478
  1565
                    layout: (LayoutFrame 276 0 58 0 353 0 80 0)
sv@2478
  1566
                    model: useDynamicPreferredHeight
sv@2478
  1567
                    translateLabel: true
sv@2478
  1568
                  )
sv@2478
  1569
                 (CheckBoxSpec
sv@1738
  1570
                    label: 'Use Widgets Default Extent'
sv@1738
  1571
                    name: 'useDefaultExtentCheckBox'
sv@2478
  1572
                    layout: (Point 5 84)
sv@1738
  1573
                    enableChannel: defaultExtentEnabled
sv@1738
  1574
                    tabable: true
sv@1738
  1575
                    model: useDefaultExtent
sv@1738
  1576
                    translateLabel: true
cg@1339
  1577
                  )
cg@1339
  1578
                 )
cg@1339
  1579
               
ca@1334
  1580
              )
cg@1339
  1581
            )
cg@2022
  1582
           (PopUpListSpec
cg@2022
  1583
              label: 'Common Extents'
cg@2022
  1584
              name: 'CommonExtentsPopUpList'
sv@2478
  1585
              layout: (LayoutFrame 189 0 21 0 314 0 43 0)
cg@2022
  1586
              tabable: true
cg@2022
  1587
              menu: listOfCommonExtents
cg@2022
  1588
              useIndex: true
cg@2022
  1589
              ignoreReselect: false
cg@2022
  1590
              stateChangeCallBackSelector: commonExtentSelected:
cg@2022
  1591
            )
cg@1339
  1592
           )
cg@1339
  1593
         
cg@1339
  1594
        )
ca@1334
  1595
      )
ca@1334
  1596
! !
ca@1334
  1597
cg@1339
  1598
!UILayoutTool::Extent methodsFor:'accessing'!
ca@1334
  1599
ca@1334
  1600
fetch:aView spec:aSpec
cg@2022
  1601
    "fetch the extent from aView"
cg@2022
  1602
cg@1339
  1603
    |extent|
cg@1339
  1604
cg@1339
  1605
    extent  := aView computeExtent.
cg@1339
  1606
cg@1339
  1607
    (self aspectFor:#leftOffset)  value:(extent x).
cg@2022
  1608
    (self aspectFor:#topOffset)   value:(extent y).
cg@1339
  1609
sv@2478
  1610
    (self aspectFor:#usePreferredWidth) value:(aSpec usePreferredWidth).
sv@2478
  1611
    (self aspectFor:#usePreferredHeight) value:(aSpec usePreferredHeight).
sv@2478
  1612
    (self aspectFor:#useDynamicPreferredWidth) value:(aSpec useDynamicPreferredWidth).
sv@2478
  1613
    (self aspectFor:#useDynamicPreferredHeight) value:(aSpec useDynamicPreferredHeight).
cg@1339
  1614
    (self aspectFor:#useDefaultExtent) value:aSpec useDefaultExtent 
ca@1334
  1615
!
ca@1334
  1616
ca@1334
  1617
layout
cg@2022
  1618
    "returns the current extent"
cg@2022
  1619
cg@2022
  1620
    ^ (((self aspectFor:#leftOffset) value) ? 0) @ (((self aspectFor:#topOffset)  value) ? 0)
cg@2022
  1621
! !
cg@2022
  1622
cg@2022
  1623
!UILayoutTool::Extent methodsFor:'aspects'!
cg@2022
  1624
cg@2022
  1625
commonExtentsSpec
cg@2022
  1626
    ^ #( 
cg@2022
  1627
        ('200 x 100'  (200 100) ) 
cg@2022
  1628
        ('300 x 300'  (300 300) ) 
cg@2022
  1629
        ('640 x 400'  (640 400) ) 
cg@2022
  1630
        ('800 x 600'  (800 600) ) 
cg@2214
  1631
        ('1024 x 768'  (1024 768) ) 
cg@2214
  1632
        ('1200 x 800'  (1200 800) ) 
cg@2022
  1633
      )
cg@2022
  1634
!
cg@2022
  1635
cg@2022
  1636
listOfCommonExtents
cg@2022
  1637
    ^ self commonExtentsSpec collect:[:eachRow | eachRow first].
cg@2022
  1638
! !
cg@2022
  1639
cg@2022
  1640
!UILayoutTool::Extent methodsFor:'user actions'!
cg@2022
  1641
cg@2022
  1642
commonExtentSelected:index
cg@2022
  1643
    |xy x y|
cg@2022
  1644
cg@2022
  1645
    xy := (self commonExtentsSpec at:index) second. 
cg@2022
  1646
    x := xy at:1.
cg@2022
  1647
    y := xy at:2.
cg@2022
  1648
cg@2022
  1649
    (self aspectFor:#leftOffset)  value:x.
cg@2022
  1650
    (self aspectFor:#topOffset)   value:y.
cg@2022
  1651
cg@2022
  1652
    (builder componentAt:#CommonExtentsPopUpList) 
cg@2022
  1653
        label:(resources string:'Common Extents').
ca@1334
  1654
! !
ca@1334
  1655
werner@1826
  1656
!UILayoutTool::LayoutFrame class methodsFor:'defaults'!
werner@1826
  1657
werner@1826
  1658
defaultFixPartHeight
werner@1826
  1659
    ^ DefaultFixPartHeight ? 30
werner@1826
  1660
! !
werner@1826
  1661
ca@1447
  1662
!UILayoutTool::LayoutFrame class methodsFor:'help specs'!
ca@1447
  1663
ca@1447
  1664
helpSpec
ca@1447
  1665
    "This resource specification was automatically generated
ca@1447
  1666
     by the UIHelpTool of ST/X."
ca@1447
  1667
ca@1447
  1668
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1669
     the UIHelpTool may not be able to read the specification."
ca@1447
  1670
ca@1447
  1671
    "
ca@1447
  1672
     UIHelpTool openOnClass:UILayoutTool::LayoutFrame    
ca@1447
  1673
    "
ca@1447
  1674
ca@1447
  1675
    <resource: #help>
ca@1447
  1676
ca@1858
  1677
    ^ super helpSpec addPairsFrom:#(
ca@1447
  1678
ca@1447
  1679
#bottomAbsolute
ca@1447
  1680
'Offset of the bottom edge; positive is to the bottom, negative to the top.'
ca@1447
  1681
ca@1858
  1682
#bigBottomFixPartLayout
ca@1858
  1683
'Set layout for a big fixed area at the bottom of the widgets container'
ca@1858
  1684
ca@1447
  1685
#bottomFixPartLayout
ca@1858
  1686
'Set layout for a small fixed area at the bottom of the widgets container'
ca@1447
  1687
ca@1447
  1688
#bottomHalfLayout
ca@1858
  1689
'Set layout for the bottom half of the widgets container'
ca@1447
  1690
ca@1447
  1691
#bottomLeftQuarterLayout
ca@1858
  1692
'Set layout for the bottom-left quarter of the widgets container'
ca@1447
  1693
ca@1447
  1694
#bottomRelative
ca@1447
  1695
'Relative corner y of the selected widget.'
ca@1447
  1696
ca@1447
  1697
#bottomRightQuarterLayout
ca@1858
  1698
'Set layout for the bottom-right quarter of the widgets container'
ca@1858
  1699
ca@1858
  1700
#fullLayout
ca@1858
  1701
'Set layout to fill all of the widgets container'
ca@1447
  1702
ca@1447
  1703
#horizontalFixPartLayout
ca@1858
  1704
'Set layout for a small fixed-height area centered vertically in the widgets container'
ca@1858
  1705
ca@1858
  1706
#bigHorizontalFixPartLayout
ca@1858
  1707
'Set layout for a big fixed-height area centered vertically in the widgets container'
ca@1447
  1708
ca@1447
  1709
#leftFixPartLayout
ca@1858
  1710
'Set layout for a small fixed area at the left of the widgets container'
ca@1447
  1711
ca@1447
  1712
#leftHalfLayout
ca@1858
  1713
'Set layout for the left half of the widgets container'
ca@1447
  1714
ca@1447
  1715
#makeBottomAbsolute
ca@1447
  1716
'Compute pure-absolute y.'
ca@1447
  1717
ca@1447
  1718
#makeBottomRelative
cg@1955
  1719
'Compute pure-fractional y.'
ca@1447
  1720
ca@1447
  1721
#makeBottomRelativeFromBottom
cg@2022
  1722
'Compute fraction+offset for y relative to containers bottom.'
ca@1447
  1723
ca@1447
  1724
#makeRightAbsolute
ca@1447
  1725
'Compute pure-absolute x.'
ca@1447
  1726
ca@1447
  1727
#makeRightRelative
cg@1955
  1728
'Compute pure-fractional x.'
ca@1447
  1729
ca@1447
  1730
#makeRightRelativeFromRight
ca@1447
  1731
'Compute fraction+offset for x relative to containers right.'
ca@1447
  1732
ca@1447
  1733
#rightAbsolute
ca@1447
  1734
'Offset of the right edge; positive is to the right, negative to the left.'
ca@1447
  1735
ca@1447
  1736
#rightFixPartLayout
ca@1858
  1737
'Set layout for a small fixed area at the right of the widgets container'
ca@1447
  1738
ca@1447
  1739
#rightHalfLayout
ca@1858
  1740
'Set layout for the right half of the widgets container'
ca@1447
  1741
ca@1447
  1742
#rightRelative
ca@1447
  1743
'Relative corner x of the selected widget.'
ca@1447
  1744
ca@1858
  1745
#screenFrameLayout
ca@1858
  1746
''
ca@1858
  1747
ca@1447
  1748
#topFixPartLayout
ca@1858
  1749
'Set layout for a small fixed area at the top of the widgets container'
ca@1858
  1750
ca@1858
  1751
#bigTopFixPartLayout
ca@1858
  1752
'Set layout for a big fixed area at the top of the widgets container'
ca@1447
  1753
ca@1447
  1754
#topHalfLayout
ca@1858
  1755
'Set layout for the top half of the widgets container'
ca@1447
  1756
ca@1447
  1757
#topLeftQuarterLayout
ca@1858
  1758
'Set layout for the top-left quarter of the widgets container'
ca@1447
  1759
ca@1447
  1760
#topRightQuarterLayout
ca@1858
  1761
'Set layout for the top-right quarter of the widgets container'
ca@1447
  1762
ca@1447
  1763
#verticalFixPartLayout
ca@1858
  1764
'Set layout for a small fixed-width area centered horizontally in the widgets container'
ca@1447
  1765
ca@1447
  1766
)
ca@1447
  1767
! !
ca@1447
  1768
ca@1447
  1769
!UILayoutTool::LayoutFrame class methodsFor:'image specs'!
ca@1447
  1770
cg@1706
  1771
setBigBottomFixPartIcon
cg@1706
  1772
    "This resource specification was automatically generated
cg@1706
  1773
     by the ImageEditor of ST/X."
cg@1706
  1774
cg@1706
  1775
    "Do not manually edit this!! If it is corrupted,
cg@1706
  1776
     the ImageEditor may not be able to read the specification."
cg@1706
  1777
cg@1706
  1778
    "
cg@1706
  1779
     self setBigBottomFixPartIcon inspect
cg@1706
  1780
     ImageEditor openOnClass:self andSelector:#setBigBottomFixPartIcon
cg@1706
  1781
     Icon flushCachedIcons
cg@1706
  1782
    "
cg@1706
  1783
cg@1706
  1784
    <resource: #image>
cg@1706
  1785
cg@1706
  1786
    ^Icon
cg@2269
  1787
        constantNamed:'UILayoutTool::LayoutFrame class setBigBottomFixPartIcon'
cg@2022
  1788
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2022
  1789
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"H"H"H"H"@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQ
cg@2022
  1790
DQDQDQD @!!DQDQDQDR@BDQDQDQDQH@H"H"H"H"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>A XFA XFA _????????????????????????????<b') ; yourself); yourself]
cg@1706
  1791
!
cg@1706
  1792
cg@1706
  1793
setBigHorizontalFixPartIcon
cg@1706
  1794
    "This resource specification was automatically generated
cg@1706
  1795
     by the ImageEditor of ST/X."
cg@1706
  1796
cg@1706
  1797
    "Do not manually edit this!! If it is corrupted,
cg@1706
  1798
     the ImageEditor may not be able to read the specification."
cg@1706
  1799
cg@1706
  1800
    "
cg@1706
  1801
     self setBigHorizontalFixPartIcon inspect
cg@1706
  1802
     ImageEditor openOnClass:self andSelector:#setBigHorizontalFixPartIcon
cg@1706
  1803
     Icon flushCachedIcons
cg@1706
  1804
    "
cg@1706
  1805
cg@1706
  1806
    <resource: #image>
cg@1706
  1807
cg@1706
  1808
    ^Icon
cg@2269
  1809
        constantNamed:'UILayoutTool::LayoutFrame class setBigHorizontalFixPartIcon'
cg@2022
  1810
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2022
  1811
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@H"
cg@2022
  1812
H"H"H"H @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>A XFA??????????????????????????>A XFA??<b') ; yourself); yourself]
cg@1706
  1813
!
cg@1706
  1814
cg@1706
  1815
setBigTopFixPartIcon
cg@1706
  1816
    "This resource specification was automatically generated
cg@1706
  1817
     by the ImageEditor of ST/X."
cg@1706
  1818
cg@1706
  1819
    "Do not manually edit this!! If it is corrupted,
cg@1706
  1820
     the ImageEditor may not be able to read the specification."
cg@1706
  1821
cg@1706
  1822
    "
cg@1706
  1823
     self setBigTopFixPartIcon inspect
cg@1706
  1824
     ImageEditor openOnClass:self andSelector:#setBigTopFixPartIcon
cg@1706
  1825
     Icon flushCachedIcons
cg@1706
  1826
    "
cg@1706
  1827
cg@1706
  1828
    <resource: #image>
cg@1706
  1829
cg@1706
  1830
    ^Icon
cg@2269
  1831
        constantNamed:'UILayoutTool::LayoutFrame class setBigTopFixPartIcon'
cg@2022
  1832
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2022
  1833
@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @"H"H"H"H"@@@@@@@@@@@@@@
cg@2022
  1834
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'?????????????????????????????8FA XFA XFA??<b') ; yourself); yourself]
cg@1706
  1835
!
cg@1706
  1836
ca@1447
  1837
setBottomFixPartIcon
ca@1447
  1838
    "This resource specification was automatically generated
ca@1447
  1839
     by the ImageEditor of ST/X."
ca@1447
  1840
ca@1447
  1841
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1842
     the ImageEditor may not be able to read the specification."
ca@1447
  1843
ca@1447
  1844
    "
ca@1447
  1845
     self setBottomFixPartIcon inspect
ca@1447
  1846
     ImageEditor openOnClass:self andSelector:#setBottomFixPartIcon
cg@2269
  1847
     Icon flushCachedIcons
ca@1447
  1848
    "
ca@1447
  1849
ca@1447
  1850
    <resource: #image>
ca@1447
  1851
ca@1447
  1852
    ^Icon
cg@2269
  1853
        constantNamed:'UILayoutTool::LayoutFrame class setBottomFixPartIcon'
cg@2269
  1854
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  1855
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"
cg@2269
  1856
H"@BH"H @!!DQD@DQDR@BDQDP@QDQH@H"H"@BH"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @F@@X@A @G???????????????<b') ; yourself); yourself]
ca@1447
  1857
!
ca@1447
  1858
ca@1447
  1859
setBottomHalfIcon
ca@1447
  1860
    "This resource specification was automatically generated
ca@1447
  1861
     by the ImageEditor of ST/X."
ca@1447
  1862
ca@1447
  1863
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1864
     the ImageEditor may not be able to read the specification."
ca@1447
  1865
ca@1447
  1866
    "
ca@1447
  1867
     self setBottomHalfIcon inspect
ca@1447
  1868
     ImageEditor openOnClass:self andSelector:#setBottomHalfIcon
cg@2269
  1869
     Icon flushCachedIcons
ca@1447
  1870
    "
ca@1447
  1871
ca@1447
  1872
    <resource: #image>
ca@1447
  1873
ca@1447
  1874
    ^Icon
cg@2269
  1875
        constantNamed:'UILayoutTool::LayoutFrame class setBottomHalfIcon'
cg@2269
  1876
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  1877
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"H"H"H"H"@BDQDQDQDQH@HQ
cg@2269
  1878
DQDQDQD @!!DQDQDQDR@BDQDQDQDQH@H"H"H"H"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @F@@_????????????????????<b') ; yourself); yourself]
ca@1447
  1879
!
ca@1447
  1880
ca@1447
  1881
setBottomLeftQuarterIcon
ca@1447
  1882
    "This resource specification was automatically generated
ca@1447
  1883
     by the ImageEditor of ST/X."
ca@1447
  1884
ca@1447
  1885
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1886
     the ImageEditor may not be able to read the specification."
ca@1447
  1887
ca@1447
  1888
    "
ca@1447
  1889
     self setBottomLeftQuarterIcon inspect
ca@1447
  1890
     ImageEditor openOnClass:self andSelector:#setBottomLeftQuarterIcon
cg@2269
  1891
     Icon flushCachedIcons
ca@1447
  1892
    "
ca@1447
  1893
ca@1447
  1894
    <resource: #image>
ca@1447
  1895
ca@1447
  1896
    ^Icon
cg@2269
  1897
        constantNamed:'UILayoutTool::LayoutFrame class setBottomLeftQuarterIcon'
cg@2269
  1898
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  1899
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"H"@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQ
cg@2269
  1900
DR@@@@@@@!!DQH@@@@@@BDQD @@@@@@H"H"@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @G?@_<A?0G?@_<A?0G?@_<A??<b') ; yourself); yourself]
ca@1447
  1901
!
ca@1447
  1902
ca@1447
  1903
setBottomRightQuarterIcon
ca@1447
  1904
    "This resource specification was automatically generated
ca@1447
  1905
     by the ImageEditor of ST/X."
ca@1447
  1906
ca@1447
  1907
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1908
     the ImageEditor may not be able to read the specification."
ca@1447
  1909
ca@1447
  1910
    "
ca@1447
  1911
     self setBottomRightQuarterIcon inspect
ca@1447
  1912
     ImageEditor openOnClass:self andSelector:#setBottomRightQuarterIcon
cg@2269
  1913
     Icon flushCachedIcons
ca@1447
  1914
    "
ca@1447
  1915
ca@1447
  1916
    <resource: #image>
ca@1447
  1917
ca@1447
  1918
    ^Icon
cg@2269
  1919
        constantNamed:'UILayoutTool::LayoutFrame class setBottomRightQuarterIcon'
cg@2269
  1920
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  1921
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH"H"@@@@@@HQDQH@@@
cg@2269
  1922
@@@!!DQD @@@@@BDQDR@@@@@@HQDQH@@@@@@"H"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@X@A @F@@XG? _>A?8G? _>A?8G???<b') ; yourself); yourself]
ca@1447
  1923
!
ca@1447
  1924
cg@1680
  1925
setFullIcon
cg@1680
  1926
    "This resource specification was automatically generated
cg@1680
  1927
     by the ImageEditor of ST/X."
cg@1680
  1928
cg@1680
  1929
    "Do not manually edit this!! If it is corrupted,
cg@1680
  1930
     the ImageEditor may not be able to read the specification."
cg@1680
  1931
cg@1680
  1932
    "
cg@1680
  1933
     self setFullIcon inspect
cg@1680
  1934
     ImageEditor openOnClass:self andSelector:#setFullIcon
cg@1680
  1935
     Icon flushCachedIcons
cg@1680
  1936
    "
cg@1680
  1937
cg@1680
  1938
    <resource: #image>
cg@1680
  1939
cg@1680
  1940
    ^Icon
cg@2269
  1941
        constantNamed:'UILayoutTool::LayoutFrame class setFullIcon'
cg@2269
  1942
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@1680
  1943
@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQ
cg@2269
  1944
DQDQDQD @!!DQDQDQDR@BDQDQDQDQH@H"H"H"H"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??????????????????????????????????????????<b') ; yourself); yourself]
cg@1680
  1945
!
cg@1680
  1946
ca@1447
  1947
setHorizontalFixPartIcon
ca@1447
  1948
    "This resource specification was automatically generated
ca@1447
  1949
     by the ImageEditor of ST/X."
ca@1447
  1950
ca@1447
  1951
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1952
     the ImageEditor may not be able to read the specification."
ca@1447
  1953
ca@1447
  1954
    "
ca@1447
  1955
     self setHorizontalFixPartIcon inspect
ca@1447
  1956
     ImageEditor openOnClass:self andSelector:#setHorizontalFixPartIcon
cg@2269
  1957
     Icon flushCachedIcons
ca@1447
  1958
    "
ca@1447
  1959
ca@1447
  1960
    <resource: #image>
ca@1447
  1961
ca@1447
  1962
    ^Icon
cg@2269
  1963
        constantNamed:'UILayoutTool::LayoutFrame class setHorizontalFixPartIcon'
cg@2269
  1964
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
ca@1447
  1965
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"H"H@H"H"@BDQDP@QDQH@HQDQ@ADQD @"H"H@H"H"@@@@@@@@@@@@@@
cg@2269
  1966
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@@X@A @F@@_???????????????8@A @F@@X@A??<b') ; yourself); yourself]
ca@1447
  1967
!
ca@1447
  1968
ca@1447
  1969
setLeftFixPartIcon
ca@1447
  1970
    "This resource specification was automatically generated
ca@1447
  1971
     by the ImageEditor of ST/X."
ca@1447
  1972
ca@1447
  1973
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1974
     the ImageEditor may not be able to read the specification."
ca@1447
  1975
ca@1447
  1976
    "
ca@1447
  1977
     self setLeftFixPartIcon inspect
ca@1447
  1978
     ImageEditor openOnClass:self andSelector:#setLeftFixPartIcon
cg@2269
  1979
     Icon flushCachedIcons
ca@1447
  1980
    "
ca@1447
  1981
ca@1447
  1982
    <resource: #image>
ca@1447
  1983
ca@1447
  1984
    ^Icon
cg@2269
  1985
        constantNamed:'UILayoutTool::LayoutFrame class setLeftFixPartIcon'
cg@2269
  1986
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
ca@1447
  1987
@@@@@@@@@@@BH"@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@@@@@@@@@@@@@@@@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQ
cg@2269
  1988
H@@@@@@@@!!D @@@@@@@BDR@@@@@@@@H"H@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???<@_0A?@G<@_0A?@G<@_0A?@G<@_0A?@G<@_0A??<b') ; yourself); yourself]
ca@1447
  1989
!
ca@1447
  1990
ca@1447
  1991
setLeftHalfIcon
ca@1447
  1992
    "This resource specification was automatically generated
ca@1447
  1993
     by the ImageEditor of ST/X."
ca@1447
  1994
ca@1447
  1995
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1996
     the ImageEditor may not be able to read the specification."
ca@1447
  1997
ca@1447
  1998
    "
ca@1447
  1999
     self setLeftHalfIcon inspect
ca@1447
  2000
     ImageEditor openOnClass:self andSelector:#setLeftHalfIcon
cg@2269
  2001
     Icon flushCachedIcons
ca@1447
  2002
    "
ca@1447
  2003
ca@1447
  2004
    <resource: #image>
ca@1447
  2005
ca@1447
  2006
    ^Icon
cg@2269
  2007
        constantNamed:'UILayoutTool::LayoutFrame class setLeftHalfIcon'
cg@2269
  2008
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2009
@@@@@@@@@@@BH"H @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQ
cg@2269
  2010
DR@@@@@@@!!DQH@@@@@@BDQD @@@@@@H"H"@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'????@_<A?0G?@_<A?0G?@_<A?0G?@_<A?0G?@_<A??<b') ; yourself); yourself]
ca@1447
  2011
!
ca@1447
  2012
ca@1447
  2013
setRightFixPartIcon
ca@1447
  2014
    "This resource specification was automatically generated
ca@1447
  2015
     by the ImageEditor of ST/X."
ca@1447
  2016
ca@1447
  2017
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2018
     the ImageEditor may not be able to read the specification."
ca@1447
  2019
ca@1447
  2020
    "
ca@1447
  2021
     self setRightFixPartIcon inspect
ca@1447
  2022
     ImageEditor openOnClass:self andSelector:#setRightFixPartIcon
cg@2269
  2023
     Icon flushCachedIcons
ca@1447
  2024
    "
ca@1447
  2025
ca@1447
  2026
    <resource: #image>
ca@1447
  2027
ca@1447
  2028
    ^Icon
cg@2269
  2029
        constantNamed:'UILayoutTool::LayoutFrame class setRightFixPartIcon'
cg@2269
  2030
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
ca@1447
  2031
@@@@@@@@@@@@@@@@@@H"H@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BDR@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BDR@@@@@@@@HQH@@@
cg@2269
  2032
@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@O8@? C>@O8@? C>@O8@? C>@O8@? C>@O8@???<b') ; yourself); yourself]
ca@1447
  2033
!
ca@1447
  2034
ca@1447
  2035
setRightHalfIcon
ca@1447
  2036
    "This resource specification was automatically generated
ca@1447
  2037
     by the ImageEditor of ST/X."
ca@1447
  2038
ca@1447
  2039
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2040
     the ImageEditor may not be able to read the specification."
ca@1447
  2041
ca@1447
  2042
    "
ca@1447
  2043
     self setRightHalfIcon inspect
ca@1447
  2044
     ImageEditor openOnClass:self andSelector:#setRightHalfIcon
cg@2269
  2045
     Icon flushCachedIcons
ca@1447
  2046
    "
ca@1447
  2047
ca@1447
  2048
    <resource: #image>
ca@1447
  2049
ca@1447
  2050
    ^Icon
cg@2269
  2051
        constantNamed:'UILayoutTool::LayoutFrame class setRightHalfIcon'
cg@2269
  2052
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2053
@@@@@@@@@@@@@@@@@"H"H@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@
cg@2269
  2054
@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BH"H @@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@?8C? O>@?8C? O>@?8C? O>@?8C? O>@?8C???<b') ; yourself); yourself]
ca@1447
  2055
!
ca@1447
  2056
ca@1447
  2057
setToRightQuarterIcon
ca@1447
  2058
    "This resource specification was automatically generated
ca@1447
  2059
     by the ImageEditor of ST/X."
ca@1447
  2060
ca@1447
  2061
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2062
     the ImageEditor may not be able to read the specification."
ca@1447
  2063
ca@1447
  2064
    "
ca@1447
  2065
     self setToRightQuarterIcon inspect
ca@1447
  2066
     ImageEditor openOnClass:self andSelector:#setToRightQuarterIcon
cg@2269
  2067
     Icon flushCachedIcons
ca@1447
  2068
    "
ca@1447
  2069
ca@1447
  2070
    <resource: #image>
ca@1447
  2071
ca@1447
  2072
    ^Icon
cg@2269
  2073
        constantNamed:'UILayoutTool::LayoutFrame class setToRightQuarterIcon'
cg@2269
  2074
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2075
@@@@@@@@@@@@@@@@@"H"H@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@"H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
  2076
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>@?8C? O>@?8C? O>@?8C? @F@@X@A @F@@X@A??<b') ; yourself); yourself]
ca@1447
  2077
!
ca@1447
  2078
ca@1447
  2079
setTopFixPartIcon
ca@1447
  2080
    "This resource specification was automatically generated
ca@1447
  2081
     by the ImageEditor of ST/X."
ca@1447
  2082
ca@1447
  2083
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2084
     the ImageEditor may not be able to read the specification."
ca@1447
  2085
ca@1447
  2086
    "
ca@1447
  2087
     self setTopFixPartIcon inspect
ca@1447
  2088
     ImageEditor openOnClass:self andSelector:#setTopFixPartIcon
cg@2269
  2089
     Icon flushCachedIcons
ca@1447
  2090
    "
ca@1447
  2091
ca@1447
  2092
    <resource: #image>
ca@1447
  2093
ca@1447
  2094
    ^Icon
cg@2269
  2095
        constantNamed:'UILayoutTool::LayoutFrame class setTopFixPartIcon'
cg@2269
  2096
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2097
@@@@@@@@@@@BH"H @"H"H@HQDQ@ADQD @!!DQD@DQDR@BH"H @"H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
  2098
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???????????????? @F@@X@A @F@@X@A @F@@X@A??<b') ; yourself); yourself]
ca@1447
  2099
!
ca@1447
  2100
ca@1447
  2101
setTopHalfIcon
ca@1447
  2102
    "This resource specification was automatically generated
ca@1447
  2103
     by the ImageEditor of ST/X."
ca@1447
  2104
ca@1447
  2105
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2106
     the ImageEditor may not be able to read the specification."
ca@1447
  2107
ca@1447
  2108
    "
ca@1447
  2109
     self setTopHalfIcon inspect
ca@1447
  2110
     ImageEditor openOnClass:self andSelector:#setTopHalfIcon
cg@2269
  2111
     Icon flushCachedIcons
ca@1447
  2112
    "
ca@1447
  2113
ca@1447
  2114
    <resource: #image>
ca@1447
  2115
ca@1447
  2116
    ^Icon
cg@2269
  2117
        constantNamed:'UILayoutTool::LayoutFrame class setTopHalfIcon'
cg@2269
  2118
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2119
@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @"H"H"H"H"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
  2120
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'?????????????????????8@A @F@@X@A @F@@X@A??<b') ; yourself); yourself]
ca@1447
  2121
!
ca@1447
  2122
ca@1447
  2123
setTopLeftQuarterIcon
ca@1447
  2124
    "This resource specification was automatically generated
ca@1447
  2125
     by the ImageEditor of ST/X."
ca@1447
  2126
ca@1447
  2127
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2128
     the ImageEditor may not be able to read the specification."
ca@1447
  2129
ca@1447
  2130
    "
ca@1447
  2131
     self setTopLeftQuarterIcon inspect
ca@1447
  2132
     ImageEditor openOnClass:self andSelector:#setTopLeftQuarterIcon
cg@2269
  2133
     Icon flushCachedIcons
ca@1447
  2134
    "
ca@1447
  2135
ca@1447
  2136
    <resource: #image>
ca@1447
  2137
ca@1447
  2138
    ^Icon
cg@2269
  2139
        constantNamed:'UILayoutTool::LayoutFrame class setTopLeftQuarterIcon'
cg@2269
  2140
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2141
@@@@@@@@@@@BH"H"@@@@@@HQDQH@@@@@@!!DQD @@@@@BDQDR@@@@@@HQDQH@@@@@@"H"H @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
  2142
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'???? _>A?8G? _>A?8G? X@A @F@@X@A @F@@X@A??<b') ; yourself); yourself]
ca@1447
  2143
!
ca@1447
  2144
ca@1447
  2145
setVerticalFixPartIcon
ca@1447
  2146
    "This resource specification was automatically generated
ca@1447
  2147
     by the ImageEditor of ST/X."
ca@1447
  2148
ca@1447
  2149
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2150
     the ImageEditor may not be able to read the specification."
ca@1447
  2151
ca@1447
  2152
    "
ca@1447
  2153
     self setVerticalFixPartIcon inspect
ca@1447
  2154
     ImageEditor openOnClass:self andSelector:#setVerticalFixPartIcon
cg@2269
  2155
     Icon flushCachedIcons
ca@1447
  2156
    "
ca@1447
  2157
ca@1447
  2158
    <resource: #image>
ca@1447
  2159
ca@1447
  2160
    ^Icon
cg@2269
  2161
        constantNamed:'UILayoutTool::LayoutFrame class setVerticalFixPartIcon'
cg@2269
  2162
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
ca@1447
  2163
@@@@@@@@@@@@@@@"H @@@@@@@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HQH@@@@@@@@!!D @@@@@@
cg@2269
  2164
@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BH"@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#(1)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??>G8X_!!!!>FG8X_!!!!>FG8X_!!!!>FG8X_!!!!>FG8X_!!??<b') ; yourself); yourself]
ca@1447
  2165
! !
ca@1447
  2166
ca@1447
  2167
!UILayoutTool::LayoutFrame class methodsFor:'interface specs'!
ca@1447
  2168
ca@1447
  2169
windowSpec
ca@1447
  2170
    "This resource specification was automatically generated
ca@1447
  2171
     by the UIPainter of ST/X."
ca@1447
  2172
ca@1447
  2173
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2174
     the UIPainter may not be able to read the specification."
ca@1447
  2175
ca@1447
  2176
    "
ca@1447
  2177
     UIPainter new openOnClass:UILayoutTool::LayoutFrame andSelector:#windowSpec
ca@1447
  2178
     UILayoutTool::LayoutFrame new openInterface:#windowSpec
ca@1447
  2179
     UILayoutTool::LayoutFrame open
ca@1447
  2180
    "
ca@1447
  2181
ca@1447
  2182
    <resource: #canvas>
ca@1447
  2183
ca@1447
  2184
    ^ 
sv@1738
  2185
     #(FullSpec
sv@1738
  2186
        name: windowSpec
sv@1738
  2187
        window: 
sv@1738
  2188
       (WindowSpec
sv@1738
  2189
          label: 'UILayoutTool-LayoutFrame'
sv@1738
  2190
          name: 'UILayoutTool-LayoutFrame'
sv@1738
  2191
          min: (Point 10 10)
cg@2379
  2192
          bounds: (Rectangle 0 0 511 302)
ca@1447
  2193
        )
sv@1738
  2194
        component: 
sv@1738
  2195
       (SpecCollection
sv@1738
  2196
          collection: (
sv@1738
  2197
           (UISubSpecification
sv@1738
  2198
              name: 'layoutOriginSpec'
sv@1738
  2199
              layout: (LayoutFrame 1 0.0 6 0 0 1.0 110 0)
sv@1738
  2200
              majorKey: UILayoutTool
sv@1738
  2201
              minorKey: layoutOriginSpec
ca@1447
  2202
            )
sv@1738
  2203
           (FramedBoxSpec
sv@1738
  2204
              label: 'Corner'
sv@1738
  2205
              name: 'FramedBox'
sv@1738
  2206
              layout: (LayoutFrame 1 0.0 113 0 0 1.0 214 0)
sv@1738
  2207
              labelPosition: topLeft
ca@2207
  2208
              translateLabel: true
sv@1738
  2209
              component: 
sv@1738
  2210
             (SpecCollection
sv@1738
  2211
                collection: (
sv@1738
  2212
                 (LabelSpec
sv@1738
  2213
                    label: 'Right:'
sv@1738
  2214
                    name: 'labelRight'
sv@1738
  2215
                    layout: (AlignmentOrigin 68 0 25 0 1 0.5)
cg@1874
  2216
                    translateLabel: true
ca@1447
  2217
                  )
sv@1738
  2218
                 (ActionButtonSpec
sv@1738
  2219
                    label: 'imageFractX'
sv@1738
  2220
                    name: 'actionRelativeRight'
sv@1738
  2221
                    layout: (LayoutFrame 78 0 14 0 100 0 36 0)
sv@1738
  2222
                    activeHelpKey: makeRightRelative
sv@1738
  2223
                    hasCharacterOrientedLabel: false
sv@1738
  2224
                    tabable: true
sv@1738
  2225
                    model: relativeRight
ca@1447
  2226
                  )
sv@1738
  2227
                 (InputFieldSpec
sv@1738
  2228
                    name: 'fieldRightFraction'
sv@1738
  2229
                    layout: (LayoutFrame 103 0 14 0 153 0 36 0)
sv@1738
  2230
                    activeHelpKey: rightRelative
sv@1738
  2231
                    tabable: true
sv@1738
  2232
                    model: rightFraction
sv@1738
  2233
                    group: inputGroup
sv@1738
  2234
                    type: numberOrNil
sv@1738
  2235
                    acceptOnLostFocus: true
sv@1738
  2236
                    acceptChannel: acceptChannel
sv@1738
  2237
                    modifiedChannel: modifiedChannel
sv@1738
  2238
                    acceptOnPointerLeave: false
ca@1447
  2239
                  )
sv@1738
  2240
                 (ActionButtonSpec
ca@2207
  2241
                    label: 'imageAbsX'
ca@2207
  2242
                    name: 'actionAbsoluteRight'
ca@2207
  2243
                    layout: (LayoutFrame 178 0 14 0 200 0 36 0)
ca@2207
  2244
                    activeHelpKey: makeRightAbsolute
sv@1738
  2245
                    hasCharacterOrientedLabel: false
sv@1738
  2246
                    tabable: true
ca@2207
  2247
                    model: absoluteRight
ca@1447
  2248
                  )
sv@1738
  2249
                 (InputFieldSpec
sv@1738
  2250
                    name: 'fieldRightOffset'
sv@1738
  2251
                    layout: (LayoutFrame 203 0 14 0 253 0 36 0)
sv@1738
  2252
                    activeHelpKey: rightAbsolute
sv@1738
  2253
                    tabable: true
sv@1738
  2254
                    model: rightOffset
sv@1738
  2255
                    group: inputGroup
sv@1738
  2256
                    type: numberOrNil
sv@1738
  2257
                    acceptOnLostFocus: true
sv@1738
  2258
                    acceptChannel: acceptChannel
sv@1738
  2259
                    modifiedChannel: modifiedChannel
sv@1738
  2260
                    acceptOnPointerLeave: false
ca@1447
  2261
                  )
sv@1738
  2262
                 (ActionButtonSpec
ca@2207
  2263
                    label: 'imageAbsXFromRight'
ca@2207
  2264
                    name: 'actionRightRelativeRight'
ca@2207
  2265
                    layout: (LayoutFrame 257 0 14 0 279 0 36 0)
ca@2207
  2266
                    activeHelpKey: makeRightRelativeFromRight
sv@1738
  2267
                    hasCharacterOrientedLabel: false
sv@1738
  2268
                    tabable: true
ca@2207
  2269
                    model: rightRelativeRight
ca@1447
  2270
                  )
sv@1738
  2271
                 (LabelSpec
sv@1738
  2272
                    label: 'Bottom:'
sv@1738
  2273
                    name: 'labelBottom'
sv@1738
  2274
                    layout: (AlignmentOrigin 68 0 53 0 1 0.5)
cg@1874
  2275
                    translateLabel: true
ca@1447
  2276
                  )
sv@1738
  2277
                 (ActionButtonSpec
sv@1738
  2278
                    label: 'imageFractY'
sv@1738
  2279
                    name: 'actionRelativeBottom'
sv@1738
  2280
                    layout: (LayoutFrame 78 0 42 0 100 0 64 0)
sv@1738
  2281
                    activeHelpKey: makeBottomRelative
sv@1738
  2282
                    hasCharacterOrientedLabel: false
sv@1738
  2283
                    tabable: true
sv@1738
  2284
                    model: relativeBottom
ca@1447
  2285
                  )
sv@1738
  2286
                 (InputFieldSpec
sv@1738
  2287
                    name: 'fieldBottomFraction'
sv@1738
  2288
                    layout: (LayoutFrame 103 0 42 0 153 0 64 0)
sv@1738
  2289
                    activeHelpKey: bottomRelative
sv@1738
  2290
                    tabable: true
sv@1738
  2291
                    model: bottomFraction
sv@1738
  2292
                    group: inputGroup
sv@1738
  2293
                    type: numberOrNil
sv@1738
  2294
                    acceptOnLostFocus: true
sv@1738
  2295
                    acceptChannel: acceptChannel
sv@1738
  2296
                    modifiedChannel: modifiedChannel
sv@1738
  2297
                    acceptOnPointerLeave: false
ca@1447
  2298
                  )
sv@1738
  2299
                 (ActionButtonSpec
ca@2207
  2300
                    label: 'imageAbsY'
ca@2207
  2301
                    name: 'actionAbsoluteBottom'
ca@2207
  2302
                    layout: (LayoutFrame 178 0 42 0 200 0 64 0)
ca@2207
  2303
                    activeHelpKey: makeBottomAbsolute
sv@1738
  2304
                    hasCharacterOrientedLabel: false
sv@1738
  2305
                    tabable: true
ca@2207
  2306
                    model: absoluteBottom
ca@1447
  2307
                  )
sv@1738
  2308
                 (InputFieldSpec
sv@1738
  2309
                    name: 'fieldBottomOffset'
sv@1738
  2310
                    layout: (LayoutFrame 203 0 42 0 253 0 64 0)
sv@1738
  2311
                    activeHelpKey: bottomAbsolute
sv@1738
  2312
                    tabable: true
sv@1738
  2313
                    model: bottomOffset
sv@1738
  2314
                    group: inputGroup
sv@1738
  2315
                    type: numberOrNil
sv@1738
  2316
                    acceptOnLostFocus: true
sv@1738
  2317
                    acceptChannel: acceptChannel
sv@1738
  2318
                    modifiedChannel: modifiedChannel
sv@1738
  2319
                    acceptOnPointerLeave: false
ca@1447
  2320
                  )
sv@1738
  2321
                 (ActionButtonSpec
ca@2207
  2322
                    label: 'imageAbsYFromBottom'
ca@2207
  2323
                    name: 'actionBottomRelativeBottom'
ca@2207
  2324
                    layout: (LayoutFrame 257 0 42 0 279 0 64 0)
ca@2207
  2325
                    activeHelpKey: makeBottomRelativeFromBottom
sv@1738
  2326
                    hasCharacterOrientedLabel: false
sv@1738
  2327
                    tabable: true
ca@2207
  2328
                    model: bottomRelativeBottom
ca@1447
  2329
                  )
cg@2379
  2330
                 (CheckBoxSpec
cg@2379
  2331
                    label: 'Use Preferred'
cg@2379
  2332
                    name: 'CheckBox1'
cg@2379
  2333
                    layout: (LayoutFrame 287 0 14 0 393 0 36 0)
cg@2379
  2334
                    model: usePreferredWidth
cg@2379
  2335
                    translateLabel: true
cg@2379
  2336
                  )
cg@2379
  2337
                 (CheckBoxSpec
cg@2379
  2338
                    label: 'Use Preferred'
cg@2379
  2339
                    name: 'CheckBox2'
cg@2379
  2340
                    layout: (LayoutFrame 287 0 42 0 393 0 64 0)
cg@2379
  2341
                    model: usePreferredHeight
cg@2379
  2342
                    translateLabel: true
cg@2379
  2343
                  )
cg@2379
  2344
                 (CheckBoxSpec
cg@2379
  2345
                    label: 'Dynamic'
cg@2379
  2346
                    name: 'CheckBox3'
cg@2379
  2347
                    layout: (LayoutFrame 394 0 14 0 471 0 36 0)
cg@2379
  2348
                    model: useDynamicPreferredWidth
cg@2379
  2349
                    translateLabel: true
cg@2379
  2350
                  )
cg@2379
  2351
                 (CheckBoxSpec
cg@2379
  2352
                    label: 'Dynamic'
cg@2379
  2353
                    name: 'CheckBox4'
cg@2379
  2354
                    layout: (LayoutFrame 394 0 42 0 471 0 64 0)
cg@2379
  2355
                    model: useDynamicPreferredHeight
cg@2379
  2356
                    translateLabel: true
cg@2379
  2357
                  )
ca@1447
  2358
                 )
ca@1447
  2359
               
ca@1447
  2360
              )
ca@1447
  2361
            )
sv@1738
  2362
           (MenuPanelSpec
sv@1738
  2363
              name: 'commonLayoutToolBar1'
sv@1738
  2364
              layout: (LayoutFrame 6 0.0 215 0 -4 1.0 247 0)
sv@1738
  2365
              level: 0
sv@1738
  2366
              tabable: true
sv@1738
  2367
              menu: commonFrameLayoutsMenu1
sv@1738
  2368
              textDefault: true
cg@1680
  2369
            )
sv@1738
  2370
           (MenuPanelSpec
sv@1738
  2371
              name: 'commonLayoutToolBar2'
sv@1738
  2372
              layout: (LayoutFrame 6 0.0 255 0 -4 1.0 287 0)
sv@1738
  2373
              level: 0
sv@1738
  2374
              tabable: true
sv@1738
  2375
              menu: commonFrameLayoutsMenu2
sv@1738
  2376
              textDefault: true
ca@1447
  2377
            )
ca@2207
  2378
           (MenuPanelSpec
ca@2207
  2379
              name: 'commonLayoutToolBar3'
ca@2207
  2380
              layout: (LayoutFrame 6 0.0 295 0 -4 1.0 327 0)
ca@2207
  2381
              level: 0
ca@2207
  2382
              tabable: true
ca@2207
  2383
              menu: commonFrameLayoutsMenu3
ca@2207
  2384
              textDefault: true
werner@1826
  2385
            )
ca@1447
  2386
           )
ca@1447
  2387
         
ca@1447
  2388
        )
ca@1447
  2389
      )
ca@1447
  2390
! !
ca@1447
  2391
ca@1447
  2392
!UILayoutTool::LayoutFrame class methodsFor:'menu specs'!
ca@1447
  2393
cg@1680
  2394
commonFrameLayoutsMenu1
ca@1447
  2395
    "This resource specification was automatically generated
ca@1447
  2396
     by the MenuEditor of ST/X."
ca@1447
  2397
ca@1447
  2398
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2399
     the MenuEditor may not be able to read the specification."
ca@1447
  2400
ca@1447
  2401
    "
cg@1680
  2402
     MenuEditor new openOnClass:UILayoutTool::LayoutFrame andSelector:#commonFrameLayoutsMenu1
cg@1680
  2403
     (Menu new fromLiteralArrayEncoding:(UILayoutTool::LayoutFrame commonFrameLayoutsMenu1)) startUp
ca@1447
  2404
    "
ca@1447
  2405
ca@1447
  2406
    <resource: #menu>
ca@1447
  2407
cg@1680
  2408
    ^ 
cg@1680
  2409
     #(#Menu
cg@1680
  2410
        #(
cg@1680
  2411
         #(#MenuItem
cg@1680
  2412
            #activeHelpKey: #fullLayout
cg@1680
  2413
            #label: 'setFullFrame'
cg@1680
  2414
            #itemValue: #setFullFrame
cg@1680
  2415
            #nameKey: #setFullFrame
cg@1680
  2416
            #translateLabel: true
cg@1680
  2417
            #isButton: true
cg@1680
  2418
            #labelImage: #(#ResourceRetriever #'UILayoutTool::LayoutFrame' #setFullIcon)
cg@1680
  2419
          )
cg@1680
  2420
         #(#MenuItem
cg@1680
  2421
            #label: ''
cg@1680
  2422
          )
cg@1680
  2423
         #(#MenuItem
cg@1680
  2424
            #activeHelpKey: #topHalfLayout
cg@1680
  2425
            #label: 'setTopHalfFrame'
cg@1680
  2426
            #itemValue: #setTopHalfFrame
cg@1680
  2427
            #nameKey: #setTopHalfFrame
cg@1680
  2428
            #translateLabel: true
cg@1680
  2429
            #isButton: true
cg@1680
  2430
            #labelImage: #(#ResourceRetriever #'UILayoutTool::LayoutFrame' #setTopHalfIcon)
cg@1680
  2431
          )
cg@1680
  2432
         #(#MenuItem
cg@1680
  2433
            #activeHelpKey: #bottomHalfLayout
cg@1680
  2434
            #label: 'setBottomHalfFrame'
cg@1680
  2435
            #itemValue: #setBottomHalfFrame
cg@1680
  2436
            #nameKey: #setBottomHalfFrame
cg@1680
  2437
            #translateLabel: true
cg@1680
  2438
            #isButton: true
cg@1680
  2439
            #labelImage: #(#ResourceRetriever nil #setBottomHalfIcon)
cg@1680
  2440
          )
cg@1680
  2441
         #(#MenuItem
cg@1680
  2442
            #activeHelpKey: #leftHalfLayout
cg@1680
  2443
            #label: 'setLeftHalfFrame'
cg@1680
  2444
            #itemValue: #setLeftHalfFrame
cg@1680
  2445
            #nameKey: #setLeftHalfFrame
cg@1680
  2446
            #translateLabel: true
cg@1680
  2447
            #isButton: true
cg@1680
  2448
            #labelImage: #(#ResourceRetriever nil #setLeftHalfIcon)
cg@1680
  2449
          )
cg@1680
  2450
         #(#MenuItem
cg@1680
  2451
            #activeHelpKey: #rightHalfLayout
cg@1680
  2452
            #label: 'setRightHalfFrame'
cg@1680
  2453
            #itemValue: #setRightHalfFrame
cg@1680
  2454
            #nameKey: #setRightHalfFrame
cg@1680
  2455
            #translateLabel: true
cg@1680
  2456
            #isButton: true
cg@1680
  2457
            #labelImage: #(#ResourceRetriever nil #setRightHalfIcon)
cg@1680
  2458
          )
cg@1680
  2459
         #(#MenuItem
cg@1680
  2460
            #label: ''
cg@1680
  2461
          )
cg@1680
  2462
         #(#MenuItem
cg@1680
  2463
            #activeHelpKey: #topLeftQuarterLayout
cg@1680
  2464
            #label: 'setTopLeftQuarterFrame'
cg@1680
  2465
            #itemValue: #setTopLeftQuarterFrame
cg@1680
  2466
            #nameKey: #setTopLeftQuarterFrame
cg@1680
  2467
            #translateLabel: true
cg@1680
  2468
            #isButton: true
cg@1680
  2469
            #labelImage: #(#ResourceRetriever nil #setTopLeftQuarterIcon)
cg@1680
  2470
          )
cg@1680
  2471
         #(#MenuItem
cg@1680
  2472
            #activeHelpKey: #topRightQuarterLayout
cg@1680
  2473
            #label: 'setTopRightQuarterFrame'
cg@1680
  2474
            #itemValue: #setTopRightQuarterFrame
cg@1680
  2475
            #nameKey: #setTopRightQuarterFrame
cg@1680
  2476
            #translateLabel: true
cg@1680
  2477
            #isButton: true
cg@1680
  2478
            #labelImage: #(#ResourceRetriever nil #setToRightQuarterIcon)
cg@1680
  2479
          )
cg@1680
  2480
         #(#MenuItem
cg@1680
  2481
            #activeHelpKey: #bottomRightQuarterLayout
cg@1680
  2482
            #label: 'setBottomRightQuarterFrame'
cg@1680
  2483
            #itemValue: #setBottomRightQuarterFrame
cg@1680
  2484
            #nameKey: #setBottomRightQuarterFrame
cg@1680
  2485
            #translateLabel: true
cg@1680
  2486
            #isButton: true
cg@1680
  2487
            #labelImage: #(#ResourceRetriever nil #setBottomRightQuarterIcon)
cg@1680
  2488
          )
cg@1680
  2489
         #(#MenuItem
cg@1680
  2490
            #activeHelpKey: #bottomLeftQuarterLayout
cg@1680
  2491
            #label: 'setBottomLeftQuarterFrame'
cg@1680
  2492
            #itemValue: #setBottomLeftQuarterFrame
cg@1680
  2493
            #nameKey: #setBottomLeftQuarterFrame
cg@1680
  2494
            #translateLabel: true
cg@1680
  2495
            #isButton: true
cg@1680
  2496
            #labelImage: #(#ResourceRetriever nil #setBottomLeftQuarterIcon)
cg@1680
  2497
          )
cg@1680
  2498
         )
cg@1680
  2499
        nil
cg@1680
  2500
        nil
cg@1680
  2501
      )
cg@1680
  2502
!
cg@1680
  2503
cg@1680
  2504
commonFrameLayoutsMenu2
cg@1680
  2505
    "This resource specification was automatically generated
cg@1680
  2506
     by the MenuEditor of ST/X."
cg@1680
  2507
cg@1680
  2508
    "Do not manually edit this!! If it is corrupted,
cg@1680
  2509
     the MenuEditor may not be able to read the specification."
cg@1680
  2510
cg@1680
  2511
    "
cg@1680
  2512
     MenuEditor new openOnClass:UILayoutTool::LayoutFrame andSelector:#commonFrameLayoutsMenu2
cg@1680
  2513
     (Menu new fromLiteralArrayEncoding:(UILayoutTool::LayoutFrame commonFrameLayoutsMenu2)) startUp
cg@1680
  2514
    "
cg@1680
  2515
cg@1680
  2516
    <resource: #menu>
cg@1680
  2517
cg@1680
  2518
    ^ 
cg@1680
  2519
     #(#Menu
cg@1680
  2520
        #(
cg@1680
  2521
         #(#MenuItem
cg@1680
  2522
            #activeHelpKey: #topFixPartLayout
cg@1680
  2523
            #label: 'setTopFixPartFrame'
cg@1680
  2524
            #itemValue: #setTopFixPartFrame
cg@1680
  2525
            #nameKey: #setTopFixPartFrame
cg@1680
  2526
            #translateLabel: true
cg@1680
  2527
            #isButton: true
cg@1680
  2528
            #labelImage: #(#ResourceRetriever nil #setTopFixPartIcon)
cg@1680
  2529
          )
cg@1680
  2530
         #(#MenuItem
cg@1680
  2531
            #activeHelpKey: #horizontalFixPartLayout
cg@1680
  2532
            #label: 'setHorizontalFixPartFrame'
cg@1680
  2533
            #itemValue: #setHorizontalFixPartFrame
cg@1680
  2534
            #nameKey: #setHorizontalFixPartFrame
cg@1680
  2535
            #translateLabel: true
cg@1680
  2536
            #isButton: true
cg@1680
  2537
            #labelImage: #(#ResourceRetriever nil #setHorizontalFixPartIcon)
cg@1680
  2538
          )
cg@1680
  2539
         #(#MenuItem
cg@1680
  2540
            #activeHelpKey: #bottomFixPartLayout
cg@1680
  2541
            #label: 'setBottomFixPartFrame'
cg@1680
  2542
            #itemValue: #setBottomFixPartFrame
cg@1680
  2543
            #nameKey: #setBottomFixPartFrame
cg@1680
  2544
            #translateLabel: true
cg@1680
  2545
            #isButton: true
cg@1680
  2546
            #labelImage: #(#ResourceRetriever nil #setBottomFixPartIcon)
cg@1680
  2547
          )
cg@1680
  2548
         #(#MenuItem
cg@1680
  2549
            #label: ''
cg@1680
  2550
          )
cg@1680
  2551
         #(#MenuItem
cg@1680
  2552
            #activeHelpKey: #leftFixPartLayout
cg@1680
  2553
            #label: 'setLeftFixPartFrame'
cg@1680
  2554
            #itemValue: #setLeftFixPartFrame
cg@1680
  2555
            #nameKey: #setLeftFixPartFrame
cg@1680
  2556
            #translateLabel: true
cg@1680
  2557
            #isButton: true
cg@1680
  2558
            #labelImage: #(#ResourceRetriever nil #setLeftFixPartIcon)
cg@1680
  2559
          )
cg@1680
  2560
         #(#MenuItem
cg@1680
  2561
            #activeHelpKey: #verticalFixPartLayout
cg@1680
  2562
            #label: 'setVerticalFixPartFrame'
cg@1680
  2563
            #itemValue: #setVerticalFixPartFrame
cg@1680
  2564
            #nameKey: #setVerticalFixPartFrame
cg@1680
  2565
            #translateLabel: true
cg@1680
  2566
            #isButton: true
cg@1680
  2567
            #labelImage: #(#ResourceRetriever nil #setVerticalFixPartIcon)
cg@1680
  2568
          )
cg@1680
  2569
         #(#MenuItem
cg@1680
  2570
            #activeHelpKey: #rightFixPartLayout
cg@1680
  2571
            #label: 'setRightFixPartFrame'
cg@1680
  2572
            #itemValue: #setRightFixPartFrame
cg@1680
  2573
            #nameKey: #setRightFixPartFrame
cg@1680
  2574
            #translateLabel: true
cg@1680
  2575
            #isButton: true
cg@1680
  2576
            #labelImage: #(#ResourceRetriever nil #setRightFixPartIcon)
cg@1680
  2577
          )
cg@1706
  2578
         #(#MenuItem
cg@1706
  2579
            #label: ''
cg@1706
  2580
          )
cg@1706
  2581
         #(#MenuItem
cg@1709
  2582
            #activeHelpKey: #bigTopFixPartLayout
cg@1706
  2583
            #label: 'setBigTopFixPartFrame'
cg@1706
  2584
            #itemValue: #setBigTopFixPartFrame
cg@1706
  2585
            #nameKey: #setBigTopFixPartFrame
cg@1706
  2586
            #translateLabel: true
cg@1706
  2587
            #isButton: true
cg@1706
  2588
            #labelImage: #(#ResourceRetriever nil #setBigTopFixPartIcon)
cg@1706
  2589
          )
cg@1706
  2590
         #(#MenuItem
cg@1709
  2591
            #activeHelpKey: #bigHorizontalFixPartLayout
cg@1706
  2592
            #label: 'setBigHorizontalFixPartFrame'
cg@1706
  2593
            #itemValue: #setBigHorizontalFixPartFrame
cg@1706
  2594
            #nameKey: #setBigHorizontalFixPartFrame
cg@1706
  2595
            #translateLabel: true
cg@1706
  2596
            #isButton: true
cg@1706
  2597
            #labelImage: #(#ResourceRetriever nil #setBigHorizontalFixPartIcon)
cg@1706
  2598
          )
cg@1706
  2599
         #(#MenuItem
cg@1709
  2600
            #activeHelpKey: #bigBottomFixPartLayout
cg@1706
  2601
            #label: 'setBigBottomFixPartFrame'
cg@1706
  2602
            #itemValue: #setBigBottomFixPartFrame
cg@1706
  2603
            #nameKey: #setBigBottomFixPartFrame
cg@1706
  2604
            #translateLabel: true
cg@1706
  2605
            #isButton: true
cg@1706
  2606
            #labelImage: #(#ResourceRetriever nil #setBigBottomFixPartIcon)
cg@1706
  2607
          )
cg@1680
  2608
         )
cg@1680
  2609
        nil
cg@1680
  2610
        nil
ca@1447
  2611
      )
werner@1826
  2612
!
werner@1826
  2613
werner@1826
  2614
commonFrameLayoutsMenu3
werner@1826
  2615
    "This resource specification was automatically generated
werner@1826
  2616
     by the MenuEditor of ST/X."
werner@1826
  2617
werner@1826
  2618
    "Do not manually edit this!! If it is corrupted,
werner@1826
  2619
     the MenuEditor may not be able to read the specification."
werner@1826
  2620
werner@1826
  2621
    "
ca@1858
  2622
     MenuEditor new openOnClass:UILayoutTool::LayoutFrame andSelector:#commonFrameLayoutsMenu3
ca@1858
  2623
     (Menu new fromLiteralArrayEncoding:(UILayoutTool::LayoutFrame commonFrameLayoutsMenu3)) startUp
werner@1826
  2624
    "
werner@1826
  2625
werner@1826
  2626
    <resource: #menu>
werner@1826
  2627
werner@1826
  2628
    ^ 
ca@1858
  2629
     #(Menu
ca@1858
  2630
        (
ca@1858
  2631
         (MenuItem
ca@1858
  2632
            activeHelpKey: screenFrameLayout
ca@1858
  2633
            label: 'setScreenFrame'
ca@1858
  2634
            itemValue: setScreenFrame
ca@1858
  2635
            nameKey: setScreenFrame
ca@1858
  2636
            translateLabel: true
ca@1858
  2637
            isButton: true
ca@1858
  2638
            isVisible: false
ca@1858
  2639
            labelImage: (ResourceRetriever #'UILayoutTool::LayoutFrame' setScreenIcon)
werner@1826
  2640
          )
werner@1826
  2641
         )
werner@1826
  2642
        nil
werner@1826
  2643
        nil
werner@1826
  2644
      )
ca@1447
  2645
! !
ca@1447
  2646
ca@1447
  2647
!UILayoutTool::LayoutFrame methodsFor:'accessing'!
ca@1447
  2648
ca@1447
  2649
fetch:aView spec:aSpec
ca@1447
  2650
    |layout|
ca@1447
  2651
werner@1826
  2652
    aSpec class == WindowSpec ifTrue:[
werner@1826
  2653
         (layout := aSpec layout) isNil ifTrue:[
werner@1826
  2654
             layout := aSpec bounds asLayout.
werner@1826
  2655
         ] 
werner@1826
  2656
    ] ifFalse: [
werner@1826
  2657
         layout  := UIPainterView asLayoutFrameFromView:aView.
werner@1826
  2658
    ].
ca@1447
  2659
    (self aspectFor:#leftOffset)     value:(layout leftOffset).
ca@1447
  2660
    (self aspectFor:#leftFraction)   value:(layout leftFraction).
ca@1447
  2661
    (self aspectFor:#topOffset)      value:(layout topOffset).
ca@1447
  2662
    (self aspectFor:#topFraction)    value:(layout topFraction).
sv@2478
  2663
    (self aspectFor:#rightOffset)    value:(layout rightOffset value).  "take care of blocks"
sv@2478
  2664
    (self aspectFor:#bottomOffset)   value:(layout bottomOffset value). "take care of blocks"
ca@1447
  2665
    (self aspectFor:#rightFraction)  value:(layout rightFraction).
ca@1447
  2666
    (self aspectFor:#bottomFraction) value:(layout bottomFraction).
ca@1447
  2667
cg@2379
  2668
    (self aspectFor:#usePreferredWidth) value:(aSpec usePreferredWidth).
cg@2379
  2669
    (self aspectFor:#usePreferredHeight) value:(aSpec usePreferredHeight).
cg@2379
  2670
    (self aspectFor:#useDynamicPreferredWidth) value:(aSpec useDynamicPreferredWidth).
cg@2379
  2671
    (self aspectFor:#useDynamicPreferredHeight) value:(aSpec useDynamicPreferredHeight).
ca@1447
  2672
!
ca@1447
  2673
ca@1447
  2674
layout
cg@2379
  2675
    "returns the current layout as layoutFrame
ca@1447
  2676
    "
ca@1447
  2677
    |layout|
ca@1447
  2678
ca@1447
  2679
    layout  := Smalltalk::LayoutFrame new.
ca@1447
  2680
cg@1581
  2681
    layout 
cg@1581
  2682
        leftFraction:(((self aspectFor:#leftFraction)   value) ? 0)
cg@1581
  2683
              offset:(((self aspectFor:#leftOffset)     value) ? 0)
cg@1581
  2684
        rightFraction:(((self aspectFor:#rightFraction)  value) ? 0)
cg@1581
  2685
              offset:(((self aspectFor:#rightOffset)    value) ? 0)
cg@1581
  2686
        topFraction:(((self aspectFor:#topFraction)    value) ? 0)
cg@1581
  2687
              offset:(((self aspectFor:#topOffset)      value) ? 0)
cg@1581
  2688
        bottomFraction:(((self aspectFor:#bottomFraction) value) ? 0)
cg@1581
  2689
              offset:(((self aspectFor:#bottomOffset)   value) ? 0).
ca@1447
  2690
ca@1447
  2691
  ^ layout
ca@1447
  2692
! !
ca@1447
  2693
ca@1447
  2694
!UILayoutTool::LayoutFrame methodsFor:'common frames'!
ca@1447
  2695
cg@1706
  2696
setBigBottomFixPartFrame
cg@1706
  2697
    self
cg@1706
  2698
        setFrameLeft:0   offset:0 
cg@1706
  2699
        right:1          offset:0 
werner@1826
  2700
        top:0            offset:(self class defaultFixPartHeight) 
cg@1706
  2701
        bottom:1         offset:0
cg@1706
  2702
!
cg@1706
  2703
cg@1706
  2704
setBigHorizontalFixPartFrame
cg@1706
  2705
    self
cg@1706
  2706
        setFrameLeft:0   offset:0 
cg@1706
  2707
        right:1          offset:0 
werner@1826
  2708
        top:0            offset:(self class defaultFixPartHeight) 
werner@1826
  2709
        bottom:1         offset:(self class defaultFixPartHeight negated)
cg@1706
  2710
!
cg@1706
  2711
cg@1706
  2712
setBigTopFixPartFrame
cg@1706
  2713
    self
cg@1706
  2714
        setFrameLeft:0   offset:0 
cg@1706
  2715
        right:1          offset:0 
cg@1706
  2716
        top:0            offset:0 
werner@1826
  2717
        bottom:1         offset:(self class defaultFixPartHeight negated)
cg@1706
  2718
!
cg@1706
  2719
ca@1447
  2720
setBottomFixPartFrame
ca@1447
  2721
    self
ca@1447
  2722
        setFrameLeft:0   offset:0 
ca@1447
  2723
        right:1          offset:0 
werner@1826
  2724
        top:1            offset:(self class defaultFixPartHeight negated) 
ca@1447
  2725
        bottom:1         offset:0
ca@1447
  2726
!
ca@1447
  2727
ca@1447
  2728
setBottomHalfFrame
ca@1447
  2729
    self
ca@1447
  2730
        setFrameLeft:0  offset:0 
ca@1447
  2731
        right:1         offset:0 
ca@1447
  2732
        top:0.5         offset:0 
ca@1447
  2733
        bottom:1        offset:0
ca@1447
  2734
!
ca@1447
  2735
ca@1447
  2736
setBottomLeftQuarterFrame
ca@1447
  2737
    self
ca@1447
  2738
        setFrameLeft:0   offset:0 
ca@1447
  2739
        right:0.5        offset:0 
ca@1447
  2740
        top:0.5          offset:0 
ca@1447
  2741
        bottom:1         offset:0
ca@1447
  2742
!
ca@1447
  2743
ca@1447
  2744
setBottomRightQuarterFrame
ca@1447
  2745
    self
ca@1447
  2746
        setFrameLeft:0.5 offset:0 
ca@1447
  2747
        right:1          offset:0 
ca@1447
  2748
        top:0.5          offset:0 
ca@1447
  2749
        bottom:1         offset:0
ca@1447
  2750
!
ca@1447
  2751
ca@1447
  2752
setFrameLeft:lF offset:lO right:rF offset:rO top:tF offset:tO bottom:bF offset:bO
ca@1447
  2753
    (self aspectFor:#leftOffset)     value:lO.
sv@2478
  2754
    (self aspectFor:#rightOffset)    value:rO value.
ca@1447
  2755
    (self aspectFor:#topOffset)      value:tO.
sv@2478
  2756
    (self aspectFor:#bottomOffset)   value:bO value.
ca@1447
  2757
ca@1447
  2758
    (self aspectFor:#leftFraction)   value:lF.
ca@1447
  2759
    (self aspectFor:#rightFraction)  value:rF.
ca@1447
  2760
    (self aspectFor:#topFraction)    value:tF.
ca@1447
  2761
    (self aspectFor:#bottomFraction) value:bF.
ca@1447
  2762
!
ca@1447
  2763
cg@1680
  2764
setFullFrame
cg@1680
  2765
    self
cg@1680
  2766
        setFrameLeft:0   offset:0 
cg@1680
  2767
        right:1          offset:0 
cg@1680
  2768
        top:0            offset:0 
cg@1680
  2769
        bottom:1         offset:0
cg@1680
  2770
!
cg@1680
  2771
ca@1447
  2772
setHorizontalFixPartFrame
ca@1447
  2773
    self
ca@1447
  2774
        setFrameLeft:0   offset:0 
ca@1447
  2775
        right:1          offset:0 
werner@1826
  2776
        top:0.5          offset:(self class defaultFixPartHeight negated // 2) 
werner@1826
  2777
        bottom:0.5       offset:(self class defaultFixPartHeight // 2)
ca@1447
  2778
!
ca@1447
  2779
ca@1447
  2780
setLeftFixPartFrame
ca@1447
  2781
    self
ca@1447
  2782
        setFrameLeft:0   offset:0 
werner@1826
  2783
        right:0          offset:(self class defaultFixPartHeight) 
ca@1447
  2784
        top:0            offset:0 
ca@1447
  2785
        bottom:1         offset:0
ca@1447
  2786
!
ca@1447
  2787
ca@1447
  2788
setLeftHalfFrame