DragAndDropManager.st
author Claus Gittinger <cg@exept.de>
Fri, 11 Apr 1997 16:51:27 +0200
changeset 524 2911c30d10b3
parent 515 7df33af3beaa
child 548 1a81d6be65b4
permissions -rw-r--r--
checkin from browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
Object subclass:#DragAndDropManager
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
	instanceVariableNames:'dragView motionAction releaseAction initialPoint previousPoint
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
     3
		rememberedDelegate dragBlock lineMode dropAction opaque saveUnder
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
     4
		dragSize dragOffset dropObjects saveCursor lastView'
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Interface-Support'
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
    10
View subclass:#DemoView2
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    11
	instanceVariableNames:''
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    12
	classVariableNames:''
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    13
	poolDictionaries:''
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    14
	privateIn:DragAndDropManager
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    15
!
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    16
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
    17
View subclass:#DemoView3
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
    18
	instanceVariableNames:''
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
    19
	classVariableNames:''
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
    20
	poolDictionaries:''
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
    21
	privateIn:DragAndDropManager
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
    22
!
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
    23
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
    24
View subclass:#DemoView
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	instanceVariableNames:''
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	classVariableNames:''
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	poolDictionaries:''
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	privateIn:DragAndDropManager
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!DragAndDropManager class methodsFor:'documentation'!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
348
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    33
documentation
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    34
"
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    35
    this class provides low-level drag & drop mechanisms.
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    36
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    37
    [author:]
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    38
        Claus Gittinger
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    39
"
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    40
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    41
!
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
    42
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
history
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    "Created: 26.10.1996 / 15:02:00 / cg"
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    "Modified: 26.10.1996 / 15:21:42 / cg"
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
! !
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    49
!DragAndDropManager class methodsFor:'simple start'!
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    50
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    51
startDrag:anObjectOrCollection from:aView
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    52
    "start a drop at the current pointer position"
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    53
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    54
    (self new) startDrag:anObjectOrCollection from:aView offset:0@0
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    55
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    56
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    57
    "
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    58
     |o v|
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    59
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    60
     v := (Button label:'press me').
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    61
     v pressAction:[
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    62
                |o|
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    63
                o := DropObject newFile:('.').
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    64
                DragAndDropManager startDrag:o from:v.
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    65
                v turnOff
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    66
              ].
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    67
     v openAt:100@100
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    68
    "
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    69
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    70
!
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    71
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    72
startDrag:anObjectOrCollection from:aView offset:offset
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    73
    "start a drop at the current pointer position"
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    74
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    75
    (self new) startDrag:anObjectOrCollection from:aView offset:offset
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    76
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    77
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    78
    "
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    79
     |o v|
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    80
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    81
     v := (Button label:'press me').
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    82
     v pressAction:[
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    83
                |o|
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    84
                o := DropObject newFile:('.').
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    85
                DragAndDropManager startDrag:o from:v offset:10@10.
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    86
                v turnOff
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    87
              ].
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    88
     v openAt:100@100
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    89
    "
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    90
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    91
! !
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    92
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
    93
!DragAndDropManager methodsFor:'accessing'!
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
    94
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    95
dropObjects
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    96
    ^ dropObjects
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    97
!
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    98
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
    99
