--- a/TabListEditor.st Thu Apr 13 14:32:20 2000 +0200
+++ b/TabListEditor.st Thu Apr 13 18:12:48 2000 +0200
@@ -652,7 +652,7 @@
#name: 'Tab List Editor'
#min: #(#Point 440 280)
#max: #(#Point 1152 900)
- #bounds: #(#Rectangle 17 449 488 816)
+ #bounds: #(#Rectangle 12 22 548 391)
#menu: #menu
)
#component:
@@ -675,6 +675,8 @@
#(#vpext
#(#Array
+ #Array #Array
+ #Array #Array
#Point 0.264414
1.0
)
@@ -699,6 +701,8 @@
#(#NoteBookViewSpec
#name: 'NoteBook'
#layout: #(#LayoutFrame 1 0.0 0 0.0 0 1.0 -30 1.0)
+ #visibilityChannel: #hasSelectionHolder
+ #tabable: true
#model: #noteBookModel
#menu: #noteBookTabList
#useIndex: true
@@ -714,6 +718,7 @@
#name: 'TestNoteBook'
#layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
#visibilityChannel: #testMode
+ #tabable: true
#menu: #testItemList
#useIndex: true
)
@@ -941,56 +946,71 @@
<resource: #menu>
- ^
-
- #(#Menu
-
- #(
- #(#MenuItem
- #label: 'Cut'
- #value: #doCut
- #activeHelpKey: #editCut
- #enabled: #valueOfCanCut
- )
- #(#MenuItem
- #label: 'Copy'
- #value: #doCopy
- #activeHelpKey: #editCopy
- #enabled: #valueOfCanCopy
- )
- #(#MenuItem
- #label: 'Paste'
- #value: #doPaste
- #activeHelpKey: #editPaste
- #enabled: #valueOfCanPaste
- )
- #(#MenuItem
- #label: 'Delete'
- #value: #doDelete
- #activeHelpKey: #editPaste
- #enabled: #valueOfCanCut
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Move Up'
- #value: #doMoveTabUpOrDown:
- #activeHelpKey: #editMoveUp
- #enabled: #canMoveTabItemUpOrDown
- #argument: #up
- #labelImage: #(#ResourceRetriever #Icon #upIcon 'Move Up')
- )
- #(#MenuItem
- #label: 'Move Down'
- #value: #doMoveTabUpOrDown:
- #activeHelpKey: #editMoveDown
- #enabled: #canMoveTabItemUpOrDown
- #argument: #down
- #labelImage: #(#ResourceRetriever #Icon #downIcon 'Move Down')
- )
- ) nil
- nil
+ ^
+ #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Cut'
+ #value: #doCut
+ #activeHelpKey: #editCut
+ #enabled: #hasSelectionHolder
+ #shortcutKeyCharacter: #Cut
+ )
+ #(#MenuItem
+ #label: 'Copy'
+ #value: #doCopy
+ #activeHelpKey: #editCopy
+ #enabled: #hasSelectionHolder
+ #shortcutKeyCharacter: #Copy
+ )
+ #(#MenuItem
+ #label: 'Paste'
+ #value: #doPaste
+ #activeHelpKey: #editPaste
+ #enabled: #valueOfCanPaste
+ #shortcutKeyCharacter: #Paste
+ )
+ #(#MenuItem
+ #label: 'Delete'
+ #value: #doDelete
+ #activeHelpKey: #editPaste
+ #enabled: #hasSelectionHolder
+ #shortcutKeyCharacter: #Delete
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Move Up'
+ #value: #doMoveTabUpOrDown:
+ #activeHelpKey: #editMoveUp
+ #enabled: #canMoveTabItemUpOrDown
+ #argument: #up
+ #labelImage: #(#ResourceRetriever #Icon #upIcon 'Move Up')
+ )
+ #(#MenuItem
+ #label: 'Move Down'
+ #value: #doMoveTabUpOrDown:
+ #activeHelpKey: #editMoveDown
+ #enabled: #canMoveTabItemUpOrDown
+ #argument: #down
+ #labelImage: #(#ResourceRetriever #Icon #downIcon 'Move Down')
+ )
+ #(#MenuItem
+ #label: '-'
+ #isVisible: #hiddenAccelerator
+ )
+ #(#MenuItem
+ #label: 'Accept'
+ #translateLabel: true
+ #isVisible: #hiddenAccelerator
+ #value: #accept
+ #enabled: #valueOfEnablingCommitButtons
+ #shortcutKeyCharacter: #Accept
+ )
+ )
+ nil
+ nil
)
!
@@ -1040,7 +1060,7 @@
#isButton: true
#value: #doCut
#activeHelpKey: #editCut
- #enabled: #valueOfCanCut
+ #enabled: #hasSelectionHolder
#labelImage: #(#ResourceRetriever #Icon #cutIcon)
)
#(#MenuItem
@@ -1048,7 +1068,7 @@
#isButton: true
#value: #doCopy
#activeHelpKey: #editCopy
- #enabled: #valueOfCanCopy
+ #enabled: #hasSelectionHolder
#labelImage: #(#ResourceRetriever #Icon #copyIcon)
)
#(#MenuItem
@@ -1064,7 +1084,7 @@
#isButton: true
#value: #doDelete
#activeHelpKey: #editDelete
- #enabled: #valueOfCanCut
+ #enabled: #hasSelectionHolder
#labelImage: #(#ResourceRetriever #Icon #deleteIcon)
)
#(#MenuItem
@@ -1137,6 +1157,10 @@
^ holder.
!
+hasSelectionHolder
+ ^ builder booleanValueAspectFor:#hasSelectionHolder
+!
+
hasVerticalScrollBar
"automatically generated by UIPainter ..."
@@ -1154,6 +1178,12 @@
^ holder.
!
+hiddenAccelerator
+ "used to set menu entries with an accelerator not visible to the operator
+ "
+ ^ false
+!
+
inputGroup
|holder|
@@ -1331,12 +1361,7 @@
].
modified := false.
-
- listOfTabs notEmpty ifTrue:[
- self selection:1
- ].
-
- self updateInfoLabel
+ listOfTabs notEmpty ifTrue:[ self selection:1 ].
!
buildFromResourceSpec:aListSpec
@@ -1349,16 +1374,10 @@
self selection:0.
listOfTabs removeAll.
- aTabList do:[:aTabItem|
- listOfTabs add: aTabItem.
- ].
+ aTabList do:[:aTabItem| listOfTabs add: aTabItem ].
modified := false.
+ listOfTabs notEmpty ifTrue:[ self selection:1 ].
- listOfTabs notEmpty ifTrue:[
- self selection:1
- ].
-
- self updateInfoLabel
! !
!TabListEditor methodsFor:'change & update'!
@@ -1366,7 +1385,7 @@
update:something with:aParameter from:someObject
"one of my aspects has changed; update modified channel
"
- |list size index|
+ |list|
someObject = self selectionHolder ifTrue:[
^ self selectionChanged
@@ -1376,22 +1395,16 @@
^ super update:something with:aParameter from:someObject.
].
- size := listOfTabs size.
-
someObject value ifTrue:[
- index := 0.
-
- size ~~ 0 ifTrue:[
+ listOfTabs notEmpty ifTrue:[
list := listOfTabs collect:[:aTab| |tab|
tab := aTab copy.
tab setAttributesFromClass:specClass.
tab
- ].
- ]
- ] ifFalse:[
- index := 1 min:size
+ ]
+ ].
+ self selection:0.
].
- self selectionHolder value:index.
self testItemList value:list.
self updateInfoLabel.
@@ -1449,13 +1462,15 @@
noteBookModel value:0
].
self cancel.
- self valueOfCanCut value:hasSelection.
- self valueOfCanCopy value:hasSelection.
+ self hasSelectionHolder value:hasSelection.
self valueOfCanPaste.
!
setSelection:anIndex
- self selectionHolder value:(anIndex ? 0) withoutNotifying:self
+ |index|
+
+ index := anIndex ? 0.
+ self selectionHolder value:index withoutNotifying:self
! !
!TabListEditor methodsFor:'startup / release'!
@@ -1562,13 +1577,20 @@
doDelete
"delete selected tab
"
- |index|
+ |index size|
(index := self selection) ~~ 0 ifTrue:[
self testMode value: false.
- self setSelection:0.
+
+ (size := listOfTabs size) == 1 ifTrue:[
+ self selection:0
+ ] ifFalse:[
+ self setSelection:0
+ ].
listOfTabs removeIndex:index.
- index > listOfTabs size ifTrue:[index := index - 1].
+ index < size ifFalse:[
+ index := index - 1
+ ].
self selection:index.
self updateAllToolInstances.
modified := true.