VariablePanel.st
changeset 2238 397f5d6d59c5
parent 2236 cd77d04c9a0a
child 2240 c878eeeb676f
equal deleted inserted replaced
2237:43f0318a830e 2238:397f5d6d59c5
  1338 !
  1338 !
  1339 
  1339 
  1340 drawSnapAt:anIndex
  1340 drawSnapAt:anIndex
  1341     "draw the snap for a handle at an index
  1341     "draw the snap for a handle at an index
  1342     "
  1342     "
  1343     |layout icon level paint canChangeExtent
  1343     |layout icon level offLevel paint canChangeExtent
  1344      left   "{ Class:SmallInteger }"
  1344      left   "{ Class:SmallInteger }"
  1345      top    "{ Class:SmallInteger }"
  1345      top    "{ Class:SmallInteger }"
  1346      width  "{ Class:SmallInteger }"
  1346      width  "{ Class:SmallInteger }"
  1347      height "{ Class:SmallInteger }"
  1347      height "{ Class:SmallInteger }"
  1348      snapMode leftEdge wEdge topEdge hEdge part
  1348      snapMode leftEdge wEdge topEdge hEdge part wPart hPart
  1349     |
  1349     |
  1350 
  1350 
  1351     (layout := self snapLayoutAt:anIndex) isNil ifTrue:[
  1351     (layout := self snapLayoutAt:anIndex) isNil ifTrue:[
  1352         "snap disabled"
  1352         "snap disabled"
  1353         ^ self
  1353         ^ self
  1356     left   := layout left.
  1356     left   := layout left.
  1357     top    := layout top.
  1357     top    := layout top.
  1358     width  := layout width.
  1358     width  := layout width.
  1359     height := layout height.
  1359     height := layout height.
  1360     snapMode := self snapMode.
  1360     snapMode := self snapMode.
       
  1361 
       
  1362     offLevel := level := snapAdornment at:#level ifAbsent:0.
  1361 
  1363 
  1362     canChangeExtent := self canChangeExtentOfViewAt:anIndex.
  1364     canChangeExtent := self canChangeExtentOfViewAt:anIndex.
  1363     canChangeExtent ifTrue:[
  1365     canChangeExtent ifTrue:[
  1364         (controller isSnapEntered:anIndex) ifTrue:[
  1366         (controller isSnapEntered:anIndex) ifTrue:[
  1365             controller isSnapPressed ifTrue:[
  1367             controller isSnapPressed ifTrue:[
  1366                 level := #selectedLevel.
  1368                 level := #selectedLevel.
  1367                 paint := #selectedBgColor.
  1369                 paint := #selectedBgColor.
  1368             ] ifFalse:[
  1370             ] ifFalse:[
  1369                 level := #enterLevel.
  1371                 level := #enterLevel.
  1370                 paint := #enterBgColor.
  1372                 paint := #enterBgColor.
  1371             ]
  1373             ].
       
  1374             level := snapAdornment at:level ifAbsent:0.
  1372         ]
  1375         ]
  1373     ].
  1376     ].
  1374     paint notNil ifTrue:[
  1377     paint notNil ifTrue:[
  1375         paint := snapAdornment at:paint ifAbsent:viewBackground
  1378         paint := snapAdornment at:paint ifAbsent:viewBackground
  1376     ] ifFalse:[
  1379     ] ifFalse:[
  1377         paint := viewBackground
  1380         paint := viewBackground
  1378     ].
  1381     ].
  1379     self paint:paint.
  1382     self paint:paint.
       
  1383 
       
  1384     level == 0 ifTrue:[
       
  1385     ].
       
  1386 
  1380     self fillRectangleX:left+1 y:top+1 width:width-2 height:height-2.
  1387     self fillRectangleX:left+1 y:top+1 width:width-2 height:height-2.
  1381 
       
  1382     level := snapAdornment at:(level ? #level) ifAbsent:0.
       
  1383 
  1388 
  1384     level ~~ 0 ifTrue:[
  1389     level ~~ 0 ifTrue:[
  1385         leftEdge := left + 1.
  1390         leftEdge := left + 1.
  1386         wEdge := width - 2.
  1391         wEdge := width - 2.
  1387         topEdge := top + 1.
  1392         topEdge := top + 1.
  1388         hEdge := height - 2.
  1393         hEdge := height - 2.
  1389 
  1394 
       
  1395         orientation == #vertical ifTrue:[
       
  1396             wPart := width // 3.
       
  1397         ] ifFalse:[
       
  1398             hPart := height // 3.
       
  1399         ].
       
  1400 
  1390         level < 0 ifTrue:[
  1401         level < 0 ifTrue:[
  1391             part := (self subViews at:anIndex) objectAttributeAt:#snapPart.
  1402             part := (self subViews at:anIndex) objectAttributeAt:#snapPart.
  1392             part == #left ifTrue:[
  1403             part == #left ifTrue:[
  1393                 self drawEdgesForX:leftEdge y:topEdge width:wEdge height:hEdge level:level negated.
  1404                 self drawEdgesForX:leftEdge y:topEdge width:wEdge height:hEdge level:offLevel.
  1394                 wEdge := width // 3.
  1405                 wEdge := wPart.
  1395             ] ifFalse:[
  1406             ] ifFalse:[
  1396                 part == #middle ifTrue:[
  1407                 part == #middle ifTrue:[
  1397                     self drawEdgesForX:leftEdge y:topEdge width:wEdge height:hEdge level:level negated.
  1408                     self drawEdgesForX:leftEdge y:topEdge width:wEdge height:hEdge level:offLevel.
  1398                     wEdge := width // 3.
  1409                     leftEdge := leftEdge + wPart.
  1399                     leftEdge := leftEdge + wEdge.
  1410                     wEdge := wPart.
  1400                 ] ifFalse:[
  1411                 ] ifFalse:[
  1401                     part == #right ifTrue:[
  1412                     part == #right ifTrue:[
  1402                         self drawEdgesForX:leftEdge y:topEdge width:wEdge height:hEdge level:level negated.
  1413                         self drawEdgesForX:leftEdge y:topEdge width:wEdge height:hEdge level:offLevel.
  1403                         wEdge := width // 3.
  1414                         leftEdge := leftEdge + (width - wPart).
  1404                         leftEdge := leftEdge + (width - wEdge).
  1415                         wEdge := wPart.
  1405                     ]
  1416                     ]
  1406                 ]
  1417                 ]
  1407             ].
  1418             ].
  1408         ].
  1419         ].
  1409         self drawEdgesForX:leftEdge y:topEdge width:wEdge height:hEdge level:level.
  1420         self drawEdgesForX:leftEdge y:topEdge width:wEdge height:hEdge level:level.
  2145 ! !
  2156 ! !
  2146 
  2157 
  2147 !VariablePanel class methodsFor:'documentation'!
  2158 !VariablePanel class methodsFor:'documentation'!
  2148 
  2159 
  2149 version
  2160 version
  2150     ^ '$Header: /cvs/stx/stx/libwidg/VariablePanel.st,v 1.61 2000-08-23 20:54:19 cg Exp $'
  2161     ^ '$Header: /cvs/stx/stx/libwidg/VariablePanel.st,v 1.62 2000-08-25 09:30:03 cg Exp $'
  2151 ! !
  2162 ! !