dropObjects:anObjectOrCollection
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   100
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   101
    anObjectOrCollection isCollection ifTrue:[
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   102
        dropObjects := anObjectOrCollection
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   103
    ] ifFalse:[
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   104
        dropObjects := Array with:anObjectOrCollection
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   105
    ].
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   106
! !
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   107
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   108
!DragAndDropManager methodsFor:'dragging - generic'!
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   109
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   110
doGenericDragX:x y:y
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   111
    "drag to x/y; see if the target view allows a drop
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   112
     and change the mouse pointer as appropriate"
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   113
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   114
    |view newCursor|
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   115
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   116
    previousPoint notNil ifTrue:[
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   117
        opaque ifTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   118
            self restoreGenericAt:previousPoint
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   119
        ] ifFalse:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   120
            self invertGenericAt:previousPoint
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   121
        ]
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   122
    ].
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   123
    previousPoint := x @ y.
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   124
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   125
    view := self destinationViewAt:previousPoint.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   126
    view ~~ lastView ifTrue:[
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   127
        view isNil ifTrue:[
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   128
            "/ alien view - dont know if it likes a drop
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   129
            newCursor := Cursor questionMark
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   130
        ] ifFalse:[
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   131
            "/ ST/X view - ask it.
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   132
            (view canDrop:dropObjects) ifTrue:[
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   133
                newCursor := Cursor thumbsUp
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   134
            ] ifFalse:[
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   135
                newCursor := Cursor thumbsDown
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   136
            ]
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   137
        ].
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   138
        dragView cursor:newCursor now:true.
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   139
        lastView := view
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   140
    ].
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   141
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   142
    opaque ifTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   143
        self drawGenericAt:previousPoint.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   144
    ] ifFalse:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   145
        self invertGenericAt:previousPoint
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   146
    ].
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   147
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   148
    "Modified: 6.4.1997 / 14:29:44 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   149
!
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   150
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   151
drawGenericAt:ip
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   152
    |t offs p rootView|
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   153
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   154
    rootView := dragView device rootView.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   155
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   156
    p := ip.
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   157
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   158
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   159
     get device coordinates
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   160
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   161
    (t := dragView transformation) notNil ifTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   162
        p := t applyTo:p.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   163
    ].
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   164
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   165
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   166
     translate to screen
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   167
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   168
    offs := dragView device 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   169
                translatePoint:0@0 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   170
                from:(dragView id) to:(rootView id).
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   171
    p := p + offs.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   172
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   173
    rootView clippedByChildren:false.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   174
    saveUnder isNil ifTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   175
        saveUnder := Form width:dragSize x height:dragSize y depth:rootView device depth on:dragView device.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   176
        saveUnder clippedByChildren:false.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   177
    ].
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   178
    saveUnder 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   179
        copyFrom:rootView 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   180
        x:p x - dragOffset x 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   181
        y:p y - dragOffset y
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   182
        toX:0 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   183
        y:0 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   184
        width:dragSize x 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   185
        height:dragSize y.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   186
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   187
    rootView lineWidth:0. 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   188
    dragBlock value:p value:rootView.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   189
    rootView flush
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   190
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   191
!
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   192
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   193
endGenericDragX:x y:y
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   194
    previousPoint notNil ifTrue:[
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   195
        opaque ifTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   196
            self restoreGenericAt:previousPoint
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   197
        ] ifFalse:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   198
            self invertGenericAt:previousPoint
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   199
        ]
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   200
    ].
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   201
    previousPoint := nil.
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   202
    self uncatchEvents.
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   203
    self endDragAt:x @ y
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   204
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   205
    "Created: 26.10.1996 / 15:17:20 / cg"
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   206
    "Modified: 26.10.1996 / 15:22:41 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   207
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   208
!
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   209
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   210
invertGenericAt:ip
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   211
    |t offs p rootView|
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   212
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   213
    rootView := dragView device rootView.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   214
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   215
    p := ip.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   216
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   217
    "
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   218
     get device coordinates
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   219
    "
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   220
    (t := dragView transformation) notNil ifTrue:[
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   221
        p := t applyTo:p.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   222
    ].
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   223
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   224
    "
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   225
     translate to screen
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   226
    "
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   227
    offs := dragView device 
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   228
                translatePoint:0@0 
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   229
                from:(dragView id) to:(rootView id).
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   230
    p := p + offs.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   231
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   232
    rootView clippedByChildren:false.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   233
    rootView xoring:[
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   234
        rootView lineWidth:0. 
348
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   235
        dragBlock value:p value:rootView.
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   236
        rootView flush
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   237
    ].
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   238
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   239
    "Created: 26.10.1996 / 15:15:26 / cg"
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   240
    "Modified: 26.10.1996 / 15:27:09 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   241
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   242
!
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   243
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   244
restoreGenericAt:ip
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   245
    |t offs p rootView|
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   246
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   247
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   248
    rootView := dragView device rootView.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   249
    p := ip.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   250
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   251
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   252
     get device coordinates
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   253
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   254
    (t := dragView transformation) notNil ifTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   255
        p := t applyTo:p.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   256
    ].
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   257
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   258
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   259
     translate to screen
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   260
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   261
    offs := dragView device 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   262
                translatePoint:0@0 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   263
                from:(dragView id) to:(rootView id).
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   264
    p := p + offs.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   265
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   266
    rootView clippedByChildren:false.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   267
    rootView 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   268
        copyFrom:saveUnder 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   269
        x:0 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   270
        y:0 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   271
        toX:p x - dragOffset x
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   272
        y:p y - dragOffset y
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   273
        width:dragSize x 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   274
        height:dragSize y.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   275
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   276
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   277
!
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   278
348
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   279
startGenericDrag:aTwoArgDragBlock in:aView at:p atEnd:aFourArgEndBlock
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   280
    "start a generic (caller-provided drag);
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   281
     the dragBlock, aTwoArgDragBlock will be called with two args
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   282
     aPoint and a drawingGC, to perform the drawing at some dragPoint.
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   283
     The drag starts in aView at point p.
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   284
     When finished, the endAction is called with four args:
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   285
     the targetView, the targetViews windowID (useful, if its an alien view),
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   286
     the dropPoint in root-coordinates and the dropPoint within the targetView"
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   287
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   288
    self catchEventsFrom:aView.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   289
    motionAction := #doGenericDragX:y:.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   290
    releaseAction := #endGenericDragX:y:.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   291
    initialPoint := p.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   292
    previousPoint := nil.
