DropObject.st
author Claus Gittinger <cg@exept.de>
Thu, 12 Jun 2003 13:09:59 +0200
changeset 1784 67f412dd5926
parent 1709 fc33be8aaa9c
child 1952 5009754ae556
permissions -rw-r--r--
refactored inst-creation code; added FileInArchive
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
     1
"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
     3
              All Rights Reserved
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
     4
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
     5
 This software is furnished under a license and may be used
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
     6
 only in accordance with the terms of that license and with the
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
     9
 other person.  No title to or ownership of the software is
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    10
 hereby transferred.
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    11
"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    12
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    13
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    14
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    15
"{ Package: 'stx:libview2' }"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    16
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    17
Object subclass:#DropObject
860
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
    18
	instanceVariableNames:'theObject displayObject'
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    19
	classVariableNames:''
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    20
	poolDictionaries:''
875
6e99b23e8083 change category
ca
parents: 860
diff changeset
    21
	category:'Interface-DragAndDrop'
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    22
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    23
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
    24
DropObject class instanceVariableNames:'DisplayObject'
cdcee4daddef preliminary
ca
parents: 396
diff changeset
    25
cdcee4daddef preliminary
ca
parents: 396
diff changeset
    26
"
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    27
 No other class instance variables are inherited by this class.
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
    28
"
cdcee4daddef preliminary
ca
parents: 396
diff changeset
    29
!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
    30
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    31
DropObject subclass:#Class
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    32
	instanceVariableNames:''
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    33
	classVariableNames:''
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    34
	poolDictionaries:''
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    35
	privateIn:DropObject
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    36
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    37
1277
ad8a630c9acd try bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 1112
diff changeset
    38
DropObject subclass:#Color
ad8a630c9acd try bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 1112
diff changeset
    39
	instanceVariableNames:''
860
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
    40
	classVariableNames:''
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
    41
	poolDictionaries:''
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
    42
	privateIn:DropObject
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
    43
!
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
    44
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    45
DropObject subclass:#File
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    46
	instanceVariableNames:'info isHtmlFile isImageFile isPrintable'
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    47
	classVariableNames:''
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    48
	poolDictionaries:''
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    49
	privateIn:DropObject
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    50
!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    51
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
    52
DropObject::File subclass:#FileInArchive
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
    53
	instanceVariableNames:''
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
    54
	classVariableNames:''
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
    55
	poolDictionaries:''
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
    56
	privateIn:DropObject
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
    57
!
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
    58
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    59
DropObject subclass:#Image
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    60
	instanceVariableNames:''
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    61
	classVariableNames:''
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    62
	poolDictionaries:''
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    63
	privateIn:DropObject
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    64
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
    65
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    66
DropObject subclass:#Method
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    67
	instanceVariableNames:''
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    68
	classVariableNames:''
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    69
	poolDictionaries:''
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    70
	privateIn:DropObject
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    71
!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    72
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    73
DropObject subclass:#Text
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    74
	instanceVariableNames:''
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    75
	classVariableNames:''
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    76
	poolDictionaries:''
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    77
	privateIn:DropObject
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    78
!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
    79
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    80
!DropObject class methodsFor:'documentation'!
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    81
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    82
copyright
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    83
"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    84
 COPYRIGHT (c) 1997 by eXept Software AG
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    85
              All Rights Reserved
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    86
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    87
 This software is furnished under a license and may be used
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    88
 only in accordance with the terms of that license and with the
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    89
 inclusion of the above copyright notice.   This software may not
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    90
 be provided or otherwise made available to, or used by, any
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    91
 other person.  No title to or ownership of the software is
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    92
 hereby transferred.
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    93
"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    94
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    95
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    96
!
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    97
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    98
documentation
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
    99
"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   100
    instances of myself and subclasses wrap objects which are being
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   101
    dragged (and dropped).
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   102
    Any object can be dragged, but for some often encountered types,
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   103
    specialized subclasses are provided, which react to certain queries.
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   104
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   105
    [see also:]
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   106
        DragAndDropManager
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   107
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   108
    [author:]
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   109
        Claus Atzkern
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   110
"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   111
! !
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   112
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   113
!DropObject class methodsFor:'instance creation'!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   114
1112
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   115
dropObjectClassFor:someThing
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   116
    "given something to drag&drop, return an appropriate
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   117
     dropObject class for it."
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   118
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   119
    someThing isColor             ifTrue:[^ DropObject::Color].
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   120
    someThing isImageOrForm       ifTrue:[^ DropObject::Image].
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   121
    (someThing isKindOf:Filename) ifTrue:[^ DropObject::File].
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   122
    someThing isString            ifTrue:[^ DropObject::Text].
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   123
    someThing isBehavior          ifTrue:[^ DropObject::Class].
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   124
    someThing isMethod            ifTrue:[^ DropObject::Method].
