ScrollableView.st
changeset 1895 caa787828fcb
parent 1870 9bce9ea89db3
child 1904 9f887101f2b0
equal deleted inserted replaced
1894:abf63db59265 1895:caa787828fcb
  1602      vBottomOffs "{ Class: SmallInteger }"
  1602      vBottomOffs "{ Class: SmallInteger }"
  1603      addMargin   "{ Class: SmallInteger }"|
  1603      addMargin   "{ Class: SmallInteger }"|
  1604 
  1604 
  1605     sBd := 0.
  1605     sBd := 0.
  1606     DefaultScrolledViewBorderWidth notNil ifTrue:[
  1606     DefaultScrolledViewBorderWidth notNil ifTrue:[
  1607 	sBd := DefaultScrolledViewBorderWidth.
  1607         sBd := DefaultScrolledViewBorderWidth.
  1608 	scrolledView notNil ifTrue:[
  1608         scrolledView notNil ifTrue:[
  1609 	    scrolledView borderWidth:DefaultScrolledViewBorderWidth.
  1609             scrolledView borderWidth:DefaultScrolledViewBorderWidth.
  1610 	]
  1610         ]
  1611     ] ifFalse:[
  1611     ] ifFalse:[
  1612 	scrolledView notNil ifTrue:[
  1612         scrolledView notNil ifTrue:[
  1613 	    sBd := scrolledView borderWidth
  1613             sBd := scrolledView borderWidth
  1614 	]
  1614         ]
  1615     ].
  1615     ].
  1616 
  1616 
  1617     (hasV := (vScrollBar notNil and:[vScrollBarHidden not])) ifTrue:[
  1617     (hasV := (vScrollBar notNil and:[vScrollBarHidden not])) ifTrue:[
  1618 	vBd := vScrollBar borderWidth.
  1618         vBd := vScrollBar borderWidth.
  1619 	wVScroll := vScrollBar widthIncludingBorder.
  1619         wVScroll := vScrollBar widthIncludingBorder.
  1620     ] ifFalse:[
  1620     ] ifFalse:[
  1621 	vBd := wVScroll := 0.
  1621         vBd := wVScroll := 0.
  1622     ].
  1622     ].
  1623 
  1623 
  1624     (hasH := (hScrollBar notNil and:[hScrollBarHidden not])) ifTrue:[
  1624     (hasH := (hScrollBar notNil and:[hScrollBarHidden not])) ifTrue:[
  1625 	hBd := hScrollBar borderWidth.
  1625         hBd := hScrollBar borderWidth.
  1626 	hHScroll := hScrollBar heightIncludingBorder.
  1626         hHScroll := hScrollBar heightIncludingBorder.
  1627     ] ifFalse:[
  1627     ] ifFalse:[
  1628 	hBd := hHScroll := 0.
  1628         hBd := hHScroll := 0.
  1629     ].
  1629     ].
  1630 
  1630 
  1631     "/ the raw layout ...
  1631     "/ the raw layout ...
  1632 
  1632 
  1633     scrolledViewLayout := ((0.0 @ 0.0) corner:(1.0@1.0)) asLayout.
  1633     scrolledViewLayout := ((0.0 @ 0.0) corner:(1.0@1.0)) asLayout.
  1643     scrollBarSpacing := DefaultScrollBarSpacing.
  1643     scrollBarSpacing := DefaultScrollBarSpacing.
  1644 
  1644 
  1645     vTopOffs := 0 - vBd + scrolledViewMargin + margin.
  1645     vTopOffs := 0 - vBd + scrolledViewMargin + margin.
  1646 
  1646 
  1647     scrolledViewMargin == 0 ifTrue:[
  1647     scrolledViewMargin == 0 ifTrue:[
  1648 	vBottomOffs := vBd - scrolledViewMargin - sBd.
  1648         vBottomOffs := vBd - scrolledViewMargin - sBd.
  1649     ] ifFalse:[
  1649     ] ifFalse:[
  1650 	vBottomOffs := vBd - scrolledViewMargin + sBd.
  1650         vBottomOffs := vBd - scrolledViewMargin + sBd.
  1651     ].
  1651     ].
  1652 
  1652 
  1653     hLeftOffs := 0 - hBd + scrolledViewMargin + margin.
  1653     hLeftOffs := 0 - hBd + scrolledViewMargin + margin.
  1654     hRightOffs := hBd - scrolledViewMargin - sBd.
  1654     hRightOffs := hBd - scrolledViewMargin - sBd.
  1655 
  1655 
  1656     sLeftOffs := 0 - hBd + scrolledViewMargin + margin.
  1656     sLeftOffs := 0 - hBd + scrolledViewMargin + margin.
  1657     sRightOffs := hBd - scrolledViewMargin - sBd - sBd - sBd.
  1657     sRightOffs := hBd - scrolledViewMargin - sBd - sBd - sBd.
  1658 
  1658 
  1659     scrolledViewMargin == 0 ifTrue:[
  1659     scrolledViewMargin == 0 ifTrue:[
  1660 	sTopOffs := 0 - sBd + margin.
  1660         sTopOffs := 0 - sBd + margin.
  1661 	sBottomOffs := sBd - sBd.
  1661         sBottomOffs := sBd - sBd.
  1662     ] ifFalse:[
  1662     ] ifFalse:[
  1663 	sTopOffs := 0 + scrolledViewMargin + margin.
  1663         sTopOffs := 0 + scrolledViewMargin + margin.
  1664 	sBottomOffs := sBd - scrolledViewMargin - sBd - sBd - sBd.
  1664         sBottomOffs := sBd - scrolledViewMargin - sBd - sBd - sBd.
  1665     ].
  1665     ].
  1666 
  1666 
  1667 "/ kludge - for now
  1667 "/ kludge - for now
  1668 styleSheet name == #win95 ifTrue:[
  1668 styleSheet name == #win95 ifTrue:[
  1669     vTopOffs := 0.
  1669     vTopOffs := 0.
  1676 "/    DefaultScrollBarLevel == DefaultScrolledViewLevel
  1676 "/    DefaultScrollBarLevel == DefaultScrolledViewLevel
  1677 "/        addMargin := 1.
  1677 "/        addMargin := 1.
  1678 "/    ].
  1678 "/    ].
  1679 
  1679 
  1680     hasV ifTrue:[
  1680     hasV ifTrue:[
  1681 	scrollBarPosition == #right ifTrue:[
  1681         scrollBarPosition == #right ifTrue:[
  1682 	    "/ right/bottom
  1682             "/ right/bottom
  1683 	    vScrollBarLayout := ((1.0 @ 0.0) corner:(1.0@1.0)) asLayout.
  1683             vScrollBarLayout := ((1.0 @ 0.0) corner:(1.0@1.0)) asLayout.
  1684 
  1684 
  1685 	    vRightOffs := 0 - scrolledViewMargin + margin "???".
  1685             vRightOffs := 0 - scrolledViewMargin + margin "???".
  1686 	    vLeftOffs := vRightOffs - wVScroll.
  1686             vLeftOffs := vRightOffs - wVScroll.
  1687 
  1687 
  1688 	    sRightOffs := sRightOffs - scrollBarSpacing - wVScroll + sBd.
  1688             sRightOffs := sRightOffs - scrollBarSpacing - wVScroll + sBd.
  1689 
  1689 
  1690 	    hRightOffs := hRightOffs - wVScroll - scrollBarSpacing - sBd.
  1690             hRightOffs := hRightOffs - wVScroll - scrollBarSpacing - sBd.
  1691 
  1691 
  1692 	    sRightOffs := sRightOffs - addMargin
  1692             sRightOffs := sRightOffs - addMargin
  1693 	] ifFalse:[
  1693         ] ifFalse:[
  1694 	    "/ left/bottom
  1694             "/ left/bottom
  1695 	    vScrollBarLayout := ((0.0 @ 0.0) corner:(0.0@1.0)) asLayout.
  1695             vScrollBarLayout := ((0.0 @ 0.0) corner:(0.0@1.0)) asLayout.
  1696 
  1696 
  1697 	    vLeftOffs := 0 - vBd + scrolledViewMargin + margin.
  1697             vLeftOffs := 0 - vBd + scrolledViewMargin + margin.
  1698 	    vRightOffs := vLeftOffs + wVScroll + margin.
  1698             vRightOffs := vLeftOffs + wVScroll + margin.
  1699 
  1699 
  1700 	    sLeftOffs := wVScroll + scrolledViewMargin + scrollBarSpacing + margin.
  1700             sLeftOffs := wVScroll + scrolledViewMargin + scrollBarSpacing + margin.
  1701 	    sRightOffs := 0 - scrolledViewMargin - margin.
  1701             sRightOffs := 0 - scrolledViewMargin - margin.
  1702 	    hLeftOffs := hLeftOffs + wVScroll + vBd + scrollBarSpacing.
  1702             hLeftOffs := hLeftOffs + wVScroll + vBd + scrollBarSpacing.
  1703 
  1703 
  1704 	    sLeftOffs := sLeftOffs + addMargin
  1704             sLeftOffs := sLeftOffs + addMargin
  1705 	].
  1705         ].
  1706     ].
  1706     ].
  1707 
  1707 
  1708     hasH ifTrue:[
  1708     hasH ifTrue:[
  1709 	hBottomOffs := 0 - scrolledViewMargin - hBd + margin "???".
  1709         hBottomOffs := 0 - scrolledViewMargin - hBd + margin "???".
  1710 	hTopOffs := hBottomOffs - hHScroll.
  1710         hTopOffs := hBottomOffs - hHScroll.
  1711 	scrolledViewMargin == 0 ifTrue:[
  1711         scrolledViewMargin == 0 ifTrue:[
  1712 	    hTopOffs := hTopOffs + sBd + sBd
  1712             hTopOffs := hTopOffs + sBd + sBd
  1713 	].
  1713         ].
  1714 	sBottomOffs := sBottomOffs - scrollBarSpacing - hHScroll.
  1714         sBottomOffs := sBottomOffs - scrollBarSpacing - hHScroll.
  1715 	(vScrollBar notNil and:[vScrollBarHidden not]) ifTrue:[
  1715         (vScrollBar notNil and:[vScrollBarHidden not]) ifTrue:[
  1716 	    vBottomOffs := vBottomOffs - scrollBarSpacing - hHScroll.
  1716             vBottomOffs := vBottomOffs - scrollBarSpacing - hHScroll.
  1717 	].
  1717         ].
  1718 
  1718 
  1719 	sBottomOffs := sBottomOffs - addMargin.
  1719         sBottomOffs := sBottomOffs - addMargin.
  1720 	hRightOffs := hRightOffs - addMargin.
  1720         hRightOffs := hRightOffs - addMargin.
  1721     ].
  1721     ].
  1722 
  1722 
  1723     (hScrollBar notNil
  1723     (hScrollBar notNil
  1724      and:[ hScrollBar borderWidth == 0 
  1724      and:[ hScrollBar borderWidth == 0 
  1725      and:[sBd ~~ 0
  1725      and:[sBd ~~ 0
  1726      and:[scrollBarPosition == #right]]]) ifTrue:[
  1726      and:[scrollBarPosition == #right]]]) ifTrue:[
  1727 	hRightOffs := hRightOffs + sBd + sBd.
  1727         hRightOffs := hRightOffs + sBd + sBd.
  1728     ].
  1728     ].
  1729 
  1729 
  1730     scrolledView notNil ifTrue:[
  1730     scrolledView notNil ifTrue:[
  1731 	scrolledViewLayout leftOffset:sLeftOffs.
  1731         scrolledViewLayout leftOffset:sLeftOffs.
  1732 	scrolledViewLayout rightOffset:sRightOffs.
  1732         scrolledViewLayout rightOffset:sRightOffs.
  1733 	scrolledViewLayout topOffset:sTopOffs.
  1733         scrolledViewLayout topOffset:sTopOffs.
  1734 	scrolledViewLayout bottomOffset:sBottomOffs.
  1734         scrolledViewLayout bottomOffset:sBottomOffs.
  1735 
  1735 
  1736 	configureScrolledView ifTrue:[
  1736         configureScrolledView ifTrue:[
  1737 	    ((hideVScrollBar or:[hideHScrollBar]) not
  1737             ((hideVScrollBar or:[hideHScrollBar]) not
  1738 	    and:[(hScrollBar isNil or:[hScrollBarHidden])
  1738             and:[(hScrollBar isNil or:[hScrollBarHidden])
  1739 	    and:[(vScrollBar isNil or:[vScrollBarHidden])]]) ifTrue:[
  1739             and:[(vScrollBar isNil or:[vScrollBarHidden])]]) ifTrue:[
  1740 		scrolledView level:0
  1740                 scrolledView level:0
  1741 	    ] ifFalse:[
  1741             ] ifFalse:[
  1742 		scrolledView level:DefaultScrolledViewLevel.
  1742                 scrolledView level:DefaultScrolledViewLevel.
  1743 	    ].
  1743             ].
  1744 	].
  1744         ].
  1745 	scrolledView layout:scrolledViewLayout.
  1745         scrolledView layout:scrolledViewLayout.
  1746     ].
  1746     ].
  1747     hasH ifTrue:[
  1747     hasH ifTrue:[
  1748 	hScrollBarLayout leftOffset:hLeftOffs.
  1748         hScrollBarLayout leftOffset:hLeftOffs.
  1749 	hScrollBarLayout rightOffset:hRightOffs.
  1749         hScrollBarLayout rightOffset:hRightOffs.
  1750 	hScrollBarLayout topOffset:hTopOffs.
  1750         hScrollBarLayout topOffset:hTopOffs.
  1751 	hScrollBarLayout bottomOffset:hBottomOffs.
  1751         hScrollBarLayout bottomOffset:hBottomOffs.
  1752 
  1752 
  1753 	hScrollBar level:DefaultScrollBarLevel.
  1753         hScrollBar level:DefaultScrollBarLevel.
  1754 	hScrollBar layout:hScrollBarLayout
  1754         hScrollBar layout:hScrollBarLayout.
       
  1755 
       
  1756 "/        scrollBarPosition == #right ifTrue:[
       
  1757 "/            "/ right/bottom
       
  1758 "/            hScrollBar viewGravity:#SouthWest.
       
  1759 "/        ] ifFalse:[
       
  1760 "/            hScrollBar viewGravity:#NorthWest.
       
  1761 "/        ]
  1755     ].
  1762     ].
  1756     (vScrollBar notNil and:[vScrollBarHidden not]) ifTrue:[
  1763     (vScrollBar notNil and:[vScrollBarHidden not]) ifTrue:[
  1757 	vScrollBarLayout leftOffset:vLeftOffs.
  1764         vScrollBarLayout leftOffset:vLeftOffs.
  1758 	vScrollBarLayout rightOffset:vRightOffs.
  1765         vScrollBarLayout rightOffset:vRightOffs.
  1759 	vScrollBarLayout topOffset:vTopOffs.
  1766         vScrollBarLayout topOffset:vTopOffs.
  1760 	vScrollBarLayout bottomOffset:vBottomOffs.
  1767         vScrollBarLayout bottomOffset:vBottomOffs.
  1761 
  1768 
  1762 	vScrollBar level:DefaultScrollBarLevel.
  1769         vScrollBar level:DefaultScrollBarLevel.
  1763 	vScrollBar layout:vScrollBarLayout
  1770         vScrollBar layout:vScrollBarLayout.
       
  1771 
       
  1772 "/        scrollBarPosition == #right ifTrue:[
       
  1773 "/            "/ right/bottom
       
  1774 "/            vScrollBar viewGravity:#NorthEast.
       
  1775 "/        ] ifFalse:[
       
  1776 "/            vScrollBar viewGravity:#NorthWest.
       
  1777 "/        ]
  1764     ].
  1778     ].
  1765 
  1779 
  1766     "Created: / 21.5.1998 / 00:48:35 / cg"
  1780     "Created: / 21.5.1998 / 00:48:35 / cg"
  1767     "Modified: / 9.9.1998 / 18:57:35 / cg"
  1781     "Modified: / 9.9.1998 / 18:57:35 / cg"
  1768 !
  1782 !
  2048 ! !
  2062 ! !
  2049 
  2063 
  2050 !ScrollableView class methodsFor:'documentation'!
  2064 !ScrollableView class methodsFor:'documentation'!
  2051 
  2065 
  2052 version
  2066 version
  2053     ^ '$Header: /cvs/stx/stx/libwidg/ScrollableView.st,v 1.94 1999-04-24 14:37:20 cg Exp $'
  2067     ^ '$Header: /cvs/stx/stx/libwidg/ScrollableView.st,v 1.95 1999-05-03 21:33:39 cg Exp $'
  2054 ! !
  2068 ! !