A further hack to corner grips in 3.9alpha. [tested in 6716 and 6718]

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

A further hack to corner grips in 3.9alpha. [tested in 6716 and 6718]

Robin gmail
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! !




Reply | Threaded
Open this post in threaded view
|

Re: A further hack to corner grips in 3.9alpha. [tested in 6716 and6718]

Juan Vuletich
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