DSVLabelView.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 02 Sep 2022 11:25:39 +0100
branchjv
changeset 6261 9b7eb7159d29
parent 5422 e783e1ebf5ca
child 5446 6371c5e1a429
permissions -rw-r--r--
Fix loong standing bug with some menus not being translated / resolved This has happened with browser "View" menu when sometimes it had the slice resolved and sometimes not. It turned out that it was because the code disabled resources (and therefore slices) resolution when processing shortcuts, so the menu was created and cached unresolved. This fixes the issue. eXept apparently run into the same problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     1
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by Claus Gittinger / eXept Software AG
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     3
              All Rights Reserved
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     4
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e22c45e26653 intitial checkin
ca
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    10
 hereby transferred.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    11
"
1844
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    12
"{ Package: 'stx:libwidg2' }"
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    13
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
    14
"{ NameSpace: Smalltalk }"
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
    15
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
    16
SimpleView subclass:#DSVLabelView
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    17
	instanceVariableNames:'dataSet lineDrag columns selection enabled preferredHeight
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    18
		handleCursor tabSpacing opaqueColumnResize verticalLabelSpacing
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    19
		indexOfSortColumn reverseSort'
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    20
	classVariableNames:''
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    21
	poolDictionaries:''
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    22
	category:'Views-DataSet'
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    23
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    24
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
    25
Object subclass:#LineDrag
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    26
	instanceVariableNames:'topX topY botY column minX startX transX topView color'
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    27
	classVariableNames:''
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    28
	poolDictionaries:''
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
    29
	privateIn:DSVLabelView
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
    30
!
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
    31
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    32
!DSVLabelView class methodsFor:'documentation'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    33
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    34
copyright
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    35
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    36
 COPYRIGHT (c) 1997 by Claus Gittinger / eXept Software AG
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    37
              All Rights Reserved
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    38
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    39
 This software is furnished under a license and may be used
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    40
 only in accordance with the terms of that license and with the
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    41
 inclusion of the above copyright notice.   This software may not
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    42
 be provided or otherwise made available to, or used by, any
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    43
 other person.  No title to or ownership of the software is
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    44
 hereby transferred.
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    45
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    46
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    47
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    48
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    49
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    50
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    51
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    52
documentation
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    53
"
2789
e7c8596999e7 comment
Claus Gittinger <cg@exept.de>
parents: 2685
diff changeset
    54
    shows the labels assigned to the column descriptions. 
