UILayoutTool.st
author Claus Gittinger <cg@exept.de>
Wed, 29 Jul 2009 20:02:02 +0200
changeset 2570 4e663bc64364
parent 2533 460098ee1f39
child 2794 56fb74312287
permissions -rw-r--r--
changed #requestPackage
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@1332
  1074
'Aligns the selected widget bottomCenter to location.'
cg@1332
  1075
cg@1332
  1076
#alignBottomLeft
cg@1332
  1077
'Aligns the selected widget bottomLeft to location.'
cg@1332
  1078
cg@1332
  1079
#alignBottomRight
cg@1332
  1080
'Aligns the selected widget bottomRight to location.'
cg@1332
  1081
cg@1332
  1082
#alignCenter
cg@1332
  1083
'Aligns the selected widget center to location.'
cg@1332
  1084
cg@1332
  1085
#alignHorizontal
cg@1332
  1086
'Horizontal inset to the location point of the selected widget.'
cg@1332
  1087
cg@1332
  1088
#alignLeftCenter
cg@1332
  1089
'Aligns the selected widget leftCenter to location.'
cg@1332
  1090
cg@1332
  1091
#alignRightCenter
cg@1332
  1092
'Aligns the selected widget rightCenter to location.'
cg@1332
  1093
cg@1332
  1094
#alignTopCenter
cg@1332
  1095
'Aligns the selected widget topCenter to location.'
cg@1332
  1096
cg@1332
  1097
#alignTopLeft
cg@1332
  1098
'Aligns the selected widget topLeft to location.'
cg@1332
  1099
cg@1332
  1100
#alignTopRight
cg@1332
  1101
'Aligns the selected widget topRight to location.'
cg@1332
  1102
cg@1332
  1103
#alignVertical
cg@1332
  1104
'Vertical inset to the location point of the widget.'
cg@1332
  1105
cg@1332
  1106
)
cg@1332
  1107
! !
cg@1332
  1108
cg@1332
  1109
!UILayoutTool::AlignmentOrigin class methodsFor:'interface specs'!
cg@1332
  1110
cg@1332
  1111
windowSpec
cg@1332
  1112
    "This resource specification was automatically generated
cg@1332
  1113
     by the UIPainter of ST/X."
cg@1332
  1114
cg@1332
  1115
    "Do not manually edit this!! If it is corrupted,
cg@1332
  1116
     the UIPainter may not be able to read the specification."
cg@1332
  1117
cg@1332
  1118
    "
cg@1332
  1119
     UIPainter new openOnClass:UILayoutTool::AlignmentOrigin andSelector:#windowSpec
cg@1332
  1120
     UILayoutTool::AlignmentOrigin new openInterface:#windowSpec
cg@1332
  1121
     UILayoutTool::AlignmentOrigin open
cg@1332
  1122
    "
cg@1332
  1123
cg@1332
  1124
    <resource: #canvas>
cg@1332
  1125
cg@1332
  1126
    ^ 
sv@1738
  1127
     #(FullSpec
sv@1738
  1128
        name: windowSpec
sv@1738
  1129
        window: 
sv@1738
  1130
       (WindowSpec
sv@1738
  1131
          label: 'UILayoutTool-AlignmentOrigin'
sv@1738
  1132
          name: 'UILayoutTool-AlignmentOrigin'
sv@1738
  1133
          min: (Point 10 10)
sv@1738
  1134
          bounds: (Rectangle 14 46 419 253)
cg@1332
  1135
        )
sv@1738
  1136
        component: 
