WOs changes
authorwerner
Wed, 07 Apr 2004 15:45:31 +0200
changeset 1827 691d1471cd3e
parent 1826 25ddfdfe0bf9
child 1828 99b4e6b55b75
WOs changes
UIObjectView.st
UIPainter.st
--- 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