--- a/UIPainter.st Sun May 10 12:58:19 2009 +0200
+++ b/UIPainter.st Sun May 10 12:59:24 2009 +0200
@@ -14,7 +14,8 @@
ResourceSpecEditor subclass:#UIPainter
instanceVariableNames:'specSuperclassName treeView selectionPanel specTool layoutTool
helpTool painterView painter lastPort lastPage'
- classVariableNames:'SelectionPanelClass UseViewScroller LastPort LastPage'
+ classVariableNames:'SelectionPanelClass UseViewScroller LastPort LastPage
+ DefaultEditToolBarVisible DefaultToolBarVisible'
poolDictionaries:''
category:'Interface-UIPainter'
!
@@ -128,6 +129,16 @@
"
! !
+!UIPainter class methodsFor:'defaults'!
+
+defaultEditToolbarVisible
+ ^ DefaultEditToolBarVisible ? true
+!
+
+defaultToolbarVisible
+ ^ DefaultToolBarVisible ? true
+! !
+
!UIPainter class methodsFor:'help specs'!
flyByHelpSpec
@@ -345,7 +356,7 @@
'Edit this windowSpec.'
#moveWidgetDown
-'Moves the selected widget one step down.'
+'Moves the selected widget down in the list (brings it to the front).'
#moveWidgetInto
'Moves the selected widget into next widget as child widget.'
@@ -354,7 +365,7 @@
'Moves the selected widget out of its parent widget.'
#moveWidgetUp
-'Moves the selected widget one step up.'
+'Moves the selected widget up in the list (brings it to the back).'
#pasteBuffer
'Pastes the widgets of the clipboard at the current mouse position.'
@@ -630,6 +641,12 @@
^ Icon helpIcon
!
+hideToolBarIcon
+ <resource: #programImage>
+
+ ^ ToolbarIconLibrary hideToolBarIcon
+!
+
iconAlignB
"This resource specification was automatically generated
by the ImageEditor of ST/X."
@@ -1336,23 +1353,73 @@
label: 'GUI Painter'
name: 'GUI Painter'
min: (Point 560 460)
- bounds: (Rectangle 12 22 620 545)
+ bounds: (Rectangle 0 0 608 523)
+ menu: menu
icon: defaultIcon
- menu: menu
)
component:
(SpecCollection
collection: (
- (MenuPanelSpec
- name: 'menuToolbarView'
- layout: (LayoutFrame 0 0.0 0 0 0 1.0 32 0)
- level: 1
- tabable: true
- menu: menuToolbar
+ (ViewSpec
+ name: 'ToolBar'
+ layout: (LayoutFrame 0 0 0 0 0 1 32 0)
+ visibilityChannel: toolBarVisibleHolder
+ component:
+ (SpecCollection
+ collection: (
+ (ActionButtonSpec
+ label: 'hideToolBarIcon'
+ name: 'HideToolBarButton'
+ layout: (LayoutFrame 0 0 0 0 13 0 0 1)
+ activeHelpKey: hideToolBar
+ hasCharacterOrientedLabel: false
+ translateLabel: true
+ model: hideToolbar
+ postBuildCallback: hideToolBarButtonCreated:
+ )
+ (MenuPanelSpec
+ name: 'menuToolbarView'
+ layout: (LayoutFrame 13 0.0 0 0.0 0 1.0 0 1.0)
+ visibilityChannel: toolBarVisibleHolder
+ menu: menuToolbar
+ textDefault: true
+ )
+ )
+ )
+ )
+
+ (ViewSpec
+ name: 'EditToolBar'
+ layout: (LayoutFrame 0 0 32 0 0 1 64 0)
+ visibilityChannel: editToolBarVisibleHolder
+ component:
+ (SpecCollection
+ collection: (
+ (ActionButtonSpec
+ label: 'hideToolBarIcon'
+ name: 'HideEditToolBarButton'
+ layout: (LayoutFrame 0 0 0 0 13 0 0 1)
+ activeHelpKey: hideToolBar
+ hasCharacterOrientedLabel: false
+ translateLabel: true
+ model: hideEditToolbar
+ postBuildCallback: hideToolBarButtonCreated:
+ )
+ (MenuPanelSpec
+ name: 'EditToolBar1'
+ layout: (LayoutFrame 13 0.0 0 0.0 0 1.0 0 1.0)
+ visibilityChannel: editToolBarVisibleHolder
+ menu: editToolbar
+ textDefault: true
+ )
+ )
+
+ )
)
+
(VariableHorizontalPanelSpec
- name: 'mainPanel'
- layout: (LayoutFrame 0 0.0 32 0.0 0 1.0 -24 1.0)
+ name: 'Painter'
+ layout: (LayoutFrame 0 0.0 64 0.0 0 1.0 -24 1.0)
level: 1
component:
(SpecCollection
@@ -1445,14 +1512,159 @@
)
)
- )
)
-
- "Modified: / 10-02-2007 / 14:45:31 / cg"
+ )
! !
!UIPainter class methodsFor:'menu specs'!
+cutCopyPasteMenuSlice
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the MenuEditor may not be able to read the specification."
+
+ "
+ MenuEditor new openOnClass:UIPainter andSelector:#menuToolbar
+ (Menu new fromLiteralArrayEncoding:(UIPainter menuToolbar)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ activeHelpKey: editCut
+ enabled: canCutHolder
+ label: 'Cut'
+ itemValue: deleteSelection
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary cutWidgetIcon)
+ )
+ (MenuItem
+ activeHelpKey: editCopy
+ enabled: canCopyHolder
+ label: 'Copy'
+ itemValue: copySelection
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary copyWidgetIcon)
+ )
+ (MenuItem
+ activeHelpKey: editPaste
+ enabled: canPasteKeepingLayoutHolder
+ label: 'Paste with Layout'
+ itemValue: pasteWithLayout
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary pasteWidgetIcon)
+ )
+ (MenuItem
+ activeHelpKey: editDelete
+ enabled: canCutHolder
+ label: 'Delete'
+ itemValue: deleteTotalSelection
+ translateLabel: true
+ isButton: true
+ isVisible: false
+ labelImage: (ResourceRetriever ToolbarIconLibrary deleteWidgetIcon)
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ activeHelpKey: editUndo
+ enabled: hasUndoHistoryHolder
+ label: 'Undo'
+ itemValue: undoLast
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary undoIcon)
+ )
+ )
+ nil
+ nil
+ )
+!
+
+editToolbar
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the MenuEditor may not be able to read the specification."
+
+ "
+ MenuEditor new openOnClass:UIPainter andSelector:#editToolbar
+ (Menu new fromLiteralArrayEncoding:(UIPainter editToolbar)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'moveItems'
+ translateLabel: true
+ submenuChannel: moveInListMenuSlice
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'gridItems'
+ translateLabel: true
+ submenuChannel: gridMenuSlice
+ isMenuSlice: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+gridMenuSlice
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the MenuEditor may not be able to read the specification."
+
+ "
+ MenuEditor new openOnClass:Workflow::WorksheetEditor andSelector:#zoomMenuSlice
+ (Menu new fromLiteralArrayEncoding:(Workflow::WorksheetEditor zoomMenuSlice)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'ShowGrid'
+ translateLabel: true
+ isButton: true
+ indication: gridShownHolder
+ labelImage: (ResourceRetriever #'Expecco::ExpeccoIconLibrary' showGridIcon)
+ )
+ (MenuItem
+ label: 'AlignToGrid'
+ translateLabel: true
+ isButton: true
+ indication: alignToGridHolder
+ labelImage: (ResourceRetriever #'Expecco::ExpeccoIconLibrary' alignToGridIcon)
+ )
+ )
+ nil
+ nil
+ )
+!
+
menu
"This resource specification was automatically generated
by the MenuEditor of ST/X."
@@ -1482,6 +1694,57 @@
submenuChannel: menuEdit
)
(MenuItem
+ label: 'View'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ activeHelpKey: settingsCanvas
+ label: 'Canvas'
+ translateLabel: true
+ indication: painterShown
+ )
+ (MenuItem
+ activeHelpKey: settingsGallery
+ label: 'Gallery'
+ translateLabel: true
+ indication: galleryShown
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Toolbar'
+ translateLabel: true
+ hideMenuOnActivated: false
+ indication: toolBarVisibleHolder
+ )
+ (MenuItem
+ label: 'Editor Toolbar'
+ translateLabel: true
+ hideMenuOnActivated: false
+ indication: editToolBarVisibleHolder
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Load Sketch as Background...'
+ itemValue: useSketch
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'Load Image as Background...'
+ itemValue: useBackgroundImage
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+ )
+ (MenuItem
label: 'Align'
translateLabel: true
submenuChannel: menuAlign
@@ -1563,21 +1826,6 @@
(Menu
(
(MenuItem
- activeHelpKey: settingsCanvas
- label: 'Canvas'
- translateLabel: true
- indication: painterShown
- )
- (MenuItem
- activeHelpKey: settingsGallery
- label: 'Gallery'
- translateLabel: true
- indication: galleryShown
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
activeHelpKey: settingsAspectsAsInstances
label: 'Aspects as InstanceVariables'
translateLabel: true
@@ -1619,16 +1867,6 @@
itemValue: doDefineGrid
translateLabel: true
)
- (MenuItem
- label: 'Load Sketch as Background...'
- itemValue: useSketch
- translateLabel: true
- )
- (MenuItem
- label: 'Load Image as Background...'
- itemValue: useBackgroundImage
- translateLabel: true
- )
)
nil
nil
@@ -2098,7 +2336,7 @@
)
(MenuItem
activeHelpKey: sortItems
- label: 'Sort Selected Items'
+ label: 'Sort Selected Items by Position'
itemValue: doSortItems
translateLabel: true
)
@@ -2449,92 +2687,10 @@
label: '-'
)
(MenuItem
- activeHelpKey: editUndo
- enabled: hasUndoHistoryHolder
- label: 'Undo'
- itemValue: undoLast
- translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever ToolbarIconLibrary undoIcon)
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- activeHelpKey: editCut
- enabled: canCutHolder
- label: 'Cut'
- itemValue: deleteSelection
- translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever ToolbarIconLibrary cutWidgetIcon)
- )
- (MenuItem
- activeHelpKey: editCopy
- enabled: canCopyHolder
- label: 'Copy'
- itemValue: copySelection
- translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever ToolbarIconLibrary copyWidgetIcon)
- )
- (MenuItem
- activeHelpKey: editPaste
- enabled: canPasteKeepingLayoutHolder
- label: 'Paste with Layout'
- itemValue: pasteWithLayout
+ label: 'CutCopyPaste'
translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever ToolbarIconLibrary pasteWidgetIcon)
- )
- (MenuItem
- activeHelpKey: editDelete
- enabled: canCutHolder
- label: 'Delete'
- itemValue: deleteTotalSelection
- translateLabel: true
- isButton: true
- isVisible: false
- labelImage: (ResourceRetriever ToolbarIconLibrary deleteWidgetIcon)
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- activeHelpKey: moveWidgetUp
- enabled: canChangeOrderInContainer
- label: 'Move Up'
- itemValue: doStepUp
- translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever ToolbarIconLibrary moveWidgetUpIcon)
- )
- (MenuItem
- activeHelpKey: moveWidgetDown
- enabled: canChangeOrderInContainer
- label: 'Move Down'
- itemValue: doStepDown
- translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever ToolbarIconLibrary moveWidgetDownIcon)
- )
- (MenuItem
- activeHelpKey: moveWidgetInto
- enabled: canMoveSelectionIntoContainer
- label: 'Move Into'
- itemValue: doStepIn
- translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever ToolbarIconLibrary moveWidgetDownRightIcon)
- )
- (MenuItem
- activeHelpKey: moveWidgetOut
- enabled: canMoveSelectionOutOfContainer
- label: 'Move Out'
- itemValue: doStepOut
- translateLabel: true
- isButton: true
- labelImage: (ResourceRetriever ToolbarIconLibrary moveWidgetLeftDownIcon)
+ submenuChannel: cutCopyPasteMenuSlice
+ isMenuSlice: true
)
(MenuItem
label: '-'
@@ -2687,10 +2843,80 @@
nil
nil
)
+!
+
+moveInListMenuSlice
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the MenuEditor may not be able to read the specification."
+
+ "
+ MenuEditor new openOnClass:UIPainter andSelector:#editToolbar
+ (Menu new fromLiteralArrayEncoding:(UIPainter editToolbar)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ activeHelpKey: moveWidgetUp
+ enabled: canChangeOrderInContainer
+ label: 'Move Up'
+ itemValue: doStepUp
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary moveWidgetUpIcon)
+ )
+ (MenuItem
+ activeHelpKey: moveWidgetDown
+ enabled: canChangeOrderInContainer
+ label: 'Move Down'
+ itemValue: doStepDown
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary moveWidgetDownIcon)
+ )
+ (MenuItem
+ activeHelpKey: moveWidgetInto
+ enabled: canMoveSelectionIntoContainer
+ label: 'Move Into'
+ itemValue: doStepIn
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary moveWidgetDownRightIcon)
+ )
+ (MenuItem
+ activeHelpKey: moveWidgetOut
+ enabled: canMoveSelectionOutOfContainer
+ label: 'Move Out'
+ itemValue: doStepOut
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary moveWidgetLeftDownIcon)
+ )
+ )
+ nil
+ nil
+ )
! !
!UIPainter methodsFor:'aspects'!
+alignToGridHolder
+ |holder|
+
+ (holder := builder bindingAt:#alignToGridHolder) isNil ifTrue:[
+ holder := (self class settings at: #GridAlign ifAbsent: [painter gridAlign]) asValue.
+ builder aspectAt:#alignToGridHolder put: holder.
+ holder addDependent:self.
+ ].
+ ^ holder
+!
+
aspectFor:aKey
"returns the aspect for aKey or nil"
@@ -2778,6 +3004,17 @@
^ true
!
+editToolBarVisibleHolder
+ |holder|
+
+ (holder := builder bindingAt:#editToolBarVisibleHolder) isNil ifTrue:[
+ holder := self class defaultEditToolbarVisible asValue.
+ builder aspectAt:#editToolBarVisibleHolder put: holder.
+ holder addDependent:self.
+ ].
+ ^ holder
+!
+
enableChannel
"true if modifications are allowed otherwise in test mode"
@@ -2803,6 +3040,17 @@
!
+gridShownHolder
+ |holder|
+
+ (holder := builder bindingAt:#gridShownHolder) isNil ifTrue:[
+ holder := (self class settings at: #GridShown ifAbsent: [painter gridShown]) asValue.
+ builder aspectAt:#gridShownHolder put: holder.
+ holder addDependent:self.
+ ].
+ ^ holder
+!
+
hasOneSelectionOtherThanCanvas
"returns a value holder which is true in case that one widget is selected
other than the root"
@@ -2881,6 +3129,17 @@
^ holder
!
+toolBarVisibleHolder
+ |holder|
+
+ (holder := builder bindingAt:#toolBarVisibleHolder) isNil ifTrue:[
+ holder := self class defaultToolbarVisible asValue.
+ builder aspectAt:#toolBarVisibleHolder put: holder.
+ holder addDependent:self.
+ ].
+ ^ holder
+!
+
treeView
"returns the tree view which holds all widget"
@@ -3131,21 +3390,78 @@
]
!
-update:something with:aParameter from:someObject
+toolBarVisibilityChanged
+ |toolBarVisible editToolBarVisible toolBar editToolBar noteBook topOffset|
+
+ topOffset := 0.
+
+ toolBar := self componentAt:#ToolBar.
+ toolBar notNil ifTrue:[
+ toolBarVisible := self toolBarVisibleHolder value.
+ DefaultToolBarVisible := toolBarVisible.
+ toolBarVisible ifTrue:[
+ topOffset := topOffset + toolBar height.
+ ]
+ ].
+
+ editToolBar := self componentAt:#EditToolBar.
+ editToolBar notNil ifTrue:[
+ editToolBar layout
+ topOffset:topOffset bottomOffset:(topOffset + editToolBar height).
+ "/ force it to recompute its dimension
+ editToolBar container notNil ifTrue:[
+ editToolBar containerChangedSize.
+ ].
+ editToolBarVisible := self editToolBarVisibleHolder value.
+ DefaultEditToolBarVisible := editToolBarVisible.
+ editToolBarVisible ifTrue:[
+ topOffset := topOffset + editToolBar height.
+ ]
+ ].
+
+ noteBook := self componentAt:#Painter.
+ noteBook notNil ifTrue:[
+ noteBook layout topOffset:topOffset.
+ "/ force it to recompute its dimension
+ noteBook container notNil ifTrue:[
+ noteBook containerChangedSize.
+ ].
+ ].
+
+ "Created: / 18-02-2007 / 14:46:22 / cg"
+!
+
+update:something with:aParameter from:changedObject
"catches change notifications"
|window lbl|
- someObject == treeView model ifTrue:[
+ ((changedObject == self toolBarVisibleHolder)
+ or:[ changedObject == self editToolBarVisibleHolder ]) ifTrue:[
+ self toolBarVisibilityChanged.
+ ^ self
+ ].
+ changedObject == self gridShownHolder ifTrue:[
+ self class settings at: #GridShown put: changedObject value.
+ painter gridShown:changedObject value.
+ ^ self
+ ].
+ changedObject == self alignToGridHolder ifTrue:[
+ self class settings at: #GridAlign put: changedObject value.
+ painter gridAlign:changedObject value.
+ ^ self
+ ].
+
+ changedObject == treeView model ifTrue:[
(something == #selection
or:[something == #selectionIndex]) ifTrue:[self treeSelectionChanged].
^ self
].
- someObject == self galleryShown ifTrue:[
+ changedObject == self galleryShown ifTrue:[
"/ galleryShown toggle changed
window := selectionPanel window.
- (someObject value) ifTrue:[
+ (changedObject value) ifTrue:[
self raiseUIView:window
] ifFalse:[
self hideUIView:window
@@ -3153,10 +3469,10 @@
^ self
].
- someObject == self painterShown ifTrue:[
+ changedObject == self painterShown ifTrue:[
"/ canvasShown toggle changed
window := self painter topView.
- (someObject value) ifTrue:[
+ (changedObject value) ifTrue:[
self raiseUIView:window
] ifFalse:[
self hideUIView:window
@@ -3164,8 +3480,8 @@
^ self
].
- someObject == self autoAcceptOnSelectionChange ifTrue:[
- lbl := someObject value ifTrue:['Apply'] ifFalse:['OK'].
+ changedObject == self autoAcceptOnSelectionChange ifTrue:[
+ lbl := changedObject value ifTrue:['Apply'] ifFalse:['OK'].
(builder componentAt:'acceptButton') label:(resources string:lbl).
^ self
].
@@ -3299,12 +3615,20 @@
!UIPainter methodsFor:'initialization'!
+hideToolBarButtonCreated:aButton
+ aButton passiveLevel:(MenuPanel defaultLevel).
+"/ aButton passiveLevel:1.
+ aButton activeLevel:-1.
+ aButton backgroundColor:(MenuPanel defaultBackgroundColor).
+!
+
initialize
|name scroller viewScroller|
super initialize.
modified := false.
+
aspects := IdentityDictionary new.
aspects at:#classNameChannel put:'NewApplication' asValue.
aspects at:#superclassNameChannel put:'ApplicationModel' asValue.
@@ -4167,6 +4491,11 @@
postBuildWith: aBuilder
super postBuildWith:aBuilder.
+ (self toolBarVisibleHolder value
+ or:[ self editToolBarVisibleHolder value ]) ifTrue:[ self toolBarVisibilityChanged ].
+
+ "Created: / 18-02-2007 / 15:03:08 / cg"
+
self setupPainter.
"Modified: / 22.8.1998 / 17:41:34 / cg"
@@ -4369,6 +4698,7 @@
spec useDynamicPreferredWidth:(layoutTool aspectFor:#useDynamicPreferredWidth) value.
spec useDynamicPreferredHeight:(layoutTool aspectFor:#useDynamicPreferredHeight) value.
painter setLayout:layout.
+ spec layout:layout.
painter updateFromSpec:spec.
].
]
@@ -5026,8 +5356,9 @@
self askForModification ifFalse: [^nil].
specClass := specClassName := specSelector := nil.
self painter removeAll.
- treeView canvas topView name: UIPainter defaultNameOfCanvas.
- treeView canvas topView label: UIPainter defaultNameOfCanvas.
+ treeView canvas topView
+ name: UIPainter defaultNameOfCanvas;
+ label: UIPainter defaultNameOfCanvas.
self helpTool doNew.
self treeSelectionChanged.
treeView selectedNode changed.
@@ -5281,6 +5612,14 @@
!
+hideEditToolbar
+ self editToolBarVisibleHolder value:false
+!
+
+hideToolbar
+ self toolBarVisibleHolder value:false
+!
+
replaceWidgetByClass:aSpecOrWidgetClass
|specClass oldSpec newSpec painter|
@@ -5545,13 +5884,13 @@
lastDrawnMaster := nil.
windowSpec := nil.
+ self canvas components notEmptyOrNil ifTrue:[ self halt ].
self canvas subViews copy do:[:aView|
"/ care to not destroy the transparent input view
(aView isInputOnly) ifFalse:[aView destroy]
].
model root name: UIPainter defaultNameOfCanvas asBoldText.
model removeAllOtherThanRoot.
-
!
removeView:aView
@@ -6089,7 +6428,7 @@
!
doSortItems
- "moves child 'anOffset' forward or backward in list of children"
+ "sort items by their top-left position"
|selectedItems parent sortedItems newChildren itemList parentView|
@@ -6100,7 +6439,8 @@
parent := selectedItems first parent.
(parent isNil or:[(selectedItems conform:[:e| e parent == parent]) not]) ifTrue:[^ self].
- sortedItems := selectedItems sort:[:a :b| a contents view origin isLeftOrAbove:(b contents view origin)].
+ sortedItems := selectedItems sort:[:a :b|
+ a contents view origin isLeftOrAbove:(b contents view origin)].
itemList := selectedItems asIdentitySet.
newChildren := parent children collect:[:eachChild|
@@ -6122,11 +6462,12 @@
parentView changeSequenceOrderFor:eachItem contents view to:idx.
].
parentView specClass isLayoutContainer ifFalse:[
+ parentView components notEmptyOrNil ifTrue:[ self halt ].
parentView subViews do:[:v| v raise ].
].
self canvas showSelection.
- self selectNodes:itemList.
+ self selectNodes:itemList asOrderedCollection.
!
doStepIn
@@ -6156,7 +6497,7 @@
!
doStepOver:anIndex
- "moves child 'anOffset' forward or backward in list of children"
+ "moves child 'anIndex' forward or backward in list of children"
|item idx size prnt spVw view canvas|
@@ -6188,6 +6529,7 @@
spVw changeSequenceOrderFor:view to:idx.
spVw specClass isLayoutContainer ifFalse:[
+ "/ spVw components notEmptyOrNil ifTrue:[ self halt ].
spVw subViews do:[:v| v raise ].
].
canvas showSelection.