e7c8596999e7 comment
Claus Gittinger <cg@exept.de>
parents: 2685
diff changeset
    55
    Used as the title-part of a DataSetView.
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    56
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    57
    [Instance variables:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    58
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    59
        dataSet         <DSVColumnView>         column view which shows the columns
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
    60
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    61
        selection       <Integer or nil>        current selected index or nil.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
    62
1086
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    63
        enabled         <Boolean>               if a press action exists on a column
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    64
                                                entry, this action could be enabled or
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    65
                                                disabled.
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    66
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    67
        preferredHeight <Integer>               the preferred height of the labelView
1086
2b5746c733f6 add some comment
ca
parents: 1085
diff changeset
    68
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    69
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    70
    [author:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    71
        Claus Atzkern
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    72
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    73
    [see also:]
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    74
        DSVColumnView
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    75
        DataSetColumnSpec
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    76
        DataSetColumn
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    77
        DataSetView
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    78
"
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    79
! !
e22c45e26653 intitial checkin
ca
parents:
diff changeset
    80
1940
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    81
!DSVLabelView class methodsFor:'accessing'!
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    82
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    83
tabSpacing
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    84
    "returns the tab spacing
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    85
    "
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    86
    ^ 2
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    87
! !
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
    88
1844
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    89
!DSVLabelView class methodsFor:'defaults'!
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    90
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    91
defaultFont
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    92
    ^ DSVColumnView defaultFont
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    93
! !
05a9cb2fc86f default font
martin
parents: 1605
diff changeset
    94
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    95
!DSVLabelView methodsFor:'accessing'!
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
    96
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
    97
columns:aListOfColumns
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
    98
    "the list of columns changed"
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
    99
2152
6c52408279f9 halts and unused methods removed
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   100
    aListOfColumns = columns ifTrue:[^ self].
2150
5184a8b92c2a better look
Claus Gittinger <cg@exept.de>
parents: 2146
diff changeset
   101
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   102
    columns         := aListOfColumns.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   103
    preferredHeight := nil.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   104
    selection       := nil.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   105
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   106
    self changed:#columnLayout.
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   107
!
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   108
3583
4072f1a89291 added #dataSet accessor method
Stefan Vogel <sv@exept.de>
parents: 3572
diff changeset
   109
dataSet
4072f1a89291 added #dataSet accessor method
Stefan Vogel <sv@exept.de>
parents: 3572
diff changeset
   110
    ^ dataSet
4072f1a89291 added #dataSet accessor method
Stefan Vogel <sv@exept.de>
parents: 3572
diff changeset
   111
!
4072f1a89291 added #dataSet accessor method
Stefan Vogel <sv@exept.de>
parents: 3572
diff changeset
   112
3766
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   113
indexOfSortColumn
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   114
    ^ indexOfSortColumn
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   115
!
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   116
1931
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   117
opaqueColumnResize
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   118
    ^ opaqueColumnResize
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   119
!
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   120
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   121
opaqueColumnResize:aBoolean
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   122
    opaqueColumnResize := aBoolean
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   123
!
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   124
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   125
reverseSort
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   126
    ^ reverseSort
884
4b2f2ddef43c bug fix:
ca
parents: 859
diff changeset
   127
! !
4b2f2ddef43c bug fix:
ca
parents: 859
diff changeset
   128
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   129
!DSVLabelView methodsFor:'drawing'!
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   130
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   131
invalidate
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   132
    (shown) ifTrue:[
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   133
        super invalidate
1408
1cda0a4fb566 use invalidate... insteat of redraw...
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   134
    ]
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   135
!
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   136
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   137
invalidateItemAt:anIndex
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   138
    "invalidate rectangle assigned to an item at an index
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   139
    "
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   140
    |cL xL xR hg|
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   141
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   142
    (shown) ifTrue:[
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   143
        cL := columns at:anIndex ifAbsent:[^ nil].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   144
        xL := self xVisibleOfColNr:anIndex.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   145
        xR := xL + cL width.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   146
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   147
        (xL < width and:[xR > 0]) ifTrue:[
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   148
            xL := xL max:0.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   149
            xR := xR min:width.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   150
            hg := height - margin - margin.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   151
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   152
            self invalidate:(Rectangle left:xL top:margin width:(xR - xL) height:hg)
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   153
        ]
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   154
    ]
1408
1cda0a4fb566 use invalidate... insteat of redraw...
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   155
!
562
b7db6629f2cf recompute height from column labels
ca
parents: 560
diff changeset
   156
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   157
redrawColumnsInX:x y:y width:w height:h
4522
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   158
    "redraw a rectangle"
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   159
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   160
    |bg fg fgColor bgColor
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   161
     inset  "{ Class:SmallInteger }"
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   162
     maxX   "{ Class:SmallInteger }"
1524
b7f986aa45f4 visibility of label; show as button (yes/no)
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
   163
     lblH  "{ Class:SmallInteger }"
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   164
     wt     "{ Class:SmallInteger }"
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   165
     x1     "{ Class:SmallInteger }"
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   166
     x0     "{ Class:SmallInteger }"
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   167
     item|
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   168
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   169
    (shown) ifFalse:[^ self].
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   170
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
   171
    bgColor := dataSet labelBackgroundColor.
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   172
    gc paint:bgColor.
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   173
    gc fillRectangleX:x y:y width:w height:h.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   174
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   175
    columns isEmpty ifTrue:[^ self].
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   176
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
   177
    fgColor := dataSet labelForegroundColor.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   178
    inset   := dataSet horizontalSpacing + 1.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   179
    maxX    := (x + w) min:(width - margin).
1524
b7f986aa45f4 visibility of label; show as button (yes/no)
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
   180
    lblH    := height - margin - margin.
859
e63eb6f321e1 support List for columns
ca
parents: 824
diff changeset
   181
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   182
    x1 := self xVisibleOfColNr:1.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   183
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   184
    columns keysAndValuesDo:[:eachKey :eachCol| 
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   185
        item := eachCol label.
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   186
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   187
        wt := eachCol width.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   188
        x0 := x1.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   189
        x1 := x1 + wt.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   190
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   191
        (x1 > x and:[x0 < maxX]) ifTrue:[
1940
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   192
            |left right rect|
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   193
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   194
            left  := x0 max:x.
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   195
            right := x1 min:maxX.
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   196
            rect  := Rectangle left:left top:y width:(right - left) height:h.
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   197
4522
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   198
"/            clipRect := nil.
5410
56776faa77eb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 5238
diff changeset
   199
            self clippingBounds:rect.
1940
50cf5e9dea10 allow resizing less than label size
ca
parents: 1939
diff changeset
   200
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   201
            fg := (item foregroundColor) ? fgColor.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   202
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   203
            (bg := item backgroundColor) notNil ifTrue:[
907
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   204
                bg ~= bgColor ifTrue:[
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   205
                    gc paint:bg.
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   206
                    gc fillRectangleX:x0 y:margin width:wt height:lblH.
907
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   207
                ]
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   208
            ] ifFalse:[
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   209
                bg := bgColor
3250a67fcce2 draw for each column the label
ca
parents: 893
diff changeset
   210
            ].
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   211
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   212
            gc paint:fg on:bg.            
3648
23f1b38dbe62 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3583
diff changeset
   213
            item redrawX:x0 w:wt h:height inset:inset on:self.
1524
b7f986aa45f4 visibility of label; show as button (yes/no)
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
   214
        ]
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   215
    ].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   216
!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   217
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   218
redrawEdgesX:x y:yTop width:aWidth height:aHeight
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   219
    "redraw the edges in the range
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   220
    "
3467
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   221
    |desc startOfTabX endOfTabX lastColumn has3Dseparators separatorOneDColor
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   222
     maxX "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   223
     h    "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   224
     x1   "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   225
     x0   "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   226
     y0   "{ Class:SmallInteger }"
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   227
     absLabelLevel
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   228
    |
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   229
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   230
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   231
    maxX := (x + aWidth) min:(width - margin).
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   232
    absLabelLevel := 1.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   233
    x1   := self xVisibleOfColNr:1.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   234
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   235
    y0 := margin.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   236
    h  := height - margin - margin.
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   237
3467
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   238
    has3Dseparators    := dataSet has3Dseparators.
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   239
    separatorOneDColor := dataSet separatorOneDColor.
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   240
    lastColumn         := columns last.
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   241
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   242
    columns keysAndValuesDo:[:aKey :aCol|
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   243
        desc := aCol description.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   244
        x0   := x1.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   245
        x1   := x1 + aCol width.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   246
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   247
        endOfTabX := nil.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   248
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   249
        aKey == selection ifTrue:[
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   250
            startOfTabX notNil ifTrue:[ endOfTabX := x0 ].
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   251
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   252
            (x1 > x and:[x0 < maxX]) ifTrue:[
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   253
                dataSet drawEdgesAtX:x0 y:y0 width:(x1 - x0) height:h level:-1 on:self.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   254
            ].
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   255
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   256
        ] ifFalse:[
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   257
            desc labelHasButtonLayout ifTrue:[
3466
e35f9173be58 changed #redrawEdgesX:y:width:height:
ca
parents: 3465
diff changeset
   258
                startOfTabX isNil ifTrue:[ startOfTabX := x0 ].
e35f9173be58 changed #redrawEdgesX:y:width:height:
ca
parents: 3465
diff changeset
   259
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   260
                (desc== lastColumn or:[desc labelIsPartOfGroup not]) ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   261
                    endOfTabX := x1.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   262
                ]
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   263
            ] ifFalse:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   264
                startOfTabX notNil ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   265
                    endOfTabX := x0.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   266
                ].
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   267
            ].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   268
        ].
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   269
        endOfTabX notNil ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   270
            startOfTabX isNil ifTrue:[ startOfTabX := x0 ].
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   271
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   272
            startOfTabX < endOfTabX ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   273
                (endOfTabX > x and:[startOfTabX < maxX]) ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   274
                    has3Dseparators ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   275
                        dataSet drawEdgesAtX:startOfTabX y:y0 width:(endOfTabX - startOfTabX) height:h level:absLabelLevel on:self.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   276
                    ] ifFalse:[
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   277
                        gc paint:separatorOneDColor.
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   278
                        gc displayLineFromX:endOfTabX-1 y:0 toX:endOfTabX-1 y:h.
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   279
                    ].
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   280
                ].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   281
            ].
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   282
            startOfTabX := nil.
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   283
        ].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   284
    ].
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   285
3464
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   286
    has3Dseparators ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   287
        x1 < (maxX - absLabelLevel - absLabelLevel - 3) ifTrue:[
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   288
            dataSet
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   289
                drawEdgesAtX:x1 y:y0
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   290
                width:(width"-margin"-x1"-absLabelLevel") height:h
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   291
                level:absLabelLevel on:self
c9d675b2cfd9 bugfix - support of not has3Dseparators
ca
parents: 3324
diff changeset
   292
        ].