348
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   293
    dragBlock := aTwoArgDragBlock.
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   294
    dropAction := aFourArgEndBlock.
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   295
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   296
    "Modified: 26.10.1996 / 15:09:26 / cg"
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   297
    "Created: 26.10.1996 / 15:16:13 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   298
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   299
!
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   300
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   301
startOpaqueDrag:aTwoArgDragBlock offset:offs extent:ext in:aView at:p atEnd:aFourArgEndBlock
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   302
    "start a generic opaque (caller-provided drag);
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   303
     opaque drag means, that the drawing cannot be undone by two inverting
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   304
     draws, but instead, the area under the dragged object must be saved
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   305
     and restored. The areas size to be saved/restored is passed in ext.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   306
     the dragBlock, aTwoArgDragBlock will be called with two args
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   307
     aPoint and a drawingGC, to perform the drawing at some dragPoint.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   308
     The drag starts in aView at point p.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   309
     When finished, the endAction is called with four args:
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   310
     the targetView, the targetViews windowID (useful, if its an alien view),
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   311
     the dropPoint in root-coordinates and the dropPoint within the targetView"
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   312
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   313
    self catchEventsFrom:aView.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   314
    motionAction := #doGenericDragX:y:.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   315
    releaseAction := #endGenericDragX:y:.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   316
    initialPoint := p.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   317
    previousPoint := nil.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   318
    dragBlock := aTwoArgDragBlock.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   319
    dropAction := aFourArgEndBlock.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   320
    opaque := true.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   321
    dragSize := ext.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   322
    dragOffset := offs.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   323
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   324
    "Modified: 26.10.1996 / 15:09:26 / cg"
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   325
    "Created: 26.10.1996 / 15:16:13 / cg"
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   326
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   327
! !
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   328
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   329
!DragAndDropManager methodsFor:'dragging - lines'!
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
doLineDragX:x y:y
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
    previousPoint notNil ifTrue:[
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
        self invertLineFrom:initialPoint to:previousPoint
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
    ].
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
    previousPoint := x @ y.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
    self invertLineFrom:initialPoint to:previousPoint
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
    "Modified: 26.10.1996 / 15:16:59 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   339
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   340
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
endLineDragX:x y:y
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
    previousPoint notNil ifTrue:[
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
        self invertLineFrom:initialPoint to:previousPoint
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
    ].
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
    previousPoint := nil.
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   348
    self uncatchEvents.
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   349
    self endDragAt:x @ y
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
    "Created: 26.10.1996 / 15:17:20 / cg"
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
    "Modified: 26.10.1996 / 15:22:41 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   353
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
invertLineFrom:ip1 to:ip2
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   357
    |t offs p1 p2 rootView a|
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
    rootView := dragView device rootView.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
    p1 := ip1.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
    p2 := ip2.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
    "
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
     get device coordinates
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
    "
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
    (t := dragView transformation) notNil ifTrue:[
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
        p1 := t applyTo:p1.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
        p2 := t applyTo:p2.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
    ].
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
    "
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
     translate to screen
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
    "
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
    offs := dragView device 
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
                translatePoint:0@0 
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
                from:(dragView id) to:(rootView id).
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
    p1 := p1 + offs.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
    p2 := p2 + offs.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
    rootView clippedByChildren:false.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
    rootView xoring:[
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
        rootView lineWidth:0. 
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   384
        lineMode == #arrow ifTrue:[
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   385
            a := Arrow from:p1 to:p2.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   386
            a arrowHeadLength:(rootView device horizontalPixelPerMillimeter * 4) rounded.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   387
            a displayFilledOn:rootView.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   388
        ] ifFalse:[
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   389
            rootView displayLineFrom:p1 to:p2.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   390
        ].
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
        rootView flush
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
    ].
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
    "Created: 26.10.1996 / 15:15:26 / cg"
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
    "Modified: 26.10.1996 / 15:27:09 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   396
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   397
!
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
345
626e8241dc76 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   399
startArrowDragIn:aView at:p atEnd:aBlock
348
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   400
    "start a line-drag of an arrow-line.
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   401
     The drag starts in aView at point p.
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   402
     When finished, the endAction is called with four args:
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   403
     the targetView, the targetViews windowID (useful, if its an alien view),
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   404
     the dropPoint in root-coordinates and the dropPoint within the targetView"
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   405
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   406
    self catchEventsFrom:aView.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   407
    motionAction := #doLineDragX:y:.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   408
    releaseAction := #endLineDragX:y:.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   409
    initialPoint := p.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   410
    previousPoint := nil.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   411
    dragBlock := nil.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   412
    lineMode := #arrow.
