UIPropertyView.st
changeset 122 c6f7d7881634
parent 111 c6699a14d3d9
child 126 cf76b1df0473
equal deleted inserted replaced
121:96d6feeeb049 122:c6f7d7881634
     3 	classVariableNames:''
     3 	classVariableNames:''
     4 	poolDictionaries:''
     4 	poolDictionaries:''
     5 	category:'Interface-UIPainter'
     5 	category:'Interface-UIPainter'
     6 !
     6 !
     7 
     7 
     8 UIPropertyView subclass:#Dimension
     8 UIPropertyView subclass:#Specification
     9 	instanceVariableNames:'noteBook forView selection layoutTypes'
     9 	instanceVariableNames:'specEdited specChannel'
    10 	classVariableNames:''
    10 	classVariableNames:''
    11 	poolDictionaries:''
    11 	poolDictionaries:''
    12 	privateIn:UIPropertyView
    12 	privateIn:UIPropertyView
    13 !
    13 !
    14 
    14 
    15 UIPropertyView subclass:#Specification
    15 UIPropertyView subclass:#Dimension
    16 	instanceVariableNames:'specEdited specChannel'
    16 	instanceVariableNames:'noteBook forView selection layoutTypes'
    17 	classVariableNames:''
    17 	classVariableNames:''
    18 	poolDictionaries:''
    18 	poolDictionaries:''
    19 	privateIn:UIPropertyView
    19 	privateIn:UIPropertyView
    20 !
    20 !
    21 
    21 
   190 !
   190 !
   191 
   191 
   192 origin:anOrigin corner:aCorner in:aTopview
   192 origin:anOrigin corner:aCorner in:aTopview
   193     window := SimpleView origin:anOrigin corner:aCorner in:aTopview
   193     window := SimpleView origin:anOrigin corner:aCorner in:aTopview
   194 
   194 
   195 ! !
       
   196 
       
   197 !UIPropertyView::Dimension class methodsFor:'interface specs'!
       
   198 
       
   199 specificationAlignmentOrigin
       
   200     "this window spec was automatically generated by the ST/X UIPainter"
       
   201 
       
   202     "do not manually edit this - the painter/builder may not be able to
       
   203      handle the specification if its corrupted."
       
   204 
       
   205     "
       
   206      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationAlignmentOrigin
       
   207      UIPropertyView::Dimension new openInterface:#specificationAlignmentOrigin
       
   208     "
       
   209 
       
   210     <resource: #canvas>
       
   211 
       
   212     ^
       
   213 
       
   214        #(#FullSpec
       
   215           #'window:' 
       
   216            #(#WindowSpec
       
   217               #'name:' 'uIPainterView'
       
   218               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
   219               #'label:' 'unnamed'
       
   220               #'bounds:' #(#Rectangle 0 0 250 365)
       
   221           )
       
   222           #'component:' 
       
   223            #(#SpecCollection
       
   224               #'collection:' 
       
   225                #(
       
   226                  #(#LabelSpec
       
   227                     #'name:' 'label2'
       
   228                     #'layout:' #(#AlignmentOrigin 49 0 68 0 1 0)
       
   229                     #'label:' 'top'
       
   230                     #'level:' 0
       
   231                     #'adjust:' #right
       
   232                     #'hasCharacterOrientedLabel:' true
       
   233                 )
       
   234                  #(#LabelSpec
       
   235                     #'name:' 'label3'
       
   236                     #'layout:' #(#Point 58 13)
       
   237                     #'label:' 'relative'
       
   238                     #'level:' 0
       
   239                     #'adjust:' #center
       
   240                     #'hasCharacterOrientedLabel:' true
       
   241                 )
       
   242                  #(#LabelSpec
       
   243                     #'name:' 'label4'
       
   244                     #'layout:' #(#Point 154 14)
       
   245                     #'label:' 'offset'
       
   246                     #'level:' 0
       
   247                     #'adjust:' #center
       
   248                     #'hasCharacterOrientedLabel:' true
       
   249                 )
       
   250                  #(#LabelSpec
       
   251                     #'name:' 'label5'
       
   252                     #'layout:' #(#AlignmentOrigin 63 0 140 0 1 0)
       
   253                     #'label:' 'align H'
       
   254                     #'level:' 0
       
   255                     #'adjust:' #right
       
   256                     #'hasCharacterOrientedLabel:' true
       
   257                 )
       
   258                  #(#LabelSpec
       
   259                     #'name:' 'label6'
       
   260                     #'layout:' #(#AlignmentOrigin 63 0 166 0 1 0)
       
   261                     #'label:' 'align V'
       
   262                     #'level:' 0
       
   263                     #'adjust:' #right
       
   264                     #'hasCharacterOrientedLabel:' true
       
   265                 )
       
   266                  #(#InputFieldSpec
       
   267                     #'name:' 'editField1'
       
   268                     #'layout:' #(#LayoutFrame 58 0 41 0 115 0 59 0)
       
   269                     #'model:' #leftFraction
       
   270                     #'tabable:' true
       
   271                     #'type:' #numberOrNil
       
   272                     #'immediateAccept:' true
       
   273                     #'acceptOnLeave:' true
       
   274                     #'acceptOnReturn:' true
       
   275                     #'acceptOnTab:' true
       
   276                     #'acceptOnLostFocus:' true
       
   277                     #'hasBorder:' false
       
   278                 )
       
   279                  #(#InputFieldSpec
       
   280                     #'name:' 'editField2'
       
   281                     #'layout:' #(#LayoutFrame 58 0 68 0 115 0 86 0)
       
   282                     #'model:' #topFraction
       
   283                     #'tabable:' true
       
   284                     #'type:' #numberOrNil
       
   285                     #'immediateAccept:' true
       
   286                     #'acceptOnLeave:' true
       
   287                     #'acceptOnReturn:' true
       
   288                     #'acceptOnTab:' true
       
   289                     #'acceptOnLostFocus:' true
       
   290                     #'hasBorder:' false
       
   291                 )
       
   292                  #(#InputFieldSpec
       
   293                     #'name:' 'editField5'
       
   294                     #'layout:' #(#LayoutFrame 68 0 140 0 125 0 158 0)
       
   295                     #'model:' #leftAlignmentFraction
       
   296                     #'tabable:' true
       
   297                     #'type:' #numberOrNil
       
   298                     #'immediateAccept:' true
       
   299                     #'acceptOnLeave:' true
       
   300                     #'acceptOnReturn:' true
       
   301                     #'acceptOnTab:' true
       
   302                     #'acceptOnLostFocus:' true
       
   303                     #'hasBorder:' false
       
   304                 )
       
   305                  #(#InputFieldSpec
       
   306                     #'name:' 'editField6'
       
   307                     #'layout:' #(#LayoutFrame 68 0 166 0 125 0 184 0)
       
   308                     #'model:' #topAlignmentFraction
       
   309                     #'tabable:' true
       
   310                     #'type:' #numberOrNil
       
   311                     #'immediateAccept:' true
       
   312                     #'acceptOnLeave:' true
       
   313                     #'acceptOnReturn:' true
       
   314                     #'acceptOnTab:' true
       
   315                     #'acceptOnLostFocus:' true
       
   316                     #'hasBorder:' false
       
   317                 )
       
   318                  #(#InputFieldSpec
       
   319                     #'name:' 'editField3'
       
   320                     #'layout:' #(#LayoutFrame 154 0 41 0 212 0 59 0)
       
   321                     #'model:' #leftOffset
       
   322                     #'tabable:' true
       
   323                     #'type:' #numberOrNil
       
   324                     #'immediateAccept:' true
       
   325                     #'acceptOnLeave:' true
       
   326                     #'acceptOnReturn:' true
       
   327                     #'acceptOnTab:' true
       
   328                     #'acceptOnLostFocus:' true
       
   329                     #'hasBorder:' false
       
   330                 )
       
   331                  #(#InputFieldSpec
       
   332                     #'name:' 'editField4'
       
   333                     #'layout:' #(#LayoutFrame 154 0 68 0 212 0 86 0)
       
   334                     #'model:' #topOffset
       
   335                     #'tabable:' true
       
   336                     #'type:' #numberOrNil
       
   337                     #'immediateAccept:' true
       
   338                     #'acceptOnLeave:' true
       
   339                     #'acceptOnReturn:' true
       
   340                     #'acceptOnTab:' true
       
   341                     #'acceptOnLostFocus:' true
       
   342                     #'hasBorder:' false
       
   343                 )
       
   344                  #(#ActionButtonSpec
       
   345                     #'name:' 'button1'
       
   346                     #'layout:' #(#LayoutFrame 119 0 41 0 138 0 59 0)
       
   347                     #'label:' ''
       
   348                     #'model:' #makeRelativeLeft
       
   349                     #'isTriggerOnDown:' false
       
   350                     #'autoRepeat:' false
       
   351                 )
       
   352                  #(#ActionButtonSpec
       
   353                     #'name:' 'button2'
       
   354                     #'layout:' #(#LayoutFrame 119 0 68 0 138 0 86 0)
       
   355                     #'label:' ''
       
   356                     #'model:' #makeRelativeTop
       
   357                     #'isTriggerOnDown:' false
       
   358                     #'autoRepeat:' false
       
   359                 )
       
   360                  #(#ActionButtonSpec
       
   361                     #'name:' 'button3'
       
   362                     #'layout:' #(#LayoutFrame 217 0 41 0 236 0 59 0)
       
   363                     #'label:' ''
       
   364                     #'model:' #makeOffsetLeft
       
   365                     #'isTriggerOnDown:' false
       
   366                     #'autoRepeat:' false
       
   367                 )
       
   368                  #(#ActionButtonSpec
       
   369                     #'name:' 'button4'
       
   370                     #'layout:' #(#LayoutFrame 217 0 68 0 236 0 86 0)
       
   371                     #'label:' ''
       
   372                     #'model:' #makeOffsetTop
       
   373                     #'isTriggerOnDown:' false
       
   374                     #'autoRepeat:' false
       
   375                 )
       
   376                  #(#ActionButtonSpec
       
   377                     #'name:' 'button8'
       
   378                     #'layout:' #(#LayoutFrame 119 0 102 0 138 0 120 0)
       
   379                     #'label:' ''
       
   380                     #'model:' #makeRelativeLeftTop
       
   381                     #'isTriggerOnDown:' false
       
   382                     #'autoRepeat:' false
       
   383                 )
       
   384                  #(#ActionButtonSpec
       
   385                     #'name:' 'button9'
       
   386                     #'layout:' #(#LayoutFrame 217 0 102 0 236 0 120 0)
       
   387                     #'label:' ''
       
   388                     #'model:' #makeOffsetLeftTop
       
   389                     #'isTriggerOnDown:' false
       
   390                     #'autoRepeat:' false
       
   391                 )
       
   392                  #(#LabelSpec
       
   393                     #'name:' 'label7'
       
   394                     #'layout:' #(#AlignmentOrigin 49 0 102 0 1 0)
       
   395                     #'label:' 'all'
       
   396                     #'level:' 0
       
   397                     #'adjust:' #right
       
   398                     #'hasCharacterOrientedLabel:' true
       
   399                 )
       
   400                  #(#LabelSpec
       
   401                     #'name:' 'label1'
       
   402                     #'layout:' #(#AlignmentOrigin 49 0 41 0 1 0)
       
   403                     #'label:' 'left'
       
   404                     #'level:' 0
       
   405                     #'adjust:' #right
       
   406                     #'hasCharacterOrientedLabel:' true
       
   407                 )
       
   408                  #(#DividerSpec
       
   409                     #'name:' 'separator1'
       
   410                     #'layout:' #(#Rectangle 154 142 203 153)
       
   411                     #'orientation:' #horizontal
       
   412                 )
       
   413                  #(#DividerSpec
       
   414                     #'name:' 'separator2'
       
   415                     #'layout:' #(#Rectangle 154 173 203 184)
       
   416                     #'orientation:' #horizontal
       
   417                 )
       
   418                  #(#DividerSpec
       
   419                     #'name:' 'separator3'
       
   420                     #'layout:' #(#Rectangle 145 152 155 173)
       
   421                     #'orientation:' #vertical
       
   422                 )
       
   423                  #(#DividerSpec
       
   424                     #'name:' 'separator4'
       
   425                     #'layout:' #(#Rectangle 203 152 213 173)
       
   426                     #'orientation:' #vertical
       
   427                 )
       
   428                  #(#ActionButtonSpec
       
   429                     #'name:' 'alignBR'
       
   430                     #'layout:' #(#Rectangle 201 172 213 184)
       
   431                     #'label:' ''
       
   432                     #'model:' #makeAlignBottomRight
       
   433                     #'isTriggerOnDown:' false
       
   434                     #'autoRepeat:' false
       
   435                 )
       
   436                  #(#ActionButtonSpec
       
   437                     #'name:' 'alignTL'
       
   438                     #'layout:' #(#Rectangle 145 141 157 153)
       
   439                     #'label:' ''
       
   440                     #'model:' #makeAlignTopLeft
       
   441                     #'isTriggerOnDown:' false
       
   442                     #'autoRepeat:' false
       
   443                 )
       
   444                  #(#ActionButtonSpec
       
   445                     #'name:' 'alignTR'
       
   446                     #'layout:' #(#Rectangle 201 141 213 153)
       
   447                     #'label:' ''
       
   448                     #'model:' #makeAlignTopRight
       
   449                     #'isTriggerOnDown:' false
       
   450                     #'autoRepeat:' false
       
   451                 )
       
   452                  #(#ActionButtonSpec
       
   453                     #'name:' 'alignBL'
       
   454                     #'layout:' #(#Rectangle 145 171 157 183)
       
   455                     #'label:' ''
       
   456                     #'model:' #makeAlignBottomLeft
       
   457                     #'isTriggerOnDown:' false
       
   458                     #'autoRepeat:' false
       
   459                 )
       
   460                  #(#ActionButtonSpec
       
   461                     #'name:' 'alignTC'
       
   462                     #'layout:' #(#Rectangle 173 141 185 153)
       
   463                     #'label:' ''
       
   464                     #'model:' #makeAlignTopCenter
       
   465                     #'isTriggerOnDown:' false
       
   466                     #'autoRepeat:' false
       
   467                 )
       
   468                  #(#ActionButtonSpec
       
   469                     #'name:' 'alignBC'
       
   470                     #'layout:' #(#Rectangle 173 172 185 184)
       
   471                     #'label:' ''
       
   472                     #'model:' #makeAlignBottomCenter
       
   473                     #'isTriggerOnDown:' false
       
   474                     #'autoRepeat:' false
       
   475                 )
       
   476                  #(#ActionButtonSpec
       
   477                     #'name:' 'alignLC'
       
   478                     #'layout:' #(#Rectangle 145 156 157 168)
       
   479                     #'label:' ''
       
   480                     #'model:' #makeAlignLeftCenter
       
   481                     #'isTriggerOnDown:' false
       
   482                     #'autoRepeat:' false
       
   483                 )
       
   484                  #(#ActionButtonSpec
       
   485                     #'name:' 'alignRC'
       
   486                     #'layout:' #(#Rectangle 201 156 213 168)
       
   487                     #'label:' ''
       
   488                     #'model:' #makeAlignRightCenter
       
   489                     #'isTriggerOnDown:' false
       
   490                     #'autoRepeat:' false
       
   491                 )
       
   492                  #(#ActionButtonSpec
       
   493                     #'name:' 'alignC'
       
   494                     #'layout:' #(#Rectangle 173 156 185 168)
       
   495                     #'label:' ''
       
   496                     #'model:' #makeAlignCenter
       
   497                     #'isTriggerOnDown:' false
       
   498                     #'autoRepeat:' false
       
   499                 )
       
   500               )
       
   501           )
       
   502       )
       
   503 
       
   504 
       
   505 !
       
   506 
       
   507 specificationExtent
       
   508     "this window spec was automatically generated by the ST/X UIPainter"
       
   509 
       
   510     "do not manually edit this - the painter/builder may not be able to
       
   511      handle the specification if its corrupted."
       
   512 
       
   513     "
       
   514      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationExtent
       
   515      UIPropertyView::Dimension new openInterface:#specificationExtent
       
   516     "
       
   517 
       
   518     <resource: #canvas>
       
   519 
       
   520     ^
       
   521 
       
   522        #(#FullSpec
       
   523           #'window:' 
       
   524            #(#WindowSpec
       
   525               #'name:' 'uIPainterView'
       
   526               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
   527               #'label:' 'unnamed'
       
   528               #'bounds:' #(#Rectangle 0 0 224 251)
       
   529           )
       
   530           #'component:' 
       
   531            #(#SpecCollection
       
   532               #'collection:' 
       
   533                #(
       
   534                  #(#LabelSpec
       
   535                     #'name:' 'label1'
       
   536                     #'layout:' #(#AlignmentOrigin 99 0 45 0 1 0)
       
   537                     #'label:' 'horizontal:'
       
   538                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   539                     #'level:' 0
       
   540                     #'adjust:' #left
       
   541                     #'hasCharacterOrientedLabel:' true
       
   542                 )
       
   543                  #(#LabelSpec
       
   544                     #'name:' 'label2'
       
   545                     #'layout:' #(#AlignmentOrigin 99 0 72 0 1 0)
       
   546                     #'label:' 'vertical:'
       
   547                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   548                     #'level:' 0
       
   549                     #'adjust:' #left
       
   550                     #'hasCharacterOrientedLabel:' true
       
   551                 )
       
   552                  #(#InputFieldSpec
       
   553                     #'name:' 'editField1'
       
   554                     #'layout:' #(#LayoutFrame 104 0 45 0 197 0 63 0)
       
   555                     #'model:' #leftOffset
       
   556                     #'tabable:' true
       
   557                     #'type:' #numberOrNil
       
   558                     #'immediateAccept:' true
       
   559                     #'acceptOnLeave:' true
       
   560                     #'acceptOnReturn:' true
       
   561                     #'acceptOnTab:' true
       
   562                     #'acceptOnLostFocus:' true
       
   563                     #'hasBorder:' false
       
   564                 )
       
   565                  #(#InputFieldSpec
       
   566                     #'name:' 'editField2'
       
   567                     #'layout:' #(#LayoutFrame 104 0 72 0 197 0 90 0)
       
   568                     #'model:' #rightOffset
       
   569                     #'tabable:' true
       
   570                     #'type:' #numberOrNil
       
   571                     #'immediateAccept:' true
       
   572                     #'acceptOnLeave:' true
       
   573                     #'acceptOnReturn:' true
       
   574                     #'acceptOnTab:' true
       
   575                     #'acceptOnLostFocus:' true
       
   576                     #'hasBorder:' false
       
   577                 )
       
   578                  #(#LabelSpec
       
   579                     #'name:' 'extentLabel'
       
   580                     #'layout:' #(#LayoutFrame 9 0 20 0 63 0 37 0)
       
   581                     #'label:' 'Extent:'
       
   582                     #'level:' 0
       
   583                     #'adjust:' #center
       
   584                     #'hasCharacterOrientedLabel:' true
       
   585                 )
       
   586               )
       
   587           )
       
   588       )
       
   589 
       
   590 !
       
   591 
       
   592 specificationLayoutFrame
       
   593     "this window spec was automatically generated by the ST/X UIPainter"
       
   594 
       
   595     "do not manually edit this - the painter/builder may not be able to
       
   596      handle the specification if its corrupted."
       
   597 
       
   598     "
       
   599      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationLayoutFrame
       
   600      UIPropertyView::Dimension new openInterface:#specificationLayoutFrame
       
   601     "
       
   602 
       
   603     <resource: #canvas>
       
   604 
       
   605     ^
       
   606 
       
   607        #(#FullSpec
       
   608           #'window:' 
       
   609            #(#WindowSpec
       
   610               #'name:' 'uIPainterView'
       
   611               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
   612               #'label:' 'unnamed'
       
   613               #'bounds:' #(#Rectangle 0 0 238 291)
       
   614           )
       
   615           #'component:' 
       
   616            #(#SpecCollection
       
   617               #'collection:' 
       
   618                #(
       
   619                  #(#LabelSpec
       
   620                     #'name:' 'label left'
       
   621                     #'layout:' #(#AlignmentOrigin 60 0 43 0 1 0)
       
   622                     #'label:' 'left'
       
   623                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   624                     #'level:' 0
       
   625                     #'adjust:' #center
       
   626                     #'hasCharacterOrientedLabel:' true
       
   627                 )
       
   628                  #(#LabelSpec
       
   629                     #'name:' 'label top'
       
   630                     #'layout:' #(#AlignmentOrigin 60 0 71 0 1 0)
       
   631                     #'label:' 'top'
       
   632                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   633                     #'level:' 0
       
   634                     #'adjust:' #center
       
   635                     #'hasCharacterOrientedLabel:' true
       
   636                 )
       
   637                  #(#LabelSpec
       
   638                     #'name:' 'label right'
       
   639                     #'layout:' #(#AlignmentOrigin 60 0 99 0 1 0)
       
   640                     #'label:' 'right'
       
   641                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   642                     #'level:' 0
       
   643                     #'adjust:' #center
       
   644                     #'hasCharacterOrientedLabel:' true
       
   645                 )
       
   646                  #(#LabelSpec
       
   647                     #'name:' 'label bottom'
       
   648                     #'layout:' #(#AlignmentOrigin 60 0 127 0 1 0)
       
   649                     #'label:' 'bottom'
       
   650                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   651                     #'level:' 0
       
   652                     #'adjust:' #center
       
   653                     #'hasCharacterOrientedLabel:' true
       
   654                 )
       
   655                  #(#LabelSpec
       
   656                     #'name:' 'label relative'
       
   657                     #'layout:' #(#Point 65 14)
       
   658                     #'label:' 'relative'
       
   659                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   660                     #'level:' 0
       
   661                     #'adjust:' #center
       
   662                     #'hasCharacterOrientedLabel:' true
       
   663                 )
       
   664                  #(#LabelSpec
       
   665                     #'name:' 'label offset'
       
   666                     #'layout:' #(#Point 159 14)
       
   667                     #'label:' 'offset'
       
   668                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   669                     #'level:' 0
       
   670                     #'adjust:' #center
       
   671                     #'hasCharacterOrientedLabel:' true
       
   672                 )
       
   673                  #(#LabelSpec
       
   674                     #'name:' 'label all relative'
       
   675                     #'layout:' #(#AlignmentOrigin 60 0 161 0 1 0)
       
   676                     #'label:' 'all'
       
   677                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   678                     #'level:' 0
       
   679                     #'adjust:' #center
       
   680                     #'hasCharacterOrientedLabel:' true
       
   681                 )
       
   682                  #(#InputFieldSpec
       
   683                     #'name:' 'relative E1'
       
   684                     #'layout:' #(#LayoutFrame 65 0 43 0 113 0 61 0)
       
   685                     #'model:' #leftFraction
       
   686                     #'type:' #numberOrNil
       
   687                     #'immediateAccept:' true
       
   688                     #'acceptOnLeave:' true
       
   689                     #'acceptOnReturn:' true
       
   690                     #'acceptOnTab:' true
       
   691                     #'acceptOnLostFocus:' true
       
   692                     #'hasBorder:' false
       
   693                 )
       
   694                  #(#InputFieldSpec
       
   695                     #'name:' 'relative E2'
       
   696                     #'layout:' #(#LayoutFrame 65 0 71 0 113 0 89 0)
       
   697                     #'model:' #topFraction
       
   698                     #'type:' #numberOrNil
       
   699                     #'immediateAccept:' true
       
   700                     #'acceptOnLeave:' true
       
   701                     #'acceptOnReturn:' true
       
   702                     #'acceptOnTab:' true
       
   703                     #'acceptOnLostFocus:' true
       
   704                     #'hasBorder:' false
       
   705                 )
       
   706                  #(#InputFieldSpec
       
   707                     #'name:' 'relative E3'
       
   708                     #'layout:' #(#LayoutFrame 65 0 99 0 113 0 117 0)
       
   709                     #'model:' #rightFraction
       
   710                     #'type:' #numberOrNil
       
   711                     #'immediateAccept:' true
       
   712                     #'acceptOnLeave:' true
       
   713                     #'acceptOnReturn:' true
       
   714                     #'acceptOnTab:' true
       
   715                     #'acceptOnLostFocus:' true
       
   716                     #'hasBorder:' false
       
   717                 )
       
   718                  #(#InputFieldSpec
       
   719                     #'name:' 'relative E4'
       
   720                     #'layout:' #(#LayoutFrame 65 0 127 0 113 0 145 0)
       
   721                     #'model:' #bottomFraction
       
   722                     #'type:' #numberOrNil
       
   723                     #'immediateAccept:' true
       
   724                     #'acceptOnLeave:' true
       
   725                     #'acceptOnReturn:' true
       
   726                     #'acceptOnTab:' true
       
   727                     #'acceptOnLostFocus:' true
       
   728                     #'hasBorder:' false
       
   729                 )
       
   730                  #(#InputFieldSpec
       
   731                     #'name:' 'offset E1'
       
   732                     #'layout:' #(#LayoutFrame 159 0 43 0 210 0 61 0)
       
   733                     #'model:' #leftOffset
       
   734                     #'type:' #numberOrNil
       
   735                     #'immediateAccept:' true
       
   736                     #'acceptOnLeave:' true
       
   737                     #'acceptOnReturn:' true
       
   738                     #'acceptOnTab:' true
       
   739                     #'acceptOnLostFocus:' true
       
   740                     #'hasBorder:' false
       
   741                 )
       
   742                  #(#InputFieldSpec
       
   743                     #'name:' 'offset E2'
       
   744                     #'layout:' #(#LayoutFrame 159 0 71 0 210 0 89 0)
       
   745                     #'model:' #topOffset
       
   746                     #'type:' #numberOrNil
       
   747                     #'immediateAccept:' true
       
   748                     #'acceptOnLeave:' true
       
   749                     #'acceptOnReturn:' true
       
   750                     #'acceptOnTab:' true
       
   751                     #'acceptOnLostFocus:' true
       
   752                     #'hasBorder:' false
       
   753                 )
       
   754                  #(#InputFieldSpec
       
   755                     #'name:' 'offset E3'
       
   756                     #'layout:' #(#LayoutFrame 159 0 99 0 210 0 117 0)
       
   757                     #'model:' #rightOffset
       
   758                     #'type:' #numberOrNil
       
   759                     #'immediateAccept:' true
       
   760                     #'acceptOnLeave:' true
       
   761                     #'acceptOnReturn:' true
       
   762                     #'acceptOnTab:' true
       
   763                     #'acceptOnLostFocus:' true
       
   764                     #'hasBorder:' false
       
   765                 )
       
   766                  #(#InputFieldSpec
       
   767                     #'name:' 'offset E4'
       
   768                     #'layout:' #(#LayoutFrame 159 0 127 0 210 0 145 0)
       
   769                     #'model:' #bottomOffset
       
   770                     #'type:' #numberOrNil
       
   771                     #'immediateAccept:' true
       
   772                     #'acceptOnLeave:' true
       
   773                     #'acceptOnReturn:' true
       
   774                     #'acceptOnTab:' true
       
   775                     #'acceptOnLostFocus:' true
       
   776                     #'hasBorder:' false
       
   777                 )
       
   778                  #(#ActionButtonSpec
       
   779                     #'name:' 'relative B1'
       
   780                     #'layout:' #(#LayoutFrame 117 0 43 0 136 0 61 0)
       
   781                     #'label:' ' '
       
   782                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   783                     #'model:' #makeRelativeLeft
       
   784                     #'isTriggerOnDown:' false
       
   785                     #'autoRepeat:' false
       
   786                 )
       
   787                  #(#ActionButtonSpec
       
   788                     #'name:' 'relative B2'
       
   789                     #'layout:' #(#LayoutFrame 117 0 71 0 136 0 89 0)
       
   790                     #'label:' ' '
       
   791                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   792                     #'model:' #makeRelativeTop
       
   793                     #'isTriggerOnDown:' false
       
   794                     #'autoRepeat:' false
       
   795                 )
       
   796                  #(#ActionButtonSpec
       
   797                     #'name:' 'relative B3'
       
   798                     #'layout:' #(#LayoutFrame 117 0 99 0 136 0 117 0)
       
   799                     #'label:' ' '
       
   800                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   801                     #'model:' #makeRelativeRight
       
   802                     #'isTriggerOnDown:' false
       
   803                     #'autoRepeat:' false
       
   804                 )
       
   805                  #(#ActionButtonSpec
       
   806                     #'name:' 'relative B4'
       
   807                     #'layout:' #(#LayoutFrame 117 0 127 0 136 0 145 0)
       
   808                     #'label:' ' '
       
   809                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   810                     #'model:' #makeRelativeBottom
       
   811                     #'isTriggerOnDown:' false
       
   812                     #'autoRepeat:' false
       
   813                 )
       
   814                  #(#ActionButtonSpec
       
   815                     #'name:' 'relative BAll'
       
   816                     #'layout:' #(#LayoutFrame 117 0 161 0 136 0 179 0)
       
   817                     #'label:' ' '
       
   818                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   819                     #'model:' #makeRelativeAll
       
   820                     #'isTriggerOnDown:' false
       
   821                     #'autoRepeat:' false
       
   822                 )
       
   823                  #(#ActionButtonSpec
       
   824                     #'name:' 'offset B1'
       
   825                     #'layout:' #(#LayoutFrame 214 0 43 0 233 0 61 0)
       
   826                     #'label:' ''
       
   827                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   828                     #'model:' #makeOffsetLeft
       
   829                     #'isTriggerOnDown:' false
       
   830                     #'autoRepeat:' false
       
   831                 )
       
   832                  #(#ActionButtonSpec
       
   833                     #'name:' 'offset B2'
       
   834                     #'layout:' #(#LayoutFrame 214 0 71 0 233 0 89 0)
       
   835                     #'label:' ''
       
   836                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   837                     #'model:' #makeOffsetTop
       
   838                     #'isTriggerOnDown:' false
       
   839                     #'autoRepeat:' false
       
   840                 )
       
   841                  #(#ActionButtonSpec
       
   842                     #'name:' 'offset B3'
       
   843                     #'layout:' #(#LayoutFrame 214 0 99 0 233 0 117 0)
       
   844                     #'label:' ''
       
   845                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   846                     #'model:' #makeOffsetRight
       
   847                     #'isTriggerOnDown:' false
       
   848                     #'autoRepeat:' false
       
   849                 )
       
   850                  #(#ActionButtonSpec
       
   851                     #'name:' 'offset B4'
       
   852                     #'layout:' #(#LayoutFrame 214 0 127 0 233 0 145 0)
       
   853                     #'label:' ''
       
   854                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   855                     #'model:' #makeOffsetBottom
       
   856                     #'isTriggerOnDown:' false
       
   857                     #'autoRepeat:' false
       
   858                 )
       
   859                  #(#ActionButtonSpec
       
   860                     #'name:' 'offset BAll'
       
   861                     #'layout:' #(#LayoutFrame 214 0 161 0 233 0 179 0)
       
   862                     #'label:' ' '
       
   863                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   864                     #'model:' #makeOffsetAll
       
   865                     #'isTriggerOnDown:' false
       
   866                     #'autoRepeat:' false
       
   867                 )
       
   868               )
       
   869           )
       
   870       )
       
   871 
       
   872 !
       
   873 
       
   874 specificationLayoutOrigin
       
   875     "this window spec was automatically generated by the ST/X UIPainter"
       
   876 
       
   877     "do not manually edit this - the painter/builder may not be able to
       
   878      handle the specification if its corrupted."
       
   879 
       
   880     "
       
   881      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationLayoutOrigin
       
   882      UIPropertyView::Dimension new openInterface:#specificationLayoutOrigin
       
   883     "
       
   884 
       
   885     <resource: #canvas>
       
   886 
       
   887     ^
       
   888 
       
   889        #(#FullSpec
       
   890           #'window:' 
       
   891            #(#WindowSpec
       
   892               #'name:' 'uIPainterView'
       
   893               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
   894               #'label:' 'unnamed'
       
   895               #'bounds:' #(#Rectangle 0 0 238 303)
       
   896           )
       
   897           #'component:' 
       
   898            #(#SpecCollection
       
   899               #'collection:' 
       
   900                #(
       
   901                  #(#LabelSpec
       
   902                     #'name:' 'label1'
       
   903                     #'layout:' #(#AlignmentOrigin 52 0 44 0 1 0)
       
   904                     #'label:' 'left'
       
   905                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   906                     #'level:' 0
       
   907                     #'adjust:' #center
       
   908                     #'hasCharacterOrientedLabel:' true
       
   909                 )
       
   910                  #(#LabelSpec
       
   911                     #'name:' 'label2'
       
   912                     #'layout:' #(#AlignmentOrigin 52 0 71 0 1 0)
       
   913                     #'label:' 'top'
       
   914                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   915                     #'level:' 0
       
   916                     #'adjust:' #center
       
   917                     #'hasCharacterOrientedLabel:' true
       
   918                 )
       
   919                  #(#LabelSpec
       
   920                     #'name:' 'label3'
       
   921                     #'layout:' #(#Point 57 12)
       
   922                     #'label:' 'relative'
       
   923                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   924                     #'level:' 0
       
   925                     #'adjust:' #center
       
   926                     #'hasCharacterOrientedLabel:' true
       
   927                 )
       
   928                  #(#LabelSpec
       
   929                     #'name:' 'label4'
       
   930                     #'layout:' #(#Point 154 13)
       
   931                     #'label:' 'offset'
       
   932                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   933                     #'level:' 0
       
   934                     #'adjust:' #center
       
   935                     #'hasCharacterOrientedLabel:' true
       
   936                 )
       
   937                  #(#InputFieldSpec
       
   938                     #'name:' 'editField1'
       
   939                     #'layout:' #(#LayoutFrame 57 0 44 0 114 0 62 0)
       
   940                     #'model:' #leftFraction
       
   941                     #'tabable:' true
       
   942                     #'type:' #numberOrNil
       
   943                     #'immediateAccept:' true
       
   944                     #'acceptOnLeave:' true
       
   945                     #'acceptOnReturn:' true
       
   946                     #'acceptOnTab:' true
       
   947                     #'acceptOnLostFocus:' true
       
   948                     #'hasBorder:' false
       
   949                 )
       
   950                  #(#InputFieldSpec
       
   951                     #'name:' 'editField2'
       
   952                     #'layout:' #(#LayoutFrame 57 0 71 0 114 0 89 0)
       
   953                     #'model:' #topFraction
       
   954                     #'tabable:' true
       
   955                     #'type:' #numberOrNil
       
   956                     #'immediateAccept:' true
       
   957                     #'acceptOnLeave:' true
       
   958                     #'acceptOnReturn:' true
       
   959                     #'acceptOnTab:' true
       
   960                     #'acceptOnLostFocus:' true
       
   961                     #'hasBorder:' false
       
   962                 )
       
   963                  #(#InputFieldSpec
       
   964                     #'name:' 'editField3'
       
   965                     #'layout:' #(#LayoutFrame 154 0 44 0 212 0 62 0)
       
   966                     #'model:' #leftOffset
       
   967                     #'tabable:' true
       
   968                     #'type:' #numberOrNil
       
   969                     #'immediateAccept:' true
       
   970                     #'acceptOnLeave:' true
       
   971                     #'acceptOnReturn:' true
       
   972                     #'acceptOnTab:' true
       
   973                     #'acceptOnLostFocus:' true
       
   974                     #'hasBorder:' false
       
   975                 )
       
   976                  #(#InputFieldSpec
       
   977                     #'name:' 'editField4'
       
   978                     #'layout:' #(#LayoutFrame 154 0 71 0 212 0 89 0)
       
   979                     #'model:' #topOffset
       
   980                     #'tabable:' true
       
   981                     #'type:' #numberOrNil
       
   982                     #'immediateAccept:' true
       
   983                     #'acceptOnLeave:' true
       
   984                     #'acceptOnReturn:' true
       
   985                     #'acceptOnTab:' true
       
   986                     #'acceptOnLostFocus:' true
       
   987                     #'hasBorder:' false
       
   988                 )
       
   989                  #(#ActionButtonSpec
       
   990                     #'name:' 'button1'
       
   991                     #'layout:' #(#LayoutFrame 119 0 44 0 138 0 62 0)
       
   992                     #'label:' ''
       
   993                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   994                     #'model:' #makeRelativeLeft
       
   995                     #'isTriggerOnDown:' false
       
   996                     #'autoRepeat:' false
       
   997                 )
       
   998                  #(#ActionButtonSpec
       
   999                     #'name:' 'button2'
       
  1000                     #'layout:' #(#LayoutFrame 119 0 71 0 138 0 89 0)
       
  1001                     #'label:' ''
       
  1002                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1003                     #'model:' #makeRelativeTop
       
  1004                     #'isTriggerOnDown:' false
       
  1005                     #'autoRepeat:' false
       
  1006                 )
       
  1007                  #(#ActionButtonSpec
       
  1008                     #'name:' 'button3'
       
  1009                     #'layout:' #(#LayoutFrame 216 0 44 0 235 0 62 0)
       
  1010                     #'label:' ''
       
  1011                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1012                     #'model:' #makeOffsetLeft
       
  1013                     #'isTriggerOnDown:' false
       
  1014                     #'autoRepeat:' false
       
  1015                 )
       
  1016                  #(#ActionButtonSpec
       
  1017                     #'name:' 'button4'
       
  1018                     #'layout:' #(#LayoutFrame 216 0 71 0 235 0 89 0)
       
  1019                     #'label:' ''
       
  1020                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1021                     #'model:' #makeOffsetTop
       
  1022                     #'isTriggerOnDown:' false
       
  1023                     #'autoRepeat:' false
       
  1024                 )
       
  1025                  #(#ActionButtonSpec
       
  1026                     #'name:' 'button8'
       
  1027                     #'layout:' #(#LayoutFrame 119 0 103 0 138 0 121 0)
       
  1028                     #'label:' ''
       
  1029                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1030                     #'model:' #makeRelativeLeftTop
       
  1031                     #'isTriggerOnDown:' false
       
  1032                     #'autoRepeat:' false
       
  1033                 )
       
  1034                  #(#ActionButtonSpec
       
  1035                     #'name:' 'button9'
       
  1036                     #'layout:' #(#LayoutFrame 216 0 103 0 235 0 121 0)
       
  1037                     #'label:' ''
       
  1038                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1039                     #'model:' #makeOffsetLeftTop
       
  1040                     #'isTriggerOnDown:' false
       
  1041                     #'autoRepeat:' false
       
  1042                 )
       
  1043                  #(#LabelSpec
       
  1044                     #'name:' 'label5'
       
  1045                     #'layout:' #(#AlignmentOrigin 52 0 103 0 1 0)
       
  1046                     #'label:' 'all'
       
  1047                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1048                     #'level:' 0
       
  1049                     #'adjust:' #center
       
  1050                     #'hasCharacterOrientedLabel:' true
       
  1051                 )
       
  1052               )
       
  1053           )
       
  1054       )
       
  1055 
       
  1056 !
       
  1057 
       
  1058 specificationPoint
       
  1059     "this window spec was automatically generated by the ST/X UIPainter"
       
  1060 
       
  1061     "do not manually edit this - the painter/builder may not be able to
       
  1062      handle the specification if its corrupted."
       
  1063 
       
  1064     "
       
  1065      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationPoint
       
  1066      UIPropertyView::Dimension new openInterface:#specificationPoint
       
  1067     "
       
  1068 
       
  1069     <resource: #canvas>
       
  1070 
       
  1071     ^
       
  1072 
       
  1073        #(#FullSpec
       
  1074           #'window:' 
       
  1075            #(#WindowSpec
       
  1076               #'name:' 'uIPainterView'
       
  1077               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
  1078               #'label:' 'unnamed'
       
  1079               #'bounds:' #(#Rectangle 0 0 238 303)
       
  1080           )
       
  1081           #'component:' 
       
  1082            #(#SpecCollection
       
  1083               #'collection:' 
       
  1084                #(
       
  1085                  #(#LabelSpec
       
  1086                     #'name:' 'label1'
       
  1087                     #'layout:' #(#AlignmentOrigin 75 0 19 0 1 0)
       
  1088                     #'label:' 'origin x:'
       
  1089                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1090                     #'level:' 0
       
  1091                     #'adjust:' #center
       
  1092                     #'hasCharacterOrientedLabel:' true
       
  1093                 )
       
  1094                  #(#LabelSpec
       
  1095                     #'name:' 'label2'
       
  1096                     #'layout:' #(#AlignmentOrigin 75 0 46 0 1 0)
       
  1097                     #'label:' 'origin y:'
       
  1098                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1099                     #'level:' 0
       
  1100                     #'adjust:' #center
       
  1101                     #'hasCharacterOrientedLabel:' true
       
  1102                 )
       
  1103                  #(#InputFieldSpec
       
  1104                     #'name:' 'editField1'
       
  1105                     #'layout:' #(#LayoutFrame 77 0 19 0 170 0 37 0)
       
  1106                     #'model:' #absLeft
       
  1107                     #'tabable:' true
       
  1108                     #'type:' #numberOrNil
       
  1109                     #'immediateAccept:' true
       
  1110                     #'acceptOnLeave:' true
       
  1111                     #'acceptOnReturn:' true
       
  1112                     #'acceptOnTab:' true
       
  1113                     #'acceptOnLostFocus:' true
       
  1114                     #'hasBorder:' false
       
  1115                 )
       
  1116                  #(#InputFieldSpec
       
  1117                     #'name:' 'editField2'
       
  1118                     #'layout:' #(#LayoutFrame 77 0 46 0 170 0 64 0)
       
  1119                     #'model:' #absTop
       
  1120                     #'tabable:' true
       
  1121                     #'type:' #numberOrNil
       
  1122                     #'immediateAccept:' true
       
  1123                     #'acceptOnLeave:' true
       
  1124                     #'acceptOnReturn:' true
       
  1125                     #'acceptOnTab:' true
       
  1126                     #'acceptOnLostFocus:' true
       
  1127                     #'hasBorder:' false
       
  1128                 )
       
  1129               )
       
  1130           )
       
  1131       )
       
  1132 
       
  1133 !
       
  1134 
       
  1135 specificationRectangle
       
  1136     "this window spec was automatically generated by the ST/X UIPainter"
       
  1137 
       
  1138     "do not manually edit this - the painter/builder may not be able to
       
  1139      handle the specification if its corrupted."
       
  1140 
       
  1141     "
       
  1142      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationRectangle
       
  1143      UIPropertyView::Dimension new openInterface:#specificationRectangle
       
  1144     "
       
  1145 
       
  1146     <resource: #canvas>
       
  1147 
       
  1148     ^
       
  1149 
       
  1150        #(#FullSpec
       
  1151           #'window:' 
       
  1152            #(#WindowSpec
       
  1153               #'name:' 'uIPainterView'
       
  1154               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
  1155               #'label:' 'unnamed'
       
  1156               #'bounds:' #(#Rectangle 0 0 238 303)
       
  1157           )
       
  1158           #'component:' 
       
  1159            #(#SpecCollection
       
  1160               #'collection:' 
       
  1161                #(
       
  1162                  #(#LabelSpec
       
  1163                     #'name:' 'label1'
       
  1164                     #'layout:' #(#AlignmentOrigin 80 0 19 0 1 0)
       
  1165                     #'label:' 'origin x:'
       
  1166                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1167                     #'level:' 0
       
  1168                     #'adjust:' #left
       
  1169                     #'hasCharacterOrientedLabel:' true
       
  1170                 )
       
  1171                  #(#LabelSpec
       
  1172                     #'name:' 'label2'
       
  1173                     #'layout:' #(#AlignmentOrigin 80 0 46 0 1 0)
       
  1174                     #'label:' 'origin y:'
       
  1175                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1176                     #'level:' 0
       
  1177                     #'adjust:' #left
       
  1178                     #'hasCharacterOrientedLabel:' true
       
  1179                 )
       
  1180                  #(#InputFieldSpec
       
  1181                     #'name:' 'editField1'
       
  1182                     #'layout:' #(#LayoutFrame 81 0 19 0 174 0 37 0)
       
  1183                     #'model:' #leftOffset
       
  1184                     #'tabable:' true
       
  1185                     #'type:' #numberOrNil
       
  1186                     #'immediateAccept:' true
       
  1187                     #'acceptOnLeave:' true
       
  1188                     #'acceptOnReturn:' true
       
  1189                     #'acceptOnTab:' true
       
  1190                     #'acceptOnLostFocus:' true
       
  1191                     #'hasBorder:' false
       
  1192                 )
       
  1193                  #(#InputFieldSpec
       
  1194                     #'name:' 'editField2'
       
  1195                     #'layout:' #(#LayoutFrame 81 0 46 0 174 0 64 0)
       
  1196                     #'model:' #topOffset
       
  1197                     #'tabable:' true
       
  1198                     #'type:' #numberOrNil
       
  1199                     #'immediateAccept:' true
       
  1200                     #'acceptOnLeave:' true
       
  1201                     #'acceptOnReturn:' true
       
  1202                     #'acceptOnTab:' true
       
  1203                     #'acceptOnLostFocus:' true
       
  1204                     #'hasBorder:' false
       
  1205                 )
       
  1206                  #(#LabelSpec
       
  1207                     #'name:' 'label4'
       
  1208                     #'layout:' #(#AlignmentOrigin 80 0 74 0 1 0)
       
  1209                     #'label:' 'corner x:'
       
  1210                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1211                     #'level:' 0
       
  1212                     #'adjust:' #left
       
  1213                     #'hasCharacterOrientedLabel:' true
       
  1214                 )
       
  1215                  #(#LabelSpec
       
  1216                     #'name:' 'label5'
       
  1217                     #'layout:' #(#AlignmentOrigin 80 0 101 0 1 0)
       
  1218                     #'label:' 'corner y:'
       
  1219                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1220                     #'level:' 0
       
  1221                     #'adjust:' #left
       
  1222                     #'hasCharacterOrientedLabel:' true
       
  1223                 )
       
  1224                  #(#InputFieldSpec
       
  1225                     #'name:' 'editField3'
       
  1226                     #'layout:' #(#LayoutFrame 81 0 74 0 174 0 92 0)
       
  1227                     #'model:' #rightOffset
       
  1228                     #'tabable:' true
       
  1229                     #'type:' #numberOrNil
       
  1230                     #'immediateAccept:' true
       
  1231                     #'acceptOnLeave:' true
       
  1232                     #'acceptOnReturn:' true
       
  1233                     #'acceptOnTab:' true
       
  1234                     #'acceptOnLostFocus:' true
       
  1235                     #'hasBorder:' false
       
  1236                 )
       
  1237                  #(#InputFieldSpec
       
  1238                     #'name:' 'editField4'
       
  1239                     #'layout:' #(#LayoutFrame 81 0 101 0 174 0 119 0)
       
  1240                     #'model:' #bottomOffset
       
  1241                     #'tabable:' true
       
  1242                     #'type:' #numberOrNil
       
  1243                     #'immediateAccept:' true
       
  1244                     #'acceptOnLeave:' true
       
  1245                     #'acceptOnReturn:' true
       
  1246                     #'acceptOnTab:' true
       
  1247                     #'acceptOnLostFocus:' true
       
  1248                     #'hasBorder:' false
       
  1249                 )
       
  1250               )
       
  1251           )
       
  1252       )
       
  1253 
       
  1254 ! !
       
  1255 
       
  1256 !UIPropertyView::Dimension methodsFor:'accessing'!
       
  1257 
       
  1258 forView:aView
       
  1259     "set the view the layout derives from
       
  1260     "
       
  1261     forView   := aView.
       
  1262     selection := nil.
       
  1263     self selection:(UIPainterView layoutType:forView)
       
  1264 
       
  1265 
       
  1266 !
       
  1267 
       
  1268 layout
       
  1269     "returns current layout
       
  1270     "
       
  1271     |layout|
       
  1272 
       
  1273     selection notNil ifTrue:[
       
  1274         layout := self perform:(('get', selection asString) asSymbol).
       
  1275     ].
       
  1276     ^ layout
       
  1277 !
       
  1278 
       
  1279 layoutType
       
  1280     "returns current layoutType
       
  1281     "
       
  1282     ^ selection
       
  1283 ! !
       
  1284 
       
  1285 !UIPropertyView::Dimension methodsFor:'accessing hierarchy'!
       
  1286 
       
  1287 window
       
  1288     ^ noteBook
       
  1289 
       
  1290 
       
  1291 ! !
       
  1292 
       
  1293 !UIPropertyView::Dimension methodsFor:'initialization'!
       
  1294 
       
  1295 initialize
       
  1296     "initialize channels
       
  1297     "
       
  1298     |layoutAspects|
       
  1299 
       
  1300     super initialize.
       
  1301 
       
  1302     layoutAspects := IdentityDictionary new.
       
  1303 
       
  1304     #(  bottomFraction          bottomOffset
       
  1305         leftFraction            leftOffset
       
  1306         topFraction             topOffset
       
  1307         rightFraction           rightOffset
       
  1308         leftAlignmentFraction   topAlignmentFraction
       
  1309         absLeft                 absTop               
       
  1310     )
       
  1311     do:[:aKey|
       
  1312         layoutAspects at:aKey put:(ValueHolder new)
       
  1313     ].
       
  1314     self aspects:layoutAspects.
       
  1315 
       
  1316 
       
  1317 !
       
  1318 
       
  1319 origin:anOrigin corner:aCorner in:aTopView
       
  1320     "set dimensions
       
  1321     "
       
  1322     noteBook := NoteBookView origin:anOrigin corner:aCorner in:aTopView.
       
  1323     window   := noteBook canvas.
       
  1324 
       
  1325     noteBook direction:#bottom.
       
  1326     noteBook useIndex:true.
       
  1327     layoutTypes := #( #LayoutFrame #AlignmentOrigin #LayoutOrigin #Point #Rectangle ).     
       
  1328     noteBook list:#( 'Frame' 'Alig.Origin' 'LayoutOrigin' 'Point' 'Rectangle' ).
       
  1329 
       
  1330     noteBook action:[:anIndex|
       
  1331         anIndex notNil ifTrue:[self selection:(layoutTypes at:anIndex)].
       
  1332     ].
       
  1333 
       
  1334 ! !
       
  1335 
       
  1336 !UIPropertyView::Dimension methodsFor:'layout access'!
       
  1337 
       
  1338 getAlignmentOrigin
       
  1339     "returns current layout as alignmentOrigin
       
  1340     "
       
  1341     |layout|
       
  1342 
       
  1343     layout  := AlignmentOrigin new.
       
  1344 
       
  1345     layout   leftOffset:((aspects at:#leftOffset)   value) ? 0.
       
  1346     layout    topOffset:((aspects at:#topOffset)    value) ? 0.
       
  1347     layout leftFraction:((aspects at:#leftFraction) value) ? 0.
       
  1348     layout  topFraction:((aspects at:#topFraction)  value) ? 0.
       
  1349 
       
  1350     layout leftAlignmentFraction:((aspects at:#leftAlignmentFraction) value) ? 0.
       
  1351     layout  topAlignmentFraction:((aspects at:#topAlignmentFraction)  value) ? 0.
       
  1352 
       
  1353   ^ layout
       
  1354 !
       
  1355 
       
  1356 getExtent
       
  1357     "returns current extent
       
  1358     "
       
  1359   ^ Point x:(((aspects at:#leftOffset)   value) ? 0)
       
  1360           y:(((aspects at:#rightOffset)  value) ? 0)
       
  1361 !
       
  1362 
       
  1363 getLayoutFrame
       
  1364     "returns current layout as layoutFrame
       
  1365     "
       
  1366     |layout|
       
  1367 
       
  1368     layout  := LayoutFrame new.
       
  1369 
       
  1370     layout     leftOffset:((aspects at:#leftOffset)     value) ? 0.
       
  1371     layout    rightOffset:((aspects at:#rightOffset)    value) ? 0.
       
  1372     layout      topOffset:((aspects at:#topOffset)      value) ? 0.
       
  1373     layout   bottomOffset:((aspects at:#bottomOffset)   value) ? 0.
       
  1374     layout   leftFraction:((aspects at:#leftFraction)   value) ? 0.
       
  1375     layout  rightFraction:((aspects at:#rightFraction)  value) ? 0.
       
  1376     layout    topFraction:((aspects at:#topFraction)    value) ? 0.
       
  1377     layout bottomFraction:((aspects at:#bottomFraction) value) ? 0.
       
  1378 
       
  1379   ^ layout
       
  1380 !
       
  1381 
       
  1382 getLayoutOrigin
       
  1383     "returns current layout as layoutOrigin
       
  1384     "
       
  1385     |layout|
       
  1386 
       
  1387     layout  := LayoutOrigin new.
       
  1388 
       
  1389     layout   leftOffset:((aspects at:#leftOffset)   value) ? 0.
       
  1390     layout    topOffset:((aspects at:#topOffset)    value) ? 0.
       
  1391     layout leftFraction:((aspects at:#leftFraction) value) ? 0.
       
  1392     layout  topFraction:((aspects at:#topFraction)  value) ? 0.
       
  1393 
       
  1394   ^ layout
       
  1395 !
       
  1396 
       
  1397 getPoint
       
  1398     "returns current layout as point
       
  1399     "
       
  1400   ^ Point x:(((aspects at:#absLeft) value) ? 0)
       
  1401           y:(((aspects at:#absTop)  value) ? 0)
       
  1402 !
       
  1403 
       
  1404 getRectangle
       
  1405     "returns current layout as rectangle
       
  1406     "
       
  1407   ^ Rectangle left:(((aspects at:#leftOffset)   value) ? 0)
       
  1408                top:(((aspects at:#topOffset)    value) ? 0)
       
  1409              right:(((aspects at:#rightOffset)  value) ? 0)
       
  1410             bottom:(((aspects at:#bottomOffset) value) ? 0)
       
  1411 ! !
       
  1412 
       
  1413 !UIPropertyView::Dimension methodsFor:'layout fetch'!
       
  1414 
       
  1415 fetchAlignmentOrigin
       
  1416     "fetch alignmentOrigin
       
  1417     "
       
  1418     |layout type extent|
       
  1419 
       
  1420     type    := UIPainterView layoutType:forView.
       
  1421     layout  := forView geometryLayout.
       
  1422 
       
  1423     layout isLayout ifTrue:[
       
  1424         (aspects at:#leftOffset)   value:(layout leftOffset).
       
  1425         (aspects at:#leftFraction) value:(layout leftFraction).
       
  1426         (aspects at:#topOffset)    value:(layout topOffset).
       
  1427         (aspects at:#topFraction)  value:(layout topFraction).
       
  1428 
       
  1429         type == #AlignmentOrigin ifTrue:[
       
  1430             (aspects at:#leftAlignmentFraction) value:(layout leftAlignmentFraction).
       
  1431             (aspects at:#topAlignmentFraction)  value:(layout topAlignmentFraction).
       
  1432           ^ self
       
  1433         ]
       
  1434     ] ifFalse:[
       
  1435         layout := forView computeOrigin.
       
  1436 
       
  1437         (aspects at:#leftOffset)   value:(layout x).
       
  1438         (aspects at:#leftFraction) value:0.
       
  1439         (aspects at:#topOffset)    value:(layout y).
       
  1440         (aspects at:#topFraction)  value:0.
       
  1441     ].
       
  1442     (aspects at:#leftAlignmentFraction) value:0.
       
  1443     (aspects at:#topAlignmentFraction)  value:0.
       
  1444 !
       
  1445 
       
  1446 fetchExtent
       
  1447     "fetch extent
       
  1448     "
       
  1449     |extent|
       
  1450 
       
  1451     extent  := forView computeExtent.
       
  1452 
       
  1453     (aspects at:#leftOffset)  value:(extent x).
       
  1454     (aspects at:#rightOffset) value:(extent y).
       
  1455 
       
  1456 !
       
  1457 
       
  1458 fetchLayoutFrame
       
  1459     "fetch layoutFrame
       
  1460     "
       
  1461     |layout|
       
  1462 
       
  1463     layout  := UIPainterView asLayoutFrameFromView:forView.
       
  1464 
       
  1465     (aspects at:#leftOffset)     value:(layout leftOffset).
       
  1466     (aspects at:#leftFraction)   value:(layout leftFraction).
       
  1467     (aspects at:#topOffset)      value:(layout topOffset).
       
  1468     (aspects at:#topFraction)    value:(layout topFraction).
       
  1469     (aspects at:#rightOffset)    value:(layout rightOffset).
       
  1470     (aspects at:#bottomOffset)   value:(layout bottomOffset).
       
  1471     (aspects at:#rightFraction)  value:(layout rightFraction).
       
  1472     (aspects at:#bottomFraction) value:(layout bottomFraction).
       
  1473 !
       
  1474 
       
  1475 fetchLayoutOrigin
       
  1476     "fetch layoutOrigin
       
  1477     "
       
  1478     |layout|
       
  1479 
       
  1480     layout  := UIPainterView asLayoutFrameFromView:forView.
       
  1481 
       
  1482     (aspects at:#leftOffset)   value:(layout leftOffset).
       
  1483     (aspects at:#leftFraction) value:(layout leftFraction).
       
  1484     (aspects at:#topOffset)    value:(layout topOffset).
       
  1485     (aspects at:#topFraction)  value:(layout topFraction).
       
  1486 !
       
  1487 
       
  1488 fetchPoint
       
  1489     "fetch point
       
  1490     "
       
  1491     |origin|
       
  1492 
       
  1493     origin  := forView computeOrigin.
       
  1494 
       
  1495     (aspects at:#absLeft) value:(origin x).
       
  1496     (aspects at:#absTop)  value:(origin y).
       
  1497 
       
  1498 !
       
  1499 
       
  1500 fetchRectangle
       
  1501     "fetch rectangle
       
  1502     "
       
  1503     |origin corner|
       
  1504 
       
  1505     origin  := forView computeOrigin.
       
  1506     corner  := forView computeCorner.
       
  1507 
       
  1508     (aspects at:#leftOffset)   value:(origin x).
       
  1509     (aspects at:#rightOffset)  value:(corner x).
       
  1510     (aspects at:#topOffset)    value:(origin y).
       
  1511     (aspects at:#bottomOffset) value:(corner y).
       
  1512 
       
  1513 ! !
       
  1514 
       
  1515 !UIPropertyView::Dimension methodsFor:'layout make align'!
       
  1516 
       
  1517 makeAlignBottomCenter
       
  1518     self makeAlignLeft:0.5 top:1
       
  1519 
       
  1520 
       
  1521 !
       
  1522 
       
  1523 makeAlignBottomLeft
       
  1524     self makeAlignLeft:0 top:1
       
  1525 
       
  1526 
       
  1527 !
       
  1528 
       
  1529 makeAlignBottomRight
       
  1530     self makeAlignLeft:1 top:1
       
  1531 
       
  1532 
       
  1533 !
       
  1534 
       
  1535 makeAlignCenter
       
  1536     self makeAlignLeft:0.5 top:0.5
       
  1537 
       
  1538 !
       
  1539 
       
  1540 makeAlignLeft:leftAlignmentFraction top:topAlignmentFraction
       
  1541     |lAF tAF lO tO ext|
       
  1542 
       
  1543     lAF     := (aspects at:#leftAlignmentFraction) value ? 0.
       
  1544     tAF     := (aspects at:#topAlignmentFraction)  value ? 0.
       
  1545     ext     := forView computeExtent.
       
  1546 
       
  1547     (aspects at:#leftAlignmentFraction) value:leftAlignmentFraction.
       
  1548     (aspects at:#topAlignmentFraction)  value:topAlignmentFraction.
       
  1549 
       
  1550     lO := (aspects at:#leftOffset) value ? 0.
       
  1551     tO := (aspects at:#topOffset)  value ? 0.
       
  1552 
       
  1553     lO := lO + (ext x * (leftAlignmentFraction - lAF)).
       
  1554     tO := tO + (ext y * (topAlignmentFraction  - tAF)).
       
  1555 
       
  1556     (aspects at:#leftOffset) value:(lO rounded).
       
  1557     (aspects at:#topOffset)  value:(tO rounded).
       
  1558 !
       
  1559 
       
  1560 makeAlignLeftCenter
       
  1561     self makeAlignLeft:0 top:0.5
       
  1562 
       
  1563 !
       
  1564 
       
  1565 makeAlignRightCenter
       
  1566     self makeAlignLeft:1 top:0.5
       
  1567 
       
  1568 !
       
  1569 
       
  1570 makeAlignTopCenter
       
  1571     self makeAlignLeft:0.5 top:0
       
  1572 
       
  1573 !
       
  1574 
       
  1575 makeAlignTopLeft
       
  1576     self makeAlignLeft:0 top:0
       
  1577 
       
  1578 !
       
  1579 
       
  1580 makeAlignTopRight
       
  1581     self makeAlignLeft:1 top:0
       
  1582 
       
  1583 
       
  1584 ! !
       
  1585 
       
  1586 !UIPropertyView::Dimension methodsFor:'layout make relative/absolute'!
       
  1587 
       
  1588 makeLayout:what xOrY:xOrY offset:aBool
       
  1589     |extent fraction offset fractSymb offsetSymb|
       
  1590 
       
  1591     extent     := (forView superView computeExtent) perform:xOrY.
       
  1592     fractSymb  := (what, 'Fraction') asSymbol.
       
  1593     offsetSymb := (what,   'Offset') asSymbol.
       
  1594 
       
  1595     fraction := (aspects at:fractSymb)  value.
       
  1596     offset   := (aspects at:offsetSymb) value.
       
  1597 
       
  1598     aBool ifTrue:[
       
  1599         offset   := offset + ((fraction * extent) asInteger).
       
  1600         fraction := 0.
       
  1601     ] ifFalse:[
       
  1602         fraction   := (fraction + (offset / extent)) asFloat.
       
  1603 
       
  1604         (fraction > 1.0) ifTrue:[ fraction := 1.0 ].
       
  1605         (fraction < 0.0) ifTrue:[ fraction := 0 ].
       
  1606         offset := 0.
       
  1607     ].
       
  1608     (aspects at:offsetSymb) value:offset.
       
  1609     (aspects at:fractSymb)  value:fraction.
       
  1610 !
       
  1611 
       
  1612 makeOffsetAll
       
  1613     self makeOffsetLeft.
       
  1614     self makeOffsetTop.
       
  1615     self makeOffsetRight.
       
  1616     self makeOffsetBottom.
       
  1617 
       
  1618 
       
  1619 !
       
  1620 
       
  1621 makeOffsetBottom
       
  1622     self makeLayout:'bottom' xOrY:#y offset:true.
       
  1623 
       
  1624 
       
  1625 !
       
  1626 
       
  1627 makeOffsetLeft
       
  1628     self makeLayout:'left' xOrY:#x offset:true.
       
  1629 
       
  1630 !
       
  1631 
       
  1632 makeOffsetLeftTop
       
  1633     self makeOffsetLeft.
       
  1634     self makeOffsetTop.
       
  1635 
       
  1636 !
       
  1637 
       
  1638 makeOffsetRight
       
  1639     self makeLayout:'right' xOrY:#x offset:true.
       
  1640 
       
  1641 !
       
  1642 
       
  1643 makeOffsetTop
       
  1644     self makeLayout:'top' xOrY:#y offset:true.
       
  1645 
       
  1646 !
       
  1647 
       
  1648 makeRelativeAll
       
  1649     self makeRelativeLeft.
       
  1650     self makeRelativeTop.
       
  1651     self makeRelativeRight.
       
  1652     self makeRelativeBottom.
       
  1653 
       
  1654 
       
  1655 !
       
  1656 
       
  1657 makeRelativeBottom
       
  1658     self makeLayout:'bottom' xOrY:#y offset:false.
       
  1659 
       
  1660 
       
  1661 !
       
  1662 
       
  1663 makeRelativeLeft
       
  1664     self makeLayout:'left' xOrY:#x offset:false.
       
  1665 
       
  1666 !
       
  1667 
       
  1668 makeRelativeLeftTop
       
  1669     self makeRelativeLeft.
       
  1670     self makeRelativeTop.
       
  1671 
       
  1672 !
       
  1673 
       
  1674 makeRelativeRight
       
  1675     self makeLayout:'right' xOrY:#x offset:false.
       
  1676 
       
  1677 !
       
  1678 
       
  1679 makeRelativeTop
       
  1680     self makeLayout:'top' xOrY:#y offset:false.
       
  1681 
       
  1682 ! !
       
  1683 
       
  1684 !UIPropertyView::Dimension methodsFor:'selection'!
       
  1685 
       
  1686 selection
       
  1687     ^ selection
       
  1688 
       
  1689 !
       
  1690 
       
  1691 selection:aLayoutType
       
  1692     |spec idx|
       
  1693 
       
  1694     selection == aLayoutType ifFalse:[
       
  1695         (selection := aLayoutType) notNil ifTrue:[
       
  1696             self perform:(('fetch',   selection asString) asSymbol).
       
  1697             spec := ('specification', selection asString) asSymbol.
       
  1698             spec := self class perform:spec.
       
  1699         ].
       
  1700         self buildFromSpec:spec.
       
  1701     ].
       
  1702     idx := layoutTypes findFirst:[:type| type == aLayoutType ].
       
  1703     noteBook setSelection:idx.
       
  1704 ! !
   195 ! !
  1705 
   196 
  1706 !UIPropertyView::Specification methodsFor:'accessing'!
   197 !UIPropertyView::Specification methodsFor:'accessing'!
  1707 
   198 
  1708 specEdited
   199 specEdited
  1751     ]
   242     ]
  1752 
   243 
  1753 
   244 
  1754 ! !
   245 ! !
  1755 
   246 
       
   247 !UIPropertyView::Dimension class methodsFor:'interface specs'!
       
   248 
       
   249 specificationAlignmentOrigin
       
   250     "this window spec was automatically generated by the ST/X UIPainter"
       
   251 
       
   252     "do not manually edit this - the painter/builder may not be able to
       
   253      handle the specification if its corrupted."
       
   254 
       
   255     "
       
   256      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationAlignmentOrigin
       
   257      UIPropertyView::Dimension new openInterface:#specificationAlignmentOrigin
       
   258     "
       
   259 
       
   260     <resource: #canvas>
       
   261 
       
   262     ^
       
   263 
       
   264        #(#FullSpec
       
   265           #'window:' 
       
   266            #(#WindowSpec
       
   267               #'name:' 'uIPainterView'
       
   268               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
   269               #'label:' 'unnamed'
       
   270               #'bounds:' #(#Rectangle 0 0 250 365)
       
   271           )
       
   272           #'component:' 
       
   273            #(#SpecCollection
       
   274               #'collection:' 
       
   275                #(
       
   276                  #(#LabelSpec
       
   277                     #'name:' 'label2'
       
   278                     #'layout:' #(#AlignmentOrigin 49 0 68 0 1 0)
       
   279                     #'label:' 'top'
       
   280                     #'level:' 0
       
   281                     #'adjust:' #right
       
   282                     #'hasCharacterOrientedLabel:' true
       
   283                 )
       
   284                  #(#LabelSpec
       
   285                     #'name:' 'label3'
       
   286                     #'layout:' #(#Point 58 13)
       
   287                     #'label:' 'relative'
       
   288                     #'level:' 0
       
   289                     #'adjust:' #center
       
   290                     #'hasCharacterOrientedLabel:' true
       
   291                 )
       
   292                  #(#LabelSpec
       
   293                     #'name:' 'label4'
       
   294                     #'layout:' #(#Point 154 14)
       
   295                     #'label:' 'offset'
       
   296                     #'level:' 0
       
   297                     #'adjust:' #center
       
   298                     #'hasCharacterOrientedLabel:' true
       
   299                 )
       
   300                  #(#LabelSpec
       
   301                     #'name:' 'label5'
       
   302                     #'layout:' #(#AlignmentOrigin 63 0 140 0 1 0)
       
   303                     #'label:' 'align H'
       
   304                     #'level:' 0
       
   305                     #'adjust:' #right
       
   306                     #'hasCharacterOrientedLabel:' true
       
   307                 )
       
   308                  #(#LabelSpec
       
   309                     #'name:' 'label6'
       
   310                     #'layout:' #(#AlignmentOrigin 63 0 166 0 1 0)
       
   311                     #'label:' 'align V'
       
   312                     #'level:' 0
       
   313                     #'adjust:' #right
       
   314                     #'hasCharacterOrientedLabel:' true
       
   315                 )
       
   316                  #(#InputFieldSpec
       
   317                     #'name:' 'editField1'
       
   318                     #'layout:' #(#LayoutFrame 58 0 41 0 115 0 59 0)
       
   319                     #'model:' #leftFraction
       
   320                     #'tabable:' true
       
   321                     #'type:' #numberOrNil
       
   322                     #'immediateAccept:' true
       
   323                     #'acceptOnLeave:' true
       
   324                     #'acceptOnReturn:' true
       
   325                     #'acceptOnTab:' true
       
   326                     #'acceptOnLostFocus:' true
       
   327                     #'hasBorder:' false
       
   328                 )
       
   329                  #(#InputFieldSpec
       
   330                     #'name:' 'editField2'
       
   331                     #'layout:' #(#LayoutFrame 58 0 68 0 115 0 86 0)
       
   332                     #'model:' #topFraction
       
   333                     #'tabable:' true
       
   334                     #'type:' #numberOrNil
       
   335                     #'immediateAccept:' true
       
   336                     #'acceptOnLeave:' true
       
   337                     #'acceptOnReturn:' true
       
   338                     #'acceptOnTab:' true
       
   339                     #'acceptOnLostFocus:' true
       
   340                     #'hasBorder:' false
       
   341                 )
       
   342                  #(#InputFieldSpec
       
   343                     #'name:' 'editField5'
       
   344                     #'layout:' #(#LayoutFrame 68 0 140 0 125 0 158 0)
       
   345                     #'model:' #leftAlignmentFraction
       
   346                     #'tabable:' true
       
   347                     #'type:' #numberOrNil
       
   348                     #'immediateAccept:' true
       
   349                     #'acceptOnLeave:' true
       
   350                     #'acceptOnReturn:' true
       
   351                     #'acceptOnTab:' true
       
   352                     #'acceptOnLostFocus:' true
       
   353                     #'hasBorder:' false
       
   354                 )
       
   355                  #(#InputFieldSpec
       
   356                     #'name:' 'editField6'
       
   357                     #'layout:' #(#LayoutFrame 68 0 166 0 125 0 184 0)
       
   358                     #'model:' #topAlignmentFraction
       
   359                     #'tabable:' true
       
   360                     #'type:' #numberOrNil
       
   361                     #'immediateAccept:' true
       
   362                     #'acceptOnLeave:' true
       
   363                     #'acceptOnReturn:' true
       
   364                     #'acceptOnTab:' true
       
   365                     #'acceptOnLostFocus:' true
       
   366                     #'hasBorder:' false
       
   367                 )
       
   368                  #(#InputFieldSpec
       
   369                     #'name:' 'editField3'
       
   370                     #'layout:' #(#LayoutFrame 154 0 41 0 212 0 59 0)
       
   371                     #'model:' #leftOffset
       
   372                     #'tabable:' true
       
   373                     #'type:' #numberOrNil
       
   374                     #'immediateAccept:' true
       
   375                     #'acceptOnLeave:' true
       
   376                     #'acceptOnReturn:' true
       
   377                     #'acceptOnTab:' true
       
   378                     #'acceptOnLostFocus:' true
       
   379                     #'hasBorder:' false
       
   380                 )
       
   381                  #(#InputFieldSpec
       
   382                     #'name:' 'editField4'
       
   383                     #'layout:' #(#LayoutFrame 154 0 68 0 212 0 86 0)
       
   384                     #'model:' #topOffset
       
   385                     #'tabable:' true
       
   386                     #'type:' #numberOrNil
       
   387                     #'immediateAccept:' true
       
   388                     #'acceptOnLeave:' true
       
   389                     #'acceptOnReturn:' true
       
   390                     #'acceptOnTab:' true
       
   391                     #'acceptOnLostFocus:' true
       
   392                     #'hasBorder:' false
       
   393                 )
       
   394                  #(#ActionButtonSpec
       
   395                     #'name:' 'button1'
       
   396                     #'layout:' #(#LayoutFrame 119 0 41 0 138 0 59 0)
       
   397                     #'label:' ''
       
   398                     #'model:' #makeRelativeLeft
       
   399                     #'isTriggerOnDown:' false
       
   400                     #'autoRepeat:' false
       
   401                 )
       
   402                  #(#ActionButtonSpec
       
   403                     #'name:' 'button2'
       
   404                     #'layout:' #(#LayoutFrame 119 0 68 0 138 0 86 0)
       
   405                     #'label:' ''
       
   406                     #'model:' #makeRelativeTop
       
   407                     #'isTriggerOnDown:' false
       
   408                     #'autoRepeat:' false
       
   409                 )
       
   410                  #(#ActionButtonSpec
       
   411                     #'name:' 'button3'
       
   412                     #'layout:' #(#LayoutFrame 217 0 41 0 236 0 59 0)
       
   413                     #'label:' ''
       
   414                     #'model:' #makeOffsetLeft
       
   415                     #'isTriggerOnDown:' false
       
   416                     #'autoRepeat:' false
       
   417                 )
       
   418                  #(#ActionButtonSpec
       
   419                     #'name:' 'button4'
       
   420                     #'layout:' #(#LayoutFrame 217 0 68 0 236 0 86 0)
       
   421                     #'label:' ''
       
   422                     #'model:' #makeOffsetTop
       
   423                     #'isTriggerOnDown:' false
       
   424                     #'autoRepeat:' false
       
   425                 )
       
   426                  #(#ActionButtonSpec
       
   427                     #'name:' 'button8'
       
   428                     #'layout:' #(#LayoutFrame 119 0 102 0 138 0 120 0)
       
   429                     #'label:' ''
       
   430                     #'model:' #makeRelativeLeftTop
       
   431                     #'isTriggerOnDown:' false
       
   432                     #'autoRepeat:' false
       
   433                 )
       
   434                  #(#ActionButtonSpec
       
   435                     #'name:' 'button9'
       
   436                     #'layout:' #(#LayoutFrame 217 0 102 0 236 0 120 0)
       
   437                     #'label:' ''
       
   438                     #'model:' #makeOffsetLeftTop
       
   439                     #'isTriggerOnDown:' false
       
   440                     #'autoRepeat:' false
       
   441                 )
       
   442                  #(#LabelSpec
       
   443                     #'name:' 'label7'
       
   444                     #'layout:' #(#AlignmentOrigin 49 0 102 0 1 0)
       
   445                     #'label:' 'all'
       
   446                     #'level:' 0
       
   447                     #'adjust:' #right
       
   448                     #'hasCharacterOrientedLabel:' true
       
   449                 )
       
   450                  #(#LabelSpec
       
   451                     #'name:' 'label1'
       
   452                     #'layout:' #(#AlignmentOrigin 49 0 41 0 1 0)
       
   453                     #'label:' 'left'
       
   454                     #'level:' 0
       
   455                     #'adjust:' #right
       
   456                     #'hasCharacterOrientedLabel:' true
       
   457                 )
       
   458                  #(#DividerSpec
       
   459                     #'name:' 'separator1'
       
   460                     #'layout:' #(#Rectangle 154 142 203 153)
       
   461                     #'orientation:' #horizontal
       
   462                 )
       
   463                  #(#DividerSpec
       
   464                     #'name:' 'separator2'
       
   465                     #'layout:' #(#Rectangle 154 173 203 184)
       
   466                     #'orientation:' #horizontal
       
   467                 )
       
   468                  #(#DividerSpec
       
   469                     #'name:' 'separator3'
       
   470                     #'layout:' #(#Rectangle 145 152 155 173)
       
   471                     #'orientation:' #vertical
       
   472                 )
       
   473                  #(#DividerSpec
       
   474                     #'name:' 'separator4'
       
   475                     #'layout:' #(#Rectangle 203 152 213 173)
       
   476                     #'orientation:' #vertical
       
   477                 )
       
   478                  #(#ActionButtonSpec
       
   479                     #'name:' 'alignBR'
       
   480                     #'layout:' #(#Rectangle 201 172 213 184)
       
   481                     #'label:' ''
       
   482                     #'model:' #makeAlignBottomRight
       
   483                     #'isTriggerOnDown:' false
       
   484                     #'autoRepeat:' false
       
   485                 )
       
   486                  #(#ActionButtonSpec
       
   487                     #'name:' 'alignTL'
       
   488                     #'layout:' #(#Rectangle 145 141 157 153)
       
   489                     #'label:' ''
       
   490                     #'model:' #makeAlignTopLeft
       
   491                     #'isTriggerOnDown:' false
       
   492                     #'autoRepeat:' false
       
   493                 )
       
   494                  #(#ActionButtonSpec
       
   495                     #'name:' 'alignTR'
       
   496                     #'layout:' #(#Rectangle 201 141 213 153)
       
   497                     #'label:' ''
       
   498                     #'model:' #makeAlignTopRight
       
   499                     #'isTriggerOnDown:' false
       
   500                     #'autoRepeat:' false
       
   501                 )
       
   502                  #(#ActionButtonSpec
       
   503                     #'name:' 'alignBL'
       
   504                     #'layout:' #(#Rectangle 145 171 157 183)
       
   505                     #'label:' ''
       
   506                     #'model:' #makeAlignBottomLeft
       
   507                     #'isTriggerOnDown:' false
       
   508                     #'autoRepeat:' false
       
   509                 )
       
   510                  #(#ActionButtonSpec
       
   511                     #'name:' 'alignTC'
       
   512                     #'layout:' #(#Rectangle 173 141 185 153)
       
   513                     #'label:' ''
       
   514                     #'model:' #makeAlignTopCenter
       
   515                     #'isTriggerOnDown:' false
       
   516                     #'autoRepeat:' false
       
   517                 )
       
   518                  #(#ActionButtonSpec
       
   519                     #'name:' 'alignBC'
       
   520                     #'layout:' #(#Rectangle 173 172 185 184)
       
   521                     #'label:' ''
       
   522                     #'model:' #makeAlignBottomCenter
       
   523                     #'isTriggerOnDown:' false
       
   524                     #'autoRepeat:' false
       
   525                 )
       
   526                  #(#ActionButtonSpec
       
   527                     #'name:' 'alignLC'
       
   528                     #'layout:' #(#Rectangle 145 156 157 168)
       
   529                     #'label:' ''
       
   530                     #'model:' #makeAlignLeftCenter
       
   531                     #'isTriggerOnDown:' false
       
   532                     #'autoRepeat:' false
       
   533                 )
       
   534                  #(#ActionButtonSpec
       
   535                     #'name:' 'alignRC'
       
   536                     #'layout:' #(#Rectangle 201 156 213 168)
       
   537                     #'label:' ''
       
   538                     #'model:' #makeAlignRightCenter
       
   539                     #'isTriggerOnDown:' false
       
   540                     #'autoRepeat:' false
       
   541                 )
       
   542                  #(#ActionButtonSpec
       
   543                     #'name:' 'alignC'
       
   544                     #'layout:' #(#Rectangle 173 156 185 168)
       
   545                     #'label:' ''
       
   546                     #'model:' #makeAlignCenter
       
   547                     #'isTriggerOnDown:' false
       
   548                     #'autoRepeat:' false
       
   549                 )
       
   550               )
       
   551           )
       
   552       )
       
   553 
       
   554 
       
   555 !
       
   556 
       
   557 specificationExtent
       
   558     "this window spec was automatically generated by the ST/X UIPainter"
       
   559 
       
   560     "do not manually edit this - the painter/builder may not be able to
       
   561      handle the specification if its corrupted."
       
   562 
       
   563     "
       
   564      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationExtent
       
   565      UIPropertyView::Dimension new openInterface:#specificationExtent
       
   566     "
       
   567 
       
   568     <resource: #canvas>
       
   569 
       
   570     ^
       
   571 
       
   572        #(#FullSpec
       
   573           #'window:' 
       
   574            #(#WindowSpec
       
   575               #'name:' 'uIPainterView'
       
   576               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
   577               #'label:' 'unnamed'
       
   578               #'bounds:' #(#Rectangle 0 0 224 251)
       
   579           )
       
   580           #'component:' 
       
   581            #(#SpecCollection
       
   582               #'collection:' 
       
   583                #(
       
   584                  #(#LabelSpec
       
   585                     #'name:' 'label1'
       
   586                     #'layout:' #(#AlignmentOrigin 99 0 45 0 1 0)
       
   587                     #'label:' 'horizontal:'
       
   588                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   589                     #'level:' 0
       
   590                     #'adjust:' #left
       
   591                     #'hasCharacterOrientedLabel:' true
       
   592                 )
       
   593                  #(#LabelSpec
       
   594                     #'name:' 'label2'
       
   595                     #'layout:' #(#AlignmentOrigin 99 0 72 0 1 0)
       
   596                     #'label:' 'vertical:'
       
   597                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   598                     #'level:' 0
       
   599                     #'adjust:' #left
       
   600                     #'hasCharacterOrientedLabel:' true
       
   601                 )
       
   602                  #(#InputFieldSpec
       
   603                     #'name:' 'editField1'
       
   604                     #'layout:' #(#LayoutFrame 104 0 45 0 197 0 63 0)
       
   605                     #'model:' #leftOffset
       
   606                     #'tabable:' true
       
   607                     #'type:' #numberOrNil
       
   608                     #'immediateAccept:' true
       
   609                     #'acceptOnLeave:' true
       
   610                     #'acceptOnReturn:' true
       
   611                     #'acceptOnTab:' true
       
   612                     #'acceptOnLostFocus:' true
       
   613                     #'hasBorder:' false
       
   614                 )
       
   615                  #(#InputFieldSpec
       
   616                     #'name:' 'editField2'
       
   617                     #'layout:' #(#LayoutFrame 104 0 72 0 197 0 90 0)
       
   618                     #'model:' #rightOffset
       
   619                     #'tabable:' true
       
   620                     #'type:' #numberOrNil
       
   621                     #'immediateAccept:' true
       
   622                     #'acceptOnLeave:' true
       
   623                     #'acceptOnReturn:' true
       
   624                     #'acceptOnTab:' true
       
   625                     #'acceptOnLostFocus:' true
       
   626                     #'hasBorder:' false
       
   627                 )
       
   628                  #(#LabelSpec
       
   629                     #'name:' 'extentLabel'
       
   630                     #'layout:' #(#LayoutFrame 9 0 20 0 63 0 37 0)
       
   631                     #'label:' 'Extent:'
       
   632                     #'level:' 0
       
   633                     #'adjust:' #center
       
   634                     #'hasCharacterOrientedLabel:' true
       
   635                 )
       
   636               )
       
   637           )
       
   638       )
       
   639 
       
   640 !
       
   641 
       
   642 specificationLayoutFrame
       
   643     "this window spec was automatically generated by the ST/X UIPainter"
       
   644 
       
   645     "do not manually edit this - the painter/builder may not be able to
       
   646      handle the specification if its corrupted."
       
   647 
       
   648     "
       
   649      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationLayoutFrame
       
   650      UIPropertyView::Dimension new openInterface:#specificationLayoutFrame
       
   651     "
       
   652 
       
   653     <resource: #canvas>
       
   654 
       
   655     ^
       
   656 
       
   657        #(#FullSpec
       
   658           #'window:' 
       
   659            #(#WindowSpec
       
   660               #'name:' 'uIPainterView'
       
   661               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
   662               #'label:' 'unnamed'
       
   663               #'bounds:' #(#Rectangle 0 0 238 291)
       
   664           )
       
   665           #'component:' 
       
   666            #(#SpecCollection
       
   667               #'collection:' 
       
   668                #(
       
   669                  #(#LabelSpec
       
   670                     #'name:' 'label left'
       
   671                     #'layout:' #(#AlignmentOrigin 60 0 43 0 1 0)
       
   672                     #'label:' 'left'
       
   673                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   674                     #'level:' 0
       
   675                     #'adjust:' #center
       
   676                     #'hasCharacterOrientedLabel:' true
       
   677                 )
       
   678                  #(#LabelSpec
       
   679                     #'name:' 'label top'
       
   680                     #'layout:' #(#AlignmentOrigin 60 0 71 0 1 0)
       
   681                     #'label:' 'top'
       
   682                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   683                     #'level:' 0
       
   684                     #'adjust:' #center
       
   685                     #'hasCharacterOrientedLabel:' true
       
   686                 )
       
   687                  #(#LabelSpec
       
   688                     #'name:' 'label right'
       
   689                     #'layout:' #(#AlignmentOrigin 60 0 99 0 1 0)
       
   690                     #'label:' 'right'
       
   691                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   692                     #'level:' 0
       
   693                     #'adjust:' #center
       
   694                     #'hasCharacterOrientedLabel:' true
       
   695                 )
       
   696                  #(#LabelSpec
       
   697                     #'name:' 'label bottom'
       
   698                     #'layout:' #(#AlignmentOrigin 60 0 127 0 1 0)
       
   699                     #'label:' 'bottom'
       
   700                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   701                     #'level:' 0
       
   702                     #'adjust:' #center
       
   703                     #'hasCharacterOrientedLabel:' true
       
   704                 )
       
   705                  #(#LabelSpec
       
   706                     #'name:' 'label relative'
       
   707                     #'layout:' #(#Point 65 14)
       
   708                     #'label:' 'relative'
       
   709                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   710                     #'level:' 0
       
   711                     #'adjust:' #center
       
   712                     #'hasCharacterOrientedLabel:' true
       
   713                 )
       
   714                  #(#LabelSpec
       
   715                     #'name:' 'label offset'
       
   716                     #'layout:' #(#Point 159 14)
       
   717                     #'label:' 'offset'
       
   718                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   719                     #'level:' 0
       
   720                     #'adjust:' #center
       
   721                     #'hasCharacterOrientedLabel:' true
       
   722                 )
       
   723                  #(#LabelSpec
       
   724                     #'name:' 'label all relative'
       
   725                     #'layout:' #(#AlignmentOrigin 60 0 161 0 1 0)
       
   726                     #'label:' 'all'
       
   727                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   728                     #'level:' 0
       
   729                     #'adjust:' #center
       
   730                     #'hasCharacterOrientedLabel:' true
       
   731                 )
       
   732                  #(#InputFieldSpec
       
   733                     #'name:' 'relative E1'
       
   734                     #'layout:' #(#LayoutFrame 65 0 43 0 113 0 61 0)
       
   735                     #'model:' #leftFraction
       
   736                     #'type:' #numberOrNil
       
   737                     #'immediateAccept:' true
       
   738                     #'acceptOnLeave:' true
       
   739                     #'acceptOnReturn:' true
       
   740                     #'acceptOnTab:' true
       
   741                     #'acceptOnLostFocus:' true
       
   742                     #'hasBorder:' false
       
   743                 )
       
   744                  #(#InputFieldSpec
       
   745                     #'name:' 'relative E2'
       
   746                     #'layout:' #(#LayoutFrame 65 0 71 0 113 0 89 0)
       
   747                     #'model:' #topFraction
       
   748                     #'type:' #numberOrNil
       
   749                     #'immediateAccept:' true
       
   750                     #'acceptOnLeave:' true
       
   751                     #'acceptOnReturn:' true
       
   752                     #'acceptOnTab:' true
       
   753                     #'acceptOnLostFocus:' true
       
   754                     #'hasBorder:' false
       
   755                 )
       
   756                  #(#InputFieldSpec
       
   757                     #'name:' 'relative E3'
       
   758                     #'layout:' #(#LayoutFrame 65 0 99 0 113 0 117 0)
       
   759                     #'model:' #rightFraction
       
   760                     #'type:' #numberOrNil
       
   761                     #'immediateAccept:' true
       
   762                     #'acceptOnLeave:' true
       
   763                     #'acceptOnReturn:' true
       
   764                     #'acceptOnTab:' true
       
   765                     #'acceptOnLostFocus:' true
       
   766                     #'hasBorder:' false
       
   767                 )
       
   768                  #(#InputFieldSpec
       
   769                     #'name:' 'relative E4'
       
   770                     #'layout:' #(#LayoutFrame 65 0 127 0 113 0 145 0)
       
   771                     #'model:' #bottomFraction
       
   772                     #'type:' #numberOrNil
       
   773                     #'immediateAccept:' true
       
   774                     #'acceptOnLeave:' true
       
   775                     #'acceptOnReturn:' true
       
   776                     #'acceptOnTab:' true
       
   777                     #'acceptOnLostFocus:' true
       
   778                     #'hasBorder:' false
       
   779                 )
       
   780                  #(#InputFieldSpec
       
   781                     #'name:' 'offset E1'
       
   782                     #'layout:' #(#LayoutFrame 159 0 43 0 210 0 61 0)
       
   783                     #'model:' #leftOffset
       
   784                     #'type:' #numberOrNil
       
   785                     #'immediateAccept:' true
       
   786                     #'acceptOnLeave:' true
       
   787                     #'acceptOnReturn:' true
       
   788                     #'acceptOnTab:' true
       
   789                     #'acceptOnLostFocus:' true
       
   790                     #'hasBorder:' false
       
   791                 )
       
   792                  #(#InputFieldSpec
       
   793                     #'name:' 'offset E2'
       
   794                     #'layout:' #(#LayoutFrame 159 0 71 0 210 0 89 0)
       
   795                     #'model:' #topOffset
       
   796                     #'type:' #numberOrNil
       
   797                     #'immediateAccept:' true
       
   798                     #'acceptOnLeave:' true
       
   799                     #'acceptOnReturn:' true
       
   800                     #'acceptOnTab:' true
       
   801                     #'acceptOnLostFocus:' true
       
   802                     #'hasBorder:' false
       
   803                 )
       
   804                  #(#InputFieldSpec
       
   805                     #'name:' 'offset E3'
       
   806                     #'layout:' #(#LayoutFrame 159 0 99 0 210 0 117 0)
       
   807                     #'model:' #rightOffset
       
   808                     #'type:' #numberOrNil
       
   809                     #'immediateAccept:' true
       
   810                     #'acceptOnLeave:' true
       
   811                     #'acceptOnReturn:' true
       
   812                     #'acceptOnTab:' true
       
   813                     #'acceptOnLostFocus:' true
       
   814                     #'hasBorder:' false
       
   815                 )
       
   816                  #(#InputFieldSpec
       
   817                     #'name:' 'offset E4'
       
   818                     #'layout:' #(#LayoutFrame 159 0 127 0 210 0 145 0)
       
   819                     #'model:' #bottomOffset
       
   820                     #'type:' #numberOrNil
       
   821                     #'immediateAccept:' true
       
   822                     #'acceptOnLeave:' true
       
   823                     #'acceptOnReturn:' true
       
   824                     #'acceptOnTab:' true
       
   825                     #'acceptOnLostFocus:' true
       
   826                     #'hasBorder:' false
       
   827                 )
       
   828                  #(#ActionButtonSpec
       
   829                     #'name:' 'relative B1'
       
   830                     #'layout:' #(#LayoutFrame 117 0 43 0 136 0 61 0)
       
   831                     #'label:' ' '
       
   832                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   833                     #'model:' #makeRelativeLeft
       
   834                     #'isTriggerOnDown:' false
       
   835                     #'autoRepeat:' false
       
   836                 )
       
   837                  #(#ActionButtonSpec
       
   838                     #'name:' 'relative B2'
       
   839                     #'layout:' #(#LayoutFrame 117 0 71 0 136 0 89 0)
       
   840                     #'label:' ' '
       
   841                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   842                     #'model:' #makeRelativeTop
       
   843                     #'isTriggerOnDown:' false
       
   844                     #'autoRepeat:' false
       
   845                 )
       
   846                  #(#ActionButtonSpec
       
   847                     #'name:' 'relative B3'
       
   848                     #'layout:' #(#LayoutFrame 117 0 99 0 136 0 117 0)
       
   849                     #'label:' ' '
       
   850                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   851                     #'model:' #makeRelativeRight
       
   852                     #'isTriggerOnDown:' false
       
   853                     #'autoRepeat:' false
       
   854                 )
       
   855                  #(#ActionButtonSpec
       
   856                     #'name:' 'relative B4'
       
   857                     #'layout:' #(#LayoutFrame 117 0 127 0 136 0 145 0)
       
   858                     #'label:' ' '
       
   859                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   860                     #'model:' #makeRelativeBottom
       
   861                     #'isTriggerOnDown:' false
       
   862                     #'autoRepeat:' false
       
   863                 )
       
   864                  #(#ActionButtonSpec
       
   865                     #'name:' 'relative BAll'
       
   866                     #'layout:' #(#LayoutFrame 117 0 161 0 136 0 179 0)
       
   867                     #'label:' ' '
       
   868                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   869                     #'model:' #makeRelativeAll
       
   870                     #'isTriggerOnDown:' false
       
   871                     #'autoRepeat:' false
       
   872                 )
       
   873                  #(#ActionButtonSpec
       
   874                     #'name:' 'offset B1'
       
   875                     #'layout:' #(#LayoutFrame 214 0 43 0 233 0 61 0)
       
   876                     #'label:' ''
       
   877                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   878                     #'model:' #makeOffsetLeft
       
   879                     #'isTriggerOnDown:' false
       
   880                     #'autoRepeat:' false
       
   881                 )
       
   882                  #(#ActionButtonSpec
       
   883                     #'name:' 'offset B2'
       
   884                     #'layout:' #(#LayoutFrame 214 0 71 0 233 0 89 0)
       
   885                     #'label:' ''
       
   886                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   887                     #'model:' #makeOffsetTop
       
   888                     #'isTriggerOnDown:' false
       
   889                     #'autoRepeat:' false
       
   890                 )
       
   891                  #(#ActionButtonSpec
       
   892                     #'name:' 'offset B3'
       
   893                     #'layout:' #(#LayoutFrame 214 0 99 0 233 0 117 0)
       
   894                     #'label:' ''
       
   895                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   896                     #'model:' #makeOffsetRight
       
   897                     #'isTriggerOnDown:' false
       
   898                     #'autoRepeat:' false
       
   899                 )
       
   900                  #(#ActionButtonSpec
       
   901                     #'name:' 'offset B4'
       
   902                     #'layout:' #(#LayoutFrame 214 0 127 0 233 0 145 0)
       
   903                     #'label:' ''
       
   904                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   905                     #'model:' #makeOffsetBottom
       
   906                     #'isTriggerOnDown:' false
       
   907                     #'autoRepeat:' false
       
   908                 )
       
   909                  #(#ActionButtonSpec
       
   910                     #'name:' 'offset BAll'
       
   911                     #'layout:' #(#LayoutFrame 214 0 161 0 233 0 179 0)
       
   912                     #'label:' ' '
       
   913                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   914                     #'model:' #makeOffsetAll
       
   915                     #'isTriggerOnDown:' false
       
   916                     #'autoRepeat:' false
       
   917                 )
       
   918               )
       
   919           )
       
   920       )
       
   921 
       
   922 !
       
   923 
       
   924 specificationLayoutOrigin
       
   925     "this window spec was automatically generated by the ST/X UIPainter"
       
   926 
       
   927     "do not manually edit this - the painter/builder may not be able to
       
   928      handle the specification if its corrupted."
       
   929 
       
   930     "
       
   931      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationLayoutOrigin
       
   932      UIPropertyView::Dimension new openInterface:#specificationLayoutOrigin
       
   933     "
       
   934 
       
   935     <resource: #canvas>
       
   936 
       
   937     ^
       
   938 
       
   939        #(#FullSpec
       
   940           #'window:' 
       
   941            #(#WindowSpec
       
   942               #'name:' 'uIPainterView'
       
   943               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
   944               #'label:' 'unnamed'
       
   945               #'bounds:' #(#Rectangle 0 0 238 303)
       
   946           )
       
   947           #'component:' 
       
   948            #(#SpecCollection
       
   949               #'collection:' 
       
   950                #(
       
   951                  #(#LabelSpec
       
   952                     #'name:' 'label1'
       
   953                     #'layout:' #(#AlignmentOrigin 52 0 44 0 1 0)
       
   954                     #'label:' 'left'
       
   955                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   956                     #'level:' 0
       
   957                     #'adjust:' #center
       
   958                     #'hasCharacterOrientedLabel:' true
       
   959                 )
       
   960                  #(#LabelSpec
       
   961                     #'name:' 'label2'
       
   962                     #'layout:' #(#AlignmentOrigin 52 0 71 0 1 0)
       
   963                     #'label:' 'top'
       
   964                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   965                     #'level:' 0
       
   966                     #'adjust:' #center
       
   967                     #'hasCharacterOrientedLabel:' true
       
   968                 )
       
   969                  #(#LabelSpec
       
   970                     #'name:' 'label3'
       
   971                     #'layout:' #(#Point 57 12)
       
   972                     #'label:' 'relative'
       
   973                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   974                     #'level:' 0
       
   975                     #'adjust:' #center
       
   976                     #'hasCharacterOrientedLabel:' true
       
   977                 )
       
   978                  #(#LabelSpec
       
   979                     #'name:' 'label4'
       
   980                     #'layout:' #(#Point 154 13)
       
   981                     #'label:' 'offset'
       
   982                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
   983                     #'level:' 0
       
   984                     #'adjust:' #center
       
   985                     #'hasCharacterOrientedLabel:' true
       
   986                 )
       
   987                  #(#InputFieldSpec
       
   988                     #'name:' 'editField1'
       
   989                     #'layout:' #(#LayoutFrame 57 0 44 0 114 0 62 0)
       
   990                     #'model:' #leftFraction
       
   991                     #'tabable:' true
       
   992                     #'type:' #numberOrNil
       
   993                     #'immediateAccept:' true
       
   994                     #'acceptOnLeave:' true
       
   995                     #'acceptOnReturn:' true
       
   996                     #'acceptOnTab:' true
       
   997                     #'acceptOnLostFocus:' true
       
   998                     #'hasBorder:' false
       
   999                 )
       
  1000                  #(#InputFieldSpec
       
  1001                     #'name:' 'editField2'
       
  1002                     #'layout:' #(#LayoutFrame 57 0 71 0 114 0 89 0)
       
  1003                     #'model:' #topFraction
       
  1004                     #'tabable:' true
       
  1005                     #'type:' #numberOrNil
       
  1006                     #'immediateAccept:' true
       
  1007                     #'acceptOnLeave:' true
       
  1008                     #'acceptOnReturn:' true
       
  1009                     #'acceptOnTab:' true
       
  1010                     #'acceptOnLostFocus:' true
       
  1011                     #'hasBorder:' false
       
  1012                 )
       
  1013                  #(#InputFieldSpec
       
  1014                     #'name:' 'editField3'
       
  1015                     #'layout:' #(#LayoutFrame 154 0 44 0 212 0 62 0)
       
  1016                     #'model:' #leftOffset
       
  1017                     #'tabable:' true
       
  1018                     #'type:' #numberOrNil
       
  1019                     #'immediateAccept:' true
       
  1020                     #'acceptOnLeave:' true
       
  1021                     #'acceptOnReturn:' true
       
  1022                     #'acceptOnTab:' true
       
  1023                     #'acceptOnLostFocus:' true
       
  1024                     #'hasBorder:' false
       
  1025                 )
       
  1026                  #(#InputFieldSpec
       
  1027                     #'name:' 'editField4'
       
  1028                     #'layout:' #(#LayoutFrame 154 0 71 0 212 0 89 0)
       
  1029                     #'model:' #topOffset
       
  1030                     #'tabable:' true
       
  1031                     #'type:' #numberOrNil
       
  1032                     #'immediateAccept:' true
       
  1033                     #'acceptOnLeave:' true
       
  1034                     #'acceptOnReturn:' true
       
  1035                     #'acceptOnTab:' true
       
  1036                     #'acceptOnLostFocus:' true
       
  1037                     #'hasBorder:' false
       
  1038                 )
       
  1039                  #(#ActionButtonSpec
       
  1040                     #'name:' 'button1'
       
  1041                     #'layout:' #(#LayoutFrame 119 0 44 0 138 0 62 0)
       
  1042                     #'label:' ''
       
  1043                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1044                     #'model:' #makeRelativeLeft
       
  1045                     #'isTriggerOnDown:' false
       
  1046                     #'autoRepeat:' false
       
  1047                 )
       
  1048                  #(#ActionButtonSpec
       
  1049                     #'name:' 'button2'
       
  1050                     #'layout:' #(#LayoutFrame 119 0 71 0 138 0 89 0)
       
  1051                     #'label:' ''
       
  1052                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1053                     #'model:' #makeRelativeTop
       
  1054                     #'isTriggerOnDown:' false
       
  1055                     #'autoRepeat:' false
       
  1056                 )
       
  1057                  #(#ActionButtonSpec
       
  1058                     #'name:' 'button3'
       
  1059                     #'layout:' #(#LayoutFrame 216 0 44 0 235 0 62 0)
       
  1060                     #'label:' ''
       
  1061                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1062                     #'model:' #makeOffsetLeft
       
  1063                     #'isTriggerOnDown:' false
       
  1064                     #'autoRepeat:' false
       
  1065                 )
       
  1066                  #(#ActionButtonSpec
       
  1067                     #'name:' 'button4'
       
  1068                     #'layout:' #(#LayoutFrame 216 0 71 0 235 0 89 0)
       
  1069                     #'label:' ''
       
  1070                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1071                     #'model:' #makeOffsetTop
       
  1072                     #'isTriggerOnDown:' false
       
  1073                     #'autoRepeat:' false
       
  1074                 )
       
  1075                  #(#ActionButtonSpec
       
  1076                     #'name:' 'button8'
       
  1077                     #'layout:' #(#LayoutFrame 119 0 103 0 138 0 121 0)
       
  1078                     #'label:' ''
       
  1079                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1080                     #'model:' #makeRelativeLeftTop
       
  1081                     #'isTriggerOnDown:' false
       
  1082                     #'autoRepeat:' false
       
  1083                 )
       
  1084                  #(#ActionButtonSpec
       
  1085                     #'name:' 'button9'
       
  1086                     #'layout:' #(#LayoutFrame 216 0 103 0 235 0 121 0)
       
  1087                     #'label:' ''
       
  1088                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1089                     #'model:' #makeOffsetLeftTop
       
  1090                     #'isTriggerOnDown:' false
       
  1091                     #'autoRepeat:' false
       
  1092                 )
       
  1093                  #(#LabelSpec
       
  1094                     #'name:' 'label5'
       
  1095                     #'layout:' #(#AlignmentOrigin 52 0 103 0 1 0)
       
  1096                     #'label:' 'all'
       
  1097                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1098                     #'level:' 0
       
  1099                     #'adjust:' #center
       
  1100                     #'hasCharacterOrientedLabel:' true
       
  1101                 )
       
  1102               )
       
  1103           )
       
  1104       )
       
  1105 
       
  1106 !
       
  1107 
       
  1108 specificationPoint
       
  1109     "this window spec was automatically generated by the ST/X UIPainter"
       
  1110 
       
  1111     "do not manually edit this - the painter/builder may not be able to
       
  1112      handle the specification if its corrupted."
       
  1113 
       
  1114     "
       
  1115      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationPoint
       
  1116      UIPropertyView::Dimension new openInterface:#specificationPoint
       
  1117     "
       
  1118 
       
  1119     <resource: #canvas>
       
  1120 
       
  1121     ^
       
  1122 
       
  1123        #(#FullSpec
       
  1124           #'window:' 
       
  1125            #(#WindowSpec
       
  1126               #'name:' 'uIPainterView'
       
  1127               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
  1128               #'label:' 'unnamed'
       
  1129               #'bounds:' #(#Rectangle 0 0 238 303)
       
  1130           )
       
  1131           #'component:' 
       
  1132            #(#SpecCollection
       
  1133               #'collection:' 
       
  1134                #(
       
  1135                  #(#LabelSpec
       
  1136                     #'name:' 'label1'
       
  1137                     #'layout:' #(#AlignmentOrigin 75 0 19 0 1 0)
       
  1138                     #'label:' 'origin x:'
       
  1139                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1140                     #'level:' 0
       
  1141                     #'adjust:' #center
       
  1142                     #'hasCharacterOrientedLabel:' true
       
  1143                 )
       
  1144                  #(#LabelSpec
       
  1145                     #'name:' 'label2'
       
  1146                     #'layout:' #(#AlignmentOrigin 75 0 46 0 1 0)
       
  1147                     #'label:' 'origin y:'
       
  1148                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1149                     #'level:' 0
       
  1150                     #'adjust:' #center
       
  1151                     #'hasCharacterOrientedLabel:' true
       
  1152                 )
       
  1153                  #(#InputFieldSpec
       
  1154                     #'name:' 'editField1'
       
  1155                     #'layout:' #(#LayoutFrame 77 0 19 0 170 0 37 0)
       
  1156                     #'model:' #absLeft
       
  1157                     #'tabable:' true
       
  1158                     #'type:' #numberOrNil
       
  1159                     #'immediateAccept:' true
       
  1160                     #'acceptOnLeave:' true
       
  1161                     #'acceptOnReturn:' true
       
  1162                     #'acceptOnTab:' true
       
  1163                     #'acceptOnLostFocus:' true
       
  1164                     #'hasBorder:' false
       
  1165                 )
       
  1166                  #(#InputFieldSpec
       
  1167                     #'name:' 'editField2'
       
  1168                     #'layout:' #(#LayoutFrame 77 0 46 0 170 0 64 0)
       
  1169                     #'model:' #absTop
       
  1170                     #'tabable:' true
       
  1171                     #'type:' #numberOrNil
       
  1172                     #'immediateAccept:' true
       
  1173                     #'acceptOnLeave:' true
       
  1174                     #'acceptOnReturn:' true
       
  1175                     #'acceptOnTab:' true
       
  1176                     #'acceptOnLostFocus:' true
       
  1177                     #'hasBorder:' false
       
  1178                 )
       
  1179               )
       
  1180           )
       
  1181       )
       
  1182 
       
  1183 !
       
  1184 
       
  1185 specificationRectangle
       
  1186     "this window spec was automatically generated by the ST/X UIPainter"
       
  1187 
       
  1188     "do not manually edit this - the painter/builder may not be able to
       
  1189      handle the specification if its corrupted."
       
  1190 
       
  1191     "
       
  1192      UIPainter new openOnClass:UIPropertyView::Dimension andSelector:#specificationRectangle
       
  1193      UIPropertyView::Dimension new openInterface:#specificationRectangle
       
  1194     "
       
  1195 
       
  1196     <resource: #canvas>
       
  1197 
       
  1198     ^
       
  1199 
       
  1200        #(#FullSpec
       
  1201           #'window:' 
       
  1202            #(#WindowSpec
       
  1203               #'name:' 'uIPainterView'
       
  1204               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
       
  1205               #'label:' 'unnamed'
       
  1206               #'bounds:' #(#Rectangle 0 0 238 303)
       
  1207           )
       
  1208           #'component:' 
       
  1209            #(#SpecCollection
       
  1210               #'collection:' 
       
  1211                #(
       
  1212                  #(#LabelSpec
       
  1213                     #'name:' 'label1'
       
  1214                     #'layout:' #(#AlignmentOrigin 80 0 19 0 1 0)
       
  1215                     #'label:' 'origin x:'
       
  1216                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1217                     #'level:' 0
       
  1218                     #'adjust:' #left
       
  1219                     #'hasCharacterOrientedLabel:' true
       
  1220                 )
       
  1221                  #(#LabelSpec
       
  1222                     #'name:' 'label2'
       
  1223                     #'layout:' #(#AlignmentOrigin 80 0 46 0 1 0)
       
  1224                     #'label:' 'origin y:'
       
  1225                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1226                     #'level:' 0
       
  1227                     #'adjust:' #left
       
  1228                     #'hasCharacterOrientedLabel:' true
       
  1229                 )
       
  1230                  #(#InputFieldSpec
       
  1231                     #'name:' 'editField1'
       
  1232                     #'layout:' #(#LayoutFrame 81 0 19 0 174 0 37 0)
       
  1233                     #'model:' #leftOffset
       
  1234                     #'tabable:' true
       
  1235                     #'type:' #numberOrNil
       
  1236                     #'immediateAccept:' true
       
  1237                     #'acceptOnLeave:' true
       
  1238                     #'acceptOnReturn:' true
       
  1239                     #'acceptOnTab:' true
       
  1240                     #'acceptOnLostFocus:' true
       
  1241                     #'hasBorder:' false
       
  1242                 )
       
  1243                  #(#InputFieldSpec
       
  1244                     #'name:' 'editField2'
       
  1245                     #'layout:' #(#LayoutFrame 81 0 46 0 174 0 64 0)
       
  1246                     #'model:' #topOffset
       
  1247                     #'tabable:' true
       
  1248                     #'type:' #numberOrNil
       
  1249                     #'immediateAccept:' true
       
  1250                     #'acceptOnLeave:' true
       
  1251                     #'acceptOnReturn:' true
       
  1252                     #'acceptOnTab:' true
       
  1253                     #'acceptOnLostFocus:' true
       
  1254                     #'hasBorder:' false
       
  1255                 )
       
  1256                  #(#LabelSpec
       
  1257                     #'name:' 'label4'
       
  1258                     #'layout:' #(#AlignmentOrigin 80 0 74 0 1 0)
       
  1259                     #'label:' 'corner x:'
       
  1260                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1261                     #'level:' 0
       
  1262                     #'adjust:' #left
       
  1263                     #'hasCharacterOrientedLabel:' true
       
  1264                 )
       
  1265                  #(#LabelSpec
       
  1266                     #'name:' 'label5'
       
  1267                     #'layout:' #(#AlignmentOrigin 80 0 101 0 1 0)
       
  1268                     #'label:' 'corner y:'
       
  1269                     #'backgroundColor:' #(#Color 66.9993 66.9993 66.9993)
       
  1270                     #'level:' 0
       
  1271                     #'adjust:' #left
       
  1272                     #'hasCharacterOrientedLabel:' true
       
  1273                 )
       
  1274                  #(#InputFieldSpec
       
  1275                     #'name:' 'editField3'
       
  1276                     #'layout:' #(#LayoutFrame 81 0 74 0 174 0 92 0)
       
  1277                     #'model:' #rightOffset
       
  1278                     #'tabable:' true
       
  1279                     #'type:' #numberOrNil
       
  1280                     #'immediateAccept:' true
       
  1281                     #'acceptOnLeave:' true
       
  1282                     #'acceptOnReturn:' true
       
  1283                     #'acceptOnTab:' true
       
  1284                     #'acceptOnLostFocus:' true
       
  1285                     #'hasBorder:' false
       
  1286                 )
       
  1287                  #(#InputFieldSpec
       
  1288                     #'name:' 'editField4'
       
  1289                     #'layout:' #(#LayoutFrame 81 0 101 0 174 0 119 0)
       
  1290                     #'model:' #bottomOffset
       
  1291                     #'tabable:' true
       
  1292                     #'type:' #numberOrNil
       
  1293                     #'immediateAccept:' true
       
  1294                     #'acceptOnLeave:' true
       
  1295                     #'acceptOnReturn:' true
       
  1296                     #'acceptOnTab:' true
       
  1297                     #'acceptOnLostFocus:' true
       
  1298                     #'hasBorder:' false
       
  1299                 )
       
  1300               )
       
  1301           )
       
  1302       )
       
  1303 
       
  1304 ! !
       
  1305 
       
  1306 !UIPropertyView::Dimension methodsFor:'accessing'!
       
  1307 
       
  1308 forView:aView
       
  1309     "set the view the layout derives from
       
  1310     "
       
  1311     forView := aView.
       
  1312     self selection:(UIPainterView layoutType:forView).
       
  1313 !
       
  1314 
       
  1315 layout
       
  1316     "returns current layout
       
  1317     "
       
  1318     |layout|
       
  1319 
       
  1320     selection notNil ifTrue:[
       
  1321         layout := self perform:(('get', selection asString) asSymbol).
       
  1322     ].
       
  1323     ^ layout
       
  1324 !
       
  1325 
       
  1326 layoutType
       
  1327     "returns current layoutType
       
  1328     "
       
  1329     ^ selection
       
  1330 ! !
       
  1331 
       
  1332 !UIPropertyView::Dimension methodsFor:'accessing hierarchy'!
       
  1333 
       
  1334 window
       
  1335     ^ noteBook
       
  1336 
       
  1337 
       
  1338 ! !
       
  1339 
       
  1340 !UIPropertyView::Dimension methodsFor:'initialization'!
       
  1341 
       
  1342 initialize
       
  1343     "initialize channels
       
  1344     "
       
  1345     |layoutAspects|
       
  1346 
       
  1347     super initialize.
       
  1348 
       
  1349     layoutAspects := IdentityDictionary new.
       
  1350 
       
  1351     #(  bottomFraction          bottomOffset
       
  1352         leftFraction            leftOffset
       
  1353         topFraction             topOffset
       
  1354         rightFraction           rightOffset
       
  1355         leftAlignmentFraction   topAlignmentFraction
       
  1356         absLeft                 absTop               
       
  1357     )
       
  1358     do:[:aKey|
       
  1359         layoutAspects at:aKey put:(ValueHolder new)
       
  1360     ].
       
  1361     self aspects:layoutAspects.
       
  1362 
       
  1363 
       
  1364 !
       
  1365 
       
  1366 origin:anOrigin corner:aCorner in:aTopView
       
  1367     "set dimensions
       
  1368     "
       
  1369     noteBook := NoteBookView origin:anOrigin corner:aCorner in:aTopView.
       
  1370     window   := noteBook canvas.
       
  1371 
       
  1372     noteBook direction:#bottom.
       
  1373     noteBook useIndex:true.
       
  1374     layoutTypes := #( #LayoutFrame #AlignmentOrigin #LayoutOrigin #Point #Rectangle ).     
       
  1375     noteBook list:#( 'Frame' 'Alig.Origin' 'LayoutOrigin' 'Point' 'Rectangle' ).
       
  1376 
       
  1377     noteBook action:[:anIndex|
       
  1378         anIndex notNil ifTrue:[self selection:(layoutTypes at:anIndex)].
       
  1379     ].
       
  1380 
       
  1381 ! !
       
  1382 
       
  1383 !UIPropertyView::Dimension methodsFor:'layout access'!
       
  1384 
       
  1385 getAlignmentOrigin
       
  1386     "returns current layout as alignmentOrigin
       
  1387     "
       
  1388     |layout|
       
  1389 
       
  1390     layout  := AlignmentOrigin new.
       
  1391 
       
  1392     layout   leftOffset:((aspects at:#leftOffset)   value) ? 0.
       
  1393     layout    topOffset:((aspects at:#topOffset)    value) ? 0.
       
  1394     layout leftFraction:((aspects at:#leftFraction) value) ? 0.
       
  1395     layout  topFraction:((aspects at:#topFraction)  value) ? 0.
       
  1396 
       
  1397     layout leftAlignmentFraction:((aspects at:#leftAlignmentFraction) value) ? 0.
       
  1398     layout  topAlignmentFraction:((aspects at:#topAlignmentFraction)  value) ? 0.
       
  1399 
       
  1400   ^ layout
       
  1401 !
       
  1402 
       
  1403 getExtent
       
  1404     "returns current extent
       
  1405     "
       
  1406   ^ Point x:(((aspects at:#leftOffset)   value) ? 0)
       
  1407           y:(((aspects at:#rightOffset)  value) ? 0)
       
  1408 !
       
  1409 
       
  1410 getLayoutFrame
       
  1411     "returns current layout as layoutFrame
       
  1412     "
       
  1413     |layout|
       
  1414 
       
  1415     layout  := LayoutFrame new.
       
  1416 
       
  1417     layout     leftOffset:((aspects at:#leftOffset)     value) ? 0.
       
  1418     layout    rightOffset:((aspects at:#rightOffset)    value) ? 0.
       
  1419     layout      topOffset:((aspects at:#topOffset)      value) ? 0.
       
  1420     layout   bottomOffset:((aspects at:#bottomOffset)   value) ? 0.
       
  1421     layout   leftFraction:((aspects at:#leftFraction)   value) ? 0.
       
  1422     layout  rightFraction:((aspects at:#rightFraction)  value) ? 0.
       
  1423     layout    topFraction:((aspects at:#topFraction)    value) ? 0.
       
  1424     layout bottomFraction:((aspects at:#bottomFraction) value) ? 0.
       
  1425 
       
  1426   ^ layout
       
  1427 !
       
  1428 
       
  1429 getLayoutOrigin
       
  1430     "returns current layout as layoutOrigin
       
  1431     "
       
  1432     |layout|
       
  1433 
       
  1434     layout  := LayoutOrigin new.
       
  1435 
       
  1436     layout   leftOffset:((aspects at:#leftOffset)   value) ? 0.
       
  1437     layout    topOffset:((aspects at:#topOffset)    value) ? 0.
       
  1438     layout leftFraction:((aspects at:#leftFraction) value) ? 0.
       
  1439     layout  topFraction:((aspects at:#topFraction)  value) ? 0.
       
  1440 
       
  1441   ^ layout
       
  1442 !
       
  1443 
       
  1444 getPoint
       
  1445     "returns current layout as point
       
  1446     "
       
  1447   ^ Point x:(((aspects at:#absLeft) value) ? 0)
       
  1448           y:(((aspects at:#absTop)  value) ? 0)
       
  1449 !
       
  1450 
       
  1451 getRectangle
       
  1452     "returns current layout as rectangle
       
  1453     "
       
  1454   ^ Rectangle left:(((aspects at:#leftOffset)   value) ? 0)
       
  1455                top:(((aspects at:#topOffset)    value) ? 0)
       
  1456              right:(((aspects at:#rightOffset)  value) ? 0)
       
  1457             bottom:(((aspects at:#bottomOffset) value) ? 0)
       
  1458 ! !
       
  1459 
       
  1460 !UIPropertyView::Dimension methodsFor:'layout fetch'!
       
  1461 
       
  1462 fetchAlignmentOrigin
       
  1463     "fetch alignmentOrigin
       
  1464     "
       
  1465     |layout type extent|
       
  1466 
       
  1467     type    := UIPainterView layoutType:forView.
       
  1468     layout  := forView geometryLayout.
       
  1469 
       
  1470     layout isLayout ifTrue:[
       
  1471         (aspects at:#leftOffset)   value:(layout leftOffset).
       
  1472         (aspects at:#leftFraction) value:(layout leftFraction).
       
  1473         (aspects at:#topOffset)    value:(layout topOffset).
       
  1474         (aspects at:#topFraction)  value:(layout topFraction).
       
  1475 
       
  1476         type == #AlignmentOrigin ifTrue:[
       
  1477             (aspects at:#leftAlignmentFraction) value:(layout leftAlignmentFraction).
       
  1478             (aspects at:#topAlignmentFraction)  value:(layout topAlignmentFraction).
       
  1479           ^ self
       
  1480         ]
       
  1481     ] ifFalse:[
       
  1482         layout := forView computeOrigin.
       
  1483 
       
  1484         (aspects at:#leftOffset)   value:(layout x).
       
  1485         (aspects at:#leftFraction) value:0.
       
  1486         (aspects at:#topOffset)    value:(layout y).
       
  1487         (aspects at:#topFraction)  value:0.
       
  1488     ].
       
  1489     (aspects at:#leftAlignmentFraction) value:0.
       
  1490     (aspects at:#topAlignmentFraction)  value:0.
       
  1491 !
       
  1492 
       
  1493 fetchExtent
       
  1494     "fetch extent
       
  1495     "
       
  1496     |extent|
       
  1497 
       
  1498     extent  := forView computeExtent.
       
  1499 
       
  1500     (aspects at:#leftOffset)  value:(extent x).
       
  1501     (aspects at:#rightOffset) value:(extent y).
       
  1502 
       
  1503 !
       
  1504 
       
  1505 fetchLayoutFrame
       
  1506     "fetch layoutFrame
       
  1507     "
       
  1508     |layout|
       
  1509 
       
  1510     layout  := UIPainterView asLayoutFrameFromView:forView.
       
  1511 
       
  1512     (aspects at:#leftOffset)     value:(layout leftOffset).
       
  1513     (aspects at:#leftFraction)   value:(layout leftFraction).
       
  1514     (aspects at:#topOffset)      value:(layout topOffset).
       
  1515     (aspects at:#topFraction)    value:(layout topFraction).
       
  1516     (aspects at:#rightOffset)    value:(layout rightOffset).
       
  1517     (aspects at:#bottomOffset)   value:(layout bottomOffset).
       
  1518     (aspects at:#rightFraction)  value:(layout rightFraction).
       
  1519     (aspects at:#bottomFraction) value:(layout bottomFraction).
       
  1520 !
       
  1521 
       
  1522 fetchLayoutOrigin
       
  1523     "fetch layoutOrigin
       
  1524     "
       
  1525     |layout|
       
  1526 
       
  1527     layout  := UIPainterView asLayoutFrameFromView:forView.
       
  1528 
       
  1529     (aspects at:#leftOffset)   value:(layout leftOffset).
       
  1530     (aspects at:#leftFraction) value:(layout leftFraction).
       
  1531     (aspects at:#topOffset)    value:(layout topOffset).
       
  1532     (aspects at:#topFraction)  value:(layout topFraction).
       
  1533 !
       
  1534 
       
  1535 fetchPoint
       
  1536     "fetch point
       
  1537     "
       
  1538     |origin|
       
  1539 
       
  1540     origin  := forView computeOrigin.
       
  1541 
       
  1542     (aspects at:#absLeft) value:(origin x).
       
  1543     (aspects at:#absTop)  value:(origin y).
       
  1544 
       
  1545 !
       
  1546 
       
  1547 fetchRectangle
       
  1548     "fetch rectangle
       
  1549     "
       
  1550     |origin corner|
       
  1551 
       
  1552     origin  := forView computeOrigin.
       
  1553     corner  := forView computeCorner.
       
  1554 
       
  1555     (aspects at:#leftOffset)   value:(origin x).
       
  1556     (aspects at:#rightOffset)  value:(corner x).
       
  1557     (aspects at:#topOffset)    value:(origin y).
       
  1558     (aspects at:#bottomOffset) value:(corner y).
       
  1559 
       
  1560 ! !
       
  1561 
       
  1562 !UIPropertyView::Dimension methodsFor:'layout make align'!
       
  1563 
       
  1564 makeAlignBottomCenter
       
  1565     self makeAlignLeft:0.5 top:1
       
  1566 
       
  1567 
       
  1568 !
       
  1569 
       
  1570 makeAlignBottomLeft
       
  1571     self makeAlignLeft:0 top:1
       
  1572 
       
  1573 
       
  1574 !
       
  1575 
       
  1576 makeAlignBottomRight
       
  1577     self makeAlignLeft:1 top:1
       
  1578 
       
  1579 
       
  1580 !
       
  1581 
       
  1582 makeAlignCenter
       
  1583     self makeAlignLeft:0.5 top:0.5
       
  1584 
       
  1585 !
       
  1586 
       
  1587 makeAlignLeft:leftAlignmentFraction top:topAlignmentFraction
       
  1588     |lAF tAF lO tO ext|
       
  1589 
       
  1590     lAF     := (aspects at:#leftAlignmentFraction) value ? 0.
       
  1591     tAF     := (aspects at:#topAlignmentFraction)  value ? 0.
       
  1592     ext     := forView computeExtent.
       
  1593 
       
  1594     (aspects at:#leftAlignmentFraction) value:leftAlignmentFraction.
       
  1595     (aspects at:#topAlignmentFraction)  value:topAlignmentFraction.
       
  1596 
       
  1597     lO := (aspects at:#leftOffset) value ? 0.
       
  1598     tO := (aspects at:#topOffset)  value ? 0.
       
  1599 
       
  1600     lO := lO + (ext x * (leftAlignmentFraction - lAF)).
       
  1601     tO := tO + (ext y * (topAlignmentFraction  - tAF)).
       
  1602 
       
  1603     (aspects at:#leftOffset) value:(lO rounded).
       
  1604     (aspects at:#topOffset)  value:(tO rounded).
       
  1605 !
       
  1606 
       
  1607 makeAlignLeftCenter
       
  1608     self makeAlignLeft:0 top:0.5
       
  1609 
       
  1610 !
       
  1611 
       
  1612 makeAlignRightCenter
       
  1613     self makeAlignLeft:1 top:0.5
       
  1614 
       
  1615 !
       
  1616 
       
  1617 makeAlignTopCenter
       
  1618     self makeAlignLeft:0.5 top:0
       
  1619 
       
  1620 !
       
  1621 
       
  1622 makeAlignTopLeft
       
  1623     self makeAlignLeft:0 top:0
       
  1624 
       
  1625 !
       
  1626 
       
  1627 makeAlignTopRight
       
  1628     self makeAlignLeft:1 top:0
       
  1629 
       
  1630 
       
  1631 ! !
       
  1632 
       
  1633 !UIPropertyView::Dimension methodsFor:'layout make relative/absolute'!
       
  1634 
       
  1635 makeLayout:what xOrY:xOrY offset:aBool
       
  1636     |extent fraction offset fractSymb offsetSymb|
       
  1637 
       
  1638     extent     := (forView superView computeExtent) perform:xOrY.
       
  1639     fractSymb  := (what, 'Fraction') asSymbol.
       
  1640     offsetSymb := (what,   'Offset') asSymbol.
       
  1641 
       
  1642     fraction := (aspects at:fractSymb)  value.
       
  1643     offset   := (aspects at:offsetSymb) value.
       
  1644 
       
  1645     aBool ifTrue:[
       
  1646         offset   := offset + ((fraction * extent) asInteger).
       
  1647         fraction := 0.
       
  1648     ] ifFalse:[
       
  1649         fraction   := (fraction + (offset / extent)) asFloat.
       
  1650 
       
  1651         (fraction > 1.0) ifTrue:[ fraction := 1.0 ].
       
  1652         (fraction < 0.0) ifTrue:[ fraction := 0 ].
       
  1653         offset := 0.
       
  1654     ].
       
  1655     (aspects at:offsetSymb) value:offset.
       
  1656     (aspects at:fractSymb)  value:fraction.
       
  1657 !
       
  1658 
       
  1659 makeOffsetAll
       
  1660     self makeOffsetLeft.
       
  1661     self makeOffsetTop.
       
  1662     self makeOffsetRight.
       
  1663     self makeOffsetBottom.
       
  1664 
       
  1665 
       
  1666 !
       
  1667 
       
  1668 makeOffsetBottom
       
  1669     self makeLayout:'bottom' xOrY:#y offset:true.
       
  1670 
       
  1671 
       
  1672 !
       
  1673 
       
  1674 makeOffsetLeft
       
  1675     self makeLayout:'left' xOrY:#x offset:true.
       
  1676 
       
  1677 !
       
  1678 
       
  1679 makeOffsetLeftTop
       
  1680     self makeOffsetLeft.
       
  1681     self makeOffsetTop.
       
  1682 
       
  1683 !
       
  1684 
       
  1685 makeOffsetRight
       
  1686     self makeLayout:'right' xOrY:#x offset:true.
       
  1687 
       
  1688 !
       
  1689 
       
  1690 makeOffsetTop
       
  1691     self makeLayout:'top' xOrY:#y offset:true.
       
  1692 
       
  1693 !
       
  1694 
       
  1695 makeRelativeAll
       
  1696     self makeRelativeLeft.
       
  1697     self makeRelativeTop.
       
  1698     self makeRelativeRight.
       
  1699     self makeRelativeBottom.
       
  1700 
       
  1701 
       
  1702 !
       
  1703 
       
  1704 makeRelativeBottom
       
  1705     self makeLayout:'bottom' xOrY:#y offset:false.
       
  1706 
       
  1707 
       
  1708 !
       
  1709 
       
  1710 makeRelativeLeft
       
  1711     self makeLayout:'left' xOrY:#x offset:false.
       
  1712 
       
  1713 !
       
  1714 
       
  1715 makeRelativeLeftTop
       
  1716     self makeRelativeLeft.
       
  1717     self makeRelativeTop.
       
  1718 
       
  1719 !
       
  1720 
       
  1721 makeRelativeRight
       
  1722     self makeLayout:'right' xOrY:#x offset:false.
       
  1723 
       
  1724 !
       
  1725 
       
  1726 makeRelativeTop
       
  1727     self makeLayout:'top' xOrY:#y offset:false.
       
  1728 
       
  1729 ! !
       
  1730 
       
  1731 !UIPropertyView::Dimension methodsFor:'selection'!
       
  1732 
       
  1733 selection
       
  1734     ^ selection
       
  1735 
       
  1736 !
       
  1737 
       
  1738 selection:aLayoutType
       
  1739     |spec idx|
       
  1740 
       
  1741     selection == aLayoutType ifFalse:[
       
  1742         (selection := aLayoutType) notNil ifTrue:[
       
  1743             self perform:(('fetch',   selection asString) asSymbol).
       
  1744             spec := ('specification', selection asString) asSymbol.
       
  1745             spec := self class perform:spec.
       
  1746         ].
       
  1747         self buildFromSpec:spec.
       
  1748     ].
       
  1749     idx := layoutTypes findFirst:[:type| type == aLayoutType ].
       
  1750     noteBook setSelection:idx.
       
  1751 
       
  1752     selection == aLayoutType ifFalse:[
       
  1753         (selection := aLayoutType) notNil ifTrue:[
       
  1754             self perform:(('fetch',   selection asString) asSymbol).
       
  1755             spec := ('specification', selection asString) asSymbol.
       
  1756             spec := self class perform:spec.
       
  1757         ].
       
  1758         self buildFromSpec:spec.
       
  1759     ].
       
  1760     idx := layoutTypes findFirst:[:type| type == aLayoutType ].
       
  1761     noteBook setSelection:idx.
       
  1762     noteBook enabled:(forView notNil).
       
  1763 
       
  1764 ! !
       
  1765 
  1756 !UIPropertyView class methodsFor:'documentation'!
  1766 !UIPropertyView class methodsFor:'documentation'!
  1757 
  1767 
  1758 version
  1768 version
  1759     ^ '$Header$'
  1769     ^ '$Header$'
  1760 
  1770