3467
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   293
    ] ifFalse:[
f2212331f4e5 changed #redrawEdgesX:y:width:height:
ca
parents: 3466
diff changeset
   294
        h := h - 1.
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   295
        gc paint:separatorOneDColor.
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   296
        gc displayLineFromX:x y:h toX:(x + aWidth) y:h.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   297
    ].
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   298
!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   299
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   300
redrawX:xArg y:y width:wArg height:h
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   301
    |savClip x w |
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   302
3694
8a9158be10d7 dont do a super redraw - it clears what has just been drawn
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
   303
    shown ifFalse:[^ self].
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   304
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   305
    x := xArg.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   306
    w := wArg.
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   307
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   308
    self redrawColumnsInX:x y:y width:w height:h.
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   309
    columns size == 0 ifTrue:[ ^ self ].
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   310
4522
2f6d2d3aeea3 class: DSVLabelView
Stefan Vogel <sv@exept.de>
parents: 4497
diff changeset
   311
    savClip := gc clippingBoundsOrNil.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   312
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   313
    dataSet has3Dseparators ifTrue:[ | eoXlastCol |
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   314
        eoXlastCol := self xVisibleOfColNr:( columns size + 1).
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   315
        x >= eoXlastCol ifTrue:[
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   316
            w := w +( x - eoXlastCol ).
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   317
            x := eoXlastCol.
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   318
        ].
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   319
    ].