345
626e8241dc76 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   413
    dropAction := aBlock.
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   414
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   415
    "Modified: 26.10.1996 / 15:09:26 / cg"
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   416
    "Created: 26.10.1996 / 15:16:13 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   417
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   418
!
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   419
348
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   420
startLineDragIn:aView at:p atEnd:aFourArgEndBlock
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   421
    "start a line-drag of a normal line.
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   422
     The drag starts in aView at point p.
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   423
     When finished, the endAction is called with four args:
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   424
     the targetView, the targetViews windowID (useful, if its an alien view),
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   425
     the dropPoint in root-coordinates and the dropPoint within the targetView"
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   426
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
    self catchEventsFrom:aView.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
    motionAction := #doLineDragX:y:.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
    releaseAction := #endLineDragX:y:.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
    initialPoint := p.
342
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   431
    previousPoint := nil.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   432
    dragBlock := nil.
7563cbf04502 added genericDrag & arrowDrag
Claus Gittinger <cg@exept.de>
parents: 341
diff changeset
   433
    lineMode := nil.
348
74f1fda9deb0 more args & comments
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   434
    dropAction := aFourArgEndBlock.
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
    "Modified: 26.10.1996 / 15:09:26 / cg"
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
    "Created: 26.10.1996 / 15:16:13 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   438
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
! !
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   441
!DragAndDropManager methodsFor:'drawing'!
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   442
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   443
showDragging:items in:aView at:p
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   444
    |offs|
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   445
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   446
    items size > 1 ifTrue:[
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   447
        offs := 0.
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   448
        items do:[:item |
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   449
            item displayOn:aView at:p + (0@offs).
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   450
            offs := offs + (item heightOn:self)
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   451
        ]
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   452
    ] ifFalse:[
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   453
        items first displayOn:aView at:p.
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   454
    ]
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   455
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   456
    "Created: 14.11.1996 / 15:31:31 / cg"
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   457
    "Modified: 14.11.1996 / 16:32:00 / cg"
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   458
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   459
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   460
! !
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   461
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   462
!DragAndDropManager methodsFor:'easy drag & drop'!
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   463
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   464
startDrag:anObjectOrCollection from:aView offset:offset
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   465
    "start a drop at the current pointer position"
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   466
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   467
    |pos displayObjects device width height|
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   468
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   469
    self dropObjects:anObjectOrCollection.
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   470
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   471
    device := aView device.
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   472
    pos := device translatePoint:(device pointerPosition)
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   473
                            from:(device rootView id) 
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   474
                              to:(aView id).
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   475
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   476
    displayObjects := dropObjects collect:[:each | each displayObject on:device].
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   477
    height := displayObjects inject:0 into:[:sum :each | sum + (each heightOn:aView)].
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   478
    width  := displayObjects inject:0 into:[:max :each | max max:(each widthOn:aView)].
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   479
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   480
    self startOpaqueDrag:[:aPoint :aView|self showDragging:displayObjects in:aView at:(aPoint - offset)]
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   481
                  offset:offset
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   482
                  extent:(width @ height)
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   483
                      in:aView
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   484
                      at:pos
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   485
                   atEnd:nil.
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   486
! !
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   487
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
!DragAndDropManager methodsFor:'event catching'!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
buttonMotion:button x:x y:y view:aView
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
    self perform:motionAction with:x with:y
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
    "Created: 26.10.1996 / 15:09:00 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   494
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   495
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   496
!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   497
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   498
buttonRelease:button x:x y:y view:aView
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   499
    self perform:releaseAction with:x with:y
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   500
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   501
    "Created: 26.10.1996 / 15:09:14 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   502
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   503
!
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   504
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   505
drop:something in:targetView at:aPoint from:sourceView ifOk:okAction ifFail:failAction
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   506
    "try to drop some object in a targetView;
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   507
     if any view along the targetViews superView chain takes it, 
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   508
     the okAction is evaluated; if not, failAction is evaluated."
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   509
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   510
    |v pnt|
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   511
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   512
    v := targetView.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   513
    pnt := aPoint.
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   514
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   515
    [v notNil] whileTrue:[
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   516
        (v canDrop:something) ifTrue:[
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   517
            v 
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   518
                drop:something 
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   519
                at:aPoint 
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   520
                from:sourceView 
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   521
                with:[:o | okAction. ^ true]
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   522
                ifFail:[:o | failAction. ^ false].
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   523
        ].
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   524
        v := v superView.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   525
        pnt := nil
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   526
    ].
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   527
    failAction value.
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   528
    ^ false
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   529
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   530
    "Modified: 4.4.1997 / 18:25:18 / cg"
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   531
!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   532
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   533
handlesButtonMotion:button inView:aView
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   534
    "query from event processor: am I interested in button-events ?
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   535
     yes I am (to activate the clicked-on field)."
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   536
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   537
    ^ aView == dragView
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   538
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   539
    "Created: 26.10.1996 / 15:05:36 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   540
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   541
!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   542
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   543
handlesButtonRelease:button inView:aView
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   544
    "query from event processor: am I interested in button-events ?
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   545
     yes I am (to activate the clicked-on field)."
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   546
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   547
    ^ aView == dragView
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   548
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   549
    "Created: 26.10.1996 / 15:05:48 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   550
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   551
! !
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   552
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   553
!DragAndDropManager methodsFor:'private'!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   554
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   555
catchEventsFrom:aView
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   556
    dragView   := aView.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   557
    saveCursor := dragView cursor.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   558
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   559
    rememberedDelegate := aView delegate.
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   560
    aView delegate:self.
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   562
    "Created: 26.10.1996 / 15:03:12 / cg"
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   563
    "Modified: 26.10.1996 / 15:21:57 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   564
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   565
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   566
!
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   567
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   568
destinationViewAt:ip
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   569
    |rootPoint t viewId offs destinationId lastViewId destinationView
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   570
     rootView destinationPoint device|
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   571
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   572
    device    := dragView device.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   573
    rootView  := device rootView.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   574
    rootPoint := ip.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   575
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   576
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   577
     get device coordinates
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   578
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   579
    (t := dragView transformation) notNil ifTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   580
        rootPoint := t applyTo:ip.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   581
    ].
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   582
    viewId := rootView id.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   583
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   584
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   585
     translate to screen
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   586
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   587
    offs := device translatePoint:0@0 from:(dragView id) to:viewId.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   588
    rootPoint := rootPoint + offs.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   589
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   590
    "search view the drop is in"
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   591
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   592
    [viewId notNil] whileTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   593
        destinationId := device viewIdFromPoint:rootPoint in:viewId.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   594
        lastViewId := viewId.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   595
        viewId := destinationId
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   596
    ].
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   597
    ^ device viewFromId:lastViewId
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   598
!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   599
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   600
endDragAt:ip
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   601
    |rootPoint t viewId offs destinationId lastViewId destinationView
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   602
     rootView destinationPoint device|
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   603
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   604
    dragView cursor:saveCursor now:true.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   605
    device := dragView device.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   606
    rootView := device rootView.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   607
    rootPoint := ip.
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   608
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   609
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   610
     get device coordinates
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   611
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   612
    (t := dragView transformation) notNil ifTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   613
        rootPoint := t applyTo:ip.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   614
    ].
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   615
    viewId := rootView id.
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   616
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   617
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   618
     translate to screen
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   619
    "
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   620
    offs := device translatePoint:0@0 from:(dragView id) to:viewId.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   621
    rootPoint := rootPoint + offs.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   622
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   623
    "search view the drop is in"
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   624
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   625
    [viewId notNil] whileTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   626
        destinationId := device viewIdFromPoint:rootPoint in:viewId.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   627
        lastViewId := viewId.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   628
        viewId := destinationId
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   629
    ].
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   630
    destinationView := device viewFromId:lastViewId.
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   631
    destinationId := lastViewId.
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   632
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   633
    dropAction notNil ifTrue:[
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   634
        "/ initiator wants to do it himself, manually.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   635
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   636
        dropAction value:destinationView
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   637
                   value:destinationId
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   638
                   value:rootPoint
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   639
                   value:destinationPoint.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   640
        ^ self
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   641
    ].
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   642
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   643
    "/ default drop behavior:
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   644
    "/ if its one of my own views, ask if dropping is ok.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   645
    "/ if not, ask the device to drop it.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   646
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   647
    destinationView notNil ifTrue:[
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   648
        "/
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   649
        "/ one of my views
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   650
        "/
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   651
        destinationPoint := device translatePoint:rootPoint
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   652
                                             from:(rootView id) 
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   653
                                               to:(destinationView id).
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   654
        destinationView transformation notNil ifTrue:[
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   655
            destinationPoint := destinationView transformation applyInverseTo:destinationPoint
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   656
        ].
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   657
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   658
        (destinationView canDrop:dropObjects) ifTrue:[
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   659
            destinationView drop:dropObjects at:destinationPoint.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   660
            ^ self.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   661
        ].
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   662
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   663
        "/ try superViews along the chain ...
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   664
        destinationView := destinationView superView.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   665
        [destinationView notNil] whileTrue:[
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   666
            (destinationView canDrop:dropObjects) ifTrue:[
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   667
                destinationView drop:dropObjects at:nil.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   668
                ^ self.
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   669
            ].
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   670
            destinationView := destinationView superView.
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   671
        ].
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   672
        ^ self
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   673
    ].
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   674
513
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   675
    "/
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   676
    "/ not one of my views
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   677
    "/
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   678
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   679
    "/ XXX add external clipboard mechanism via display
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   680
    device 
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   681
        drop:dropObjects 
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   682
        inWindowID:destinationId 
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   683
        position:destinationPoint 
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   684
        rootPosition:rootPoint
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   685
8334721d93bb try superView drop.
Claus Gittinger <cg@exept.de>
parents: 411
diff changeset
   686
    "Modified: 4.4.1997 / 18:32:43 / cg"
