--- 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 @@
<resource: #menu>
- ^
-
- #(#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'!