1112
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   125
    ^ self
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   126
!
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   127
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   128
new:someThing
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   129
    "create an instance on something
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   130
    "
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   131
    |cls|
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   132
1112
da4b42bf8ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   133
    cls := self dropObjectClassFor:someThing.
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   134
    ^ self newInstanceOf:cls for:someThing
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   135
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   136
    "Modified: 19.4.1997 / 17:19:55 / cg"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   137
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   138
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   139
newClass:aClass
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   140
    "create an instance for a class (dragging a class from a browser)"
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   141
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   142
    ^ self newInstanceOf:DropObject::Class for:aClass
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   143
!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   144
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   145
newColor:aColor
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   146
    "create an instance for a color (dragging a color from a bitmap editor)"
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   147
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   148
    ^ self newInstanceOf:DropObject::Color for:aColor
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   149
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   150
    "Modified: 19.4.1997 / 17:20:17 / cg"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   151
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   152
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   153
newFile:aFilename
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   154
    "create an instance for a file or directory (dragging a file in a fileBrowser)"
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   155
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   156
    ^ self newInstanceOf:DropObject::File for:aFilename
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   157
!
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   158
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   159
newFileInArchive:aFilename
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   160
    "create an instance for a file or directory contained inside an archive
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   161
     (dragging a file from an archive shown in a fileBrowser)"
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   162
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   163
    ^ self newInstanceOf:DropObject::FileInArchive for:aFilename
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   164
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   165
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   166
newImage:anImageOrForm
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   167
    "create an instance for an image"
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   168
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   169
    ^ self newInstanceOf:DropObject::Image for:anImageOrForm
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   170
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   171
    "Modified: 19.4.1997 / 17:20:37 / cg"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   172
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   173
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   174
newInstanceOf:aClass for:someThing
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   175
    "create an instance on something
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   176
    "
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   177
    ^ aClass new theObject:someThing
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   178
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   179
    "Modified: 19.4.1997 / 17:19:55 / cg"
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   180
!
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   181
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   182
newMethod:aMethod
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   183
    "create an instance for a method (dragging a method in a browser)"
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   184
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   185
    ^ self newInstanceOf:DropObject::Method for:aMethod
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   186
!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   187
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   188
newText:aTextOrString
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   189
    "create an instance for some text (dragging some text from an editor)"
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   190
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   191
    ^ self newInstanceOf:DropObject::Text for:aTextOrString
547
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   192
7764165d89b8 added comments & docu
Claus Gittinger <cg@exept.de>
parents: 546
diff changeset
   193
    "Modified: 19.4.1997 / 17:20:46 / cg"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   194
! !
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   195
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   196
!DropObject class methodsFor:'defaults'!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   197
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   198
displayObject
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   199
    "return some object which is shown while dragging;
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   200
     here an image based upon my displayObjectName is returned.
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   201
     Either this method or #displayObjectName is usually redefined
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   202
     in subclasses"
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   203
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   204
    DisplayObject notNil ifTrue:[
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   205
        ^ DisplayObject
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   206
    ].
1292
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   207
    DisplayObject := Smalltalk imageFromFileNamed:(self displayObjectName) forClass:self.
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   208
    ^ DisplayObject
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   209
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   210
    "Modified: 19.4.1997 / 13:04:05 / cg"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   211
!
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   212
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   213
displayObject:aDisplayObject
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   214
    "set the object which is shown while dragging;
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   215
     this object must understand #displayOn:x:y: (i.e. the displayObject
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   216
     protocol). The object is kept per class for ALL future drag operations.
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   217
     Useful to change the default images in subclasses."
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   218
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   219
    DisplayObject := aDisplayObject
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   220
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   221
    "Modified: 19.4.1997 / 15:42:10 / cg"
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   222
!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   223
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   224
displayObjectName
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   225
    "return the name of a bitmap image file, which is used 
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   226
     during a drag.
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   227
     Here, a dummy file is returned."
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   228
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   229
    ^ 'bitmaps/xpmBitmaps/plain_pixmaps/balloon3.xpm'
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   230
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   231
    "Modified: 19.4.1997 / 13:54:13 / cg"
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   232
! !
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   233
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   234
!DropObject methodsFor:'accessing'!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   235
860
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   236
displayObject
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   237
    "return my graphical representation - here a default is returned"
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   238
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   239
    ^ displayObject ? (self class displayObject)
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   240
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   241
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   242
!
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   243
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   244
displayObject:anObject
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   245
    "set my graphical representation"
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   246
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   247
    displayObject := anObject
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   248
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   249
!
99aac8d0e899 set an explicit display object
ca
parents: 547
diff changeset
   250
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   251
theObject
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   252
    "return the real object represented by the receiver"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   253
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   254
    ^ theObject
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   255
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   256
    "Modified: 19.4.1997 / 12:53:01 / cg"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   257
