MenuEditor.st
changeset 3582 5606394265f9
parent 3571 5ab5d55aec43
child 3585 3b557739ccb5
equal deleted inserted replaced
3581:e8ae5a7267d8 3582:5606394265f9
       
     1 "{ Encoding: utf8 }"
       
     2 
     1 "
     3 "
     2  COPYRIGHT (c) 1997 by eXept Software AG
     4  COPYRIGHT (c) 1997 by eXept Software AG
     3 	      All Rights Reserved
     5 	      All Rights Reserved
     4 
     6 
     5  This software is furnished under a license and may be used
     7  This software is furnished under a license and may be used
  5894 !
  5896 !
  5895 
  5897 
  5896 menu:aMenu labeled:aString
  5898 menu:aMenu labeled:aString
  5897     |expanded item menu|
  5899     |expanded item menu|
  5898 
  5900 
  5899     self criticalDo:[
  5901     self synchronized:[
  5900 	self isRootItem ifTrue:[ expanded := true ]
  5902         self isRootItem ifTrue:[ expanded := true ]
  5901 		       ifFalse:[ expanded := isExpanded ].
  5903                        ifFalse:[ expanded := isExpanded ].
  5902 
  5904 
  5903 	self removeAll.
  5905         self removeAll.
  5904 	self rawLabel:aString.
  5906         self rawLabel:aString.
  5905 
  5907 
  5906 	menu := aMenu value.
  5908         menu := aMenu value.
  5907 
  5909 
  5908 	(menu isNil or:[menu isString]) ifTrue:[
  5910         (menu isNil or:[menu isString]) ifTrue:[
  5909 	    menu := nil
  5911             menu := nil
  5910 	] ifFalse:[
  5912         ] ifFalse:[
  5911 	    aMenu isCollection ifTrue:[ menu := Menu decodeFromLiteralArray:aMenu ]
  5913             aMenu isCollection ifTrue:[ menu := Menu decodeFromLiteralArray:aMenu ]
  5912 			      ifFalse:[ menu := aMenu ].
  5914                               ifFalse:[ menu := aMenu ].
  5913 
  5915 
  5914 	    menu hasItems ifFalse:[
  5916             menu hasItems ifFalse:[
  5915 		menu := nil
  5917                 menu := nil
  5916 	    ].
  5918             ].
  5917 	].
  5919         ].
  5918 	menu notNil ifTrue:[
  5920         menu notNil ifTrue:[
  5919 	    isExpanded := false.        "/ discard change notifications
  5921             isExpanded := false.        "/ discard change notifications
  5920 	    children   := OrderedCollection new.
  5922             children   := OrderedCollection new.
  5921 
  5923 
  5922 	    menu itemsDo:[:el|
  5924             menu itemsDo:[:el|
  5923 		item := self class menuItem:el.
  5925                 item := self class menuItem:el.
  5924 		item parent:self.
  5926                 item parent:self.
  5925 		children add:item.
  5927                 children add:item.
  5926 	    ].
  5928             ].
  5927 	    expanded ifTrue:[ self expand ].
  5929             expanded ifTrue:[ self expand ].
  5928 	].
  5930         ].
  5929 	isExpanded := expanded.
  5931         isExpanded := expanded.
  5930     ].
  5932     ].
  5931     self changed
  5933     self changed
  5932 
  5934 
  5933     "Modified: / 29-11-2011 / 11:28:33 / cg"
  5935     "Modified: / 29-11-2011 / 11:28:33 / cg"
       
  5936     "Modified: / 28-07-2018 / 15:49:52 / Claus Gittinger"
  5934 !
  5937 !
  5935 
  5938 
  5936 menuItem
  5939 menuItem
  5937     "returns self as a MenuItem
  5940     "returns self as a MenuItem
  5938     "
  5941     "