diff -r 0be3ff56e799 -r 269c117830ba MenuEditor.st --- a/MenuEditor.st Tue Oct 28 21:26:55 1997 +0100 +++ b/MenuEditor.st Wed Oct 29 08:33:56 1997 +0100 @@ -13,8 +13,8 @@ ApplicationModel subclass:#MenuEditor - instanceVariableNames:'specClass specCanvas helpCanvas tabSelection aspects slices - didInstall' + instanceVariableNames:'isModified specClass specCanvas helpCanvas tabSelection aspects + slices didInstall' classVariableNames:'' poolDictionaries:'' category:'Interface-UIPainter' @@ -466,16 +466,19 @@ #'label:' 'copy' #'value:' #doCopy #'enabled:' #hasValidSelection + #'shortcutKeyCharacter:' #Copy ) #(#MenuItem #'label:' 'cut' #'value:' #doCut #'enabled:' #hasValidSelection + #'shortcutKeyCharacter:' #Cut ) #(#MenuItem #'label:' 'paste' #'value:' #doPaste #'enabled:' #hasAnySingleSelection + #'shortcutKeyCharacter:' #Paste ) #(#MenuItem #'label:' '-' @@ -1380,7 +1383,7 @@ ] ]. self modifiedChannel value:false. - didInstall := true + isModified := true. ! cancel @@ -1502,7 +1505,7 @@ update:something with:aParameter from:changedObject "one of my models changed its value " - self modifiedChannel value:true + self modifiedChannel value:true. ! updateEnabledChannels @@ -1576,9 +1579,7 @@ "returns true if the menu was installed " - ^ didInstall ? false - - "Created: 31.7.1997 / 14:24:24 / cg" + ^ didInstall ! isHelpToolSelected @@ -1695,6 +1696,22 @@ self painter buildFrom:newClass andSelector:aSelector. ! +closeRequest + "close request + " + isModified ifTrue:[ + (self confirm:'quit without without saving your modifications ?') ifFalse:[ + ^ self + ] + ]. + super closeRequest. + + + + + +! + initialize "initialize channels " @@ -1746,6 +1763,9 @@ postBuildWith:builder |cls sel| + didInstall := false. + isModified := false. + specClass isAssociation ifTrue:[ cls := specClass key. sel := specClass value. @@ -1763,20 +1783,6 @@ !MenuEditor methodsFor:'user interactions'! -closeRequest - "close the window - confirm if changed without saving - " - self modifiedChannel value ifTrue:[ - (self confirm:'quit without without saving your modifications ?') ifFalse:[ - ^ self - ] - ]. - - super closeRequest. - - "Modified: 31.7.1997 / 14:29:10 / cg" -! - doBrowseAppClass "open a browser on the class" @@ -1879,7 +1885,8 @@ code := code withCRs. (ReadStream on:code) fileIn. ]. - + didInstall := true. + isModified := false. ! @@ -2406,6 +2413,24 @@ ^ images at:#menuOpen ! ! +!MenuEditor::Painter methodsFor:'event handling'! + +keyPress:key x:x y:y + "any key pressed + " + + + (key == #Cut or:[key == #Delete or:[key == #BackSpace]]) ifTrue: [ + ^ self doCut + ]. + + key == #Copy ifTrue:[ ^ self doCopy]. + key == #Paste ifTrue:[ ^ self doPaste]. + + super keyPress:key x:x y:y. + +! ! + !MenuEditor::Painter methodsFor:'initialization'! fetchImageResources