5189
ff07b0369121 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5078
diff changeset
   320
    self clippingBounds:(Rectangle left:x top:margin width:w height:height-margin-margin).
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   321
        
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   322
    xArg > x ifTrue:[
5422
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   323
        gc paint:(dataSet backgroundColor).
e783e1ebf5ca #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5410
diff changeset
   324
        gc fillRectangleX:x y:y width:w height:h.
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   325
    ].    
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   326
    self redrawEdgesX:x y:y width:w height:h.
5189
ff07b0369121 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5078
diff changeset
   327
    self clippingBounds:savClip.
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   328
! !
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   329
2820
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   330
!DSVLabelView methodsFor:'enumerating columns'!
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   331
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   332
columnsDo:aOneArgBlock 
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   333
    "evaluate the argument, aOneArgBlock for every column"
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   334
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   335
    columns do:aOneArgBlock
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   336
! !
990d1d3eaffc adding enumerating columns method
ab
parents: 2789
diff changeset
   337
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   338
!DSVLabelView methodsFor:'event handling'!
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   339
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   340
buttonMotion:state x:x y:y
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   341
    "mouse-button was moved;
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   342
     redraw thumb at its new position and, if scroll-mode is asynchronous, 
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   343
     the scroll action is performed
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   344
    "
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   345
    |colNr x1 col|
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   346
1958
15d36271d2fc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1940
diff changeset
   347
    state = 0 ifTrue:[
15d36271d2fc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1940
diff changeset
   348
        lineDrag := nil.
15d36271d2fc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1940
diff changeset
   349
    ].
15d36271d2fc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1940
diff changeset
   350
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   351
    lineDrag notNil ifTrue:[
1932
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   352
        (opaqueColumnResize ? (UserPreferences current opaqueTableColumnResizing == true)) ifTrue:[
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   353
            lineDrag moveToX:x.      
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   354
            dataSet changeWidthOfColumn:lineDrag column deltaX:lineDrag deltaX.
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   355
            lineDrag resetDeltaX.    
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   356
        ] ifFalse:[
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   357
            lineDrag invertLinesMovingToX:x.
1931
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   358
        ].
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   359
        ^ self.
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   360
    ].
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   361
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   362
    "/ in the resize area ?
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   363
    colNr := self xVisibleToColNr:(x-tabSpacing).
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   364
    colNr notNil ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   365
        col := columns at:colNr.
