--- a/UIObjectView.st Wed Apr 07 15:23:25 2004 +0200
+++ b/UIObjectView.st Wed Apr 07 15:45:31 2004 +0200
@@ -508,22 +508,29 @@
"any key pressed
"
<resource: #keyboard ( #CursorUp #CursorDown #CursorLeft #CursorRight
- #Delete #BackSpace #Cut #Copy #Paste #Cmdu ) >
+ #Delete #BackSpace #Cut #Copy #Paste #Cmdu #Again) >
|n sensor|
(key == #Cut or:[key == #Delete or:[key == #BackSpace]]) ifTrue: [
^ self deleteSelection
].
+ (key = #PreviousPage) ifTrue:[
+ self selectNextUpInHierarchy.
+ ].
key == #Copy ifTrue:[ ^ self copySelection].
key == #Paste ifTrue:[ ^ self pasteBuffer].
key == #Cmdu ifTrue:[ ^ self undoLast ]. "/ #Undo
- (#(CursorUp CursorDown CursorRight CursorLeft) includes:key) ifTrue:[
- sensor := self sensor.
- n := 1 + (sensor compressKeyPressEventsWithKey:key).
- sensor shiftDown ifTrue:[
- n := n * 10.
+ ( #(CursorUp CursorDown CursorRight CursorLeft)
+ includes:key) ifTrue:[
+ (sensor := self sensor) isNil ifTrue:[
+ n := 1
+ ] ifFalse:[
+ n := 1 + (sensor compressKeyPressEventsWithKey:key).
+ sensor shiftDown ifTrue:[
+ n := n * 10.
+ ].
].
key == #CursorUp ifTrue:[
@@ -707,6 +714,7 @@
motionAction := [:movePoint | nil].
releaseAction := [nil].
keyPressAction := nil.
+ doublePressAction := [:pressPoint | self doublePressed: pressPoint].
self cursor:Cursor normal.
@@ -918,9 +926,15 @@
].
self setSelection:object withRedraw:true.
+ self forEach:selection do:[:aView |
+ self recomputeShapeIfTransparentBox:aView.
+ ].
self layoutChanged.
!
+layoutChanged
+!
+
startResizeBorder:b of:selection
"resize selected view
"
@@ -966,6 +980,13 @@
!UIObjectView methodsFor:'private-resizing subviews'!
+recomputeShapeIfTransparentBox:aView
+ (aView notNil and:[aView isTBox]) ifTrue:[
+ aView computeShape.
+ aView clear; redraw
+ ].
+!
+
resize:aView bottom:aPoint
"resize a views bottom
"
@@ -1189,6 +1210,10 @@
^ 1
!
+selectNextUpInHierarchy
+ self halt.
+!
+
selection:something
"change selection to something
"
@@ -1300,6 +1325,33 @@
! !
+!UIObjectView methodsFor:'selections basic'!
+
+setSelection:aNewSelection withRedraw:doRedraw
+ "set a new selection without change notifications
+ "
+ | sel |
+
+ (sel := aNewSelection) == self ifTrue:[
+ sel := nil
+ ].
+
+ doRedraw ifTrue:[
+ self hideSelection.
+ selection := sel.
+
+ self forEach:selection do:[:aView |
+ |superView|
+
+ superView := aView superView.
+ self recomputeShapeIfTransparentBox:superView.
+ ].
+ self showSelection.
+ ] ifFalse:[
+ selection := sel
+ ]
+! !
+
!UIObjectView methodsFor:'selections-basic'!
recursiveRepair:theDamages startIn:aView
@@ -1387,24 +1439,6 @@
!
-setSelection:aNewSelection withRedraw:doRedraw
- "set a new selection without change notifications
- "
- |sel|
-
- (sel := aNewSelection) == self ifTrue:[
- sel := nil
- ].
-
- doRedraw ifTrue:[
- self hideSelection.
- selection := sel.
- self showSelection
- ] ifFalse:[
- selection := sel
- ]
-!
-
showUnselected:something
"show a component ot list of components unselected
"
--- a/UIPainter.st Wed Apr 07 15:23:25 2004 +0200
+++ b/UIPainter.st Wed Apr 07 15:45:31 2004 +0200
@@ -274,7 +274,7 @@
<resource: #help>
- ^super helpSpec addPairsFrom:#(
+ ^ super helpSpec addPairsFrom:#(
#align
'Widget alignment functions.'
@@ -321,6 +321,12 @@
#changePositionUp
'Moves the selected widget(s) towards the top.'
+#drawEdit
+''
+
+#editBrowseViewClass
+'Opens a browser on the class of the selected widget.'
+
#editDimensionCopyExtent
'Copies the extent of the selected widget.'
@@ -351,21 +357,18 @@
#editInspectSpec
'Opens an inspector on the spec of the selected widget.'
-#editBrowseViewClass
-'Opens a browser on the class of the selected widget.'
-
#editInspectView
'Opens an inspector on the selected widget.'
#editOpenSpecDocumentation
'Opens the documentation of the selected widget.'
+#fileBrowseAspectMethods
+'Opens a System Browser on the applications aspect methods.'
+
#fileBrowseClass
'Open a System Browser on the applications class.'
-#fileBrowseAspectMethods
-'Opens a System Browser on the applications aspect methods.'
-
#fileLoad
'Opens a dialog to load a window specification from a classes spec method.'
@@ -429,6 +432,12 @@
#pasteWithLayout
'Pastes the widgets of the clipboard without a changing of their layouts.'
+#referToCOnfigDatabase
+''
+
+#settingsAspectsAsInstances
+'Generate aspects as instance variables (or bindings, if off).'
+
#settingsCanvas
'Shows or hides the canvas window.'
@@ -441,9 +450,6 @@
#settingsRedefineAspectMethods
'Toggles the permission to overwrite existing aspect methods.'
-#settingsAspectsAsInstances
-'Generate aspects as instance variables (or bindings, if off).'
-
#settingsTranscriptHelp
'Toggles display of help texts (after opening a new GUI Painter).'
@@ -463,8 +469,6 @@
'Starts the application with the current window spec.'
)
-
- "Modified: / 31.7.1998 / 19:29:53 / cg"
! !
!UIPainter class methodsFor:'helpers'!
@@ -1460,201 +1464,247 @@
<resource: #menu>
- ^
-
- #(#Menu
-
- #(
- #(#MenuItem
- #label: 'Undo'
- #translateLabel: true
- #nameKey: #undo
- #value: #undoLast
- #activeHelpKey: #editUndo
- #enabled: #hasUndoHistory
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Cut'
- #translateLabel: true
- #value: #deleteSelection
- #activeHelpKey: #editCut
- #enabled: #valueOfCanCut
- )
- #(#MenuItem
- #label: 'Copy'
- #translateLabel: true
- #value: #copySelection
- #activeHelpKey: #editCopy
- #enabled: #valueOfCanCopy
- )
- #(#MenuItem
- #label: 'Paste'
- #translateLabel: true
- #value: #pasteBuffer
- #activeHelpKey: #pasteBuffer
- #enabled: #valueOfCanPaste
- )
- #(#MenuItem
- #label: 'Delete'
- #translateLabel: true
- #value: #deleteTotalSelection
- #activeHelpKey: #editDelete
- #enabled: #valueOfCanCut
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Paste with Layout'
- #translateLabel: true
- #value: #pasteWithLayout
- #activeHelpKey: #pasteWithLayout
- #enabled: #valueOfCanPasteWithKeepingLayout
- )
- #(#MenuItem
- #label: 'Paste Keeping Absolute Position'
- #translateLabel: true
- #value: #pasteKeepingPosition
- #activeHelpKey: #editPaste
- #enabled: #valueOfCanPasteWithKeepingLayout
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Move'
- #translateLabel: true
- #enabled: #canMoveSelection
- #submenuChannel: #menuMove
+ ^
+ #(Menu
+ (
+ (MenuItem
+ activeHelpKey: editUndo
+ enabled: hasUndoHistory
+ label: 'Undo'
+ itemValue: undoLast
+ nameKey: undo
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ activeHelpKey: editCut
+ enabled: valueOfCanCut
+ label: 'Cut'
+ itemValue: deleteSelection
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editCopy
+ enabled: valueOfCanCopy
+ label: 'Copy'
+ itemValue: copySelection
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: pasteBuffer
+ enabled: valueOfCanPaste
+ label: 'Paste'
+ itemValue: pasteBuffer
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editDelete
+ enabled: valueOfCanCut
+ label: 'Delete'
+ itemValue: deleteTotalSelection
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ activeHelpKey: pasteWithLayout
+ enabled: valueOfCanPasteWithKeepingLayout
+ label: 'Paste with Layout'
+ itemValue: pasteWithLayout
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editPaste
+ enabled: valueOfCanPasteWithKeepingLayout
+ label: 'Paste Keeping Absolute Position'
+ itemValue: pasteKeepingPosition
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: canMoveSelection
+ label: 'Move'
+ translateLabel: true
+ submenuChannel: menuMove
+ )
+ (MenuItem
+ enabled: hasSelection
+ label: 'Dimension'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ activeHelpKey: editDimensionDefaultExtent
+ enabled: canMoveOrAlignSelection
+ label: 'Default Extent'
+ itemValue: setToDefaultExtent
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editDimensionDefaultWidth
+ enabled: canMoveOrAlignSelection
+ label: 'Default Width'
+ itemValue: setToDefaultWidth
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editDimensionDefaultHeight
+ enabled: canMoveOrAlignSelection
+ label: 'Default Height'
+ itemValue: setToDefaultHeight
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ activeHelpKey: editDimensionCopyLayout
+ enabled: hasSingleSelection
+ label: 'Copy Layout'
+ itemValue: copyLayout
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editDimensionPasteLayout
+ enabled: canMoveOrAlignSelection
+ label: 'Paste Layout'
+ itemValue: pasteLayout
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editDimensionExchangeLayouts
+ enabled: canExchangeSelectionLayouts
+ label: 'Exchange Layouts'
+ itemValue: exchangeLayouts
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ activeHelpKey: editDimensionCopyExtent
+ enabled: hasSingleSelection
+ label: 'Copy Extent'
+ itemValue: copyExtent
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editDimensionPasteExtent
+ enabled: canMoveOrAlignSelection
+ label: 'Paste Extent'
+ itemValue: pasteExtent
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editDimensionPasteWidth
+ enabled: canMoveOrAlignSelection
+ label: 'Paste Width'
+ itemValue: pasteWidth
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editDimensionPasteHeight
+ enabled: canMoveOrAlignSelection
+ label: 'Paste Height'
+ itemValue: pasteHeight
+ translateLabel: true
+ )
+ )
+ nil
+ nil
)
- #(#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: '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: 'Browse Widget Class'
- #translateLabel: true
- #value: #doBrowseViewClass
- #activeHelpKey: #editBrowseViewClass
- #enabled: #hasOneSelectionOtherThanCanvas
- )
- #(#MenuItem
- #label: 'Inspect Widget'
- #translateLabel: true
- #value: #doInspectView
- #activeHelpKey: #editInspectView
- #enabled: #hasOneSelectionOtherThanCanvas
- )
- #(#MenuItem
- #label: 'Inspect Spec'
- #translateLabel: true
- #value: #doInspectSpec
- #activeHelpKey: #editInspectSpec
- )
- ) nil
- nil
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ activeHelpKey: editOpenSpecDocumentation
+ label: 'Open Widget Documentation'
+ itemValue: doOpenWidgetDocumentation
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: referToCOnfigDatabase
+ label: 'Refer to Config Database'
+ itemValue: configSelection
+ translateLabel: true
+ isVisible: false
+ )
+ (MenuItem
+ label: '-'
+ isVisible: false
+ )
+ (MenuItem
+ activeHelpKey: drawEdit
+ label: 'Draw Edit'
+ itemValue: shapeEdit
+ translateLabel: true
+ isVisible: false
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ activeHelpKey: group
+ enabled: enGroup
+ label: 'Group'
+ itemValue: group
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: groupWithLayout
+ enabled: enGroup
+ label: 'Group with Layout'
+ itemValue: groupWithLayout
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: ungroup
+ enabled: enUngroup
+ label: 'Ungroup'
+ itemValue: ungroup
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: ungroupWithLayout
+ enabled: enUngroup
+ label: 'Ungroup with Layout'
+ itemValue: ungroupWithLayout
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ activeHelpKey: editBrowseViewClass
+ enabled: hasOneSelectionOtherThanCanvas
+ label: 'Browse Widget Class'
+ itemValue: doBrowseViewClass
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editInspectView
+ enabled: hasOneSelectionOtherThanCanvas
+ label: 'Inspect Widget'
+ itemValue: doInspectView
+ translateLabel: true
+ )
+ (MenuItem
+ activeHelpKey: editInspectSpec
+ label: 'Inspect Spec'
+ itemValue: doInspectSpec
+ translateLabel: true
+ )
+ )
+ nil
+ nil
)
-
- "Modified: / 20.5.1998 / 01:46:00 / cg"
!
menuMove