!
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   258
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   259
theObject:something
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   260
    "set the real object represented by the receiver"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   261
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   262
    theObject := something.
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   263
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   264
    "Modified: 19.4.1997 / 12:53:10 / cg"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   265
! !
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   266
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   267
!DropObject methodsFor:'testing'!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   268
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   269
isClassObject
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   270
    "return true, if the dropObject represents some class"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   271
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   272
    ^ false
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   273
!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   274
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   275
isColorObject
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   276
    "return true, if the dropObject represents a color"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   277
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   278
    ^ false
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   279
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   280
    "Modified: 19.4.1997 / 12:52:36 / cg"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   281
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   282
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   283
isFileInArchive
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   284
    ^ false
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   285
!
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   286
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   287
isFileObject
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   288
    "return true, if the dropObject represents some file or directory"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   289
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   290
    ^ false
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   291
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   292
    "Modified: 19.4.1997 / 12:52:29 / cg"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   293
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   294
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   295
isImageObject
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   296
    "return true, if the dropObject represents some image"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   297
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   298
    ^ false
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   299
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   300
    "Modified: 19.4.1997 / 12:52:22 / cg"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   301
!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   302
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   303
isMethodObject
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   304
    "return true, if the dropObject represents some method"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   305
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   306
    ^ false
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   307
!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   308
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   309
isTextObject
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   310
    "return true, if the dropObject represents some text"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   311
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   312
    ^ false
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   313
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   314
    "Modified: 19.4.1997 / 12:52:17 / cg"
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   315
! !
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   316
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   317
!DropObject::Class methodsFor:'testing'!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   318
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   319
isClassObject
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   320
    "return true, if the dropObject represents a class"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   321
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   322
    ^ true
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   323
! !
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   324
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   325
!DropObject::Color class methodsFor:'defaults'!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   326
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   327
displayObjectName
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   328
    "return the name of a bitmap image file, which is used 
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   329
     during a drag."
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   330
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   331
    ^ 'bitmaps/xpmBitmaps/misc_tools/color_wheel.xpm'
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   332
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   333
    "Modified: 19.4.1997 / 15:38:12 / cg"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   334
! !
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   335
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   336
!DropObject::Color methodsFor:'testing'!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   337
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   338
isColorObject
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   339
    "return true, if the dropObject represents a color"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   340
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   341
    ^ true
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   342
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   343
    "Modified: 19.4.1997 / 12:51:57 / cg"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   344