1937
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   366
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   367
        (col notNil and:[col isResizeable]) ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   368
            x1 := self xVisibleOfColNr:(colNr + 1).
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   369
            (x between:(x1-tabSpacing) and:(x1+tabSpacing))
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   370
            "/ x + tabSpacing > x1 
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   371
            ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   372
                self cursor:handleCursor.
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   373
                ^ self
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   374
            ].
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   375
        ].
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   376
    ].
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   377
    self cursor:(Cursor normal)
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   378
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   379
    "Modified: / 26-03-2007 / 15:20:27 / cg"
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   380
!
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   381
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   382
buttonPress:button x:x y:y
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   383
    "handle a button press event; checks whether the item under the mouse
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   384
     is selectable. If true, the selection is set to the item.
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   385
    "
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   386
    |x1 colNr col|
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   387
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   388
    (enabled and:[shown]) ifFalse:[
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   389
        ^ self
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   390
    ].
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   391
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   392
    "/ in the resize area ?
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   393
    colNr := self xVisibleToColNr:(x-tabSpacing).
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   394
    colNr notNil ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   395
        col := columns at:colNr.
1937
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   396
        col isResizeable ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   397
            x1 := self xVisibleOfColNr:(colNr + 1).
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   398
            (x between:(x1-tabSpacing) and:(x1+tabSpacing)) ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   399
                col := columns at:colNr ifAbsent:nil.
1937
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   400
                self cursor:handleCursor.
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   401
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   402
                lineDrag := LineDrag new.
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   403
                lineDrag column:col
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   404
                              x:x
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   405
                              y:margin
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   406
                              h:(self height + dataSet height)
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   407
                           minX:(x1 - col width + col minimumRequiredWidth)
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   408
                             on:self.
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   409
                (opaqueColumnResize ? (UserPreferences current opaqueTableColumnResizing == true)) ifFalse:[
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   410
                    lineDrag invertLine.
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   411
                ].
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   412
                ^ self
1937
1eb0ed685b71 enable/disable resizeability
ca
parents: 1933
diff changeset
   413
            ]
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   414
        ]
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   415
    ].
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   416
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   417
    colNr := self xVisibleToColNr:x.
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   418
    colNr notNil ifTrue:[
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   419
        col := columns at:colNr.
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   420
        col label isSelectable ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   421
            self invalidateItemAt:(selection := colNr)
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   422
        ].
1585
b4f60b1a025b fixed handle-fetch detection (handle is now easier to catch)
Claus Gittinger <cg@exept.de>
parents: 1525
diff changeset
   423
    ].
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   424
    self cursor:(Cursor normal).
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   425
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   426
    "Modified: / 26-03-2007 / 15:21:00 / cg"
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   427
!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   428
637
e56ec99923ae VW compatible
ca
parents: 620
diff changeset
   429
buttonRelease:button x:x y:y
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   430
    "handle a button press event; checks whether the item under the mouse
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   431
     is the selected item. If true, the application is informed.
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   432
    "
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   433
    |selected column deltaX colNr|
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   434
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   435
    self cursor:(Cursor normal).
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   436
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   437
    selection isNil ifTrue:[
1933
be953fb15d3d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1932
diff changeset
   438
        lineDrag notNil ifTrue:[
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   439
            (opaqueColumnResize ? (UserPreferences current opaqueTableColumnResizing == true)) ifFalse:[
2150
5184a8b92c2a better look
Claus Gittinger <cg@exept.de>
parents: 2146
diff changeset
   440
                lineDrag invertLine.
1932
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   441
                column   := lineDrag column.
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   442
                deltaX   := lineDrag deltaX.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   443
1932
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   444
                deltaX abs > 0 "2" ifTrue:[
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   445
                    dataSet changeWidthOfColumn:column deltaX:deltaX
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   446
                ]
ff9a2d6f71ff opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
   447
            ].
1933
be953fb15d3d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1932
diff changeset
   448
            lineDrag := nil.
4428
dc1eea56fb2f class: DSVLabelView
Claus Gittinger <cg@exept.de>
parents: 4162
diff changeset
   449
            ^ self.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   450
        ].
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   451
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   452
        ((colNr := dataSet xVisibleToColNr:x) notNil
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   453
        and:[ (column := columns at:colNr) notNil
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   454
        and:[ column label isSortable ]]) ifTrue:[
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   455
            indexOfSortColumn == colNr ifTrue:[
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   456
                reverseSort := (reverseSort ? false) not
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   457
            ] ifFalse:[
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   458
                reverseSort := false.
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   459
                indexOfSortColumn := colNr.
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   460
            ].
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   461
            self invalidateItemAt:colNr.
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   462
            dataSet updateList.
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   463
        ].
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   464
        ^ self.
1085
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   465
    ].
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   466
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   467
    colNr := self xVisibleToSelectionIndex:x.
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   468
    selected  := (colNr == selection).
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   469
    colNr     := selection.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   470
    selection := nil.
