It adds corner grips to all 4 corners.
It exhibits the same behaviour as the original corner gripper in that if you scale a browser small enough internal interface elements protrude outside of the bounding box of the window. I apologize for the class structure of CornerGripMorph with subclasses of CornerGripMorphBottomLeft, CornerGripMorphTopLeft and CornerGripMorphTopRight. Its a bit ugly but I couldnt see a lot of advantage in making a proper superand 4 subclassess. [and i am quite lazy if i can be.] I have not tried to refactor any of the drawing code as I was more concerned at trying to get rid of as many of magic numbers in the original drawing code first. I also think the current design of having the corner group a square morph which may overlap with internal window element morphs is not a good design. It appears to me that in a Workspace window that typing in the workspace causes the corner groups to redraw for every single character that renders typed. Which I think might be to do with the overlap of display areas. I am still pretty new at squeak and smalltalk so am happy to hear any constructive feedback. It seems to me that to make this sort of extension cleaner would require more structure in the SystemWindow morph structure. Robin. 'From Squeak3.9alpha of 4 July 2005 [latest update: #6716] on 2 February 2006 at 9:25:51 pm'! AbstractResizerMorph subclass: #CornerGripMorph instanceVariableNames: 'target' classVariableNames: '' poolDictionaries: '' category: 'Morphic-Windows'! CornerGripMorph subclass: #CornerGripMorphBottomLeft instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Morphic-Windows'! CornerGripMorph subclass: #CornerGripMorphTopLeft instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Morphic-Windows'! CornerGripMorph subclass: #CornerGripMorphTopRight instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Morphic-Windows'! !BorderedMorph methodsFor: 'lookenhancements' stamp: 'rl 2/2/2006 21:22'! addCornerGrip | grip gripBottomLeft gripTopLeft gripTopRight | grip _ CornerGripMorph new target: self. grip layoutFrame: (grip gripLayoutFrame). self addMorphBack: grip. gripBottomLeft _ CornerGripMorphBottomLeft new target: self. gripBottomLeft layoutFrame: (gripBottomLeft gripLayoutFrame). self addMorphBack: gripBottomLeft. gripTopLeft _ CornerGripMorphTopLeft new target: self. gripTopLeft layoutFrame: (gripTopLeft gripLayoutFrame). self addMorphBack: gripTopLeft. gripTopRight _ CornerGripMorphTopRight new target: self. gripTopRight layoutFrame: (gripTopRight gripLayoutFrame). self addMorphBack: gripTopRight. ! ! !CornerGripMorph methodsFor: 'as yet unclassified' stamp: 'rl 2/2/2006 21:24'! drawOn: aCanvas | dotBounds alphaCanvas windowBorderWidth dotBounds2 | "super drawOn: aCanvas." "intentionally not calling super for now since bottomRight corner is the super class" SystemWindow resizeOnAllSides ifTrue: [^self]. windowBorderWidth _ SystemWindow borderWidth. bounds _ self bounds. alphaCanvas _ aCanvas asAlphaBlendingCanvas: 0.7. "alphaCanvas frameRectangle: bounds color: Color blue." dotBounds _ (bounds insetBy: 1). dotBounds2 _ dotBounds left: (dotBounds right - windowBorderWidth). dotBounds2 _ dotBounds2 top: (dotBounds2 bottom - windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds right: (dotBounds right - windowBorderWidth). dotBounds2 _ dotBounds2 top: (dotBounds2 bottom - windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds2 left: (dotBounds2 left + 7). dotBounds2 _ dotBounds2 right: (dotBounds2 right - 7). alphaCanvas fillRectangle: dotBounds2 color: self dotColor. dotBounds2 _ dotBounds left: (dotBounds right - windowBorderWidth). dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds2 top: (dotBounds2 top + 7). dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - 7). alphaCanvas fillRectangle: dotBounds2 color: self dotColor. ! ! !CornerGripMorph methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 19:26'! gripLayoutFrame "the layout frame suitable for positioning this grip in parent" ^LayoutFrame fractions: (1@1 corner: 1@1) offsets: (-22@-22 corner: 0@0). ! ! !CornerGripMorphBottomLeft methodsFor: 'as yet unclassified' stamp: 'rl 2/2/2006 21:25'! drawOn: aCanvas | dotBounds alphaCanvas windowBorderWidth dotBounds2 | "super drawOn: aCanvas." "intentionally not calling super for now since bottomRight corner is the super class" SystemWindow resizeOnAllSides ifTrue: [^self]. windowBorderWidth _ SystemWindow borderWidth. bounds _ self bounds. alphaCanvas _ aCanvas asAlphaBlendingCanvas: 0.7. "alphaCanvas frameRectangle: bounds color: Color blue." dotBounds _ (bounds insetBy: 1). dotBounds2 _ dotBounds right: (dotBounds left + windowBorderWidth). dotBounds2 _ dotBounds2 top: (dotBounds2 bottom - windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds left: (dotBounds left + windowBorderWidth). dotBounds2 _ dotBounds2 top: (dotBounds2 bottom - windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds2 left: (dotBounds2 left + 7). dotBounds2 _ dotBounds2 right: (dotBounds2 right - 7). alphaCanvas fillRectangle: dotBounds2 color: self dotColor. dotBounds2 _ dotBounds right: (dotBounds left + windowBorderWidth). dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds2 top: (dotBounds2 top + 7). dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - 7). alphaCanvas fillRectangle: dotBounds2 color: self dotColor. ! ! !CornerGripMorphBottomLeft methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 19:25'! gripLayoutFrame ^LayoutFrame fractions: (0@1 corner: 0@1) offsets: (0@0 corner: 22@-22).! ! !CornerGripMorphBottomLeft methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 20:34'! mouseMove: anEvent | delta oldBounds | target ifNil: [^ self]. delta _ anEvent cursorPoint - lastMouse. lastMouse _ anEvent cursorPoint. oldBounds _ target bounds. "target bounds: (oldBounds origin corner: (oldBounds corner + delta))." target bounds: (((oldBounds left + delta x) @ oldBounds top) corner: (oldBounds right @ (oldBounds bottom + delta y))). self bounds: (self bounds origin + delta extent: self bounds extent)! ! !CornerGripMorphBottomLeft methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 19:24'! resizeCursor ^ Cursor resizeForEdge: #bottomLeft! ! !CornerGripMorphTopLeft methodsFor: 'as yet unclassified' stamp: 'rl 2/2/2006 21:25'! drawOn: aCanvas | dotBounds alphaCanvas windowBorderWidth dotBounds2 | "super drawOn: aCanvas." "intentionally not calling super for now since bottomRight corner is the super class" SystemWindow resizeOnAllSides ifTrue: [^self]. windowBorderWidth _ SystemWindow borderWidth. bounds _ self bounds. alphaCanvas _ aCanvas asAlphaBlendingCanvas: 0.7. "alphaCanvas frameRectangle: bounds color: Color blue." dotBounds _ (bounds insetBy: 1). dotBounds2 _ dotBounds right: (dotBounds left + windowBorderWidth). dotBounds2 _ dotBounds2 bottom: (dotBounds2 top + windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds left: (dotBounds left + windowBorderWidth). dotBounds2 _ dotBounds2 bottom: (dotBounds2 top + windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds2 left: (dotBounds2 left + 7). dotBounds2 _ dotBounds2 right: (dotBounds2 right - 7). alphaCanvas fillRectangle: dotBounds2 color: self dotColor. dotBounds2 _ dotBounds right: (dotBounds left + windowBorderWidth). dotBounds2 _ dotBounds2 top: (dotBounds2 top + windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds2 top: (dotBounds2 top + 7). dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - 7). alphaCanvas fillRectangle: dotBounds2 color: self dotColor. ! ! !CornerGripMorphTopLeft methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 22:41'! gripLayoutFrame ^LayoutFrame fractions: (0@0 corner: 0@0) offsets: (0@0 corner: 22@(22-49)). " GRRR magic numbers. ? twice labelHeight i think maybe ? "! ! !CornerGripMorphTopLeft methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 22:53'! mouseMove: anEvent | delta oldBounds | target ifNil: [^ self]. delta _ anEvent cursorPoint - lastMouse. lastMouse _ anEvent cursorPoint. oldBounds _ target bounds. "target bounds: (oldBounds origin corner: (oldBounds corner + delta))." target bounds: (((oldBounds left + delta x) @ (oldBounds top + delta y)) corner: (oldBounds right @ oldBounds bottom)). self bounds: (self bounds origin + delta extent: self bounds extent)! ! !CornerGripMorphTopLeft methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 22:30'! resizeCursor ^ Cursor resizeForEdge: #topLeft! ! !CornerGripMorphTopRight methodsFor: 'as yet unclassified' stamp: 'rl 2/2/2006 21:25'! drawOn: aCanvas | dotBounds alphaCanvas windowBorderWidth dotBounds2 | "super drawOn: aCanvas." "intentionally not calling super for now since bottomRight corner is the super class" SystemWindow resizeOnAllSides ifTrue: [^self]. windowBorderWidth _ SystemWindow borderWidth. bounds _ self bounds. alphaCanvas _ aCanvas asAlphaBlendingCanvas: 0.7. "alphaCanvas frameRectangle: bounds color: Color blue." dotBounds _ (bounds insetBy: 1). dotBounds2 _ dotBounds left: (dotBounds right - windowBorderWidth). dotBounds2 _ dotBounds2 bottom: (dotBounds2 top + windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds right: (dotBounds right - windowBorderWidth). dotBounds2 _ dotBounds2 bottom: (dotBounds2 top + windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds2 left: (dotBounds2 left + 7). dotBounds2 _ dotBounds2 right: (dotBounds2 right - 7). alphaCanvas fillRectangle: dotBounds2 color: self dotColor. dotBounds2 _ dotBounds left: (dotBounds right - windowBorderWidth). dotBounds2 _ dotBounds2 top: (dotBounds2 top + windowBorderWidth). alphaCanvas fillRectangle: dotBounds2 color: self handleColor. dotBounds2 _ dotBounds2 top: (dotBounds2 top + 7). dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - 7). alphaCanvas fillRectangle: dotBounds2 color: self dotColor. ! ! !CornerGripMorphTopRight methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 22:59'! gripLayoutFrame ^LayoutFrame fractions: (1@0 corner: 1@0) offsets: (0@-49 corner: -22@22). " GRRR magic numbers. ? twice labelHeight i think maybe ? "! ! !CornerGripMorphTopRight methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 23:01'! mouseMove: anEvent | delta oldBounds | target ifNil: [^ self]. delta _ anEvent cursorPoint - lastMouse. lastMouse _ anEvent cursorPoint. oldBounds _ target bounds. "target bounds: (oldBounds origin corner: (oldBounds corner + delta))." target bounds: ((oldBounds left @ (oldBounds top + delta y)) corner: ((oldBounds right + delta x) @ oldBounds bottom)). self bounds: (self bounds origin + delta extent: self bounds extent)! ! !CornerGripMorphTopRight methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 22:54'! resizeCursor ^ Cursor resizeForEdge: #topRight! ! |
Thanks Robin!
I was also working on this. I will compare my code with yours, and take want I like most from each one. For instance I did 4 subclasses of CornerGripMorph. Cheers, Juan Vuletich Morphic Stewards Team leader ----- Original Message ----- From: "Robin gmail" <[hidden email]> To: <[hidden email]> Sent: Thursday, February 02, 2006 9:15 AM Subject: A further hack to corner grips in 3.9alpha. [tested in 6716 and6718] > It adds corner grips to all 4 corners. > It exhibits the same behaviour as the original corner gripper in that if > you scale a browser > small enough internal interface elements protrude outside of the > bounding box of the window. > > I apologize for the class structure of CornerGripMorph with subclasses > of CornerGripMorphBottomLeft, CornerGripMorphTopLeft and > CornerGripMorphTopRight. Its a bit ugly but I couldnt see a lot of > advantage > in making a proper superand 4 subclassess. [and i am quite lazy if i can > be.] > > I have not tried to refactor any of the drawing code as I was more > concerned at trying > to get rid of as many of magic numbers in the original drawing code first. > > I also think the current design of having the corner group a square > morph which may overlap with internal window element morphs is not a > good design. It appears to me that in a Workspace window that typing in > the workspace causes the corner groups to redraw for every single > character that renders typed. Which I think might be to do with the > overlap of display areas. > > I am still pretty new at squeak and smalltalk so am happy to hear any > constructive feedback. > It seems to me that to make this sort of extension cleaner would require > more structure in the SystemWindow morph structure. > > Robin. > > > > > -------------------------------------------------------------------------------- > 'From Squeak3.9alpha of 4 July 2005 [latest update: #6716] on 2 February > 2006 at 9:25:51 pm'! > AbstractResizerMorph subclass: #CornerGripMorph > instanceVariableNames: 'target' > classVariableNames: '' > poolDictionaries: '' > category: 'Morphic-Windows'! > CornerGripMorph subclass: #CornerGripMorphBottomLeft > instanceVariableNames: '' > classVariableNames: '' > poolDictionaries: '' > category: 'Morphic-Windows'! > CornerGripMorph subclass: #CornerGripMorphTopLeft > instanceVariableNames: '' > classVariableNames: '' > poolDictionaries: '' > category: 'Morphic-Windows'! > CornerGripMorph subclass: #CornerGripMorphTopRight > instanceVariableNames: '' > classVariableNames: '' > poolDictionaries: '' > category: 'Morphic-Windows'! > > !BorderedMorph methodsFor: 'lookenhancements' stamp: 'rl 2/2/2006 21:22'! > addCornerGrip > > | grip gripBottomLeft gripTopLeft gripTopRight | > grip _ CornerGripMorph new target: self. > grip layoutFrame: (grip gripLayoutFrame). > self addMorphBack: grip. > > gripBottomLeft _ CornerGripMorphBottomLeft new target: self. > gripBottomLeft layoutFrame: (gripBottomLeft gripLayoutFrame). > self addMorphBack: gripBottomLeft. > > gripTopLeft _ CornerGripMorphTopLeft new target: self. > gripTopLeft layoutFrame: (gripTopLeft gripLayoutFrame). > self addMorphBack: gripTopLeft. > > gripTopRight _ CornerGripMorphTopRight new target: self. > gripTopRight layoutFrame: (gripTopRight gripLayoutFrame). > self addMorphBack: gripTopRight. > ! ! > > > !CornerGripMorph methodsFor: 'as yet unclassified' stamp: 'rl 2/2/2006 > 21:24'! > drawOn: aCanvas > > | dotBounds alphaCanvas windowBorderWidth dotBounds2 | > "super drawOn: aCanvas." "intentionally not calling super for now since > bottomRight corner is the super class" > SystemWindow resizeOnAllSides ifTrue: [^self]. > > windowBorderWidth _ SystemWindow borderWidth. > bounds _ self bounds. > alphaCanvas _ aCanvas asAlphaBlendingCanvas: 0.7. > "alphaCanvas > frameRectangle: bounds color: Color blue." > > dotBounds _ (bounds insetBy: 1). > dotBounds2 _ dotBounds left: (dotBounds right - windowBorderWidth). > dotBounds2 _ dotBounds2 top: (dotBounds2 bottom - windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds right: (dotBounds right - windowBorderWidth). > dotBounds2 _ dotBounds2 top: (dotBounds2 bottom - windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds2 left: (dotBounds2 left + 7). > dotBounds2 _ dotBounds2 right: (dotBounds2 right - 7). > alphaCanvas > fillRectangle: dotBounds2 > color: self dotColor. > > dotBounds2 _ dotBounds left: (dotBounds right - windowBorderWidth). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds2 top: (dotBounds2 top + 7). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - 7). > alphaCanvas > fillRectangle: dotBounds2 > color: self dotColor. > ! ! > > !CornerGripMorph methodsFor: 'as yet unclassified' stamp: 'rl 1/31/2006 > 19:26'! > gripLayoutFrame > "the layout frame suitable for positioning this grip in parent" > ^LayoutFrame > fractions: (1@1 corner: 1@1) > offsets: (-22@-22 corner: 0@0). > ! ! > > > !CornerGripMorphBottomLeft methodsFor: 'as yet unclassified' stamp: 'rl > 2/2/2006 21:25'! > drawOn: aCanvas > > | dotBounds alphaCanvas windowBorderWidth dotBounds2 | > "super drawOn: aCanvas." "intentionally not calling super for now since > bottomRight corner is the super class" > SystemWindow resizeOnAllSides ifTrue: [^self]. > > windowBorderWidth _ SystemWindow borderWidth. > bounds _ self bounds. > alphaCanvas _ aCanvas asAlphaBlendingCanvas: 0.7. > "alphaCanvas > frameRectangle: bounds color: Color blue." > > dotBounds _ (bounds insetBy: 1). > dotBounds2 _ dotBounds right: (dotBounds left + windowBorderWidth). > dotBounds2 _ dotBounds2 top: (dotBounds2 bottom - windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds left: (dotBounds left + windowBorderWidth). > dotBounds2 _ dotBounds2 top: (dotBounds2 bottom - windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds2 left: (dotBounds2 left + 7). > dotBounds2 _ dotBounds2 right: (dotBounds2 right - 7). > alphaCanvas > fillRectangle: dotBounds2 > color: self dotColor. > > dotBounds2 _ dotBounds right: (dotBounds left + windowBorderWidth). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds2 top: (dotBounds2 top + 7). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - 7). > alphaCanvas > fillRectangle: dotBounds2 > color: self dotColor. > > > > ! ! > > !CornerGripMorphBottomLeft methodsFor: 'as yet unclassified' stamp: 'rl > 1/31/2006 19:25'! > gripLayoutFrame > ^LayoutFrame > fractions: (0@1 corner: 0@1) > offsets: (0@0 corner: 22@-22).! ! > > !CornerGripMorphBottomLeft methodsFor: 'as yet unclassified' stamp: 'rl > 1/31/2006 20:34'! > mouseMove: anEvent > > | delta oldBounds | > target ifNil: [^ self]. > > delta _ anEvent cursorPoint - lastMouse. > lastMouse _ anEvent cursorPoint. > > oldBounds _ target bounds. > "target bounds: (oldBounds origin corner: (oldBounds corner + delta))." > target bounds: > (((oldBounds left + delta x) @ oldBounds top) corner: (oldBounds right @ > (oldBounds bottom + delta y))). > > self bounds: (self bounds origin + delta extent: self bounds extent)! ! > > !CornerGripMorphBottomLeft methodsFor: 'as yet unclassified' stamp: 'rl > 1/31/2006 19:24'! > resizeCursor > > ^ Cursor resizeForEdge: #bottomLeft! ! > > > !CornerGripMorphTopLeft methodsFor: 'as yet unclassified' stamp: 'rl > 2/2/2006 21:25'! > drawOn: aCanvas > > | dotBounds alphaCanvas windowBorderWidth dotBounds2 | > "super drawOn: aCanvas." "intentionally not calling super for now since > bottomRight corner is the super class" > SystemWindow resizeOnAllSides ifTrue: [^self]. > > windowBorderWidth _ SystemWindow borderWidth. > bounds _ self bounds. > alphaCanvas _ aCanvas asAlphaBlendingCanvas: 0.7. > "alphaCanvas > frameRectangle: bounds color: Color blue." > > dotBounds _ (bounds insetBy: 1). > dotBounds2 _ dotBounds right: (dotBounds left + windowBorderWidth). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 top + windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds left: (dotBounds left + windowBorderWidth). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 top + windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds2 left: (dotBounds2 left + 7). > dotBounds2 _ dotBounds2 right: (dotBounds2 right - 7). > alphaCanvas > fillRectangle: dotBounds2 > color: self dotColor. > > dotBounds2 _ dotBounds right: (dotBounds left + windowBorderWidth). > dotBounds2 _ dotBounds2 top: (dotBounds2 top + windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds2 top: (dotBounds2 top + 7). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - 7). > alphaCanvas > fillRectangle: dotBounds2 > color: self dotColor. > > > > ! ! > > !CornerGripMorphTopLeft methodsFor: 'as yet unclassified' stamp: 'rl > 1/31/2006 22:41'! > gripLayoutFrame > ^LayoutFrame > fractions: (0@0 corner: 0@0) > offsets: (0@0 corner: 22@(22-49)). " GRRR magic numbers. ? twice > labelHeight i think maybe ? "! ! > > !CornerGripMorphTopLeft methodsFor: 'as yet unclassified' stamp: 'rl > 1/31/2006 22:53'! > mouseMove: anEvent > > | delta oldBounds | > target ifNil: [^ self]. > > delta _ anEvent cursorPoint - lastMouse. > lastMouse _ anEvent cursorPoint. > > oldBounds _ target bounds. > "target bounds: (oldBounds origin corner: (oldBounds corner + delta))." > target bounds: > (((oldBounds left + delta x) @ (oldBounds top + delta y)) corner: > (oldBounds right @ oldBounds bottom)). > > self bounds: (self bounds origin + delta extent: self bounds extent)! ! > > !CornerGripMorphTopLeft methodsFor: 'as yet unclassified' stamp: 'rl > 1/31/2006 22:30'! > resizeCursor > > ^ Cursor resizeForEdge: #topLeft! ! > > > !CornerGripMorphTopRight methodsFor: 'as yet unclassified' stamp: 'rl > 2/2/2006 21:25'! > drawOn: aCanvas > > | dotBounds alphaCanvas windowBorderWidth dotBounds2 | > "super drawOn: aCanvas." "intentionally not calling super for now since > bottomRight corner is the super class" > SystemWindow resizeOnAllSides ifTrue: [^self]. > > windowBorderWidth _ SystemWindow borderWidth. > bounds _ self bounds. > alphaCanvas _ aCanvas asAlphaBlendingCanvas: 0.7. > "alphaCanvas > frameRectangle: bounds color: Color blue." > > dotBounds _ (bounds insetBy: 1). > dotBounds2 _ dotBounds left: (dotBounds right - windowBorderWidth). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 top + windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds right: (dotBounds right - windowBorderWidth). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 top + windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds2 left: (dotBounds2 left + 7). > dotBounds2 _ dotBounds2 right: (dotBounds2 right - 7). > alphaCanvas > fillRectangle: dotBounds2 > color: self dotColor. > > dotBounds2 _ dotBounds left: (dotBounds right - windowBorderWidth). > dotBounds2 _ dotBounds2 top: (dotBounds2 top + windowBorderWidth). > alphaCanvas > fillRectangle: dotBounds2 > color: self handleColor. > > dotBounds2 _ dotBounds2 top: (dotBounds2 top + 7). > dotBounds2 _ dotBounds2 bottom: (dotBounds2 bottom - 7). > alphaCanvas > fillRectangle: dotBounds2 > color: self dotColor. > > > > ! ! > > !CornerGripMorphTopRight methodsFor: 'as yet unclassified' stamp: 'rl > 1/31/2006 22:59'! > gripLayoutFrame > ^LayoutFrame > fractions: (1@0 corner: 1@0) > offsets: (0@-49 corner: -22@22). " GRRR magic numbers. ? twice > labelHeight i think maybe ? "! ! > > !CornerGripMorphTopRight methodsFor: 'as yet unclassified' stamp: 'rl > 1/31/2006 23:01'! > mouseMove: anEvent > > | delta oldBounds | > target ifNil: [^ self]. > > delta _ anEvent cursorPoint - lastMouse. > lastMouse _ anEvent cursorPoint. > > oldBounds _ target bounds. > "target bounds: (oldBounds origin corner: (oldBounds corner + delta))." > target bounds: > ((oldBounds left @ (oldBounds top + delta y)) corner: ((oldBounds right + > delta x) @ oldBounds bottom)). > > self bounds: (self bounds origin + delta extent: self bounds extent)! ! > > !CornerGripMorphTopRight methodsFor: 'as yet unclassified' stamp: 'rl > 1/31/2006 22:54'! > resizeCursor > > ^ Cursor resizeForEdge: #topRight! ! > > > -------------------------------------------------------------------------------- > > -------------------------------------------------------------------------------- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.375 / Virus Database: 267.15.0/248 - Release Date: 2/1/2006 |
Free forum by Nabble | Edit this page |