--<<<- -- Class TitleBar is a title bar for any space. When added to a space, the -- parent space can be dragged anywhere by dragging the title bar. class TitleBar (TwoDShape, Tracker) instance variables grabOffset end -- Method trackStart is called by the tracking service. Translate mouse -- coordinates to parent space's coordinates. method trackStart self {class TitleBar} service ev state -> ( nextMethod self service ev state local pt := ev.localCoords self.grabOffset := new Point x:pt.x y:pt.y local xOffset := self.presentedBy.x local yOffset := self.presentedBy.y state[@trackMatrix] := translate state[@trackMatrix] \ xOffset yOffset true ) -- Method trackDown is called by the tracking service. method trackDown self {class TitleBar} service ev -> ( nextMethod self service ev moveToFront self.presentedBy.presentedBy self.presentedBy ) -- Method trackMove is called by the tracking service. method trackMove self {class TitleBar} service ev -> ( local pt := ev.localCoords local x := max 0 (pt.x - self.grabOffset.x) x := min 635 x local y := max 0 (pt.y - self.grabOffset.y) y := min 475 y local pb := self.presentedBy pb.x := x pb.y := y ) -- Method trackUp is called by the tracking service. method trackUp self {class TitleBar} service ev -> ( nextMethod self service ev local pb := self.presentedBy moveToFront pb.presentedBy pb ) "Compiled titlebar.sx" -->>>