sv@1738
  1137
       (SpecCollection
sv@1738
  1138
          collection: (
sv@1738
  1139
           (UISubSpecification
sv@1738
  1140
              name: 'layoutOriginSpec'
sv@1738
  1141
              layout: (LayoutFrame 1 0.0 6 0 0 1.0 111 0)
sv@1738
  1142
              majorKey: UILayoutTool
sv@1738
  1143
              minorKey: layoutOriginSpec
cg@1332
  1144
            )
sv@1738
  1145
           (FramedBoxSpec
sv@1738
  1146
              label: 'Alignment'
sv@1738
  1147
              name: 'FramedBox'
sv@1738
  1148
              layout: (LayoutFrame 1 0.0 113 0 0 1.0 208 0)
sv@1738
  1149
              labelPosition: topLeft
cg@1874
  1150
              translateLabel: true
sv@1738
  1151
              component: 
sv@1738
  1152
             (SpecCollection
sv@1738
  1153
                collection: (
sv@1738
  1154
                 (LabelSpec
sv@1738
  1155
                    label: 'Horizontal:'
sv@1738
  1156
                    name: 'alignHLabel'
sv@1738
  1157
                    layout: (AlignmentOrigin 88 0 17 0 1 0)
sv@1738
  1158
                    adjust: right
cg@1874
  1159
                    translateLabel: true
cg@1332
  1160
                  )
sv@1738
  1161
                 (InputFieldSpec
sv@1738
  1162
                    name: 'leftAlignmentFractionField'
sv@1738
  1163
                    layout: (LayoutFrame 90 0 14 0 147 0 36 0)
sv@1738
  1164
                    activeHelpKey: alignHorizontal
sv@1738
  1165
                    tabable: true
sv@1738
  1166
                    model: leftAlignmentFraction
sv@1738
  1167
                    group: inputGroup
sv@1738
  1168
                    type: numberOrNil
sv@1738
  1169
                    acceptOnLostFocus: true
sv@1738
  1170
                    acceptChannel: acceptChannel
sv@1738
  1171
                    modifiedChannel: modifiedChannel
sv@1738
  1172
                    acceptOnPointerLeave: false
cg@1332
  1173
                  )
sv@1738
  1174
                 (LabelSpec
sv@1738
  1175
                    label: 'Vertical:'
sv@1738
  1176
                    name: 'alignVLabel'
sv@1738
  1177
                    layout: (AlignmentOrigin 88 0 43 0 1 0)
sv@1738
  1178
                    adjust: right
cg@1874
  1179
                    translateLabel: true
cg@1332
  1180
                  )
sv@1738
  1181
                 (InputFieldSpec
sv@1738
  1182
                    name: 'topAlignmentFractionField'
sv@1738
  1183
                    layout: (LayoutFrame 90 0 40 0 147 0 62 0)
sv@1738
  1184
                    activeHelpKey: alignVertical
sv@1738
  1185
                    tabable: true
sv@1738
  1186
                    model: topAlignmentFraction
sv@1738
  1187
                    group: inputGroup
sv@1738
  1188
                    type: numberOrNil
sv@1738
  1189
                    acceptOnLostFocus: true
sv@1738
  1190
                    acceptChannel: acceptChannel
sv@1738
  1191
                    modifiedChannel: modifiedChannel
sv@1738
  1192
                    acceptOnPointerLeave: false
cg@1332
  1193
                  )
sv@1738
  1194
                 (DividerSpec
sv@1738
  1195
                    name: 'separator1'
sv@1738
  1196
                    layout: (LayoutFrame 204 0 19 0 245 0 22 0)
cg@1332
  1197
                  )
sv@1738
  1198
                 (DividerSpec
sv@1738
  1199
                    name: 'separator2'
sv@1738
  1200
                    layout: (LayoutFrame 204 0 55 0 245 0 58 0)
cg@1332
  1201
                  )
sv@1738
  1202
                 (DividerSpec
sv@1738
  1203
                    name: 'separator3'
sv@1738
  1204
                    layout: (LayoutFrame 196 0 28 0 199 0 50 0)
sv@1738
  1205
                    orientation: vertical
cg@1332
  1206
                  )
sv@1738
  1207
                 (DividerSpec
sv@1738
  1208
                    name: 'separator4'
sv@1738
  1209
                    layout: (LayoutFrame 250 0 28 0 253 0 50 0)
sv@1738
  1210
                    orientation: vertical
cg@1332
  1211
                  )
sv@1738
  1212
                 (ActionButtonSpec
sv@1738
  1213
                    name: 'alignTopLeft'
sv@1738
  1214
                    layout: (LayoutFrame 190 0 14 0 204 0 28 0)
sv@1738
  1215
                    activeHelpKey: alignTopLeft
sv@1738
  1216
                    tabable: true
sv@1738
  1217
                    model: alignTopLeft
cg@1332
  1218
                  )
sv@1738
  1219
                 (ActionButtonSpec
sv@1738
  1220
                    name: 'alignTopCenter'
sv@1738
  1221
                    layout: (LayoutFrame 217 0 14 0 231 0 28 0)
sv@1738
  1222
                    activeHelpKey: alignTopCenter
sv@1738
  1223
                    tabable: true
sv@1738
  1224
                    model: alignTopCenter
cg@1332
  1225
                  )
sv@1738
  1226
                 (ActionButtonSpec
sv@1738
  1227
                    name: 'alignTopRight'
sv@1738
  1228
                    layout: (LayoutFrame 245 0 14 0 259 0 28 0)
sv@1738
  1229
                    activeHelpKey: alignTopRight
sv@1738
  1230
                    tabable: true
sv@1738
  1231
                    model: alignTopRight
cg@1332
  1232
                  )
sv@1738
  1233
                 (ActionButtonSpec
sv@1738
  1234
                    name: 'alignLeftCenter'
sv@1738
  1235
                    layout: (LayoutFrame 190 0 32 0 204 0 46 0)
sv@1738
  1236
                    activeHelpKey: alignLeftCenter
sv@1738
  1237
                    tabable: true
sv@1738
  1238
                    model: alignLeftCenter
cg@1332
  1239
                  )
sv@1738
  1240
                 (ActionButtonSpec
sv@1738
  1241
                    name: 'alignCenter'
sv@1738
  1242
                    layout: (LayoutFrame 217 0 32 0 231 0 46 0)
sv@1738
  1243
                    activeHelpKey: alignCenter
sv@1738
  1244
                    tabable: true
sv@1738
  1245
                    model: alignCenter
cg@1332
  1246
                  )
sv@1738
  1247
                 (ActionButtonSpec
sv@1738
  1248
                    name: 'alignRightCenter'
sv@1738
  1249
                    layout: (LayoutFrame 245 0 32 0 259 0 46 0)
sv@1738
  1250
                    activeHelpKey: alignRightCenter
sv@1738
  1251
                    tabable: true
sv@1738
  1252
                    model: alignRightCenter
cg@1332
  1253
                  )
sv@1738
  1254
                 (ActionButtonSpec
sv@1738
  1255
                    name: 'alignBottomLeft'
sv@1738
  1256
                    layout: (LayoutFrame 190 0 50 0 204 0 64 0)
sv@1738
  1257
                    activeHelpKey: alignBottomLeft
sv@1738
  1258
                    tabable: true
sv@1738
  1259
                    model: alignBottomLeft
cg@1332
  1260
                  )
sv@1738
  1261
                 (ActionButtonSpec
sv@1738
  1262
                    name: 'alignBottomCenter'
sv@1738
  1263
                    layout: (LayoutFrame 217 0 50 0 231 0 64 0)
sv@1738
  1264
                    activeHelpKey: alignBottomCenter
sv@1738
  1265
                    tabable: true
sv@1738
  1266
                    model: alignBottomCenter
cg@1332
  1267
                  )
sv@1738
  1268
                 (ActionButtonSpec
sv@1738
  1269
                    name: 'alignBottomRight'
sv@1738
  1270
                    layout: (LayoutFrame 245 0 50 0 259 0 64 0)
sv@1738
  1271
                    activeHelpKey: alignBottomRight
sv@1738
  1272
                    tabable: true
sv@1738
  1273
                    model: alignBottomRight
cg@1332
  1274
                  )
cg@1332
  1275
                 )
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
!UILayoutTool::AlignmentOrigin methodsFor:'accessing'!
cg@1332
  1286
cg@1332
  1287
fetch:aView spec:aSpec
cg@1332
  1288
    "fetch alignmentOrigin
cg@1332
  1289
    "
cg@1332
  1290
    |layout type 
cg@1332
  1291
     leftAlignmentFractionHolder topAlignmentFractionHolder
cg@1332
  1292
     leftOffsetHolder leftFractionHolder topOffsetHolder topFractionHolder|
cg@1332
  1293
cg@1332
  1294
    type   := UIPainterView layoutType:aView.
cg@1332
  1295
    layout := aView geometryLayout.
cg@1332
  1296
cg@1332
  1297
    leftOffsetHolder := (self aspectFor:#leftOffset).
cg@1332
  1298
    leftFractionHolder := (self aspectFor:#leftFraction).
cg@1332
  1299
    topOffsetHolder := (self aspectFor:#topOffset).
cg@1332
  1300
    topFractionHolder := (self aspectFor:#topFraction).
cg@1332
  1301
    leftAlignmentFractionHolder := (self aspectFor:#leftAlignmentFraction).
cg@1332
  1302
    topAlignmentFractionHolder := (self aspectFor:#topAlignmentFraction).
cg@1332
  1303
cg@1332
  1304
    layout isLayout ifTrue:[
cg@1332
  1305
        leftOffsetHolder   value:(layout leftOffset).
cg@1332
  1306
        leftFractionHolder value:(layout leftFraction).
cg@1332
  1307
        topOffsetHolder    value:(layout topOffset).
cg@1332
  1308
        topFractionHolder  value:(layout topFraction).
cg@1332
  1309
cg@1332
  1310
        type == #AlignmentOrigin ifTrue:[
cg@1332
  1311
            leftAlignmentFractionHolder value:(layout leftAlignmentFraction).
cg@1332
  1312
            topAlignmentFractionHolder  value:(layout topAlignmentFraction).
cg@1332
  1313
          ^ self
cg@1332
  1314
        ]
cg@1332
  1315
    ] ifFalse:[
cg@1332
  1316
        layout := aView computeOrigin.
cg@1332
  1317
cg@1332
  1318
        leftOffsetHolder   value:(layout x).
cg@1332
  1319
        leftFractionHolder value:0.
cg@1332
  1320
        topOffsetHolder    value:(layout y).
cg@1332
  1321
        topFractionHolder  value:0.
cg@1332
  1322
    ].
cg@1332
  1323
    leftAlignmentFractionHolder value:0.
cg@1332
  1324
    topAlignmentFractionHolder  value:0.
cg@1332
  1325
cg@1332
  1326
cg@1332
  1327
!
cg@1332
  1328
cg@1332
  1329
layout
cg@1332
  1330
    "returns current layout as alignmentOrigin
cg@1332
  1331
    "
cg@1332
  1332
    |layout|
cg@1332
  1333
cg@1332
  1334
    layout  := Smalltalk::AlignmentOrigin new.
cg@1332
  1335
cg@1581
  1336
    layout 
cg@1581
  1337
        leftFraction:(((self aspectFor:#leftFraction) value) ? 0)
cg@1581
  1338
              offset:(((self aspectFor:#leftOffset)   value) ? 0)
cg@1581
  1339
        topFraction:(((self aspectFor:#topFraction)  value) ? 0)
cg@1581
  1340
             offset:(((self aspectFor:#topOffset)    value) ? 0).
cg@1581
  1341
cg@1581
  1342
    layout 
cg@1581
  1343
        leftAlignmentFraction:(((self aspectFor:#leftAlignmentFraction) value) ? 0)
cg@1581
  1344
        topAlignmentFraction:(((self aspectFor:#topAlignmentFraction)  value) ? 0).
cg@1332
  1345
cg@1332
  1346
  ^ layout
cg@1332
  1347
! !
cg@1332
  1348
cg@1332
  1349
!UILayoutTool::AlignmentOrigin methodsFor:'alignment'!
cg@1332
  1350
cg@1332
  1351
alignBottomCenter
cg@1332
  1352
    self makeAlignLeft:0.5 top:1
cg@1332
  1353
cg@1332
  1354
cg@1332
  1355
!
cg@1332
  1356
cg@1332
  1357
alignBottomLeft
cg@1332
  1358
    self makeAlignLeft:0 top:1
cg@1332
  1359
cg@1332
  1360
cg@1332
  1361
!
cg@1332
  1362
cg@1332
  1363
alignBottomRight
cg@1332
  1364
    self makeAlignLeft:1 top:1
cg@1332
  1365
cg@1332
  1366
cg@1332
  1367
!
cg@1332
  1368
cg@1332
  1369
alignCenter
cg@1332
  1370
    self makeAlignLeft:0.5 top:0.5
cg@1332
  1371
cg@1332
  1372
cg@1332
  1373
!
cg@1332
  1374
cg@1332
  1375
alignLeftCenter
cg@1332
  1376
    self makeAlignLeft:0 top:0.5
cg@1332
  1377
cg@1332
  1378
cg@1332
  1379
!
cg@1332
  1380
cg@1332
  1381
alignRightCenter
cg@1332
  1382
    self makeAlignLeft:1 top:0.5
cg@1332
  1383
cg@1332
  1384
cg@1332
  1385
!
cg@1332
  1386
cg@1332
  1387
alignTopCenter
cg@1332
  1388
    self makeAlignLeft:0.5 top:0
cg@1332
  1389
cg@1332
  1390
cg@1332
  1391
!
cg@1332
  1392
cg@1332
  1393
alignTopLeft
cg@1332
  1394
    self makeAlignLeft:0 top:0
cg@1332
  1395
cg@1332
  1396
cg@1332
  1397
!
cg@1332
  1398
cg@1332
  1399
alignTopRight
cg@1332
  1400
    self makeAlignLeft:1 top:0
cg@1332
  1401
cg@1332
  1402
cg@1332
  1403
!
cg@1332
  1404
cg@1332
  1405
makeAlignLeft:leftAlignmentFraction top:topAlignmentFraction
cg@1332
  1406
    |lAF tAF lO tO ext lAHolder tAHolder lOHolder tOHolder|
cg@1332
  1407
cg@1332
  1408
    lAF     := (lAHolder := self aspectFor:#leftAlignmentFraction) value ? 0.
cg@1332
  1409
    tAF     := (tAHolder := self aspectFor:#topAlignmentFraction)  value ? 0.
cg@1332
  1410
    ext     := (self aspectFor:#layoutView) computeExtent.
cg@1332
  1411
cg@1332
  1412
    lAHolder value:leftAlignmentFraction.
cg@1332
  1413
    tAHolder  value:topAlignmentFraction.
cg@1332
  1414
cg@1332
  1415
    lO := (lOHolder := self aspectFor:#leftOffset) value ? 0.
cg@1332
  1416
    tO := (tOHolder := self aspectFor:#topOffset)  value ? 0.
cg@1332
  1417
cg@1332
  1418
    lO := lO + (ext x * (leftAlignmentFraction - lAF)).
cg@1332
  1419
    tO := tO + (ext y * (topAlignmentFraction  - tAF)).
cg@1332
  1420
cg@1332
  1421
    lOHolder value:(lO rounded).
cg@1332
  1422
    tOHolder value:(tO rounded).
cg@1332
  1423
cg@1332
  1424
!
cg@1332
  1425
cg@1332
  1426
makeAlignTopRight
cg@1332
  1427
    self makeAlignLeft:1 top:0
cg@1332
  1428
cg@1332
  1429
ca@1304
  1430
! !
ca@1304
  1431
cg@1339
  1432
!UILayoutTool::Extent class methodsFor:'help specs'!
cg@1339
  1433
cg@1339
  1434
helpSpec
cg@1339
  1435
    "This resource specification was automatically generated
cg@1339
  1436
     by the UIHelpTool of ST/X."
cg@1339
  1437
cg@1339
  1438
    "Do not manually edit this!! If it is corrupted,
cg@1339
  1439
     the UIHelpTool may not be able to read the specification."
cg@1339
  1440
cg@1339
  1441
    "
cg@1339
  1442
     UIHelpTool openOnClass:UILayoutTool::Extent    
cg@1339
  1443
    "
cg@1339
  1444
cg@1339
  1445
    <resource: #help>
cg@1339
  1446
cg@1339
  1447
    ^super helpSpec addPairsFrom:#(
cg@1339
  1448
cg@1339
  1449
#hrzExtent
cg@1339
  1450
'Horizontal extent of the selected widget.'
cg@1339
  1451
cg@1339
  1452
#vrtExtent
cg@1339
  1453
'Vertical extent of the selected widget.'
cg@1339
  1454
cg@1339
  1455
)
cg@1339
  1456
! !
cg@1339
  1457
cg@1339
  1458
!UILayoutTool::Extent class methodsFor:'interface specs'!
ca@1334
  1459
ca@1334
  1460
windowSpec
ca@1334
  1461
    "This resource specification was automatically generated
ca@1334
  1462
     by the UIPainter of ST/X."
ca@1334
  1463
ca@1334
  1464
    "Do not manually edit this!! If it is corrupted,
ca@1334
  1465
     the UIPainter may not be able to read the specification."
ca@1334
  1466
ca@1334
  1467
    "
cg@1339
  1468
     UIPainter new openOnClass:UILayoutTool::Extent andSelector:#windowSpec
cg@1339
  1469
     UILayoutTool::Extent new openInterface:#windowSpec
cg@1339
  1470
     UILayoutTool::Extent open
ca@1334
  1471
    "
ca@1334
  1472
ca@1334
  1473
    <resource: #canvas>
ca@1334
  1474
cg@1339
  1475
    ^ 
sv@1738
  1476
     #(FullSpec
sv@1738
  1477
        name: windowSpec
sv@1738
  1478
        window: 
sv@1738
  1479
       (WindowSpec
sv@1738
  1480
          label: 'UILayoutTool-Extent'
sv@1738
  1481
          name: 'UILayoutTool-Extent'
sv@1738
  1482
          min: (Point 10 10)
sv@2478
  1483
          bounds: (Rectangle 0 0 505 149)
cg@1339
  1484
        )
sv@1738
  1485
        component: 
sv@1738
  1486
       (SpecCollection
sv@1738
  1487
          collection: (
sv@1738
  1488
           (FramedBoxSpec
sv@1738
  1489
              label: 'Extent'
sv@1738
  1490
              name: 'FramedBox'
ca@1804
  1491
              layout: (LayoutFrame 0 0.0 6 0.0 0 1.0 145 0)
sv@1738
  1492
              labelPosition: topLeft
cg@2022
  1493
              translateLabel: true
sv@1738
  1494
              component: 
sv@1738
  1495
             (SpecCollection
sv@1738
  1496
                collection: (
sv@1738
  1497
                 (LabelSpec
sv@1738
  1498
                    label: 'Width:'
sv@1738
  1499
                    name: 'labelWidth'
sv@2478
  1500
                    layout: (AlignmentOrigin 89 0 41 0 1 0.5)
cg@2022
  1501
                    translateLabel: true
sv@1738
  1502
                    adjust: right
cg@1339
  1503
                  )
sv@1738
  1504
                 (InputFieldSpec
sv@1738
  1505
                    name: 'fieldLeftOffset'
sv@2478
  1506
                    layout: (LayoutFrame 90 0 30 0 140 0 52 0)
sv@1738
  1507
                    activeHelpKey: hrzExtent
sv@1738
  1508
                    enableChannel: notUsingDefaultExtent
sv@1738
  1509
                    tabable: true
sv@1738
  1510
                    model: leftOffset
sv@1738
  1511
                    group: inputGroup
sv@1738
  1512
                    type: numberOrNil
sv@1738
  1513
                    acceptOnLostFocus: true
sv@1738
  1514
                    acceptChannel: acceptChannel
sv@1738
  1515
                    modifiedChannel: modifiedChannel
sv@1738
  1516
                    acceptOnPointerLeave: false
cg@1339
  1517
                  )
sv@1738
  1518
                 (LabelSpec
sv@1738
  1519
                    label: 'Height:'
sv@1738
  1520
                    name: 'labelHeight'
sv@2478
  1521
                    layout: (AlignmentOrigin 89 0 66 0 1 0.5)
cg@2022
  1522
                    translateLabel: true
sv@1738
  1523
                    adjust: right
cg@1339
  1524
                  )
sv@1738
  1525
                 (InputFieldSpec
sv@1738
  1526
                    name: 'fieldRightOffset'
sv@2478
  1527
                    layout: (LayoutFrame 90 0 55 0 140 0 77 0)
sv@1738
  1528
                    activeHelpKey: vrtExtent
sv@1738
  1529
                    enableChannel: notUsingDefaultExtent
sv@1738
  1530
                    tabable: true
cg@2022
  1531
                    model: topOffset
sv@1738
  1532
                    group: inputGroup
sv@1738
  1533
                    type: numberOrNil
sv@1738
  1534
                    acceptOnLostFocus: true
sv@1738
  1535
                    acceptChannel: acceptChannel
sv@1738
  1536
                    modifiedChannel: modifiedChannel
sv@1738
  1537
                    acceptOnPointerLeave: false
cg@1339
  1538
                  )
sv@1738
  1539
                 (CheckBoxSpec
sv@2478
  1540
                    label: 'Use Preferred'
sv@2478
  1541
                    name: 'CheckBox1'
sv@2478
  1542
                    layout: (LayoutFrame 169 0 30 0 275 0 52 0)
sv@2478
  1543
                    model: usePreferredWidth
sv@2478
  1544
                    translateLabel: true
sv@2478
  1545
                  )
sv@2478
  1546
                 (CheckBoxSpec
sv@2478
  1547
                    label: 'Dynamic'
sv@2478
  1548
                    name: 'CheckBox3'
sv@2478
  1549
                    layout: (LayoutFrame 276 0 30 0 353 0 52 0)
sv@2478
  1550
                    model: useDynamicPreferredWidth
sv@2478
  1551
                    translateLabel: true
sv@2478
  1552
                  )
sv@2478
  1553
                 (CheckBoxSpec
sv@2478
  1554
                    label: 'Use Preferred'
sv@2478
  1555
                    name: 'CheckBox2'
sv@2478
  1556
                    layout: (LayoutFrame 169 0 58 0 275 0 80 0)
sv@2478
  1557
                    model: usePreferredHeight
sv@2478
  1558
                    translateLabel: true
sv@2478
  1559
                  )
sv@2478
  1560
                 (CheckBoxSpec
sv@2478
  1561
                    label: 'Dynamic'
sv@2478
  1562
                    name: 'CheckBox4'
sv@2478
  1563
                    layout: (LayoutFrame 276 0 58 0 353 0 80 0)
sv@2478
  1564
                    model: useDynamicPreferredHeight
sv@2478
  1565
                    translateLabel: true
sv@2478
  1566
                  )
sv@2478
  1567
                 (CheckBoxSpec
sv@1738
  1568
                    label: 'Use Widgets Default Extent'
sv@1738
  1569
                    name: 'useDefaultExtentCheckBox'
sv@2478
  1570
                    layout: (Point 5 84)
sv@1738
  1571
                    enableChannel: defaultExtentEnabled
sv@1738
  1572
                    tabable: true
sv@1738
  1573
                    model: useDefaultExtent
sv@1738
  1574
                    translateLabel: true
cg@1339
  1575
                  )
cg@1339
  1576
                 )
cg@1339
  1577
               
ca@1334
  1578
              )
cg@1339
  1579
            )
cg@2022
  1580
           (PopUpListSpec
cg@2022
  1581
              label: 'Common Extents'
cg@2022
  1582
              name: 'CommonExtentsPopUpList'
sv@2478
  1583
              layout: (LayoutFrame 189 0 21 0 314 0 43 0)
cg@2022
  1584
              tabable: true
cg@2022
  1585
              menu: listOfCommonExtents
cg@2022
  1586
              useIndex: true
cg@2022
  1587
              ignoreReselect: false
cg@2022
  1588
              stateChangeCallBackSelector: commonExtentSelected:
cg@2022
  1589
            )
cg@1339
  1590
           )
cg@1339
  1591
         
cg@1339
  1592
        )
ca@1334
  1593
      )
ca@1334
  1594
! !
ca@1334
  1595
cg@1339
  1596
!UILayoutTool::Extent methodsFor:'accessing'!
ca@1334
  1597
ca@1334
  1598
fetch:aView spec:aSpec
cg@2022
  1599
    "fetch the extent from aView"
cg@2022
  1600
cg@1339
  1601
    |extent|
cg@1339
  1602
cg@1339
  1603
    extent  := aView computeExtent.
cg@1339
  1604
cg@1339
  1605
    (self aspectFor:#leftOffset)  value:(extent x).
cg@2022
  1606
    (self aspectFor:#topOffset)   value:(extent y).
cg@1339
  1607
sv@2478
  1608
    (self aspectFor:#usePreferredWidth) value:(aSpec usePreferredWidth).
sv@2478
  1609
    (self aspectFor:#usePreferredHeight) value:(aSpec usePreferredHeight).
sv@2478
  1610
    (self aspectFor:#useDynamicPreferredWidth) value:(aSpec useDynamicPreferredWidth).
sv@2478
  1611
    (self aspectFor:#useDynamicPreferredHeight) value:(aSpec useDynamicPreferredHeight).
cg@1339
  1612
    (self aspectFor:#useDefaultExtent) value:aSpec useDefaultExtent 
ca@1334
  1613
!
ca@1334
  1614
ca@1334
  1615
layout
cg@2022
  1616
    "returns the current extent"
cg@2022
  1617
cg@2022
  1618
    ^ (((self aspectFor:#leftOffset) value) ? 0) @ (((self aspectFor:#topOffset)  value) ? 0)
cg@2022
  1619
! !
cg@2022
  1620
cg@2022
  1621
!UILayoutTool::Extent methodsFor:'aspects'!
cg@2022
  1622
cg@2022
  1623
commonExtentsSpec
cg@2022
  1624
    ^ #( 
cg@2022
  1625
        ('200 x 100'  (200 100) ) 
cg@2022
  1626
        ('300 x 300'  (300 300) ) 
cg@2022
  1627
        ('640 x 400'  (640 400) ) 
cg@2022
  1628
        ('800 x 600'  (800 600) ) 
cg@2214
  1629
        ('1024 x 768'  (1024 768) ) 
cg@2214
  1630
        ('1200 x 800'  (1200 800) ) 
cg@2022
  1631
      )
cg@2022
  1632
!
cg@2022
  1633
cg@2022
  1634
listOfCommonExtents
cg@2022
  1635
    ^ self commonExtentsSpec collect:[:eachRow | eachRow first].
cg@2022
  1636
! !
cg@2022
  1637
cg@2022
  1638
!UILayoutTool::Extent methodsFor:'user actions'!
cg@2022
  1639
cg@2022
  1640
commonExtentSelected:index
cg@2022
  1641
    |xy x y|
cg@2022
  1642
cg@2022
  1643
    xy := (self commonExtentsSpec at:index) second. 
cg@2022
  1644
    x := xy at:1.
cg@2022
  1645
    y := xy at:2.
cg@2022
  1646
cg@2022
  1647
    (self aspectFor:#leftOffset)  value:x.
cg@2022
  1648
    (self aspectFor:#topOffset)   value:y.
cg@2022
  1649
cg@2022
  1650
    (builder componentAt:#CommonExtentsPopUpList) 
cg@2022
  1651
        label:(resources string:'Common Extents').
ca@1334
  1652
! !
ca@1334
  1653
werner@1826
  1654
!UILayoutTool::LayoutFrame class methodsFor:'defaults'!
werner@1826
  1655
werner@1826
  1656
defaultFixPartHeight
werner@1826
  1657
    ^ DefaultFixPartHeight ? 30
werner@1826
  1658
! !
werner@1826
  1659
ca@1447
  1660
!UILayoutTool::LayoutFrame class methodsFor:'help specs'!
ca@1447
  1661
ca@1447
  1662
helpSpec
ca@1447
  1663
    "This resource specification was automatically generated
ca@1447
  1664
     by the UIHelpTool of ST/X."
ca@1447
  1665
ca@1447
  1666
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1667
     the UIHelpTool may not be able to read the specification."
ca@1447
  1668
ca@1447
  1669
    "
ca@1447
  1670
     UIHelpTool openOnClass:UILayoutTool::LayoutFrame    
ca@1447
  1671
    "
ca@1447
  1672
ca@1447
  1673
    <resource: #help>
ca@1447
  1674
ca@1858
  1675
    ^ super helpSpec addPairsFrom:#(
ca@1447
  1676
ca@1447
  1677
#bottomAbsolute
ca@1447
  1678
'Offset of the bottom edge; positive is to the bottom, negative to the top.'
ca@1447
  1679
ca@1858
  1680
#bigBottomFixPartLayout
ca@1858
  1681
'Set layout for a big fixed area at the bottom of the widgets container'
ca@1858
  1682
ca@1447
  1683
#bottomFixPartLayout
ca@1858
  1684
'Set layout for a small fixed area at the bottom of the widgets container'
ca@1447
  1685
ca@1447
  1686
#bottomHalfLayout
ca@1858
  1687
'Set layout for the bottom half of the widgets container'
ca@1447
  1688
ca@1447
  1689
#bottomLeftQuarterLayout
ca@1858
  1690
'Set layout for the bottom-left quarter of the widgets container'
ca@1447
  1691
ca@1447
  1692
#bottomRelative
ca@1447
  1693
'Relative corner y of the selected widget.'
ca@1447
  1694
ca@1447
  1695
#bottomRightQuarterLayout
ca@1858
  1696
'Set layout for the bottom-right quarter of the widgets container'
ca@1858
  1697
ca@1858
  1698
#fullLayout
ca@1858
  1699
'Set layout to fill all of the widgets container'
ca@1447
  1700
ca@1447
  1701
#horizontalFixPartLayout
ca@1858
  1702
'Set layout for a small fixed-height area centered vertically in the widgets container'
ca@1858
  1703
ca@1858
  1704
#bigHorizontalFixPartLayout
ca@1858
  1705
'Set layout for a big fixed-height area centered vertically in the widgets container'
ca@1447
  1706
ca@1447
  1707
#leftFixPartLayout
ca@1858
  1708
'Set layout for a small fixed area at the left of the widgets container'
ca@1447
  1709
ca@1447
  1710
#leftHalfLayout
ca@1858
  1711
'Set layout for the left half of the widgets container'
ca@1447
  1712
ca@1447
  1713
#makeBottomAbsolute
ca@1447
  1714
'Compute pure-absolute y.'
ca@1447
  1715
ca@1447
  1716
#makeBottomRelative
cg@1955
  1717
'Compute pure-fractional y.'
ca@1447
  1718
ca@1447
  1719
#makeBottomRelativeFromBottom
cg@2022
  1720
'Compute fraction+offset for y relative to containers bottom.'
ca@1447
  1721
ca@1447
  1722
#makeRightAbsolute
ca@1447
  1723
'Compute pure-absolute x.'
ca@1447
  1724
ca@1447
  1725
#makeRightRelative
cg@1955
  1726
'Compute pure-fractional x.'
ca@1447
  1727
ca@1447
  1728
#makeRightRelativeFromRight
ca@1447
  1729
'Compute fraction+offset for x relative to containers right.'
ca@1447
  1730
ca@1447
  1731
#rightAbsolute
ca@1447
  1732
'Offset of the right edge; positive is to the right, negative to the left.'
ca@1447
  1733
ca@1447
  1734
#rightFixPartLayout
ca@1858
  1735
'Set layout for a small fixed area at the right of the widgets container'
ca@1447
  1736
ca@1447
  1737
#rightHalfLayout
ca@1858
  1738
'Set layout for the right half of the widgets container'
ca@1447
  1739
ca@1447
  1740
#rightRelative
ca@1447
  1741
'Relative corner x of the selected widget.'
ca@1447
  1742
ca@1858
  1743
#screenFrameLayout
ca@1858
  1744
''
ca@1858
  1745
ca@1447
  1746
#topFixPartLayout
ca@1858
  1747
'Set layout for a small fixed area at the top of the widgets container'
ca@1858
  1748
ca@1858
  1749
#bigTopFixPartLayout
ca@1858
  1750
'Set layout for a big fixed area at the top of the widgets container'
ca@1447
  1751
ca@1447
  1752
#topHalfLayout
ca@1858
  1753
'Set layout for the top half of the widgets container'
ca@1447
  1754
ca@1447
  1755
#topLeftQuarterLayout
ca@1858
  1756
'Set layout for the top-left quarter of the widgets container'
ca@1447
  1757
ca@1447
  1758
#topRightQuarterLayout
ca@1858
  1759
'Set layout for the top-right quarter of the widgets container'
ca@1447
  1760
ca@1447
  1761
#verticalFixPartLayout
ca@1858
  1762
'Set layout for a small fixed-width area centered horizontally in the widgets container'
ca@1447
  1763
ca@1447
  1764
)
ca@1447
  1765
! !
ca@1447
  1766
ca@1447
  1767
!UILayoutTool::LayoutFrame class methodsFor:'image specs'!
ca@1447
  1768
cg@1706
  1769
setBigBottomFixPartIcon
cg@1706
  1770
    "This resource specification was automatically generated
cg@1706
  1771
     by the ImageEditor of ST/X."
cg@1706
  1772
cg@1706
  1773
    "Do not manually edit this!! If it is corrupted,
cg@1706
  1774
     the ImageEditor may not be able to read the specification."
cg@1706
  1775
cg@1706
  1776
    "
cg@1706
  1777
     self setBigBottomFixPartIcon inspect
cg@1706
  1778
     ImageEditor openOnClass:self andSelector:#setBigBottomFixPartIcon
cg@1706
  1779
     Icon flushCachedIcons
cg@1706
  1780
    "
cg@1706
  1781
cg@1706
  1782
    <resource: #image>
cg@1706
  1783
cg@1706
  1784
    ^Icon
cg@2269
  1785
        constantNamed:'UILayoutTool::LayoutFrame class setBigBottomFixPartIcon'
cg@2022
  1786
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2022
  1787
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"H"H"H"H"@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQ
cg@2022
  1788
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
  1789
!
cg@1706
  1790
cg@1706
  1791
setBigHorizontalFixPartIcon
cg@1706
  1792
    "This resource specification was automatically generated
cg@1706
  1793
     by the ImageEditor of ST/X."
cg@1706
  1794
cg@1706
  1795
    "Do not manually edit this!! If it is corrupted,
cg@1706
  1796
     the ImageEditor may not be able to read the specification."
cg@1706
  1797
cg@1706
  1798
    "
cg@1706
  1799
     self setBigHorizontalFixPartIcon inspect
cg@1706
  1800
     ImageEditor openOnClass:self andSelector:#setBigHorizontalFixPartIcon
cg@1706
  1801
     Icon flushCachedIcons
cg@1706
  1802
    "
cg@1706
  1803
cg@1706
  1804
    <resource: #image>
cg@1706
  1805
cg@1706
  1806
    ^Icon
cg@2269
  1807
        constantNamed:'UILayoutTool::LayoutFrame class setBigHorizontalFixPartIcon'
cg@2022
  1808
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2022
  1809
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@H"
cg@2022
  1810
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
  1811
!
cg@1706
  1812
cg@1706
  1813
setBigTopFixPartIcon
cg@1706
  1814
    "This resource specification was automatically generated
cg@1706
  1815
     by the ImageEditor of ST/X."
cg@1706
  1816
cg@1706
  1817
    "Do not manually edit this!! If it is corrupted,
cg@1706
  1818
     the ImageEditor may not be able to read the specification."
cg@1706
  1819
cg@1706
  1820
    "
cg@1706
  1821
     self setBigTopFixPartIcon inspect
cg@1706
  1822
     ImageEditor openOnClass:self andSelector:#setBigTopFixPartIcon
cg@1706
  1823
     Icon flushCachedIcons
cg@1706
  1824
    "
cg@1706
  1825
cg@1706
  1826
    <resource: #image>
cg@1706
  1827
cg@1706
  1828
    ^Icon
cg@2269
  1829
        constantNamed:'UILayoutTool::LayoutFrame class setBigTopFixPartIcon'
cg@2022
  1830
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2022
  1831
@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @"H"H"H"H"@@@@@@@@@@@@@@
cg@2022
  1832
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@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
  1833
!
cg@1706
  1834
ca@1447
  1835
setBottomFixPartIcon
ca@1447
  1836
    "This resource specification was automatically generated
ca@1447
  1837
     by the ImageEditor of ST/X."
ca@1447
  1838
ca@1447
  1839
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1840
     the ImageEditor may not be able to read the specification."
ca@1447
  1841
ca@1447
  1842
    "
ca@1447
  1843
     self setBottomFixPartIcon inspect
ca@1447
  1844
     ImageEditor openOnClass:self andSelector:#setBottomFixPartIcon
cg@2269
  1845
     Icon flushCachedIcons
ca@1447
  1846
    "
ca@1447
  1847
ca@1447
  1848
    <resource: #image>
ca@1447
  1849
ca@1447
  1850
    ^Icon
cg@2269
  1851
        constantNamed:'UILayoutTool::LayoutFrame class setBottomFixPartIcon'
cg@2269
  1852
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  1853
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"
cg@2269
  1854
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
  1855
!
ca@1447
  1856
ca@1447
  1857
setBottomHalfIcon
ca@1447
  1858
    "This resource specification was automatically generated
ca@1447
  1859
     by the ImageEditor of ST/X."
ca@1447
  1860
ca@1447
  1861
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1862
     the ImageEditor may not be able to read the specification."
ca@1447
  1863
ca@1447
  1864
    "
ca@1447
  1865
     self setBottomHalfIcon inspect
ca@1447
  1866
     ImageEditor openOnClass:self andSelector:#setBottomHalfIcon
cg@2269
  1867
     Icon flushCachedIcons
ca@1447
  1868
    "
ca@1447
  1869
ca@1447
  1870
    <resource: #image>
ca@1447
  1871
ca@1447
  1872
    ^Icon
cg@2269
  1873
        constantNamed:'UILayoutTool::LayoutFrame class setBottomHalfIcon'
cg@2269
  1874
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  1875
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"H"H"H"H"@BDQDQDQDQH@HQ
cg@2269
  1876
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
  1877
!
ca@1447
  1878
ca@1447
  1879
setBottomLeftQuarterIcon
ca@1447
  1880
    "This resource specification was automatically generated
ca@1447
  1881
     by the ImageEditor of ST/X."
ca@1447
  1882
ca@1447
  1883
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1884
     the ImageEditor may not be able to read the specification."
ca@1447
  1885
ca@1447
  1886
    "
ca@1447
  1887
     self setBottomLeftQuarterIcon inspect
ca@1447
  1888
     ImageEditor openOnClass:self andSelector:#setBottomLeftQuarterIcon
cg@2269
  1889
     Icon flushCachedIcons
ca@1447
  1890
    "
ca@1447
  1891
ca@1447
  1892
    <resource: #image>
ca@1447
  1893
ca@1447
  1894
    ^Icon
cg@2269
  1895
        constantNamed:'UILayoutTool::LayoutFrame class setBottomLeftQuarterIcon'
cg@2269
  1896
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  1897
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"H"@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQ
cg@2269
  1898
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
  1899
!
ca@1447
  1900
ca@1447
  1901
setBottomRightQuarterIcon
ca@1447
  1902
    "This resource specification was automatically generated
ca@1447
  1903
     by the ImageEditor of ST/X."
ca@1447
  1904
ca@1447
  1905
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1906
     the ImageEditor may not be able to read the specification."
ca@1447
  1907
ca@1447
  1908
    "
ca@1447
  1909
     self setBottomRightQuarterIcon inspect
ca@1447
  1910
     ImageEditor openOnClass:self andSelector:#setBottomRightQuarterIcon
cg@2269
  1911
     Icon flushCachedIcons
ca@1447
  1912
    "
ca@1447
  1913
ca@1447
  1914
    <resource: #image>
ca@1447
  1915
ca@1447
  1916
    ^Icon
cg@2269
  1917
        constantNamed:'UILayoutTool::LayoutFrame class setBottomRightQuarterIcon'
cg@2269
  1918
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  1919
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH"H"@@@@@@HQDQH@@@
cg@2269
  1920
@@@!!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
  1921
!
ca@1447
  1922
cg@1680
  1923
setFullIcon
cg@1680
  1924
    "This resource specification was automatically generated
cg@1680
  1925
     by the ImageEditor of ST/X."
cg@1680
  1926
cg@1680
  1927
    "Do not manually edit this!! If it is corrupted,
cg@1680
  1928
     the ImageEditor may not be able to read the specification."
cg@1680
  1929
cg@1680
  1930
    "
cg@1680
  1931
     self setFullIcon inspect
cg@1680
  1932
     ImageEditor openOnClass:self andSelector:#setFullIcon
cg@1680
  1933
     Icon flushCachedIcons
cg@1680
  1934
    "
cg@1680
  1935
cg@1680
  1936
    <resource: #image>
cg@1680
  1937
cg@1680
  1938
    ^Icon
cg@2269
  1939
        constantNamed:'UILayoutTool::LayoutFrame class setFullIcon'
cg@2269
  1940
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@1680
  1941
@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQ
cg@2269
  1942
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
  1943
!
cg@1680
  1944
ca@1447
  1945
setHorizontalFixPartIcon
ca@1447
  1946
    "This resource specification was automatically generated
ca@1447
  1947
     by the ImageEditor of ST/X."
ca@1447
  1948
ca@1447
  1949
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1950
     the ImageEditor may not be able to read the specification."
ca@1447
  1951
ca@1447
  1952
    "
ca@1447
  1953
     self setHorizontalFixPartIcon inspect
ca@1447
  1954
     ImageEditor openOnClass:self andSelector:#setHorizontalFixPartIcon
cg@2269
  1955
     Icon flushCachedIcons
ca@1447
  1956
    "
ca@1447
  1957
ca@1447
  1958
    <resource: #image>
ca@1447
  1959
ca@1447
  1960
    ^Icon
cg@2269
  1961
        constantNamed:'UILayoutTool::LayoutFrame class setHorizontalFixPartIcon'
cg@2269
  1962
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
ca@1447
  1963
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"H"H@H"H"@BDQDP@QDQH@HQDQ@ADQD @"H"H@H"H"@@@@@@@@@@@@@@
cg@2269
  1964
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@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
  1965
!
ca@1447
  1966
ca@1447
  1967
setLeftFixPartIcon
ca@1447
  1968
    "This resource specification was automatically generated
ca@1447
  1969
     by the ImageEditor of ST/X."
ca@1447
  1970
ca@1447
  1971
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1972
     the ImageEditor may not be able to read the specification."
ca@1447
  1973
ca@1447
  1974
    "
ca@1447
  1975
     self setLeftFixPartIcon inspect
ca@1447
  1976
     ImageEditor openOnClass:self andSelector:#setLeftFixPartIcon
cg@2269
  1977
     Icon flushCachedIcons
ca@1447
  1978
    "
ca@1447
  1979
ca@1447
  1980
    <resource: #image>
ca@1447
  1981
ca@1447
  1982
    ^Icon
cg@2269
  1983
        constantNamed:'UILayoutTool::LayoutFrame class setLeftFixPartIcon'
cg@2269
  1984
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
ca@1447
  1985
@@@@@@@@@@@BH"@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@@@@@@@@@@@@@@@@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQ
cg@2269
  1986
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
  1987
!
ca@1447
  1988
ca@1447
  1989
setLeftHalfIcon
ca@1447
  1990
    "This resource specification was automatically generated
ca@1447
  1991
     by the ImageEditor of ST/X."
ca@1447
  1992
ca@1447
  1993
    "Do not manually edit this!! If it is corrupted,
ca@1447
  1994
     the ImageEditor may not be able to read the specification."
ca@1447
  1995
ca@1447
  1996
    "
ca@1447
  1997
     self setLeftHalfIcon inspect
ca@1447
  1998
     ImageEditor openOnClass:self andSelector:#setLeftHalfIcon
cg@2269
  1999
     Icon flushCachedIcons
ca@1447
  2000
    "
ca@1447
  2001
ca@1447
  2002
    <resource: #image>
ca@1447
  2003
ca@1447
  2004
    ^Icon
cg@2269
  2005
        constantNamed:'UILayoutTool::LayoutFrame class setLeftHalfIcon'
cg@2269
  2006
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2007
@@@@@@@@@@@BH"H @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQ
cg@2269
  2008
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
  2009
!
ca@1447
  2010
ca@1447
  2011
setRightFixPartIcon
ca@1447
  2012
    "This resource specification was automatically generated
ca@1447
  2013
     by the ImageEditor of ST/X."
ca@1447
  2014
ca@1447
  2015
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2016
     the ImageEditor may not be able to read the specification."
ca@1447
  2017
ca@1447
  2018
    "
ca@1447
  2019
     self setRightFixPartIcon inspect
ca@1447
  2020
     ImageEditor openOnClass:self andSelector:#setRightFixPartIcon
cg@2269
  2021
     Icon flushCachedIcons
ca@1447
  2022
    "
ca@1447
  2023
ca@1447
  2024
    <resource: #image>
ca@1447
  2025
ca@1447
  2026
    ^Icon
cg@2269
  2027
        constantNamed:'UILayoutTool::LayoutFrame class setRightFixPartIcon'
cg@2269
  2028
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
ca@1447
  2029
@@@@@@@@@@@@@@@@@@H"H@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BDR@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BDR@@@@@@@@HQH@@@
cg@2269
  2030
@@@@@!!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
  2031
!
ca@1447
  2032
ca@1447
  2033
setRightHalfIcon
ca@1447
  2034
    "This resource specification was automatically generated
ca@1447
  2035
     by the ImageEditor of ST/X."
ca@1447
  2036
ca@1447
  2037
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2038
     the ImageEditor may not be able to read the specification."
ca@1447
  2039
ca@1447
  2040
    "
ca@1447
  2041
     self setRightHalfIcon inspect
ca@1447
  2042
     ImageEditor openOnClass:self andSelector:#setRightHalfIcon
cg@2269
  2043
     Icon flushCachedIcons
ca@1447
  2044
    "
ca@1447
  2045
ca@1447
  2046
    <resource: #image>
ca@1447
  2047
ca@1447
  2048
    ^Icon
cg@2269
  2049
        constantNamed:'UILayoutTool::LayoutFrame class setRightHalfIcon'
cg@2269
  2050
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2051
@@@@@@@@@@@@@@@@@"H"H@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@
cg@2269
  2052
@@@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
  2053
!
ca@1447
  2054
ca@1447
  2055
setToRightQuarterIcon
ca@1447
  2056
    "This resource specification was automatically generated
ca@1447
  2057
     by the ImageEditor of ST/X."
ca@1447
  2058
ca@1447
  2059
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2060
     the ImageEditor may not be able to read the specification."
ca@1447
  2061
ca@1447
  2062
    "
ca@1447
  2063
     self setToRightQuarterIcon inspect
ca@1447
  2064
     ImageEditor openOnClass:self andSelector:#setToRightQuarterIcon
cg@2269
  2065
     Icon flushCachedIcons
ca@1447
  2066
    "
ca@1447
  2067
ca@1447
  2068
    <resource: #image>
ca@1447
  2069
ca@1447
  2070
    ^Icon
cg@2269
  2071
        constantNamed:'UILayoutTool::LayoutFrame class setToRightQuarterIcon'
cg@2269
  2072
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2073
@@@@@@@@@@@@@@@@@"H"H@@@@@@BDQD @@@@@@HQDR@@@@@@@!!DQH@@@@@@BDQD @@@@@@HQDR@@@@@@@"H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
  2074
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@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
  2075
!
ca@1447
  2076
ca@1447
  2077
setTopFixPartIcon
ca@1447
  2078
    "This resource specification was automatically generated
ca@1447
  2079
     by the ImageEditor of ST/X."
ca@1447
  2080
ca@1447
  2081
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2082
     the ImageEditor may not be able to read the specification."
ca@1447
  2083
ca@1447
  2084
    "
ca@1447
  2085
     self setTopFixPartIcon inspect
ca@1447
  2086
     ImageEditor openOnClass:self andSelector:#setTopFixPartIcon
cg@2269
  2087
     Icon flushCachedIcons
ca@1447
  2088
    "
ca@1447
  2089
ca@1447
  2090
    <resource: #image>
ca@1447
  2091
ca@1447
  2092
    ^Icon
cg@2269
  2093
        constantNamed:'UILayoutTool::LayoutFrame class setTopFixPartIcon'
cg@2269
  2094
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2095
@@@@@@@@@@@BH"H @"H"H@HQDQ@ADQD @!!DQD@DQDR@BH"H @"H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
  2096
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@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
  2097
!
ca@1447
  2098
ca@1447
  2099
setTopHalfIcon
ca@1447
  2100
    "This resource specification was automatically generated
ca@1447
  2101
     by the ImageEditor of ST/X."
ca@1447
  2102
ca@1447
  2103
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2104
     the ImageEditor may not be able to read the specification."
ca@1447
  2105
ca@1447
  2106
    "
ca@1447
  2107
     self setTopHalfIcon inspect
ca@1447
  2108
     ImageEditor openOnClass:self andSelector:#setTopHalfIcon
cg@2269
  2109
     Icon flushCachedIcons
ca@1447
  2110
    "
ca@1447
  2111
ca@1447
  2112
    <resource: #image>
ca@1447
  2113
ca@1447
  2114
    ^Icon
cg@2269
  2115
        constantNamed:'UILayoutTool::LayoutFrame class setTopHalfIcon'
cg@2269
  2116
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2117
@@@@@@@@@@@BH"H"H"H"H@HQDQDQDQD @!!DQDQDQDR@BDQDQDQDQH@HQDQDQDQD @"H"H"H"H"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
  2118
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@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
  2119
!
ca@1447
  2120
ca@1447
  2121
setTopLeftQuarterIcon
ca@1447
  2122
    "This resource specification was automatically generated
ca@1447
  2123
     by the ImageEditor of ST/X."
ca@1447
  2124
ca@1447
  2125
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2126
     the ImageEditor may not be able to read the specification."
ca@1447
  2127
ca@1447
  2128
    "
ca@1447
  2129
     self setTopLeftQuarterIcon inspect
ca@1447
  2130
     ImageEditor openOnClass:self andSelector:#setTopLeftQuarterIcon
cg@2269
  2131
     Icon flushCachedIcons
ca@1447
  2132
    "
ca@1447
  2133
ca@1447
  2134
    <resource: #image>
ca@1447
  2135
ca@1447
  2136
    ^Icon
cg@2269
  2137
        constantNamed:'UILayoutTool::LayoutFrame class setTopLeftQuarterIcon'
cg@2269
  2138
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
cg@2269
  2139
@@@@@@@@@@@BH"H"@@@@@@HQDQH@@@@@@!!DQD @@@@@BDQDR@@@@@@HQDQH@@@@@@"H"H @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cg@2269
  2140
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@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
  2141
!
ca@1447
  2142
ca@1447
  2143
setVerticalFixPartIcon
ca@1447
  2144
    "This resource specification was automatically generated
ca@1447
  2145
     by the ImageEditor of ST/X."
ca@1447
  2146
ca@1447
  2147
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2148
     the ImageEditor may not be able to read the specification."
ca@1447
  2149
ca@1447
  2150
    "
ca@1447
  2151
     self setVerticalFixPartIcon inspect
ca@1447
  2152
     ImageEditor openOnClass:self andSelector:#setVerticalFixPartIcon
cg@2269
  2153
     Icon flushCachedIcons
ca@1447
  2154
    "
ca@1447
  2155
ca@1447
  2156
    <resource: #image>
ca@1447
  2157
ca@1447
  2158
    ^Icon
cg@2269
  2159
        constantNamed:'UILayoutTool::LayoutFrame class setVerticalFixPartIcon'
cg@2269
  2160
        ifAbsentPut:[(Depth4Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#(4)); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
ca@1447
  2161
@@@@@@@@@@@@@@@"H @@@@@@@BDR@@@@@@@@HQH@@@@@@@@!!D @@@@@@@BDR@@@@@@@@HQH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HQH@@@@@@@@!!D @@@@@@
cg@2269
  2162
@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
  2163
! !
ca@1447
  2164
ca@1447
  2165
!UILayoutTool::LayoutFrame class methodsFor:'interface specs'!
ca@1447
  2166
ca@1447
  2167
windowSpec
ca@1447
  2168
    "This resource specification was automatically generated
ca@1447
  2169
     by the UIPainter of ST/X."
ca@1447
  2170
ca@1447
  2171
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2172
     the UIPainter may not be able to read the specification."
ca@1447
  2173
ca@1447
  2174
    "
ca@1447
  2175
     UIPainter new openOnClass:UILayoutTool::LayoutFrame andSelector:#windowSpec
ca@1447
  2176
     UILayoutTool::LayoutFrame new openInterface:#windowSpec
ca@1447
  2177
     UILayoutTool::LayoutFrame open
ca@1447
  2178
    "
ca@1447
  2179
ca@1447
  2180
    <resource: #canvas>
ca@1447
  2181
ca@1447
  2182
    ^ 
sv@1738
  2183
     #(FullSpec
sv@1738
  2184
        name: windowSpec
sv@1738
  2185
        window: 
sv@1738
  2186
       (WindowSpec
sv@1738
  2187
          label: 'UILayoutTool-LayoutFrame'
sv@1738
  2188
          name: 'UILayoutTool-LayoutFrame'
sv@1738
  2189
          min: (Point 10 10)
cg@2379
  2190
          bounds: (Rectangle 0 0 511 302)
ca@1447
  2191
        )
sv@1738
  2192
        component: 
sv@1738
  2193
       (SpecCollection
sv@1738
  2194
          collection: (
sv@1738
  2195
           (UISubSpecification
sv@1738
  2196
              name: 'layoutOriginSpec'
sv@1738
  2197
              layout: (LayoutFrame 1 0.0 6 0 0 1.0 110 0)
sv@1738
  2198
              majorKey: UILayoutTool
sv@1738
  2199
              minorKey: layoutOriginSpec
ca@1447
  2200
            )
sv@1738
  2201
           (FramedBoxSpec
sv@1738
  2202
              label: 'Corner'
sv@1738
  2203
              name: 'FramedBox'
sv@1738
  2204
              layout: (LayoutFrame 1 0.0 113 0 0 1.0 214 0)
sv@1738
  2205
              labelPosition: topLeft
ca@2207
  2206
              translateLabel: true
sv@1738
  2207
              component: 
sv@1738
  2208
             (SpecCollection
sv@1738
  2209
                collection: (
sv@1738
  2210
                 (LabelSpec
sv@1738
  2211
                    label: 'Right:'
sv@1738
  2212
                    name: 'labelRight'
sv@1738
  2213
                    layout: (AlignmentOrigin 68 0 25 0 1 0.5)
cg@1874
  2214
                    translateLabel: true
ca@1447
  2215
                  )
sv@1738
  2216
                 (ActionButtonSpec
sv@1738
  2217
                    label: 'imageFractX'
sv@1738
  2218
                    name: 'actionRelativeRight'
sv@1738
  2219
                    layout: (LayoutFrame 78 0 14 0 100 0 36 0)
sv@1738
  2220
                    activeHelpKey: makeRightRelative
sv@1738
  2221
                    hasCharacterOrientedLabel: false
sv@1738
  2222
                    tabable: true
sv@1738
  2223
                    model: relativeRight
ca@1447
  2224
                  )
sv@1738
  2225
                 (InputFieldSpec
sv@1738
  2226
                    name: 'fieldRightFraction'
sv@1738
  2227
                    layout: (LayoutFrame 103 0 14 0 153 0 36 0)
sv@1738
  2228
                    activeHelpKey: rightRelative
sv@1738
  2229
                    tabable: true
sv@1738
  2230
                    model: rightFraction
sv@1738
  2231
                    group: inputGroup
sv@1738
  2232
                    type: numberOrNil
sv@1738
  2233
                    acceptOnLostFocus: true
sv@1738
  2234
                    acceptChannel: acceptChannel
sv@1738
  2235
                    modifiedChannel: modifiedChannel
sv@1738
  2236
                    acceptOnPointerLeave: false
ca@1447
  2237
                  )
sv@1738
  2238
                 (ActionButtonSpec
ca@2207
  2239
                    label: 'imageAbsX'
ca@2207
  2240
                    name: 'actionAbsoluteRight'
ca@2207
  2241
                    layout: (LayoutFrame 178 0 14 0 200 0 36 0)
ca@2207
  2242
                    activeHelpKey: makeRightAbsolute
sv@1738
  2243
                    hasCharacterOrientedLabel: false
sv@1738
  2244
                    tabable: true
ca@2207
  2245
                    model: absoluteRight
ca@1447
  2246
                  )
sv@1738
  2247
                 (InputFieldSpec
sv@1738
  2248
                    name: 'fieldRightOffset'
sv@1738
  2249
                    layout: (LayoutFrame 203 0 14 0 253 0 36 0)
sv@1738
  2250
                    activeHelpKey: rightAbsolute
sv@1738
  2251
                    tabable: true
sv@1738
  2252
                    model: rightOffset
sv@1738
  2253
                    group: inputGroup
sv@1738
  2254
                    type: numberOrNil
sv@1738
  2255
                    acceptOnLostFocus: true
sv@1738
  2256
                    acceptChannel: acceptChannel
sv@1738
  2257
                    modifiedChannel: modifiedChannel
sv@1738
  2258
                    acceptOnPointerLeave: false
ca@1447
  2259
                  )
sv@1738
  2260
                 (ActionButtonSpec
ca@2207
  2261
                    label: 'imageAbsXFromRight'
ca@2207
  2262
                    name: 'actionRightRelativeRight'
ca@2207
  2263
                    layout: (LayoutFrame 257 0 14 0 279 0 36 0)
ca@2207
  2264
                    activeHelpKey: makeRightRelativeFromRight
sv@1738
  2265
                    hasCharacterOrientedLabel: false
sv@1738
  2266
                    tabable: true
ca@2207
  2267
                    model: rightRelativeRight
ca@1447
  2268
                  )
sv@1738
  2269
                 (LabelSpec
sv@1738
  2270
                    label: 'Bottom:'
sv@1738
  2271
                    name: 'labelBottom'
sv@1738
  2272
                    layout: (AlignmentOrigin 68 0 53 0 1 0.5)
cg@1874
  2273
                    translateLabel: true
ca@1447
  2274
                  )
sv@1738
  2275
                 (ActionButtonSpec
sv@1738
  2276
                    label: 'imageFractY'
sv@1738
  2277
                    name: 'actionRelativeBottom'
sv@1738
  2278
                    layout: (LayoutFrame 78 0 42 0 100 0 64 0)
sv@1738
  2279
                    activeHelpKey: makeBottomRelative
sv@1738
  2280
                    hasCharacterOrientedLabel: false
sv@1738
  2281
                    tabable: true
sv@1738
  2282
                    model: relativeBottom
ca@1447
  2283
                  )
sv@1738
  2284
                 (InputFieldSpec
sv@1738
  2285
                    name: 'fieldBottomFraction'
sv@1738
  2286
                    layout: (LayoutFrame 103 0 42 0 153 0 64 0)
sv@1738
  2287
                    activeHelpKey: bottomRelative
sv@1738
  2288
                    tabable: true
sv@1738
  2289
                    model: bottomFraction
sv@1738
  2290
                    group: inputGroup
sv@1738
  2291
                    type: numberOrNil
sv@1738
  2292
                    acceptOnLostFocus: true
sv@1738
  2293
                    acceptChannel: acceptChannel
sv@1738
  2294
                    modifiedChannel: modifiedChannel
sv@1738
  2295
                    acceptOnPointerLeave: false
ca@1447
  2296
                  )
sv@1738
  2297
                 (ActionButtonSpec
ca@2207
  2298
                    label: 'imageAbsY'
ca@2207
  2299
                    name: 'actionAbsoluteBottom'
ca@2207
  2300
                    layout: (LayoutFrame 178 0 42 0 200 0 64 0)
ca@2207
  2301
                    activeHelpKey: makeBottomAbsolute
sv@1738
  2302
                    hasCharacterOrientedLabel: false
sv@1738
  2303
                    tabable: true
ca@2207
  2304
                    model: absoluteBottom
ca@1447
  2305
                  )
sv@1738
  2306
                 (InputFieldSpec
sv@1738
  2307
                    name: 'fieldBottomOffset'
sv@1738
  2308
                    layout: (LayoutFrame 203 0 42 0 253 0 64 0)
sv@1738
  2309
                    activeHelpKey: bottomAbsolute
sv@1738
  2310
                    tabable: true
sv@1738
  2311
                    model: bottomOffset
sv@1738
  2312
                    group: inputGroup
sv@1738
  2313
                    type: numberOrNil
sv@1738
  2314
                    acceptOnLostFocus: true
sv@1738
  2315
                    acceptChannel: acceptChannel
sv@1738
  2316
                    modifiedChannel: modifiedChannel
sv@1738
  2317
                    acceptOnPointerLeave: false
ca@1447
  2318
                  )
sv@1738
  2319
                 (ActionButtonSpec
ca@2207
  2320
                    label: 'imageAbsYFromBottom'
ca@2207
  2321
                    name: 'actionBottomRelativeBottom'
ca@2207
  2322
                    layout: (LayoutFrame 257 0 42 0 279 0 64 0)
ca@2207
  2323
                    activeHelpKey: makeBottomRelativeFromBottom
sv@1738
  2324
                    hasCharacterOrientedLabel: false
sv@1738
  2325
                    tabable: true
ca@2207
  2326
                    model: bottomRelativeBottom
ca@1447
  2327
                  )
cg@2379
  2328
                 (CheckBoxSpec
cg@2379
  2329
                    label: 'Use Preferred'
cg@2379
  2330
                    name: 'CheckBox1'
cg@2379
  2331
                    layout: (LayoutFrame 287 0 14 0 393 0 36 0)
cg@2379
  2332
                    model: usePreferredWidth
cg@2379
  2333
                    translateLabel: true
cg@2379
  2334
                  )
cg@2379
  2335
                 (CheckBoxSpec
cg@2379
  2336
                    label: 'Use Preferred'
cg@2379
  2337
                    name: 'CheckBox2'
cg@2379
  2338
                    layout: (LayoutFrame 287 0 42 0 393 0 64 0)
cg@2379
  2339
                    model: usePreferredHeight
cg@2379
  2340
                    translateLabel: true
cg@2379
  2341
                  )
cg@2379
  2342
                 (CheckBoxSpec
cg@2379
  2343
                    label: 'Dynamic'
cg@2379
  2344
                    name: 'CheckBox3'
cg@2379
  2345
                    layout: (LayoutFrame 394 0 14 0 471 0 36 0)
cg@2379
  2346
                    model: useDynamicPreferredWidth
cg@2379
  2347
                    translateLabel: true
cg@2379
  2348
                  )
cg@2379
  2349
                 (CheckBoxSpec
cg@2379
  2350
                    label: 'Dynamic'
cg@2379
  2351
                    name: 'CheckBox4'
cg@2379
  2352
                    layout: (LayoutFrame 394 0 42 0 471 0 64 0)
cg@2379
  2353
                    model: useDynamicPreferredHeight
cg@2379
  2354
                    translateLabel: true
cg@2379
  2355
                  )
ca@1447
  2356
                 )
ca@1447
  2357
               
ca@1447
  2358
              )
ca@1447
  2359
            )
sv@1738
  2360
           (MenuPanelSpec
sv@1738
  2361
              name: 'commonLayoutToolBar1'
sv@1738
  2362
              layout: (LayoutFrame 6 0.0 215 0 -4 1.0 247 0)
sv@1738
  2363
              level: 0
sv@1738
  2364
              tabable: true
sv@1738
  2365
              menu: commonFrameLayoutsMenu1
sv@1738
  2366
              textDefault: true
cg@1680
  2367
            )
sv@1738
  2368
           (MenuPanelSpec
sv@1738
  2369
              name: 'commonLayoutToolBar2'
sv@1738
  2370
              layout: (LayoutFrame 6 0.0 255 0 -4 1.0 287 0)
sv@1738
  2371
              level: 0
sv@1738
  2372
              tabable: true
sv@1738
  2373
              menu: commonFrameLayoutsMenu2
sv@1738
  2374
              textDefault: true
ca@1447
  2375
            )
ca@2207
  2376
           (MenuPanelSpec
ca@2207
  2377
              name: 'commonLayoutToolBar3'
ca@2207
  2378
              layout: (LayoutFrame 6 0.0 295 0 -4 1.0 327 0)
ca@2207
  2379
              level: 0
ca@2207
  2380
              tabable: true
ca@2207
  2381
              menu: commonFrameLayoutsMenu3
ca@2207
  2382
              textDefault: true
werner@1826
  2383
            )
ca@1447
  2384
           )
ca@1447
  2385
         
ca@1447
  2386
        )
ca@1447
  2387
      )
ca@1447
  2388
! !
ca@1447
  2389
ca@1447
  2390
!UILayoutTool::LayoutFrame class methodsFor:'menu specs'!
ca@1447
  2391
cg@1680
  2392
commonFrameLayoutsMenu1
ca@1447
  2393
    "This resource specification was automatically generated
ca@1447
  2394
     by the MenuEditor of ST/X."
ca@1447
  2395
ca@1447
  2396
    "Do not manually edit this!! If it is corrupted,
ca@1447
  2397
     the MenuEditor may not be able to read the specification."
ca@1447
  2398
ca@1447
  2399
    "
cg@1680
  2400
     MenuEditor new openOnClass:UILayoutTool::LayoutFrame andSelector:#commonFrameLayoutsMenu1
cg@1680
  2401
     (Menu new fromLiteralArrayEncoding:(UILayoutTool::LayoutFrame commonFrameLayoutsMenu1)) startUp
ca@1447
  2402
    "
ca@1447
  2403
ca@1447
  2404
    <resource: #menu>
ca@1447
  2405
cg@1680
  2406
    ^ 
cg@1680
  2407
     #(#Menu
cg@1680
  2408
        #(
cg@1680
  2409
         #(#MenuItem
cg@1680
  2410
            #activeHelpKey: #fullLayout
cg@1680
  2411
            #label: 'setFullFrame'
cg@1680
  2412
            #itemValue: #setFullFrame
cg@1680
  2413
            #nameKey: #setFullFrame
cg@1680
  2414
            #translateLabel: true
cg@1680
  2415
            #isButton: true
cg@1680
  2416
            #labelImage: #(#ResourceRetriever #'UILayoutTool::LayoutFrame' #setFullIcon)
cg@1680
  2417
          )
cg@1680
  2418
         #(#MenuItem
cg@1680
  2419
            #label: ''
cg@1680
  2420
          )
cg@1680
  2421
         #(#MenuItem
cg@1680
  2422
            #activeHelpKey: #topHalfLayout
cg@1680
  2423
            #label: 'setTopHalfFrame'
cg@1680
  2424
            #itemValue: #setTopHalfFrame
cg@1680
  2425
            #nameKey: #setTopHalfFrame
cg@1680
  2426
            #translateLabel: true
cg@1680
  2427
            #isButton: true
cg@1680
  2428
            #labelImage: #(#ResourceRetriever #'UILayoutTool::LayoutFrame' #setTopHalfIcon)
cg@1680
  2429
          )
cg@1680
  2430
         #(#MenuItem
cg@1680
  2431
            #activeHelpKey: #bottomHalfLayout
cg@1680
  2432
            #label: 'setBottomHalfFrame'
cg@1680
  2433
            #itemValue: #setBottomHalfFrame
cg@1680
  2434
            #nameKey: #setBottomHalfFrame
cg@1680
  2435
            #translateLabel: true
cg@1680
  2436
            #isButton: true
cg@1680
  2437
            #labelImage: #(#ResourceRetriever nil #setBottomHalfIcon)
cg@1680
  2438
          )
cg@1680
  2439
         #(#MenuItem
cg@1680
  2440
            #activeHelpKey: #leftHalfLayout
cg@1680
  2441
            #label: 'setLeftHalfFrame'
cg@1680
  2442
            #itemValue: #setLeftHalfFrame
cg@1680
  2443
            #nameKey: #setLeftHalfFrame
cg@1680
  2444
            #translateLabel: true
cg@1680
  2445
            #isButton: true
cg@1680
  2446
            #labelImage: #(#ResourceRetriever nil #setLeftHalfIcon)
cg@1680
  2447
          )
cg@1680
  2448
         #(#MenuItem
cg@1680
  2449
            #activeHelpKey: #rightHalfLayout
cg@1680
  2450
            #label: 'setRightHalfFrame'
cg@1680
  2451
            #itemValue: #setRightHalfFrame
cg@1680
  2452
            #nameKey: #setRightHalfFrame
cg@1680
  2453
            #translateLabel: true
cg@1680
  2454
            #isButton: true
cg@1680
  2455
            #labelImage: #(#ResourceRetriever nil #setRightHalfIcon)
cg@1680
  2456
          )
cg@1680
  2457
         #(#MenuItem
cg@1680
  2458
            #label: ''
cg@1680
  2459
          )
cg@1680
  2460
         #(#MenuItem
cg@1680
  2461
            #activeHelpKey: #topLeftQuarterLayout
cg@1680
  2462
            #label: 'setTopLeftQuarterFrame'
cg@1680
  2463
            #itemValue: #setTopLeftQuarterFrame
cg@1680
  2464
            #nameKey: #setTopLeftQuarterFrame
cg@1680
  2465
            #translateLabel: true
cg@1680
  2466
            #isButton: true
cg@1680
  2467
            #labelImage: #(#ResourceRetriever nil #setTopLeftQuarterIcon)
cg@1680
  2468
          )
cg@1680
  2469
         #(#MenuItem
cg@1680
  2470
            #activeHelpKey: #topRightQuarterLayout
cg@1680
  2471
            #label: 'setTopRightQuarterFrame'
cg@1680
  2472
            #itemValue: #setTopRightQuarterFrame
cg@1680
  2473
            #nameKey: #setTopRightQuarterFrame
cg@1680
  2474
            #translateLabel: true
cg@1680
  2475
            #isButton: true
cg@1680
  2476
            #labelImage: #(#ResourceRetriever nil #setToRightQuarterIcon)
cg@1680
  2477
          )
cg@1680
  2478
         #(#MenuItem
cg@1680
  2479
            #activeHelpKey: #bottomRightQuarterLayout
cg@1680
  2480
            #label: 'setBottomRightQuarterFrame'
cg@1680
  2481
            #itemValue: #setBottomRightQuarterFrame
cg@1680
  2482
            #nameKey: #setBottomRightQuarterFrame
cg@1680
  2483
            #translateLabel: true
cg@1680
  2484
            #isButton: true
cg@1680
  2485
            #labelImage: #(#ResourceRetriever nil #setBottomRightQuarterIcon)
cg@1680
  2486
          )
cg@1680
  2487
         #(#MenuItem
cg@1680
  2488
            #activeHelpKey: #bottomLeftQuarterLayout
cg@1680
  2489
            #label: 'setBottomLeftQuarterFrame'
cg@1680
  2490
            #itemValue: #setBottomLeftQuarterFrame
cg@1680
  2491
            #nameKey: #setBottomLeftQuarterFrame
cg@1680
  2492
            #translateLabel: true
cg@1680
  2493
            #isButton: true
cg@1680
  2494
            #labelImage: #(#ResourceRetriever nil #setBottomLeftQuarterIcon)
cg@1680
  2495
          )
cg@1680
  2496
         )
cg@1680
  2497
        nil
cg@1680
  2498
        nil
cg@1680
  2499
      )
cg@1680
  2500
!
cg@1680
  2501
cg@1680
  2502
commonFrameLayoutsMenu2
cg@1680
  2503
    "This resource specification was automatically generated
cg@1680
  2504
     by the MenuEditor of ST/X."
cg@1680
  2505
cg@1680
  2506
    "Do not manually edit this!! If it is corrupted,
cg@1680
  2507
     the MenuEditor may not be able to read the specification."
cg@1680
  2508
cg@1680
  2509
    "
cg@1680
  2510
     MenuEditor new openOnClass:UILayoutTool::LayoutFrame andSelector:#commonFrameLayoutsMenu2
cg@1680
  2511
     (Menu new fromLiteralArrayEncoding:(UILayoutTool::LayoutFrame commonFrameLayoutsMenu2)) startUp
cg@1680
  2512
    "
cg@1680
  2513
cg@1680
  2514
    <resource: #menu>
cg@1680
  2515
cg@1680
  2516
    ^ 
cg@1680
  2517
     #(#Menu
cg@1680
  2518
        #(
cg@1680
  2519
         #(#MenuItem
cg@1680
  2520
            #activeHelpKey: #topFixPartLayout
cg@1680
  2521
            #label: 'setTopFixPartFrame'
cg@1680
  2522
            #itemValue: #setTopFixPartFrame
cg@1680
  2523
            #nameKey: #setTopFixPartFrame
cg@1680
  2524
            #translateLabel: true
cg@1680
  2525
            #isButton: true
cg@1680
  2526
            #labelImage: #(#ResourceRetriever nil #setTopFixPartIcon)
cg@1680
  2527
          )
cg@1680
  2528
         #(#MenuItem
cg@1680
  2529
            #activeHelpKey: #horizontalFixPartLayout
cg@1680
  2530
            #label: 'setHorizontalFixPartFrame'
cg@1680
  2531
            #itemValue: #setHorizontalFixPartFrame
cg@1680
  2532
            #nameKey: #setHorizontalFixPartFrame
cg@1680
  2533
            #translateLabel: true
cg@1680
  2534
            #isButton: true
cg@1680
  2535
            #labelImage: #(#ResourceRetriever nil #setHorizontalFixPartIcon)
cg@1680
  2536
          )
cg@1680
  2537
         #(#MenuItem
cg@1680
  2538
            #activeHelpKey: #bottomFixPartLayout
cg@1680
  2539
            #label: 'setBottomFixPartFrame'
cg@1680
  2540
            #itemValue: #setBottomFixPartFrame
cg@1680
  2541
            #nameKey: #setBottomFixPartFrame
cg@1680
  2542
            #translateLabel: true
cg@1680
  2543
            #isButton: true
cg@1680
  2544
            #labelImage: #(#ResourceRetriever nil #setBottomFixPartIcon)
cg@1680
  2545
          )
cg@1680
  2546
         #(#MenuItem
cg@1680
  2547
            #label: ''
cg@1680
  2548
          )
cg@1680
  2549
         #(#MenuItem
cg@1680
  2550
            #activeHelpKey: #leftFixPartLayout
cg@1680
  2551
            #label: 'setLeftFixPartFrame'
cg@1680
  2552
            #itemValue: #setLeftFixPartFrame
cg@1680
  2553
            #nameKey: #setLeftFixPartFrame
cg@1680
  2554
            #translateLabel: true
cg@1680
  2555
            #isButton: true
cg@1680
  2556
            #labelImage: #(#ResourceRetriever nil #setLeftFixPartIcon)
cg@1680
  2557
          )
cg@1680
  2558
         #(#MenuItem
cg@1680
  2559
            #activeHelpKey: #verticalFixPartLayout
cg@1680
  2560
            #label: 'setVerticalFixPartFrame'
cg@1680
  2561
            #itemValue: #setVerticalFixPartFrame
cg@1680
  2562
            #nameKey: #setVerticalFixPartFrame
cg@1680
  2563
            #translateLabel: true
cg@1680
  2564
            #isButton: true
cg@1680
  2565
            #labelImage: #(#ResourceRetriever nil #setVerticalFixPartIcon)
cg@1680
  2566
          )
cg@1680
  2567
         #(#MenuItem
cg@1680
  2568
            #activeHelpKey: #rightFixPartLayout
cg@1680
  2569
            #label: 'setRightFixPartFrame'
cg@1680
  2570
            #itemValue: #setRightFixPartFrame
cg@1680
  2571
            #nameKey: #setRightFixPartFrame
cg@1680
  2572
            #translateLabel: true
cg@1680
  2573
            #isButton: true
cg@1680
  2574
            #labelImage: #(#ResourceRetriever nil #setRightFixPartIcon)
cg@1680
  2575
          )
cg@1706
  2576
         #(#MenuItem
cg@1706
  2577
            #label: ''
cg@1706
  2578
          )
cg@1706
  2579
         #(#MenuItem
cg@1709
  2580
            #activeHelpKey: #bigTopFixPartLayout
cg@1706
  2581
            #label: 'setBigTopFixPartFrame'
cg@1706
  2582
            #itemValue: #setBigTopFixPartFrame
cg@1706
  2583
            #nameKey: #setBigTopFixPartFrame
cg@1706
  2584
            #translateLabel: true
cg@1706
  2585
            #isButton: true
cg@1706
  2586
            #labelImage: #(#ResourceRetriever nil #setBigTopFixPartIcon)
cg@1706
  2587
          )
cg@1706
  2588
         #(#MenuItem
cg@1709
  2589
            #activeHelpKey: #bigHorizontalFixPartLayout
cg@1706
  2590
            #label: 'setBigHorizontalFixPartFrame'
cg@1706
  2591
            #itemValue: #setBigHorizontalFixPartFrame
cg@1706
  2592
            #nameKey: #setBigHorizontalFixPartFrame
cg@1706
  2593
            #translateLabel: true
cg@1706
  2594
            #isButton: true
cg@1706
  2595
            #labelImage: #(#ResourceRetriever nil #setBigHorizontalFixPartIcon)
cg@1706
  2596
          )
cg@1706
  2597
         #(#MenuItem
cg@1709
  2598
            #activeHelpKey: #bigBottomFixPartLayout
cg@1706
  2599
            #label: 'setBigBottomFixPartFrame'
cg@1706
  2600
            #itemValue: #setBigBottomFixPartFrame
cg@1706
  2601
            #nameKey: #setBigBottomFixPartFrame
cg@1706
  2602
            #translateLabel: true
cg@1706
  2603
            #isButton: true
cg@1706
  2604
            #labelImage: #(#ResourceRetriever nil #setBigBottomFixPartIcon)
cg@1706
  2605
          )
cg@1680
  2606
         )
cg@1680
  2607
        nil
cg@1680
  2608
        nil
ca@1447
  2609
      )
werner@1826
  2610
!
werner@1826
  2611
werner@1826
  2612
commonFrameLayoutsMenu3
werner@1826
  2613
    "This resource specification was automatically generated
werner@1826
  2614
     by the MenuEditor of ST/X."
werner@1826
  2615
werner@1826
  2616
    "Do not manually edit this!! If it is corrupted,
werner@1826
  2617
     the MenuEditor may not be able to read the specification."
werner@1826
  2618
werner@1826
  2619
    "
ca@1858
  2620
     MenuEditor new openOnClass:UILayoutTool::LayoutFrame andSelector:#commonFrameLayoutsMenu3
ca@1858
  2621
     (Menu new fromLiteralArrayEncoding:(UILayoutTool::LayoutFrame commonFrameLayoutsMenu3)) startUp
werner@1826
  2622
    "
werner@1826
  2623
werner@1826
  2624
    <resource: #menu>
werner@1826
  2625
werner@1826
  2626
    ^ 
ca@1858
  2627
     #(Menu
ca@1858
  2628
        (
ca@1858
  2629
         (MenuItem
ca@1858
  2630
            activeHelpKey: screenFrameLayout
ca@1858
  2631
            label: 'setScreenFrame'
ca@1858
  2632
            itemValue: setScreenFrame
ca@1858
  2633
            nameKey: setScreenFrame
ca@1858
  2634
            translateLabel: true
ca@1858
  2635
            isButton: true
ca@1858
  2636
            isVisible: false
ca@1858
  2637
            labelImage: (ResourceRetriever #'UILayoutTool::LayoutFrame' setScreenIcon)
werner@1826
  2638
          )
werner@1826
  2639
         )
werner@1826
  2640
        nil
werner@1826
  2641
        nil
werner@1826
  2642
      )
ca@1447
  2643
! !
ca@1447
  2644
ca@1447
  2645
!UILayoutTool::LayoutFrame methodsFor:'accessing'!
ca@1447
  2646
ca@1447
  2647
fetch:aView spec:aSpec
ca@1447
  2648
    |layout|
ca@1447
  2649
werner@1826
  2650
    aSpec class == WindowSpec ifTrue:[
werner@1826
  2651
         (layout := aSpec layout) isNil ifTrue:[
werner@1826
  2652
             layout := aSpec bounds asLayout.
werner@1826
  2653
         ] 
werner@1826
  2654
    ] ifFalse: [
werner@1826
  2655
         layout  := UIPainterView asLayoutFrameFromView:aView.
werner@1826
  2656
    ].
ca@1447
  2657
    (self aspectFor:#leftOffset)     value:(layout leftOffset).
ca@1447
  2658
    (self aspectFor:#leftFraction)   value:(layout leftFraction).
ca@1447
  2659
    (self aspectFor:#topOffset)      value:(layout topOffset).
ca@1447
  2660
    (self aspectFor:#topFraction)    value:(layout topFraction).
sv@2478
  2661
    (self aspectFor:#rightOffset)    value:(layout rightOffset value).  "take care of blocks"
sv@2478
  2662
    (self aspectFor:#bottomOffset)   value:(layout bottomOffset value). "take care of blocks"
ca@1447
  2663
    (self aspectFor:#rightFraction)  value:(layout rightFraction).
ca@1447
  2664
    (self aspectFor:#bottomFraction) value:(layout bottomFraction).
ca@1447
  2665
cg@2379
  2666
    (self aspectFor:#usePreferredWidth) value:(aSpec usePreferredWidth).
cg@2379
  2667
    (self aspectFor:#usePreferredHeight) value:(aSpec usePreferredHeight).
cg@2379
  2668
    (self aspectFor:#useDynamicPreferredWidth) value:(aSpec useDynamicPreferredWidth).
cg@2379
  2669
    (self aspectFor:#useDynamicPreferredHeight) value:(aSpec useDynamicPreferredHeight).
ca@1447
  2670
!
ca@1447
  2671
ca@1447
  2672
layout
cg@2379
  2673
    "returns the current layout as layoutFrame
ca@1447
  2674
    "
ca@1447
  2675
    |layout|
ca@1447
  2676
ca@1447
  2677
    layout  := Smalltalk::LayoutFrame new.
ca@1447
  2678
cg@1581
  2679
    layout 
cg@1581
  2680
        leftFraction:(((self aspectFor:#leftFraction)   value) ? 0)
cg@1581
  2681
              offset:(((self aspectFor:#leftOffset)     value) ? 0)
cg@1581
  2682
        rightFraction:(((self aspectFor:#rightFraction)  value) ? 0)
cg@1581
  2683
              offset:(((self aspectFor:#rightOffset)    value) ? 0)
cg@1581
  2684
        topFraction:(((self aspectFor:#topFraction)    value) ? 0)
cg@1581
  2685
              offset:(((self aspectFor:#topOffset)      value) ? 0)
cg@1581
  2686
        bottomFraction:(((self aspectFor:#bottomFraction) value) ? 0)
cg@1581
  2687
              offset:(((self aspectFor:#bottomOffset)   value) ? 0).
ca@1447
  2688
ca@1447
  2689
  ^ layout
ca@1447
  2690
! !
ca@1447
  2691
ca@1447
  2692
!UILayoutTool::LayoutFrame methodsFor:'common frames'!
ca@1447
  2693
cg@1706
  2694
setBigBottomFixPartFrame
cg@1706
  2695
    self
cg@1706
  2696
        setFrameLeft:0   offset:0 
cg@1706
  2697
        right:1          offset:0 
werner@1826
  2698
        top:0            offset:(self class defaultFixPartHeight) 
cg@1706
  2699
        bottom:1         offset:0
cg@1706
  2700
!
cg@1706
  2701
cg@1706
  2702
setBigHorizontalFixPartFrame
cg@1706
  2703
    self
cg@1706
  2704
        setFrameLeft:0   offset:0 
cg@1706
  2705
        right:1          offset:0 
werner@1826
  2706
        top:0            offset:(self class defaultFixPartHeight) 
werner@1826
  2707
        bottom:1         offset:(self class defaultFixPartHeight negated)
cg@1706
  2708
!
cg@1706
  2709
cg@1706
  2710
setBigTopFixPartFrame
cg@1706
  2711
    self
cg@1706
  2712
        setFrameLeft:0   offset:0 
cg@1706
  2713
        right:1          offset:0 
cg@1706
  2714
        top:0            offset:0 
werner@1826
  2715
        bottom:1         offset:(self class defaultFixPartHeight negated)
cg@1706
  2716
!
cg@1706
  2717
ca@1447
  2718
setBottomFixPartFrame
ca@1447
  2719
    self
ca@1447
  2720
        setFrameLeft:0   offset:0 
ca@1447
  2721
        right:1          offset:0 
werner@1826
  2722
        top:1            offset:(self class defaultFixPartHeight negated) 
ca@1447
  2723
        bottom:1         offset:0
ca@1447
  2724
!
ca@1447
  2725
ca@1447
  2726
setBottomHalfFrame
ca@1447
  2727
    self
ca@1447
  2728
        setFrameLeft:0  offset:0 
ca@1447
  2729
        right:1         offset:0 
ca@1447
  2730
        top:0.5         offset:0 
ca@1447
  2731
        bottom:1        offset:0
ca@1447
  2732
!
ca@1447
  2733
ca@1447
  2734
setBottomLeftQuarterFrame
ca@1447
  2735
    self
ca@1447
  2736
        setFrameLeft:0   offset:0 
ca@1447
  2737
        right:0.5        offset:0 
ca@1447
  2738
        top:0.5          offset:0 
ca@1447
  2739
        bottom:1         offset:0
ca@1447
  2740
!
ca@1447
  2741
ca@1447
  2742
setBottomRightQuarterFrame
ca@1447
  2743
    self
ca@1447
  2744
        setFrameLeft:0.5 offset:0 
ca@1447
  2745
        right:1          offset:0 
ca@1447
  2746
        top:0.5          offset:0 
ca@1447
  2747
        bottom:1         offset:0
ca@1447
  2748
!
ca@1447
  2749
ca@1447
  2750
setFrameLeft:lF offset:lO right:rF offset:rO top:tF offset:tO bottom:bF offset:bO
ca@1447
  2751
    (self aspectFor:#leftOffset)     value:lO.
sv@2478
  2752
    (self aspectFor:#rightOffset)    value:rO value.
ca@1447
  2753
    (self aspectFor:#topOffset)      value:tO.
sv@2478
  2754
    (self aspectFor:#bottomOffset)   value:bO value.
ca@1447
  2755
ca@1447
  2756
    (self aspectFor:#leftFraction)   value:lF.
ca@1447
  2757
    (self aspectFor:#rightFraction)  value:rF.
ca@1447
  2758
    (self aspectFor:#topFraction)    value:tF.
ca@1447
  2759
    (self aspectFor:#bottomFraction) value:bF.
ca@1447
  2760
!
ca@1447
  2761
cg@1680
  2762
setFullFrame
cg@1680
  2763
    self
cg@1680
  2764
        setFrameLeft:0   offset:0 
cg@1680
  2765
        right:1          offset:0 
cg@1680
  2766
        top:0            offset:0 
cg@1680
  2767
        bottom:1         offset:0
cg@1680
  2768
!
cg@1680
  2769
ca@1447
  2770
setHorizontalFixPartFrame
ca@1447
  2771
    self
ca@1447
  2772
        setFrameLeft:0   offset:0 
ca@1447
  2773
        right:1          offset:0 
werner@1826
  2774
        top:0.5          offset:(self class defaultFixPartHeight negated // 2) 
werner@1826
  2775
        bottom:0.5       offset:(self class defaultFixPartHeight // 2)
ca@1447
  2776
!
ca@1447
  2777
ca@1447
  2778
setLeftFixPartFrame
ca@1447
  2779
    self
ca@1447
  2780
        setFrameLeft:0   offset:0 
werner@1826
  2781
        right:0          offset:(self class defaultFixPartHeight) 
ca@1447
  2782
        top:0            offset:0 
ca@1447
  2783
        bottom:1         offset:0
ca@1447
  2784
!
ca@1447
  2785
ca@1447
  2786
setLeftHalfFrame
ca@1447
  2787
    self