! !
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   345
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   346
!DropObject::File class methodsFor:'defaults'!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   347
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   348
displayObjectName
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   349
    "return the name of a bitmap image file, which is used 
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   350
     during a drag."
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   351
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   352
    ^ 'bitmaps/xpmBitmaps/document_images/xfm_file.xpm'
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   353
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   354
    "Modified: 19.4.1997 / 15:38:07 / cg"
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   355
! !
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   356
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   357
!DropObject::File methodsFor:'accessing'!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   358
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   359
theObject:aPathname
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   360
    |f path|
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   361
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   362
    f := aPathname asFilename.
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   363
    path := f pathName.
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   364
    info := f info.
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   365
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   366
    super theObject:f
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   367
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   368
    "Modified: 19.4.1997 / 12:49:17 / cg"
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   369
! !
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   370
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   371
!DropObject::File methodsFor:'queries'!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   372
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   373
exists
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   374
    "returns true if the file or directory exists
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   375
    "
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   376
    ^ info notNil
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   377
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   378
    "Modified: 19.4.1997 / 12:49:30 / cg"
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   379
!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   380
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   381
isDirectory
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   382
    "checks whether file is a directory
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   383
    "
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   384
    ^ (info notNil and:[info type == #directory])
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   385
!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   386
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   387
isHtmlFile
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   388
    "checks whether file is an html file
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   389
    "
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   390
    |suffixes pathName|
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   391
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   392
    isHtmlFile isNil ifTrue:[
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   393
        (info isNil or:[self isDirectory]) ifTrue:[
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   394
            isHtmlFile := false
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   395
        ] ifFalse:[
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   396
            pathName   := theObject asString.
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   397
            suffixes   := #( '.html' '.htm' '.HTML' '.HTM' ).
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   398
            isHtmlFile := (suffixes findFirst:[:el|pathName endsWith:el]) ~~ 0
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   399
        ]
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   400
    ].
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   401
    ^ isHtmlFile
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   402
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   403
    "Modified: 19.4.1997 / 12:49:37 / cg"
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   404
!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   405
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   406
isImageFile
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   407
    "returns true if file is an image file
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   408
    "
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   409
    |pathName|
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   410
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   411
    isImageFile isNil ifTrue:[
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   412
        (info isNil or:[self isDirectory]) ifTrue:[
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   413
            isImageFile := false
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   414
        ] ifFalse:[
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   415
            pathName    := theObject asString.
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   416
            isImageFile := Image isImageFileSuffix:(pathName asFilename suffix).
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   417
        ]
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   418
    ].
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   419
    ^ isImageFile
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   420
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   421
    "Modified: 19.4.1997 / 12:50:58 / cg"
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   422
!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   423
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   424
isPrintable
1709
fc33be8aaa9c Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 1623
diff changeset
   425
    "returns false if file contains nonprintable characters"
fc33be8aaa9c Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 1623
diff changeset
   426
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   427
    |stream buff size|
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   428
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   429
    isPrintable isNil ifTrue:[
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   430
        isPrintable := false.
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   431
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   432
        (info isNil or:[self isDirectory]) ifFalse:[
1709
fc33be8aaa9c Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 1623
diff changeset
   433
            stream := theObject readStreamOrNil.
fc33be8aaa9c Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 1623
diff changeset
   434
            stream notNil ifTrue:[
403
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   435
                buff := String new:300.
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   436
                size := stream nextBytes:300 into:buff.
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   437
                stream close.
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   438
            ].
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   439
            1 to:size do:[:i|
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   440
                (buff at:i) isPrintable ifFalse:[
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   441
                    ^ isPrintable
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   442
                ]
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   443
            ].
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   444
            isPrintable := true
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   445
        ]
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   446
    ].
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   447
    ^ isPrintable
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   448
! !
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   449
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   450
!DropObject::File methodsFor:'testing'!
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   451
cdcee4daddef preliminary
ca
parents: 396
diff changeset
   452
isFileObject
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   453
    "return true, if the dropObject represents a file- or directory"
396
77043c4aca02 checkin from browser
ca
parents: 395
diff changeset
   454
77043c4aca02 checkin from browser
ca
parents: 395
diff changeset
   455
    ^ true
77043c4aca02 checkin from browser
ca
parents: 395
diff changeset
   456
546
a71c15f2330c added comments & docu
Claus Gittinger <cg@exept.de>
parents: 403
diff changeset
   457
    "Modified: 19.4.1997 / 12:51:49 / cg"
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   458
! !
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   459
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   460
!DropObject::FileInArchive methodsFor:'testing'!
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   461
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   462
isFileInArchive
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   463
    ^ true
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   464
! !
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   465
1292
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   466
!DropObject::Image class methodsFor:'defaults'!
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   467
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   468
displayObjectName
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   469
    "return the name of a bitmap image file, which is used 
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   470
     during a drag."
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   471
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   472
    ^ 'bitmaps/xpmBitmaps/misc_tools/picture.xpm'
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   473
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   474
    "Modified: 19.4.1997 / 15:38:02 / cg"
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   475
! !
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   476
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   477
!DropObject::Image methodsFor:'testing'!
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   478
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   479
isImageObject
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   480
    "return true, if the dropObject represents an image"
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   481
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   482
    ^ true
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   483
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   484
    "Modified: 19.4.1997 / 12:51:28 / cg"
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   485
! !
632e22649e4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1277
diff changeset
   486
1482
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   487
!DropObject::Method methodsFor:'testing'!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   488
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   489
isMethodObject
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   490
    "return true, if the dropObject represents a method"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   491
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   492
    ^ true
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   493
! !
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   494
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   495
!DropObject::Text class methodsFor:'defaults'!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   496
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   497
displayObjectName
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   498
    ^ 'bitmaps/xpmBitmaps/document_images/yellow_file_text_grab.xpm'
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   499
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   500
    "Modified: 19.4.1997 / 15:40:33 / cg"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   501
! !
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   502
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   503
!DropObject::Text methodsFor:'testing'!
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   504
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   505
isTextObject
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   506
    "return true, if the dropObject represents some text"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   507
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   508
    ^ true
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   509
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   510
    "Modified: 19.4.1997 / 12:52:08 / cg"
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   511
! !
e2cbc5342630 added class & method
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
   512
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   513
!DropObject class methodsFor:'documentation'!
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   514
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   515
version
1784
67f412dd5926 refactored inst-creation code;
Claus Gittinger <cg@exept.de>
parents: 1709
diff changeset
   516
    ^ '$Header: /cvs/stx/stx/libview2/DropObject.st,v 1.14 2003-06-12 11:09:59 cg Exp $'
395
bd27655f4354 intitial checkin
ca
parents:
diff changeset
   517
! !