diff -r 49777692d309 -r 23e5d0c133e8 UIPainter.st --- a/UIPainter.st Wed Sep 22 18:59:10 1999 +0200 +++ b/UIPainter.st Wed Sep 22 20:11:46 1999 +0200 @@ -1336,178 +1336,185 @@ #(#Menu - #( - #(#MenuItem - #label: 'Undo' - #translateLabel: true - #nameKey: #undo - #value: #undoLast - #activeHelpKey: #editUndo - #enabled: #hasUndoHistory - #shortcutKeyCharacter: #Cmdu - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Cut' - #translateLabel: true - #value: #deleteSelection - #activeHelpKey: #editCut - #enabled: #valueOfCanCut - #shortcutKeyCharacter: #Cut - ) - #(#MenuItem - #label: 'Copy' - #translateLabel: true - #value: #copySelection - #activeHelpKey: #editCopy - #enabled: #valueOfCanCopy - #shortcutKeyCharacter: #Copy - ) - #(#MenuItem - #label: 'Paste' - #translateLabel: true - #value: #pasteBuffer - #activeHelpKey: #pasteBuffer - #enabled: #valueOfCanPaste - #shortcutKeyCharacter: #Paste - ) - #(#MenuItem - #label: 'Delete' - #translateLabel: true - #value: #deleteTotalSelection - #activeHelpKey: #editDelete - #enabled: #valueOfCanCut - #shortcutKeyCharacter: #Delete - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Paste With Layout' - #translateLabel: true - #value: #pasteWithLayout - #activeHelpKey: #pasteWithLayout - #enabled: #valueOfCanPasteWithKeepingLayout - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Move' - #translateLabel: true - #enabled: #canMoveSelection - #submenuChannel: #menuMove - ) - #(#MenuItem - #label: 'Dimension' - #translateLabel: true - #enabled: #hasSelection - #submenu: - #(#Menu + #( + #(#MenuItem + #label: 'Undo' + #translateLabel: true + #nameKey: #undo + #value: #undoLast + #activeHelpKey: #editUndo + #enabled: #hasUndoHistory + #shortcutKeyCharacter: #Cmdu + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #label: 'Cut' + #translateLabel: true + #value: #deleteSelection + #activeHelpKey: #editCut + #enabled: #valueOfCanCut + #shortcutKeyCharacter: #Cut + ) + #(#MenuItem + #label: 'Copy' + #translateLabel: true + #value: #copySelection + #activeHelpKey: #editCopy + #enabled: #valueOfCanCopy + #shortcutKeyCharacter: #Copy + ) + #(#MenuItem + #label: 'Paste' + #translateLabel: true + #value: #pasteBuffer + #activeHelpKey: #pasteBuffer + #enabled: #valueOfCanPaste + #shortcutKeyCharacter: #Paste + ) + #(#MenuItem + #label: 'Delete' + #translateLabel: true + #value: #deleteTotalSelection + #activeHelpKey: #editDelete + #enabled: #valueOfCanCut + #shortcutKeyCharacter: #Delete + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #label: 'Paste With Layout' + #translateLabel: true + #value: #pasteWithLayout + #activeHelpKey: #pasteWithLayout + #enabled: #valueOfCanPasteWithKeepingLayout + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #label: 'Move' + #translateLabel: true + #enabled: #canMoveSelection + #submenuChannel: #menuMove + ) + #(#MenuItem + #label: 'Dimension' + #translateLabel: true + #enabled: #hasSelection + #submenu: + #(#Menu - #( - #(#MenuItem - #label: 'Default Extent' - #translateLabel: true - #value: #setToDefaultExtent - #activeHelpKey: #editDimensionDefaultExtent - #enabled: #canMoveOrAlignSelection - ) - #(#MenuItem - #label: 'Default Width' - #translateLabel: true - #value: #setToDefaultWidth - #activeHelpKey: #editDimensionDefaultWidth - #enabled: #canMoveOrAlignSelection - ) - #(#MenuItem - #label: 'Default Height' - #translateLabel: true - #value: #setToDefaultHeight - #activeHelpKey: #editDimensionDefaultHeight - #enabled: #canMoveOrAlignSelection - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Copy Layout' - #translateLabel: true - #value: #copyLayout - #activeHelpKey: #editDimensionCopyLayout - #enabled: #hasSingleSelection - ) - #(#MenuItem - #label: 'Copy Extent' - #translateLabel: true - #value: #copyExtent - #activeHelpKey: #editDimensionCopyExtent - #enabled: #hasSingleSelection - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Paste Layout' - #translateLabel: true - #value: #pasteLayout - #activeHelpKey: #editDimensionPasteLayout - #enabled: #canMoveOrAlignSelection - ) - #(#MenuItem - #label: 'Paste Extent' - #translateLabel: true - #value: #pasteExtent - #activeHelpKey: #editDimensionPasteExtent - #enabled: #canMoveOrAlignSelection - ) - #(#MenuItem - #label: 'Paste Width' - #translateLabel: true - #value: #pasteWidth - #activeHelpKey: #editDimensionPasteWidth - #enabled: #canMoveOrAlignSelection - ) - #(#MenuItem - #label: 'Paste Height' - #translateLabel: true - #value: #pasteHeight - #activeHelpKey: #editDimensionPasteHeight - #enabled: #canMoveOrAlignSelection - ) - ) nil - nil - ) - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Open Widget Documentation' - #translateLabel: true - #value: #doOpenWidgetDocumentation - #activeHelpKey: #editOpenSpecDocumentation - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Inspect View' - #translateLabel: true - #value: #doInspectView - #activeHelpKey: #editInspectView - #enabled: #hasOneSelectionOtherThanCanvas - ) - #(#MenuItem - #label: 'Inspect Spec' - #translateLabel: true - #value: #doInspectSpec - #activeHelpKey: #editInspectSpec - ) - ) nil - nil + #( + #(#MenuItem + #label: 'Default Extent' + #translateLabel: true + #value: #setToDefaultExtent + #activeHelpKey: #editDimensionDefaultExtent + #enabled: #canMoveOrAlignSelection + ) + #(#MenuItem + #label: 'Default Width' + #translateLabel: true + #value: #setToDefaultWidth + #activeHelpKey: #editDimensionDefaultWidth + #enabled: #canMoveOrAlignSelection + ) + #(#MenuItem + #label: 'Default Height' + #translateLabel: true + #value: #setToDefaultHeight + #activeHelpKey: #editDimensionDefaultHeight + #enabled: #canMoveOrAlignSelection + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #label: 'Copy Layout' + #translateLabel: true + #value: #copyLayout + #activeHelpKey: #editDimensionCopyLayout + #enabled: #hasSingleSelection + ) + #(#MenuItem + #label: 'Paste Layout' + #translateLabel: true + #value: #pasteLayout + #activeHelpKey: #editDimensionPasteLayout + #enabled: #canMoveOrAlignSelection + ) + #(#MenuItem + #label: 'Exchange Layouts' + #translateLabel: true + #value: #exchangeLayouts + #activeHelpKey: #editDimensionExchangeLayouts + #enabled: #canExchangeSelectionLayouts + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #label: 'Copy Extent' + #translateLabel: true + #value: #copyExtent + #activeHelpKey: #editDimensionCopyExtent + #enabled: #hasSingleSelection + ) + #(#MenuItem + #label: 'Paste Extent' + #translateLabel: true + #value: #pasteExtent + #activeHelpKey: #editDimensionPasteExtent + #enabled: #canMoveOrAlignSelection + ) + #(#MenuItem + #label: 'Paste Width' + #translateLabel: true + #value: #pasteWidth + #activeHelpKey: #editDimensionPasteWidth + #enabled: #canMoveOrAlignSelection + ) + #(#MenuItem + #label: 'Paste Height' + #translateLabel: true + #value: #pasteHeight + #activeHelpKey: #editDimensionPasteHeight + #enabled: #canMoveOrAlignSelection + ) + ) nil + nil + ) + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #label: 'Open Widget Documentation' + #translateLabel: true + #value: #doOpenWidgetDocumentation + #activeHelpKey: #editOpenSpecDocumentation + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #label: 'Inspect View' + #translateLabel: true + #value: #doInspectView + #activeHelpKey: #editInspectView + #enabled: #hasOneSelectionOtherThanCanvas + ) + #(#MenuItem + #label: 'Inspect Spec' + #translateLabel: true + #value: #doInspectSpec + #activeHelpKey: #editInspectSpec + ) + ) nil + nil ) "Modified: / 20.5.1998 / 01:46:00 / cg" @@ -1791,6 +1798,15 @@ ^ builder booleanValueAspectFor:#canChangeOrderInContainer ! +canExchangeSelectionLayouts + "returns a boolean value holder which is true in case that the selection + consists of exactly 2 components + and all widgets in the selection can change its layout through to a move or + align operation" + + ^ builder booleanValueAspectFor:#canExchangeSelectionLayouts +! + canMoveOrAlignSelection "returns a boolean value holder which is true in case that any selection exists and all widgets in the selection can change its layout through to a move or @@ -2215,6 +2231,7 @@ |canCutOrCopy canPaste clipboard sel treeSelection| self canMoveOrAlignSelection value:(treeView canMoveOrAlignSelection). + self canExchangeSelectionLayouts value:(treeView canExchangeSelectionLayouts). self canChangeOrderInContainer value:(treeView canChangeOrderInContainer). self canMoveSelectionIntoContainer value:(treeView canMoveSelectionIntoContainer). self canMoveSelectionOutOfContainer value:(treeView canMoveSelectionOutOfContainer). @@ -2223,18 +2240,18 @@ treeView notNil ifTrue: [ - treeSelection := treeView selection. - "/ the top-node cannot be cut, copied or pasted. - canCutOrCopy := treeSelection size >= 1 and:[treeSelection first ~~ 1]. - clipboard := self getSelection. - - clipboard isCollection ifTrue:[clipboard notEmpty ifTrue:[sel := clipboard first]] - ifFalse:[sel := clipboard]. - - canPaste := (sel isKindOf:UISpecification) and: - [treeSelection size = 1 - and:[treeSelection first == 1 - or: [self canPasteInto: treeView selectedNode contents view]]] + treeSelection := treeView selection. + "/ the top-node cannot be cut, copied or pasted. + canCutOrCopy := treeSelection size >= 1 and:[treeSelection first ~~ 1]. + clipboard := self getSelection. + + clipboard isCollection ifTrue:[clipboard notEmpty ifTrue:[sel := clipboard first]] + ifFalse:[sel := clipboard]. + + canPaste := (sel isKindOf:UISpecification) and: + [treeSelection size = 1 + and:[treeSelection first == 1 + or: [self canPasteInto: treeView selectedNode contents view]]] ]. self valueOfCanCut value: canCutOrCopy. @@ -4023,6 +4040,17 @@ ! +canExchangeSelectionLayouts + "returns true if the selections size is exactly 2 + and all widgets in the selection + can change their layout through to a move or align operation" + + selection size == 2 ifFalse:[ + ^ false + ]. + ^ self canMoveOrAlignSelection +! + canMoveOrAlignSelection "returns true if any selection exists and all widgets in the selection can change their layout through to a move or align operation"