do ask for save item when wanna paste, create, cut
authortz
Thu, 05 Feb 1998 22:15:36 +0100
changeset 603 fc00fc231df2
parent 602 5bf03bf611c8
child 604 9d62f4f07c65
do ask for save item when wanna paste, create, cut
MenuEditor.st
--- a/MenuEditor.st	Thu Feb 05 22:10:09 1998 +0100
+++ b/MenuEditor.st	Thu Feb 05 22:15:36 1998 +0100
@@ -141,7 +141,7 @@
 'A boolean value holder, a boolean evaluating block, or a boolean returning selector for specifying indication state.'
 
 #basicsIsButton
-'Toggles on/off a button behavior.'
+'Turns on/off a button behavior.'
 
 #basicsLabel
 'Label of the item.'
@@ -162,7 +162,7 @@
 'List of valid separators.'
 
 #basicsTranslateLabel
-'Toggles on/off translation behavior of the label via class resource file.'
+'Turns on/off translation behavior of the label via class resource file.'
 
 #detailsAccelerator
 'Key to be pressed to select the menu item from the keyboard (accelerator key).'
@@ -189,7 +189,7 @@
 'Saves current menu spec and if modified the help spec.'
 
 #imageImageAndLabel
-'Toggles on/off displaying both image and textual label.'
+'Turns on/off displaying both image and textual label.'
 
 #imageImageEditor
 'Opens an Image Editor on retriever and selector.'
@@ -1048,13 +1048,13 @@
                           #'enabled:' #isStandAlone
                       )
                        #(#MenuItem
-                          #'label:' 'Define Menu Class...'
+                          #'label:' 'Define Class...'
                           #'value:' #doDefineClass
                           #'activeHelpKey:' #fileDefineClass
                           #'enabled:' #isStandAlone
                       )
                        #(#MenuItem
-                          #'label:' 'Browse Menu Class'
+                          #'label:' 'Browse Class'
                           #'value:' #doBrowseAppClass
                           #'activeHelpKey:' #fileBrowseClass
                       )
@@ -2772,13 +2772,16 @@
 
 doCut
 
-    |selectedNodes|
-    self doCopy.
-    selectedNodes := self selection asSortedCollection.
-    self selectedNodesRemove.
-    self selection: selectedNodes first - 1.
-    self setModified.
-
+    self checkMenuItemModified
+    ifTrue:
+    [
+        |selectedNodes|
+        self doCopy.
+        selectedNodes := self selection asSortedCollection.
+        self selectedNodesRemove.
+        self selection: selectedNodes first - 1.
+        self setModified.
+    ]
 
 !
 
@@ -2794,20 +2797,29 @@
 addElement: aNode
     "add something after selection"
 
-    (aNode isCollection not and: [aNode name = 'Item']) 
-    ifTrue: 
+    self checkMenuItemModified
+    ifTrue:
     [
-        |label|
-        label := aNode name, ' ',
-        (self selectedNode parent notNil ifTrue:
-        [(((self selectedNode children size = 0 ifTrue: [self selectedNode parent children] ifFalse: [self selectedNode children]) select: [:node| 
-                |lab| lab := node contents label. ((node children size = 0) & node contents submenuChannel isNil & (lab ~= '-') & (lab ~= '=') & (lab ~= ''))]) size + 1) printString] ifFalse: ['1']).
-        aNode name: label.
-        aNode contents label: label.
-    ].
-    self selectedNodeAdd: aNode.
-    aNode isCollection ifFalse: [self selectNode: aNode] ifTrue: [self selection: (aNode collect: [:node| self indexOfNode: node])].
-    self setModified.
+        (aNode isCollection not and: [aNode name = 'Item']) 
+        ifTrue: 
+        [
+            |label|
+            label := aNode name, ' ',
+            (self selectedNode parent notNil ifTrue:
+            [(((self selectedNode children size = 0 ifTrue: [self selectedNode parent children] ifFalse: [self selectedNode children]) select: [:node| 
+                    |lab| lab := node contents label. ((node children size = 0) & node contents submenuChannel isNil & (lab ~= '-') & (lab ~= '=') & (lab ~= ''))]) size + 1) printString] ifFalse: ['1']).
+            aNode name: label.
+            aNode contents label: label.
+        ].
+        self selectedNodeAdd: aNode.
+        aNode isCollection ifFalse: [self selectNode: aNode] ifTrue: [self selection: (aNode collect: [:node| self indexOfNode: node])].
+        self setModified.
+    ]
+!
+
+checkMenuItemModified
+
+    ^self topView application checkMenuItemModified
 !
 
 nodeLabel:aLabel