1085
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   471
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   472
    self invalidateItemAt:colNr.
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   473
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   474
    selected ifTrue:[
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   475
        self sendClickMsgForColumnNr:colNr
1085
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   476
    ]
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   477
!
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   478
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   479
pointerLeave:state
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   480
    "mouse left view - restore cursor.
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   481
    "
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   482
    self sensor anyButtonPressed ifFalse:[
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   483
        self cursor:(Cursor normal)
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   484
    ].
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   485
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   486
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   487
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   488
!
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   489
3774
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   490
sendClickMsgForColumnNr:colNr
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   491
    "inform the receiver of a button release notification"
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   492
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   493
    |receiver col description labelActionSelector|
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   494
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   495
    receiver := self application.
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   496
    receiver isNil ifTrue:[^ self].
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   497
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   498
    col := columns at:colNr.
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   499
    description := col description.
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   500
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   501
    (labelActionSelector := description labelActionSelector) notNil ifTrue:[
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   502
        receiver perform:labelActionSelector withOptionalArgument:(description labelActionArgument) and:colNr
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   503
    ].
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   504
!
60cc6d68cc3a sortable
Claus Gittinger <cg@exept.de>
parents: 3769
diff changeset
   505
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   506
xVisibleToColNr:x
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   507
    "returns the column number for a physical x position.
5078
1712c18ead27 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4990
diff changeset
   508
     Returns nil if x is beyond the last column."
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   509
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   510
    |x0 x1|
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   511
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   512
    x1 := self xVisibleOfColNr:1.
1525
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   513
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   514
    columns keysAndValuesDo:[:index :aCol|
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   515
        x0 := x1.
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   516
        x1 := x0 + aCol width.
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   517
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   518
        (x1 > x and:[x0 < x]) ifTrue:[
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   519
            ^ index
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   520
        ]
1ab7703b29a9 change cursor if lineDrag is enabled
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
   521
    ].
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   522
    ^ nil
3212
cb80f339ddfa +activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3188
diff changeset
   523
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   524
    "Modified: / 26-03-2007 / 15:21:37 / cg"
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   525
! !
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   526
3188
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   527
!DSVLabelView methodsFor:'focus handling'!
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   528
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   529
canTab
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   530
    ^ false
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   531
!
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   532
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   533
wantsFocusWithButtonPress
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   534
    "never wants the focus - view which keeps the labels
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   535
    "
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   536
    ^ false
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   537
! !
35f40882d508 focus handling - bugfix
ca
parents: 2924
diff changeset
   538
3214
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   539
!DSVLabelView methodsFor:'help'!
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   540
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   541
flyByHelpTextAt:aPoint
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   542
    "return the helpText for aPoint (i.e. when mouse-pointer is moved over an item)."
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   543
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   544
    |colNr col|
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   545
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   546
    columns isEmpty ifTrue:[^ nil].
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   547
    colNr := self xVisibleToColNr:aPoint x.
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   548
    colNr notNil ifTrue:[
3214
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   549
        col := columns at:colNr.
3523
26c2bafdd0fb separate activeHelp for labels
Claus Gittinger <cg@exept.de>
parents: 3489
diff changeset
   550
        ^ col activeHelpTextForLabel.
3214
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   551
    ].
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   552
    ^ nil
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   553
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   554
    "Created: / 26-03-2007 / 13:43:20 / cg"
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   555
    "Modified: / 26-03-2007 / 15:21:07 / cg"
3214
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   556
! !
28214ee49bb6 activeHelpText
Claus Gittinger <cg@exept.de>
parents: 3212
diff changeset
   557
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   558
!DSVLabelView methodsFor:'initialization'!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   559
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   560
initStyle
2924
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   561
    <resource: #style (#'dataSet.labelView.level'
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   562
                       #'dataSet.labelView.verticalSpace' 
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   563
                       )>
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   564
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   565
    super initStyle.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   566
