MenuEditor.st
changeset 1199 5460de03e215
parent 1189 0e7e286f864c
child 1200 3d1b5aceaa49
equal deleted inserted replaced
1198:6b7cfe55105b 1199:5460de03e215
    21 
    21 
    22 Object subclass:#Item
    22 Object subclass:#Item
    23 	instanceVariableNames:'activeHelpKey enabled label value nameKey indication shortcutKey
    23 	instanceVariableNames:'activeHelpKey enabled label value nameKey indication shortcutKey
    24 		accessCharacterPos retriever icon iconAndLabel submenuChannel
    24 		accessCharacterPos retriever icon iconAndLabel submenuChannel
    25 		startGroup argument translateLabel isButton isVisible choice
    25 		startGroup argument translateLabel isButton isVisible choice
    26 		choiceValue'
    26 		choiceValue auxValue'
    27 	classVariableNames:''
    27 	classVariableNames:''
    28 	poolDictionaries:''
    28 	poolDictionaries:''
    29 	privateIn:MenuEditor
    29 	privateIn:MenuEditor
    30 !
    30 !
    31 
    31 
   128         startGroup
   128         startGroup
   129         retriever
   129         retriever
   130         iconAndLabel
   130         iconAndLabel
   131         icon
   131         icon
   132         isVisible
   132         isVisible
       
   133         auxValue
   133      )
   134      )
   134 
   135 
   135     "Modified: / 14.8.1998 / 14:46:36 / cg"
   136     "Modified: / 14.8.1998 / 14:46:36 / cg"
   136 ! !
   137 ! !
   137 
   138 
   220 #detailsAccelerator
   221 #detailsAccelerator
   221 'Key to be pressed to select the menu item from the keyboard (accelerator key).'
   222 'Key to be pressed to select the menu item from the keyboard (accelerator key).'
   222 
   223 
   223 #detailsAccessCharaterPosition
   224 #detailsAccessCharaterPosition
   224 'Index of the access character position of the textual label (optional).'
   225 'Index of the access character position of the textual label (optional).'
       
   226 
       
   227 #detailsAuxValue
       
   228 'Some additional value - for arbitrary use by the program'
   225 
   229 
   226 #detailsEnabled
   230 #detailsEnabled
   227 'Aspect or binding providing a boolean value holder for the enable-state of the menu item.'
   231 'Aspect or binding providing a boolean value holder for the enable-state of the menu item.'
   228 
   232 
   229 #detailsStartGroup
   233 #detailsStartGroup
   924         #name: #detailsEditSpec
   928         #name: #detailsEditSpec
   925         #window: 
   929         #window: 
   926        #(#WindowSpec
   930        #(#WindowSpec
   927           #label: 'Details Edit'
   931           #label: 'Details Edit'
   928           #name: 'Details Edit'
   932           #name: 'Details Edit'
   929           #layout: #(#LayoutFrame 707 0 270 0 965 0 557 0)
   933           #layout: #(#LayoutFrame 28 0 94 0 342 0 377 0)
   930           #level: 0
   934           #level: 0
   931           #min: #(#Point 10 10)
   935           #min: #(#Point 10 10)
   932           #max: #(#Point 1280 1024)
   936           #max: #(#Point 1280 1024)
   933           #bounds: #(#Rectangle 707 270 966 558)
   937           #bounds: #(#Rectangle 28 94 343 378)
   934           #usePreferredExtent: false
   938           #usePreferredExtent: false
   935           #returnIsOKInDialog: true
   939           #returnIsOKInDialog: true
   936           #escapeIsCancelInDialog: true
   940           #escapeIsCancelInDialog: true
   937         )
   941         )
   938         #component: 
   942         #component: 
   956               #type: #symbolOrNil
   960               #type: #symbolOrNil
   957               #acceptOnReturn: true
   961               #acceptOnReturn: true
   958               #acceptOnTab: true
   962               #acceptOnTab: true
   959               #acceptChannel: #acceptChannel
   963               #acceptChannel: #acceptChannel
   960               #modifiedChannel: #modifiedChannel
   964               #modifiedChannel: #modifiedChannel
   961               #acceptOnPointerLeave: false
       
   962             )
   965             )
   963            #(#LabelSpec
   966            #(#LabelSpec
   964               #label: 'Enabled:'
   967               #label: 'Enabled:'
   965               #name: 'enabledLabel'
   968               #name: 'enabledLabel'
   966               #layout: #(#AlignmentOrigin 107 0 51 0 1 0.5)
   969               #layout: #(#AlignmentOrigin 107 0 51 0 1 0.5)
   978               #type: #symbolOrNil
   981               #type: #symbolOrNil
   979               #acceptOnReturn: true
   982               #acceptOnReturn: true
   980               #acceptOnTab: true
   983               #acceptOnTab: true
   981               #acceptChannel: #acceptChannel
   984               #acceptChannel: #acceptChannel
   982               #modifiedChannel: #modifiedChannel
   985               #modifiedChannel: #modifiedChannel
   983               #acceptOnPointerLeave: false
       
   984             )
   986             )
   985            #(#LabelSpec
   987            #(#LabelSpec
   986               #label: 'Visibility:'
   988               #label: 'Visibility:'
   987               #name: 'visibilityLabel'
   989               #name: 'visibilityLabel'
   988               #layout: #(#AlignmentOrigin 107 0 76 0 1 0.5)
   990               #layout: #(#AlignmentOrigin 107 0 76 0 1 0.5)
  1000               #type: #symbolOrNil
  1002               #type: #symbolOrNil
  1001               #acceptOnReturn: true
  1003               #acceptOnReturn: true
  1002               #acceptOnTab: true
  1004               #acceptOnTab: true
  1003               #acceptChannel: #acceptChannel
  1005               #acceptChannel: #acceptChannel
  1004               #modifiedChannel: #modifiedChannel
  1006               #modifiedChannel: #modifiedChannel
  1005               #acceptOnPointerLeave: false
       
  1006             )
  1007             )
  1007            #(#LabelSpec
  1008            #(#LabelSpec
  1008               #label: 'Start Group:'
  1009               #label: 'Start Group:'
  1009               #name: 'StartGroupLabel'
  1010               #name: 'StartGroupLabel'
  1010               #layout: #(#AlignmentOrigin 107 0 111 0 1 0.5)
  1011               #layout: #(#AlignmentOrigin 107 0 139 0 1 0.5)
  1011               #activeHelpKey: #detailsStartGroup
  1012               #activeHelpKey: #detailsStartGroup
  1012               #resizeForLabel: true
  1013               #resizeForLabel: true
  1013               #adjust: #right
  1014               #adjust: #right
  1014             )
  1015             )
  1015            #(#PopUpListSpec
  1016            #(#PopUpListSpec
  1016               #label: 'PopUpList'
  1017               #label: 'PopUpList'
  1017               #name: 'StartGroupPopUp'
  1018               #name: 'StartGroupPopUp'
  1018               #layout: #(#LayoutFrame 110 0 100 0 -5 1.0 122 0)
  1019               #layout: #(#LayoutFrame 110 0 128 0 -5 1.0 150 0)
  1019               #activeHelpKey: #detailsStartGroup
  1020               #activeHelpKey: #detailsStartGroup
  1020               #tabable: true
  1021               #tabable: true
  1021               #model: #startGroup
  1022               #model: #startGroup
  1022               #menu: 
  1023               #menu: 
  1023              #(nil
  1024              #(nil
  1026               #useIndex: false
  1027               #useIndex: false
  1027             )
  1028             )
  1028            #(#LabelSpec
  1029            #(#LabelSpec
  1029               #label: 'Access Character Position:'
  1030               #label: 'Access Character Position:'
  1030               #name: 'accessCharLabel'
  1031               #name: 'accessCharLabel'
  1031               #layout: #(#AlignmentOrigin 217 0 142 0 1 0.5)
  1032               #layout: #(#AlignmentOrigin 217 0 170 0 1 0.5)
  1032               #activeHelpKey: #detailsAccessCharaterPosition
  1033               #activeHelpKey: #detailsAccessCharaterPosition
  1033               #resizeForLabel: true
  1034               #resizeForLabel: true
  1034               #adjust: #right
  1035               #adjust: #right
  1035             )
  1036             )
  1036            #(#InputFieldSpec
  1037            #(#InputFieldSpec
  1037               #name: 'accessCharField'
  1038               #name: 'accessCharField'
  1038               #layout: #(#LayoutFrame 220 0 131 0 -5 1.0 153 0)
  1039               #layout: #(#LayoutFrame 220 0 159 0 -5 1.0 181 0)
  1039               #activeHelpKey: #detailsAccessCharaterPosition
  1040               #activeHelpKey: #detailsAccessCharaterPosition
  1040               #tabable: true
  1041               #tabable: true
  1041               #model: #accessCharacterPos
  1042               #model: #accessCharacterPos
  1042               #group: #inputGroup
  1043               #group: #inputGroup
  1043               #type: #numberOrNil
  1044               #type: #numberOrNil
  1044               #immediateAccept: false
  1045               #immediateAccept: false
  1045               #acceptOnReturn: true
  1046               #acceptOnReturn: true
  1046               #acceptOnTab: true
  1047               #acceptOnTab: true
  1047               #acceptChannel: #acceptChannel
  1048               #acceptChannel: #acceptChannel
  1048               #modifiedChannel: #modifiedChannel
  1049               #modifiedChannel: #modifiedChannel
  1049               #acceptOnPointerLeave: false
  1050             )
       
  1051            #(#LabelSpec
       
  1052               #label: 'Aux Value'
       
  1053               #name: 'auxLabel'
       
  1054               #layout: #(#AlignmentOrigin 107 0 101 0 1 0.5)
       
  1055               #activeHelpKey: #detailsAuxValue
       
  1056               #translateLabel: true
       
  1057               #resizeForLabel: true
       
  1058               #adjust: #right
       
  1059             )
       
  1060            #(#InputFieldSpec
       
  1061               #name: 'auxInputField'
       
  1062               #layout: #(#LayoutFrame 110 0 90 0 -5 1.0 112 0)
       
  1063               #activeHelpKey: #detailsAuxValue
       
  1064               #tabable: true
       
  1065               #model: #auxValue
       
  1066               #group: #inputGroup
       
  1067               #type: #smalltalkObject
       
  1068               #acceptOnReturn: true
       
  1069               #acceptOnTab: true
       
  1070               #acceptChannel: #acceptChannel
       
  1071               #modifiedChannel: #modifiedChannel
  1050             )
  1072             )
  1051            )
  1073            )
  1052          
  1074          
  1053         )
  1075         )
  1054       )
  1076       )
  2722         startGroup         := (aspects at:#startGroup) value.
  2744         startGroup         := (aspects at:#startGroup) value.
  2723         accessCharacterPos := (aspects at:#accessCharacterPos) value.
  2745         accessCharacterPos := (aspects at:#accessCharacterPos) value.
  2724         argument           := (aspects at:#argument) value.
  2746         argument           := (aspects at:#argument) value.
  2725         translateLabel     := (aspects at:#translateLabel) value.
  2747         translateLabel     := (aspects at:#translateLabel) value.
  2726         isButton           := (aspects at:#isButton) value.
  2748         isButton           := (aspects at:#isButton) value.
       
  2749         auxValue           := (aspects at:#auxValue) value.
  2727 
  2750 
  2728         argument isString ifTrue:[
  2751         argument isString ifTrue:[
  2729             argument size > 1 ifTrue:[
  2752             argument size > 1 ifTrue:[
  2730                 (argument at:1) == $# ifTrue:[
  2753                 (argument at:1) == $# ifTrue:[
  2731                     argument := (argument copyFrom:2) asSymbol
  2754                     argument := (argument copyFrom:2) asSymbol
  2777 
  2800 
  2778     submenuChannel     := anItem submenuChannel.
  2801     submenuChannel     := anItem submenuChannel.
  2779     translateLabel     := anItem translateLabel.
  2802     translateLabel     := anItem translateLabel.
  2780     isButton           := anItem isButton.
  2803     isButton           := anItem isButton.
  2781     isVisible          := anItem isVisible.
  2804     isVisible          := anItem isVisible.
       
  2805     auxValue           := anItem auxValue.
  2782 
  2806 
  2783     (((rtv := anItem adornment) notNil)
  2807     (((rtv := anItem adornment) notNil)
  2784     and:[(rtv := rtv labelImage) isKindOf:ResourceRetriever])
  2808     and:[(rtv := rtv labelImage) isKindOf:ResourceRetriever])
  2785     ifTrue:
  2809     ifTrue:
  2786     [
  2810     [
  2817         item indication:indication.
  2841         item indication:indication.
  2818         item choice:choice.
  2842         item choice:choice.
  2819         item choiceValue:choiceValue.
  2843         item choiceValue:choiceValue.
  2820         item translateLabel: translateLabel.
  2844         item translateLabel: translateLabel.
  2821         item isButton: isButton.
  2845         item isButton: isButton.
       
  2846         item auxValue: auxValue.
  2822 
  2847 
  2823         icon notNil ifTrue:[
  2848         icon notNil ifTrue:[
  2824             rcv := ResourceRetriever new.
  2849             rcv := ResourceRetriever new.
  2825             rcv className:retriever.
  2850             rcv className:retriever.
  2826             rcv selector:icon.
  2851             rcv selector:icon.
  2857         (aspects at:#submenuChannel)       value:submenuChannel.
  2882         (aspects at:#submenuChannel)       value:submenuChannel.
  2858         (aspects at:#retriever)            value:retriever.
  2883         (aspects at:#retriever)            value:retriever.
  2859         (aspects at:#icon)                 value:icon.
  2884         (aspects at:#icon)                 value:icon.
  2860         (aspects at:#iconAndLabel)         value:iconAndLabel.
  2885         (aspects at:#iconAndLabel)         value:iconAndLabel.
  2861         (aspects at:#isButton)             value:isButton.
  2886         (aspects at:#isButton)             value:isButton.
       
  2887         (aspects at:#auxValue)             value:auxValue.
  2862 
  2888 
  2863         (aspects at:#argument)
  2889         (aspects at:#argument)
  2864             value:(argument isSymbol
  2890             value:(argument isSymbol
  2865                         ifTrue: ['#', argument] 
  2891                         ifTrue: ['#', argument] 
  2866                         ifFalse:[argument]).
  2892                         ifFalse:[argument]).