# HG changeset patch # User Claus Gittinger # Date 1051197135 -7200 # Node ID 4d81ff7b34122e8ed9e897501e9c9ef408df0937 # Parent f5bb3fc6e05adcde2f5c5b1a62a6e783bf308ac0 autoAccept on selectionChange; ok -> apply; diff -r f5bb3fc6e05a -r 4d81ff7b3412 UIPainter.st --- a/UIPainter.st Thu Apr 24 17:11:14 2003 +0200 +++ b/UIPainter.st Thu Apr 24 17:12:15 2003 +0200 @@ -15,7 +15,8 @@ ToolApplicationModel subclass:#UIPainter instanceVariableNames:'specClass specSelector specSuperclass aspects treeView - selectionPanel tabSelection modified specTool layoutTool helpTool' + selectionPanel tabSelection modified specTool layoutTool helpTool + autoAcceptOnSelectionChange' classVariableNames:'' poolDictionaries:'' category:'Interface-UIPainter' @@ -967,344 +968,339 @@ - ^ - - #(#Menu - - #( - #(#MenuItem - #label: '&File' - #translateLabel: true - #activeHelpKey: #file - #enabled: #enableChannel - #submenu: - #(#Menu - - #( - #(#MenuItem - #label: 'New' - #translateLabel: true - #value: #doNew - #activeHelpKey: #fileNew - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Load...' - #translateLabel: true - #value: #doLoad - #activeHelpKey: #fileLoad - ) - #(#MenuItem - #label: 'Load Subspec...' - #translateLabel: true - #value: #doLoadSubspec - #activeHelpKey: #fileLoadSubspec - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Save' - #translateLabel: true - #value: #doSave - #activeHelpKey: #fileSave - ) - #(#MenuItem - #label: 'Save As...' - #translateLabel: true - #value: #doSaveAs - #activeHelpKey: #fileSaveAs - ) - #(#MenuItem - #label: 'Define Class and Selector...' - #translateLabel: true - #value: #doDefineClassAndSelector - #activeHelpKey: #fileSaveAs - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Pick a Window Spec...' - #translateLabel: true - #value: #doPickAView - #activeHelpKey: #filePickAnInterface - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Show Window Spec' - #translateLabel: true - #value: #doWindowSpec - #activeHelpKey: #fileShowWindowSpec - ) - #(#MenuItem - #label: 'Browse Class' - #translateLabel: true - #value: #doBrowseClass - #activeHelpKey: #fileBrowseClass - #enabled: #hasSpecClass - ) - #(#MenuItem - #label: 'Browse Aspect Methods' - #translateLabel: true - #value: #doBrowseAspectMethods - #activeHelpKey: #fileBrowseAspectMethods - #enabled: #hasSpecClass - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Exit' - #translateLabel: true - #value: #closeRequest - #activeHelpKey: #fileExit - ) - ) nil - nil + ^ + #(#Menu + #( + #(#MenuItem + #activeHelpKey: #file + #enabled: #enableChannel + #label: '&File' + #translateLabel: true + #submenu: + #(#Menu + #( + #(#MenuItem + #activeHelpKey: #fileNew + #label: 'New' + #itemValue: #doNew + #translateLabel: true + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #fileLoad + #label: 'Load...' + #itemValue: #doLoad + #translateLabel: true + ) + #(#MenuItem + #activeHelpKey: #fileLoadSubspec + #label: 'Load Subspec...' + #itemValue: #doLoadSubspec + #translateLabel: true + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #fileSave + #label: 'Save' + #itemValue: #doSave + #translateLabel: true + ) + #(#MenuItem + #activeHelpKey: #fileSaveAs + #label: 'Save As...' + #itemValue: #doSaveAs + #translateLabel: true + ) + #(#MenuItem + #activeHelpKey: #fileSaveAs + #label: 'Define Class and Selector...' + #itemValue: #doDefineClassAndSelector + #translateLabel: true + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #filePickAnInterface + #label: 'Pick a Window Spec...' + #itemValue: #doPickAView + #translateLabel: true + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #fileShowWindowSpec + #label: 'Show Window Spec' + #itemValue: #doWindowSpec + #translateLabel: true ) - ) - #(#MenuItem - #label: 'Edit' - #translateLabel: true - #activeHelpKey: #edit - #submenuChannel: #menuEdit - ) - #(#MenuItem - #label: 'Align' - #translateLabel: true - #activeHelpKey: #align - #submenuChannel: #menuAlign + #(#MenuItem + #activeHelpKey: #fileBrowseClass + #enabled: #hasSpecClass + #label: 'Browse Class' + #itemValue: #doBrowseClass + #translateLabel: true + ) + #(#MenuItem + #activeHelpKey: #fileBrowseAspectMethods + #enabled: #hasSpecClass + #label: 'Browse Aspect Methods' + #itemValue: #doBrowseAspectMethods + #translateLabel: true + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #fileExit + #label: 'Exit' + #itemValue: #closeRequest + #translateLabel: true + ) + ) + nil + nil ) - #(#MenuItem - #label: 'Generate' - #translateLabel: true - #activeHelpKey: #generate - #submenu: - #(#Menu - - #( - #(#MenuItem - #label: 'Aspect Methods' - #translateLabel: true - #value: #doGenerateAspectMethods - #activeHelpKey: #generateAspectMethods - #enabled: #hasSpecClass - ) - #(#MenuItem - #label: 'Aspect Method For...' - #translateLabel: true - #value: #doGenerateAspectMethodFor - #activeHelpKey: #generateAspectMethodFor - #enabled: #hasSpecClass - ) - #(#MenuItem - #label: 'Menu Stub Methods' - #translateLabel: true - #value: #doGenerateMenuMethods - #enabled: #hasSpecClass - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Hook Methods' - #translateLabel: true - #value: #doGenerateHookMethods - #activeHelpKey: #generateHookMethods - #enabled: #hasSpecClass - ) - ) nil - nil + ) + #(#MenuItem + #activeHelpKey: #edit + #label: 'Edit' + #translateLabel: true + #submenuChannel: #menuEdit + ) + #(#MenuItem + #activeHelpKey: #align + #label: 'Align' + #translateLabel: true + #submenuChannel: #menuAlign + ) + #(#MenuItem + #activeHelpKey: #generate + #label: 'Generate' + #translateLabel: true + #submenu: + #(#Menu + #( + #(#MenuItem + #activeHelpKey: #generateAspectMethods + #enabled: #hasSpecClass + #label: 'Aspect Methods' + #itemValue: #doGenerateAspectMethods + #translateLabel: true ) + #(#MenuItem + #activeHelpKey: #generateAspectMethodFor + #enabled: #hasSpecClass + #label: 'Aspect Method For...' + #itemValue: #doGenerateAspectMethodFor + #translateLabel: true + ) + #(#MenuItem + #enabled: #hasSpecClass + #label: 'Menu Stub Methods' + #itemValue: #doGenerateMenuMethods + #translateLabel: true + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #generateHookMethods + #enabled: #hasSpecClass + #label: 'Hook Methods' + #itemValue: #doGenerateHookMethods + #translateLabel: true + ) + ) + nil + nil ) - #(#MenuItem - #label: 'Test' - #translateLabel: true - #activeHelpKey: #test - #submenu: - #(#Menu - - #( - #(#MenuItem - #label: 'Start Application' - #translateLabel: true - #value: #doStartApplication - #activeHelpKey: #testStartApplication - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Geometry Test Mode' - #translateLabel: true - #activeHelpKey: #testGeometryTestMode - #indication: #testMode: - ) - ) nil - nil + ) + #(#MenuItem + #activeHelpKey: #test + #label: 'Test' + #translateLabel: true + #submenu: + #(#Menu + #( + #(#MenuItem + #activeHelpKey: #testStartApplication + #label: 'Start Application' + #itemValue: #doStartApplication + #translateLabel: true ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #testGeometryTestMode + #label: 'Geometry Test Mode' + #translateLabel: true + #indication: #testMode: + ) + ) + nil + nil ) - #(#MenuItem - #label: 'Settings' - #translateLabel: true - #activeHelpKey: #settings - #submenu: - #(#Menu - - #( - #(#MenuItem - #label: 'Canvas' - #translateLabel: true - #activeHelpKey: #settingsCanvas - #indication: #painterShown - ) - #(#MenuItem - #label: 'Gallery' - #translateLabel: true - #activeHelpKey: #settingsGallery - #indication: #galleryShown - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Redefine Aspect Methods' - #translateLabel: true - #activeHelpKey: #settingsRedefineAspectMethods - #enabled: #hasSpecClass - #indication: #redefineAspectMethods: - ) - #(#MenuItem - #label: 'Aspects as InstanceVariables' - #translateLabel: true - #activeHelpKey: #settingsAspectsAsInstances - #enabled: #hasSpecClass - #indication: #generateAspectsAsInstanceVariables: - ) - #(#MenuItem - #label: '-' - ) -"/ #(#MenuItem -"/ #label: 'Fonts' -"/ #submenuChannel: #menuFont -"/ ) -"/ #(#MenuItem -"/ #label: '-' -"/ ) - #(#MenuItem - #label: 'Undo Manager...' - #translateLabel: true - #value: #openUndoMenu - #activeHelpKey: #settingsUndoManager - #enabled: #hasUndoHistory - ) - #(#MenuItem - #label: 'Grid Manager...' - #translateLabel: true - #value: #doDefineGrid - #activeHelpKey: #settingsGridManager - ) - ) nil - nil + ) + #(#MenuItem + #activeHelpKey: #settings + #label: 'Settings' + #translateLabel: true + #submenu: + #(#Menu + #( + #(#MenuItem + #activeHelpKey: #settingsCanvas + #label: 'Canvas' + #translateLabel: true + #indication: #painterShown + ) + #(#MenuItem + #activeHelpKey: #settingsGallery + #label: 'Gallery' + #translateLabel: true + #indication: #galleryShown + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #settingsRedefineAspectMethods + #enabled: #hasSpecClass + #label: 'Redefine Aspect Methods' + #translateLabel: true + #indication: #redefineAspectMethods: ) + #(#MenuItem + #activeHelpKey: #settingsAspectsAsInstances + #enabled: #hasSpecClass + #label: 'Aspects as InstanceVariables' + #translateLabel: true + #indication: #generateAspectsAsInstanceVariables: + ) + #(#MenuItem + #label: 'AutoAccept on Selection-Change ' + #translateLabel: true + #indication: #autoAcceptOnSelectionChange + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #settingsUndoManager + #enabled: #hasUndoHistory + #label: 'Undo Manager...' + #itemValue: #openUndoMenu + #translateLabel: true + ) + #(#MenuItem + #activeHelpKey: #settingsGridManager + #label: 'Grid Manager...' + #itemValue: #doDefineGrid + #translateLabel: true + ) + ) + nil + nil ) - #(#MenuItem - #label: 'History' - #translateLabel: true - #activeHelpKey: #history - #submenuChannel: #menuHistory + ) + #(#MenuItem + #activeHelpKey: #history + #label: 'History' + #translateLabel: true + #submenuChannel: #menuHistory + ) + #(#MenuItem + #activeHelpKey: #help + #label: 'Help' + #translateLabel: true + #startGroup: #right + #submenu: + #(#Menu + #( + #(#MenuItem + #activeHelpKey: #helpTutorial + #label: 'Tutorial' + #itemValue: #openHTMLDocument: + #translateLabel: true + #argument: 'tools/uipainter/TOP.html' + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #helpFunctions + #label: 'Functions' + #itemValue: #openHTMLDocument: + #translateLabel: true + #argument: 'tools/uipainter/Functions.html' + ) + #(#MenuItem + #activeHelpKey: #helpExamples + #label: 'Examples' + #itemValue: #openHTMLDocument: + #translateLabel: true + #argument: 'tools/uipainter/Examples.html' + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #helpHelpTool + #label: 'Help Tool' + #itemValue: #openHTMLDocument: + #translateLabel: true + #argument: 'tools/uipainter/HelpTool.html' + ) + #(#MenuItem + #activeHelpKey: #helpLayoutTool + #label: 'Layout Tool' + #itemValue: #openHTMLDocument: + #translateLabel: true + #argument: 'tools/uipainter/LayoutTool.html' + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #helpSelectedWidget + #label: 'Selected Widget' + #itemValue: #doOpenWidgetDocumentation + #translateLabel: true + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #helpShowHelp + #label: 'Show Help Texts' + #translateLabel: true + #indication: #showingHelp: + ) + #(#MenuItem + #label: '-' + ) + #(#MenuItem + #activeHelpKey: #aboutThisAppliaction + #label: 'About this Application...' + #itemValue: #openAboutThisApplication + #translateLabel: true + ) + ) + nil + nil ) - #(#MenuItem - #label: 'Help' - #translateLabel: true - #startGroup: #right - #activeHelpKey: #help - #submenu: - #(#Menu - - #( - #(#MenuItem - #label: 'Tutorial' - #translateLabel: true - #value: #openHTMLDocument: - #activeHelpKey: #helpTutorial - #argument: 'tools/uipainter/TOP.html' - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Functions' - #translateLabel: true - #value: #openHTMLDocument: - #activeHelpKey: #helpFunctions - #argument: 'tools/uipainter/Functions.html' - ) - #(#MenuItem - #label: 'Examples' - #translateLabel: true - #value: #openHTMLDocument: - #activeHelpKey: #helpExamples - #argument: 'tools/uipainter/Examples.html' - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Help Tool' - #translateLabel: true - #value: #openHTMLDocument: - #activeHelpKey: #helpHelpTool - #argument: 'tools/uipainter/HelpTool.html' - ) - #(#MenuItem - #label: 'Layout Tool' - #translateLabel: true - #value: #openHTMLDocument: - #activeHelpKey: #helpLayoutTool - #argument: 'tools/uipainter/LayoutTool.html' - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Selected Widget' - #translateLabel: true - #value: #doOpenWidgetDocumentation - #activeHelpKey: #helpSelectedWidget - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'Show Help Texts' - #translateLabel: true - #activeHelpKey: #helpShowHelp - #indication: #showingHelp: - ) - #(#MenuItem - #label: '-' - ) - #(#MenuItem - #label: 'About this Application...' - #translateLabel: true - #value: #openAboutThisApplication - #activeHelpKey: #aboutThisAppliaction - ) - ) nil - nil - ) - ) - ) nil - nil + ) + ) + nil + nil ) - - "Modified: / 23.8.1998 / 16:09:22 / cg" ! menuAlign @@ -1975,6 +1971,10 @@ ^aspects at:aKey ifAbsent:[ super aspectFor:aKey ] ! +autoAcceptOnSelectionChange + ^ builder valueAspectFor:#autoAcceptOnSelectionChange initialValue:true +! + canChangeOrderInContainer "returns a boolean value holder which is true if the widget order can be changed within their container" @@ -2386,7 +2386,7 @@ ] ifFalse:[ self layoutTool layoutView notNil ifTrue:[ self clearModifiedFlag. - self treeSelection + self treeSelectionChanged ] ] ! @@ -2394,36 +2394,42 @@ update:something with:aParameter from:someObject "catches change notifications" - |window| + |window lbl| someObject == treeView model ifTrue:[ - (something == #selection - or:[something == #selectionIndex]) ifTrue:[self treeSelection]. + (something == #selection + or:[something == #selectionIndex]) ifTrue:[self treeSelectionChanged]. ^ self ]. someObject == self galleryShown ifTrue:[ - "/ galleryShown toggle changed - window := selectionPanel window. - (someObject value) ifTrue:[ - self raiseUIView:window - ] ifFalse:[ - self hideUIView:window - ]. + "/ galleryShown toggle changed + window := selectionPanel window. + (someObject value) ifTrue:[ + self raiseUIView:window + ] ifFalse:[ + self hideUIView:window + ]. ^ self ]. someObject == self painterShown ifTrue:[ - "/ canvasShown toggle changed - window := self painter topView. - (someObject value) ifTrue:[ - self raiseUIView:window - ] ifFalse:[ - self hideUIView:window - ]. + "/ canvasShown toggle changed + window := self painter topView. + (someObject value) ifTrue:[ + self raiseUIView:window + ] ifFalse:[ + self hideUIView:window + ]. ^ self ]. + someObject == self autoAcceptOnSelectionChange ifTrue:[ + lbl := someObject value ifTrue:['Apply'] ifFalse:['OK']. + (builder componentAt:'acceptButton') label:(resources string:lbl). + ^ self + ]. + "Modified: / 16.7.1998 / 19:09:57 / cg" ! @@ -2538,7 +2544,6 @@ self askForSectionModification. - (modified or: [painter isModified or: [self helpTool modified]]) ifTrue:[ ((YesNoBox title:(resources string:'Window Spec was modified !!')) @@ -2864,7 +2869,13 @@ ! selectionChangeAllowed:newSelection - self askForUnsavedModifications ifFalse:[^ false]. + self isModified ifFalse:[^ true]. + + self autoAcceptOnSelectionChange value ifTrue:[ + self accept + ] ifFalse:[ + self askForUnsavedModifications ifFalse:[^ false]. + ]. ^ true ! @@ -2881,14 +2892,18 @@ ^ self ]. - self askForUnsavedModifications ifFalse:[^ self]. + self autoAcceptOnSelectionChange value ifTrue:[ + self accept + ] ifFalse:[ + self askForUnsavedModifications ifFalse:[^ self]. + ]. tabSelection := something. self raiseTabView. self cancel. ! -treeSelection +treeSelectionChanged "called whenever the selection of the treeview has changed" |view spec property| @@ -3217,6 +3232,11 @@ ] ]. + self autoAcceptOnSelectionChange addDependent:self. + self autoAcceptOnSelectionChange value ifTrue:[ + (builder componentAt:'acceptButton') label:(resources string:'Apply') + ]. + "Modified: / 22.8.1998 / 17:41:34 / cg" ! @@ -3367,6 +3387,7 @@ treeView isCanvasSelected ifTrue: [ spec := treeView canvasSpec. ]. + self specTool specification:spec. view := self layoutTool layoutView. @@ -3377,7 +3398,7 @@ ] ]. self clearModifiedFlag. - modified := false + modified := false. ] ! @@ -3697,7 +3718,7 @@ treeView canvas topView name: UIPainter defaultNameOfCanvas. treeView canvas topView label: UIPainter defaultNameOfCanvas. self helpTool doNew. - self treeSelection. + self treeSelectionChanged. treeView selectedNode changed. self tabModel value: self tabList value first. self updateInfoLabel. @@ -4156,7 +4177,7 @@ name := aWindowSpec label. canvasView topView name:name. self canvasNameChanged:name. - self application treeSelection. + self application treeSelectionChanged. ! ! !UIPainter::TreeView methodsFor:'canvas selection'!