4990
bf3fb53d4dc0 device access
Claus Gittinger <cg@exept.de>
parents: 4876
diff changeset
   567
    handleCursor := (VariablePanel cursorForOrientation:#horizontal onDevice: device) onDevice: device.
5238
cebbdb8032de #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5189
diff changeset
   568
    gc font:self class defaultFont.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   569
    "/ self level:0.
2924
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   570
    self level:(styleSheet at:#'dataSet.labelView.level' default:-1).
a1e88fa18621 resource directive
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   571
    verticalLabelSpacing := (styleSheet at:#'dataSet.labelView.verticalSpace' default:2).
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   572
!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   573
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   574
initialize
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   575
    super initialize.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   576
    "/ super level:(self defaultLevel).
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   577
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   578
    enabled    := true.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   579
    columns    := #().
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   580
    tabSpacing := self class tabSpacing.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   581
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   582
    self enableMotionEvents.
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   583
! !
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   584
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   585
!DSVLabelView methodsFor:'instance creation'!
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   586
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   587
for:aColumnView
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   588
    "initialization
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   589
    "
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   590
    dataSet   := aColumnView.
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   591
"/    self level:(dataSet level).
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   592
"/    self borderWidth:(dataSet borderWidth).
1085
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   593
!
cebea5318863 add enteredItem;
ca
parents: 907
diff changeset
   594
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   595
realize
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   596
    "recompute contents and fit columns to view
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   597
    "
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   598
    self  bitGravity:#NorthWest.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   599
    super realize.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   600
! !
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   601
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   602
!DSVLabelView methodsFor:'queries'!
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   603
3769
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   604
columnIndexOfDescription:aColumnDescription
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   605
    ^ columns findFirst:[:col | col description == aColumnDescription]
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   606
!
7b20f210313c sortable columns
Claus Gittinger <cg@exept.de>
parents: 3766
diff changeset
   607
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   608
enabled
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   609
    "true, if widget is enabled
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   610
    "
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   611
    ^ enabled
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   612
!
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   613
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   614
enabled:aState
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   615
    "true, if widget is enabled
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   616
    "
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   617
    enabled := aState.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   618
!
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   619
3766
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   620
indexOfLabel:aLabel
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   621
    ^ columns findFirst:[:col | col label == aLabel].
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   622
!
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   623
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   624
preferredExtent
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   625
3572
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   626
    "/ If I have an explicit preferredExtent..
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   627
    explicitExtent notNil ifTrue:[
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   628
        ^ explicitExtent
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   629
    ].
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   630
5d45b98c9c38 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3537
diff changeset
   631
    "/ If I have a cached preferredExtent value..
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   632
    preferredExtent notNil ifTrue:[
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   633
        ^ preferredExtent
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   634
    ].
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   635
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   636
    ^ 100 @ self preferredHeight
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   637
!
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   638
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   639
preferredHeight
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   640
    |maxLabelHeight|
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   641
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   642
    preferredHeight notNil ifTrue:[
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   643
        ^ preferredHeight
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   644
    ].
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   645
3489
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   646
    maxLabelHeight :=
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   647
        columns inject:0 into:[:maxSoFar :col | (col label preferredHeight) max:maxSoFar ].
f2f5a8273044 preferredExtent changes & fixes (ubs)
Claus Gittinger <cg@exept.de>
parents: 3467
diff changeset
   648
4621
6b74f4a3bd60 class: DSVLabelView
Claus Gittinger <cg@exept.de>
parents: 4522
diff changeset
   649
    ^ ((self margin + verticalLabelSpacing) * 2) + maxLabelHeight 
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   650
!
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   651
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   652
xVisibleOfColNr:colNr
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   653
    "/ must adjust, because dataset includes its own margin, which might be different from ours
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   654
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   655
    ^ (dataSet xVisibleOfColNr:colNr) - dataSet margin + margin
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   656
!
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   657
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   658
xVisibleToSelectionIndex:x
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   659
    "returns the column number assigned to a physical x or nil. If
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   660
     the column exists but is not selectable nil is returned.
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   661
    "
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   662
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   663
    |colNr column|
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   664
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   665
    (shown and:[enabled]) ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   666
        ((colNr  := dataSet xVisibleToColNr:x)  notNil
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   667
         and:[(column := columns at:colNr) notNil
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   668
         and:[column label isSelectable]]
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   669
        ) ifTrue:[
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   670
            ^ colNr
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   671
        ]
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   672
    ].
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   673
    ^ nil
3216
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   674
18f104700621 xVisibleToSelectionIndex:x different return value confusion
Claus Gittinger <cg@exept.de>
parents: 3214
diff changeset
   675
    "Modified: / 26-03-2007 / 15:21:27 / cg"
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   676
! !
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   677
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   678
!DSVLabelView methodsFor:'scrolling'!
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   679
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   680
copyFromX:x0 y:y0 toX:x1 y:y1 width:w invalidateX:leftX
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   681
2146
4ae1ec9f5307 level fixes;
penk
parents: 2027
diff changeset
   682
    (shown) ifFalse:[^ self].
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   683
1487
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   684
    (self sensor hasDamageFor:self) ifTrue:[
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   685
        self invalidate
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   686
    ] ifFalse:[
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   687
        self   copyFrom:self x:x0 y:y0 toX:x1 y:y1 width:w height:height async:false.
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   688
        self invalidate:(Rectangle left:leftX top:0 width:(width - w) height:height)
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   689
              repairNow:true
fd003e2156cc bug fixes + rework
Claus Gittinger <cg@exept.de>
parents: 1454
diff changeset
   690
    ]
824
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   691
! !
d2e60c8ac775 support of Drag & Drop
ca
parents: 648
diff changeset
   692
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   693
!DSVLabelView::LineDrag methodsFor:'accessing'!
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   694
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   695
column
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   696
    "return the value of the instance variable 'column' (automatically generated)"
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   697
1931
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   698
    ^ column
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   699
!
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   700
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   701
deltaX
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   702
    "returns the distance x between the start and end action
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   703
    "
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   704
    ^ topX - startX
1931
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   705
!
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   706
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   707
resetDeltaX
576fbc61285a opaque table col resize
Claus Gittinger <cg@exept.de>
parents: 1844
diff changeset
   708
    startX := topX
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   709
! !
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   710
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   711
!DSVLabelView::LineDrag methodsFor:'dragging'!
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   712
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   713
invertLine
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   714
    "invert current line
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   715
    "
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   716
    self invertLinesMovingToX:nil.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   717
!
2027
e61da28e7ffc use new #translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 1959
diff changeset
   718
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   719
invertLinesMovingToX:viewX
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   720
    "invert current line
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   721
     if x notNil than change x position and invert new line"
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   722
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   723
    topView clippedByChildren:false.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   724
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   725
    topView xoring:[
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   726
        topView paint:color.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   727
        topView lineWidth:2.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   728
        topView displayLineFromX:topX y:topY toX:topX y:botY.
2027
e61da28e7ffc use new #translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 1959
diff changeset
   729
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   730
        viewX notNil ifTrue:[
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   731
            self moveToX:viewX.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   732
            topView displayLineFromX:topX y:topY toX:topX y:botY.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   733
        ].
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   734
        topView flush
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   735
    ].
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   736
    topView clippedByChildren:true.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   737
!
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   738
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   739
moveToX:viewX
1939
842c9c23e798 opaque move redraw
Claus Gittinger <cg@exept.de>
parents: 1937
diff changeset
   740
    topX := (minX max:viewX) + transX.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   741
! !
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   742
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   743
!DSVLabelView::LineDrag methodsFor:'setup'!
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   744
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   745
column:aColumn x:x y:y h:h minX:aMinX on:aView
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   746
    |device point|
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   747
3537
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   748
    column  := aColumn.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   749
    topView := aView topView.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   750
    device  := topView device.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   751
    color   := Color colorId:(device blackpixel bitXor:device whitepixel).
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   752
    point   := device translatePoint:(x@y) fromView:aView toView:topView.
a34d64b71dd2 bugfix (vists) - donot drag on rootView; use topView
ca
parents: 3523
diff changeset
   753
1494
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   754
    topX     := point x.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   755
    topY     := point y.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   756
    botY     := topY + h.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   757
    minX     := aMinX.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   758
    startX   := topX.
096845be5d75 draw tabulatorLine on the tootView; do not use a SimpleView
Claus Gittinger <cg@exept.de>
parents: 1491
diff changeset
   759
    transX   := topX - x.
1491
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   760
! !
d6133cb2f3c9 support tabulator
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   761
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   762
!DSVLabelView class methodsFor:'documentation'!
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   763
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   764
version
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
   765
    ^ '$Header$'
3766
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   766
!
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   767
4d81404f6f4c added: #isSortable
Claus Gittinger <cg@exept.de>
parents: 3694
diff changeset
   768
version_CVS
4876
8edcf9875271 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 4621
diff changeset
   769
    ^ '$Header$'
542
e22c45e26653 intitial checkin
ca
parents:
diff changeset
   770
! !
4162
a83bdc0dba68 class: DSVLabelView
ca
parents: 3774
diff changeset
   771