346
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   687
!
1612c23d9c5d pass all dropInfo to an end-action
Claus Gittinger <cg@exept.de>
parents: 345
diff changeset
   688
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
uncatchEvents
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
    dragView delegate:rememberedDelegate.
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
    "Created: 26.10.1996 / 15:22:29 / cg"
394
0539d7b29aa7 *** empty log message ***
ca
parents: 348
diff changeset
   693
411
8b8b0128d129 *** empty log message ***
ca
parents: 401
diff changeset
   694
    "
8b8b0128d129 *** empty log message ***
ca
parents: 401
diff changeset
   695
     DragAndDropManager allInstancesDo:[:m |
8b8b0128d129 *** empty log message ***
ca
parents: 401
diff changeset
   696
        m uncatchEvents
8b8b0128d129 *** empty log message ***
ca
parents: 401
diff changeset
   697
     ]
8b8b0128d129 *** empty log message ***
ca
parents: 401
diff changeset
   698
    "
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   699
! !
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   700
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   701
!DragAndDropManager::DemoView2 methodsFor:'events'!
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   702
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   703
buttonPress:button x:x y:y
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   704
    DragAndDropManager new
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   705
        startGenericDrag:[:p :v | v displayString:'hello' at:p]
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   706
        in:self 
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   707
        at:(x@y) 
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   708
        atEnd:[:view
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   709
               :viewID
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   710
               :rootPoint
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   711
               :viewPoint | ]
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   712
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   713
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   714
    "
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   715
     self new open
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   716
    "
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   717
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   718
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   719
! !
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   720
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   721
!DragAndDropManager::DemoView3 methodsFor:'events'!
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   722
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   723
buttonPress:button x:x y:y
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   724
    DragAndDropManager new
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   725
        startArrowDragIn:self 
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   726
        at:(x@y)
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   727
        atEnd:[:view
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   728
               :viewID
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   729
               :rootPoint
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   730
               :viewPoint | ]
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   731
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   732
    "
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   733
     self new open
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   734
    "
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   735
! !
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   736
397
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   737
!DragAndDropManager::DemoView methodsFor:'events'!
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   738
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   739
buttonPress:button x:x y:y
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   740
    DragAndDropManager new
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   741
        startLineDragIn:self at:(x@y) 
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   742
        atEnd:[:view
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   743
               :viewID
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   744
               :rootPoint
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   745
               :viewPoint | 
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   746
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   747
               Transcript show:'dropped at ';
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   748
                          show:viewPoint;
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   749
                          show:' in '.
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   750
               view notNil ifTrue:[
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   751
                   Transcript showCR:view
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   752
               ] ifFalse:[
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   753
                   Transcript show:'alien view ';
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   754
                              showCR:viewID address
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   755
               ] 
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   756
        ].
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   757
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   758
    "
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   759
     self new open
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   760
    "
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   761
! !
7ad4e53d8f49 *** empty log message ***
ca
parents: 394
diff changeset
   762
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   763
!DragAndDropManager class methodsFor:'documentation'!
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   764
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   765
version
515
7df33af3beaa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 513
diff changeset
   766
    ^ '$Header: /cvs/stx/stx/libview2/DragAndDropManager.st,v 1.12 1997-04-06 13:03:43 cg Exp $'
341
5afe98e6185b intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   767
! !