SettingsDialog.st
author Claus Gittinger <cg@exept.de>
Thu, 19 Dec 2002 16:41:13 +0100
changeset 4395 ba0469b42c99
parent 4388 4302767e1720
child 4397 21f99307336a
permissions -rw-r--r--
dialog string
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4378
7021197a578f initial checkin
penk
parents:
diff changeset
     1
"{ Package: 'stx:libtool' }"
7021197a578f initial checkin
penk
parents:
diff changeset
     2
7021197a578f initial checkin
penk
parents:
diff changeset
     3
ApplicationModel subclass:#SettingsDialog
7021197a578f initial checkin
penk
parents:
diff changeset
     4
	instanceVariableNames:'requestor subCanvasApplicationHolder help doReload doSave
7021197a578f initial checkin
penk
parents:
diff changeset
     5
		enableReload enableHelp enableOK selectedItem applicationList
7021197a578f initial checkin
penk
parents:
diff changeset
     6
		categoryIcons'
7021197a578f initial checkin
penk
parents:
diff changeset
     7
	classVariableNames:'ApplicationList IconList'
7021197a578f initial checkin
penk
parents:
diff changeset
     8
	poolDictionaries:''
7021197a578f initial checkin
penk
parents:
diff changeset
     9
	category:'Interface-Smalltalk'
7021197a578f initial checkin
penk
parents:
diff changeset
    10
!
7021197a578f initial checkin
penk
parents:
diff changeset
    11
7021197a578f initial checkin
penk
parents:
diff changeset
    12
HierarchicalList subclass:#HierarchicalApplicationList
7021197a578f initial checkin
penk
parents:
diff changeset
    13
	instanceVariableNames:''
7021197a578f initial checkin
penk
parents:
diff changeset
    14
	classVariableNames:''
7021197a578f initial checkin
penk
parents:
diff changeset
    15
	poolDictionaries:''
7021197a578f initial checkin
penk
parents:
diff changeset
    16
	privateIn:SettingsDialog
7021197a578f initial checkin
penk
parents:
diff changeset
    17
!
7021197a578f initial checkin
penk
parents:
diff changeset
    18
7021197a578f initial checkin
penk
parents:
diff changeset
    19
HierarchicalItem subclass:#ApplicationItem
7021197a578f initial checkin
penk
parents:
diff changeset
    20
	instanceVariableNames:'application applicationClass icon label nameString'
7021197a578f initial checkin
penk
parents:
diff changeset
    21
	classVariableNames:''
7021197a578f initial checkin
penk
parents:
diff changeset
    22
	poolDictionaries:''
7021197a578f initial checkin
penk
parents:
diff changeset
    23
	privateIn:SettingsDialog::HierarchicalApplicationList
7021197a578f initial checkin
penk
parents:
diff changeset
    24
!
7021197a578f initial checkin
penk
parents:
diff changeset
    25
7021197a578f initial checkin
penk
parents:
diff changeset
    26
!SettingsDialog class methodsFor:'documentation'!
7021197a578f initial checkin
penk
parents:
diff changeset
    27
7021197a578f initial checkin
penk
parents:
diff changeset
    28
documentation
7021197a578f initial checkin
penk
parents:
diff changeset
    29
7021197a578f initial checkin
penk
parents:
diff changeset
    30
"
7021197a578f initial checkin
penk
parents:
diff changeset
    31
    This is an application which can displays a list of Settings applications inherited by AbstractSettingsApplication
7021197a578f initial checkin
penk
parents:
diff changeset
    32
    You have to add the SettingsApplications with:
7021197a578f initial checkin
penk
parents:
diff changeset
    33
    
7021197a578f initial checkin
penk
parents:
diff changeset
    34
    [author:]
7021197a578f initial checkin
penk
parents:
diff changeset
    35
        Christian Penk, eXept Software AG
7021197a578f initial checkin
penk
parents:
diff changeset
    36
"
7021197a578f initial checkin
penk
parents:
diff changeset
    37
! !
7021197a578f initial checkin
penk
parents:
diff changeset
    38
7021197a578f initial checkin
penk
parents:
diff changeset
    39
!SettingsDialog class methodsFor:'accessing'!
7021197a578f initial checkin
penk
parents:
diff changeset
    40
7021197a578f initial checkin
penk
parents:
diff changeset
    41
itemClass
7021197a578f initial checkin
penk
parents:
diff changeset
    42
7021197a578f initial checkin
penk
parents:
diff changeset
    43
    ^ SettingsDialog::HierarchicalApplicationList::ApplicationItem
7021197a578f initial checkin
penk
parents:
diff changeset
    44
! !
7021197a578f initial checkin
penk
parents:
diff changeset
    45
7021197a578f initial checkin
penk
parents:
diff changeset
    46
!SettingsDialog class methodsFor:'application icons'!
7021197a578f initial checkin
penk
parents:
diff changeset
    47
7021197a578f initial checkin
penk
parents:
diff changeset
    48
defaultSettingsAppIcon
7021197a578f initial checkin
penk
parents:
diff changeset
    49
7021197a578f initial checkin
penk
parents:
diff changeset
    50
    ^ self settingsIcon
7021197a578f initial checkin
penk
parents:
diff changeset
    51
!
7021197a578f initial checkin
penk
parents:
diff changeset
    52
7021197a578f initial checkin
penk
parents:
diff changeset
    53
settingsIcon
7021197a578f initial checkin
penk
parents:
diff changeset
    54
    "This resource specification was automatically generated
7021197a578f initial checkin
penk
parents:
diff changeset
    55
     by the ImageEditor of ST/X."
7021197a578f initial checkin
penk
parents:
diff changeset
    56
7021197a578f initial checkin
penk
parents:
diff changeset
    57
    "Do not manually edit this!! If it is corrupted,
7021197a578f initial checkin
penk
parents:
diff changeset
    58
     the ImageEditor may not be able to read the specification."
7021197a578f initial checkin
penk
parents:
diff changeset
    59
7021197a578f initial checkin
penk
parents:
diff changeset
    60
    "
7021197a578f initial checkin
penk
parents:
diff changeset
    61
     self settingsIcon inspect
7021197a578f initial checkin
penk
parents:
diff changeset
    62
     ImageEditor openOnClass:self andSelector:#settingsIcon
7021197a578f initial checkin
penk
parents:
diff changeset
    63
     Icon flushCachedIcons
7021197a578f initial checkin
penk
parents:
diff changeset
    64
    "
7021197a578f initial checkin
penk
parents:
diff changeset
    65
7021197a578f initial checkin
penk
parents:
diff changeset
    66
    <resource: #image>
7021197a578f initial checkin
penk
parents:
diff changeset
    67
7021197a578f initial checkin
penk
parents:
diff changeset
    68
    ^Icon
7021197a578f initial checkin
penk
parents:
diff changeset
    69
        constantNamed:#'AbstractLauncherApplication::SettingsDialog class settingsIcon'
7021197a578f initial checkin
penk
parents:
diff changeset
    70
        ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#(8 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
7021197a578f initial checkin
penk
parents:
diff changeset
    71
@@BP#8>O#8>M  @@@@@@@@@@@@@@@@BJ%9&Y&Y&Y%R^B@@@@@@@@@@@@@@BI&J^(*J"(*JZTIIFQ$YFQ$YH@@@@@ JN#(:N#(:N#(9.V%)ZV%)ZKZP@@@HOU
7021197a578f initial checkin
penk
parents:
diff changeset
    72
4=OS4=OL3,''I0<B;/]F3*TE?@@BC5MKR4-KM,\^:.MJ:-;21/:1D_@@@ =SR4-KM3<+K/<J01,R20+R+QG0@@HOT4-KR/,^?-\[H1(Q^WW"1*4Q<@@BC5MKR
7021197a578f initial checkin
penk
parents:
diff changeset
    73
,-CO1<>/+(X*F1(S,Z1D_@@@ =SR4-J:2,[J0X  TU!!BE+F$GS!!=@HOT,+WK.\J/28\&TV=EKAV1RELG  BC5L7H0-KB/HT TV-CKA8>TG@=_H8M ;[H1+::
7021197a578f initial checkin
penk
parents:
diff changeset
    74
-;8\TWECKBD9)T=0]R40AXOE2;F5-;:/G6)EKBD?ZF5KV#ITJ0M>''*B_''ZF]''5,(KA8)X8ENU#XR@ )L^1$YFQ$YFQ$WBA PE@QMVSDON82S@@@@@@@@@@@@
7021197a578f initial checkin
penk
parents:
diff changeset
    75
@@A_@F)IU#DQMWH@@@@@@@@@@@@@@@@@@F1JWC\LMJI''^ @@@@@@@@@@@@@@@F9GU28ROGI%+VY4@@@@@@@@@@@@@GIFXC(IL9(@^VR*X''\@@@@@@@@@@@AU
7021197a578f initial checkin
penk
parents:
diff changeset
    76
IPXKP@@@@@A3XZ4#@@@@@@@@@@@@# 8AK90@@@@@@GX"T @a') ; colorMapFromArray:#[0 0 0 0 60 60 0 84 84 4 45 45 21 20 15 38 38 38 38 192 192 43 43 43 45 45 45 45 151 151 46 99 99 46 147 147 46 151 151 47 47 47 47 88 88 47 151 151 48 48 48 48 144 144 48 145 145 56 53 38 57 57 49 59 52 40 62 56 43 65 65 53 65 65 65 67 67 54 68 68 68 70 70 70 72 64 47 72 72 35 72 72 72 73 69 48 73 73 73 74 74 74 80 44 10 80 62 43 81 81 24 84 132 132 85 85 76 86 86 36 86 86 86 87 87 49 87 87 77 87 193 193 88 88 88 91 101 101 92 193 193 94 117 117 97 97 97 97 193 193 98 195 195 99 120 120 101 75 31 101 107 89 101 193 193 102 193 193 103 103 103 104 86 69 106 193 193 107 120 120 107 121 121 109 109 109 110 96 70 111 78 42 111 119 119 113 113 60 113 113 113 115 115 115 116 116 56 116 116 116 116 145 145 118 147 147 119 121 85 121 150 150 122 151 151 122 152 148 124 124 124 124 146 139 124 151 149 127 118 78 127 119 78 128 128 128 129 120 112 133 157 157 135 216 216 137 137 137 139 207 207 140 206 206 141 141 141 141 201 201 141 202 202 142 136 75 142 201 201 143 128 88 143 143 88 144 144 144 144 204 204 145 85 24 146 126 100 147 82 13 148 83 17 148 86 24 148 123 91 148 127 98 149 122 89 150 150 150 151 151 151 152 152 152 152 155 155 153 129 100 154 154 154 156 156 156 156 199 199 157 157 157 158 158 158 159 159 159 160 160 160 162 179 179 163 161 159 163 163 162 164 151 101 164 160 156 164 163 161 165 165 150 165 165 165 168 168 168 169 169 62 171 171 171 172 172 71 174 117 58 177 177 177 178 178 89 185 174 113 186 178 115 186 186 115 189 179 116 189 189 115 189 189 132 190 190 139 192 192 142 192 192 192 193 193 154 194 194 194 196 196 155 197 197 159 200 200 168 202 202 174 202 202 202 204 204 102 205 205 97 206 206 149 210 210 144 210 210 149 213 213 103 213 213 213 215 215 164 215 215 215 227 212 124 227 213 140 227 217 124 227 220 124 227 227 124 234 156 79 236 236 197 239 214 144 243 201 148 243 243 146 243 243 155 244 244 147 245 232 157 247 165 83 248 215 149 248 231 149 255 170 86 255 227 156 255 228 156 255 229 156 255 230 156 255 231 156 255 233 168 255 234 156 255 235 156 255 235 193 255 236 156 255 237 156 255 238 156 255 239 156 255 239 168 255 240 156 255 240 168 255 241 156 255 242 156 255 242 168 255 243 156 255 244 156 255 244 168 255 245 156 255 245 193 255 246 156 255 247 156 255 248 156 255 248 168 255 249 156 255 250 156 255 250 168 255 251 156 255 251 168 255 252 156 255 253 156 255 253 168 255 255 156 255 255 168 255 255 193 255 255 200]; mask:((ImageMask new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'O<@@_>@@???@??? ???0???0???0???0???0???8???8???<???<???<???<???8@B? @A?0@C?8@G=<@G0<@G0\') ; yourself); yourself]
7021197a578f initial checkin
penk
parents:
diff changeset
    77
! !
7021197a578f initial checkin
penk
parents:
diff changeset
    78
7021197a578f initial checkin
penk
parents:
diff changeset
    79
!SettingsDialog class methodsFor:'interface specs'!
7021197a578f initial checkin
penk
parents:
diff changeset
    80
7021197a578f initial checkin
penk
parents:
diff changeset
    81
windowSpec
7021197a578f initial checkin
penk
parents:
diff changeset
    82
    "This resource specification was automatically generated
7021197a578f initial checkin
penk
parents:
diff changeset
    83
     by the UIPainter of ST/X."
7021197a578f initial checkin
penk
parents:
diff changeset
    84
7021197a578f initial checkin
penk
parents:
diff changeset
    85
    "Do not manually edit this!! If it is corrupted,
7021197a578f initial checkin
penk
parents:
diff changeset
    86
     the UIPainter may not be able to read the specification."
7021197a578f initial checkin
penk
parents:
diff changeset
    87
7021197a578f initial checkin
penk
parents:
diff changeset
    88
    "
7021197a578f initial checkin
penk
parents:
diff changeset
    89
     UIPainter new openOnClass:SettingsDialog andSelector:#windowSpec
7021197a578f initial checkin
penk
parents:
diff changeset
    90
     SettingsDialog new openInterface:#windowSpec
7021197a578f initial checkin
penk
parents:
diff changeset
    91
     SettingsDialog open
7021197a578f initial checkin
penk
parents:
diff changeset
    92
    "
7021197a578f initial checkin
penk
parents:
diff changeset
    93
7021197a578f initial checkin
penk
parents:
diff changeset
    94
    <resource: #canvas>
7021197a578f initial checkin
penk
parents:
diff changeset
    95
7021197a578f initial checkin
penk
parents:
diff changeset
    96
    ^ 
7021197a578f initial checkin
penk
parents:
diff changeset
    97
     #(#FullSpec
7021197a578f initial checkin
penk
parents:
diff changeset
    98
        #name: #windowSpec
7021197a578f initial checkin
penk
parents:
diff changeset
    99
        #window: 
7021197a578f initial checkin
penk
parents:
diff changeset
   100
       #(#WindowSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   101
          #label: 'Settings Dialog'
7021197a578f initial checkin
penk
parents:
diff changeset
   102
          #name: 'Settings Dialog'
7021197a578f initial checkin
penk
parents:
diff changeset
   103
          #min: #(#Point 10 10)
7021197a578f initial checkin
penk
parents:
diff changeset
   104
          #max: #(#Point 1024 768)
7021197a578f initial checkin
penk
parents:
diff changeset
   105
          #bounds: #(#Rectangle 16 42 816 662)
7021197a578f initial checkin
penk
parents:
diff changeset
   106
          #menu: #mainMenu
7021197a578f initial checkin
penk
parents:
diff changeset
   107
        )
7021197a578f initial checkin
penk
parents:
diff changeset
   108
        #component: 
7021197a578f initial checkin
penk
parents:
diff changeset
   109
       #(#SpecCollection
7021197a578f initial checkin
penk
parents:
diff changeset
   110
          #collection: #(
7021197a578f initial checkin
penk
parents:
diff changeset
   111
           #(#VariableHorizontalPanelSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   112
              #name: 'VariableHorizontalPanel1'
7021197a578f initial checkin
penk
parents:
diff changeset
   113
              #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
7021197a578f initial checkin
penk
parents:
diff changeset
   114
              #showHandle: true
7021197a578f initial checkin
penk
parents:
diff changeset
   115
              #snapMode: #both
7021197a578f initial checkin
penk
parents:
diff changeset
   116
              #component: 
7021197a578f initial checkin
penk
parents:
diff changeset
   117
             #(#SpecCollection
7021197a578f initial checkin
penk
parents:
diff changeset
   118
                #collection: #(
7021197a578f initial checkin
penk
parents:
diff changeset
   119
                 #(#ViewSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   120
                    #name: 'Box1'
7021197a578f initial checkin
penk
parents:
diff changeset
   121
                    #component: 
7021197a578f initial checkin
penk
parents:
diff changeset
   122
                   #(#SpecCollection
7021197a578f initial checkin
penk
parents:
diff changeset
   123
                      #collection: #(
7021197a578f initial checkin
penk
parents:
diff changeset
   124
                       #(#HierarchicalListViewSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   125
                          #name: 'HierarchicalListView1'
7021197a578f initial checkin
penk
parents:
diff changeset
   126
                          #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -34 1)
7021197a578f initial checkin
penk
parents:
diff changeset
   127
                          #model: #selectedItem
7021197a578f initial checkin
penk
parents:
diff changeset
   128
                          #hasHorizontalScrollBar: true
7021197a578f initial checkin
penk
parents:
diff changeset
   129
                          #hasVerticalScrollBar: true
7021197a578f initial checkin
penk
parents:
diff changeset
   130
                          #listModel: #applicationList
7021197a578f initial checkin
penk
parents:
diff changeset
   131
                          #useIndex: false
7021197a578f initial checkin
penk
parents:
diff changeset
   132
                          #highlightMode: #label
7021197a578f initial checkin
penk
parents:
diff changeset
   133
                          #showLeftIndicators: false
7021197a578f initial checkin
penk
parents:
diff changeset
   134
                          #indicatorSelector: #doIndicatorClick:
7021197a578f initial checkin
penk
parents:
diff changeset
   135
                        )
7021197a578f initial checkin
penk
parents:
diff changeset
   136
                       #(#HorizontalPanelViewSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   137
                          #name: 'HorizontalPanel2'
7021197a578f initial checkin
penk
parents:
diff changeset
   138
                          #layout: #(#LayoutFrame 0 0.0 -34 1 0 1.0 0 1)
7021197a578f initial checkin
penk
parents:
diff changeset
   139
                          #horizontalLayout: #fitSpace
7021197a578f initial checkin
penk
parents:
diff changeset
   140
                          #verticalLayout: #center
7021197a578f initial checkin
penk
parents:
diff changeset
   141
                          #horizontalSpace: 3
7021197a578f initial checkin
penk
parents:
diff changeset
   142
                          #verticalSpace: 3
7021197a578f initial checkin
penk
parents:
diff changeset
   143
                          #component: 
7021197a578f initial checkin
penk
parents:
diff changeset
   144
                         #(#SpecCollection
7021197a578f initial checkin
penk
parents:
diff changeset
   145
                            #collection: #(
7021197a578f initial checkin
penk
parents:
diff changeset
   146
                             #(#ActionButtonSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   147
                                #label: 'Save as...'
7021197a578f initial checkin
penk
parents:
diff changeset
   148
                                #name: 'Button1'
7021197a578f initial checkin
penk
parents:
diff changeset
   149
                                #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   150
                                #model: #saveSettings
7021197a578f initial checkin
penk
parents:
diff changeset
   151
                                #extent: #(#Point 128 22)
7021197a578f initial checkin
penk
parents:
diff changeset
   152
                              )
7021197a578f initial checkin
penk
parents:
diff changeset
   153
                             #(#ActionButtonSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   154
                                #label: 'Load from...'
7021197a578f initial checkin
penk
parents:
diff changeset
   155
                                #name: 'Button2'
7021197a578f initial checkin
penk
parents:
diff changeset
   156
                                #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   157
                                #model: #loadSettings
7021197a578f initial checkin
penk
parents:
diff changeset
   158
                                #extent: #(#Point 128 22)
7021197a578f initial checkin
penk
parents:
diff changeset
   159
                              )
7021197a578f initial checkin
penk
parents:
diff changeset
   160
                             )
7021197a578f initial checkin
penk
parents:
diff changeset
   161
                           
7021197a578f initial checkin
penk
parents:
diff changeset
   162
                          )
7021197a578f initial checkin
penk
parents:
diff changeset
   163
                        )
7021197a578f initial checkin
penk
parents:
diff changeset
   164
                       )
7021197a578f initial checkin
penk
parents:
diff changeset
   165
                     
7021197a578f initial checkin
penk
parents:
diff changeset
   166
                    )
7021197a578f initial checkin
penk
parents:
diff changeset
   167
                  )
7021197a578f initial checkin
penk
parents:
diff changeset
   168
                 #(#ViewSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   169
                    #name: 'Box2'
7021197a578f initial checkin
penk
parents:
diff changeset
   170
                    #component: 
7021197a578f initial checkin
penk
parents:
diff changeset
   171
                   #(#SpecCollection
7021197a578f initial checkin
penk
parents:
diff changeset
   172
                      #collection: #(
7021197a578f initial checkin
penk
parents:
diff changeset
   173
                       #(#SubCanvasSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   174
                          #name: 'SubCanvas'
7021197a578f initial checkin
penk
parents:
diff changeset
   175
                          #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 -34 1)
7021197a578f initial checkin
penk
parents:
diff changeset
   176
                          #level: -1
7021197a578f initial checkin
penk
parents:
diff changeset
   177
                          #hasHorizontalScrollBar: false
7021197a578f initial checkin
penk
parents:
diff changeset
   178
                          #hasVerticalScrollBar: false
7021197a578f initial checkin
penk
parents:
diff changeset
   179
                          #clientHolder: #subCanvasApplicationHolder
7021197a578f initial checkin
penk
parents:
diff changeset
   180
                          #postBuildCallback: #postBuildSubCanvas:
7021197a578f initial checkin
penk
parents:
diff changeset
   181
                        )
7021197a578f initial checkin
penk
parents:
diff changeset
   182
                       #(#HorizontalPanelViewSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   183
                          #name: 'HorizontalPanel1'
7021197a578f initial checkin
penk
parents:
diff changeset
   184
                          #layout: #(#LayoutFrame 0 0.0 -34 1 0 1.0 0 1)
7021197a578f initial checkin
penk
parents:
diff changeset
   185
                          #horizontalLayout: #fitSpace
7021197a578f initial checkin
penk
parents:
diff changeset
   186
                          #verticalLayout: #center
7021197a578f initial checkin
penk
parents:
diff changeset
   187
                          #horizontalSpace: 3
7021197a578f initial checkin
penk
parents:
diff changeset
   188
                          #verticalSpace: 3
7021197a578f initial checkin
penk
parents:
diff changeset
   189
                          #component: 
7021197a578f initial checkin
penk
parents:
diff changeset
   190
                         #(#SpecCollection
7021197a578f initial checkin
penk
parents:
diff changeset
   191
                            #collection: #(
7021197a578f initial checkin
penk
parents:
diff changeset
   192
                             #(#ActionButtonSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   193
                                #label: 'OK'
7021197a578f initial checkin
penk
parents:
diff changeset
   194
                                #name: 'OK'
7021197a578f initial checkin
penk
parents:
diff changeset
   195
                                #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   196
                                #model: #doSave
7021197a578f initial checkin
penk
parents:
diff changeset
   197
                                #enableChannel: #enableOK
7021197a578f initial checkin
penk
parents:
diff changeset
   198
                                #extent: #(#Point 127 22)
7021197a578f initial checkin
penk
parents:
diff changeset
   199
                              )
7021197a578f initial checkin
penk
parents:
diff changeset
   200
                             #(#ActionButtonSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   201
                                #label: 'Discard'
7021197a578f initial checkin
penk
parents:
diff changeset
   202
                                #name: 'Reload'
7021197a578f initial checkin
penk
parents:
diff changeset
   203
                                #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   204
                                #model: #doReload
7021197a578f initial checkin
penk
parents:
diff changeset
   205
                                #enableChannel: #enableReload
7021197a578f initial checkin
penk
parents:
diff changeset
   206
                                #extent: #(#Point 128 22)
7021197a578f initial checkin
penk
parents:
diff changeset
   207
                              )
7021197a578f initial checkin
penk
parents:
diff changeset
   208
                             #(#ActionButtonSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   209
                                #label: 'Close'
7021197a578f initial checkin
penk
parents:
diff changeset
   210
                                #name: 'Close'
7021197a578f initial checkin
penk
parents:
diff changeset
   211
                                #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   212
                                #model: #closeRequest
7021197a578f initial checkin
penk
parents:
diff changeset
   213
                                #extent: #(#Point 127 22)
7021197a578f initial checkin
penk
parents:
diff changeset
   214
                              )
7021197a578f initial checkin
penk
parents:
diff changeset
   215
                             #(#ActionButtonSpec
7021197a578f initial checkin
penk
parents:
diff changeset
   216
                                #label: 'Help'
7021197a578f initial checkin
penk
parents:
diff changeset
   217
                                #name: 'Help'
7021197a578f initial checkin
penk
parents:
diff changeset
   218
                                #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   219
                                #model: #help
7021197a578f initial checkin
penk
parents:
diff changeset
   220
                                #enableChannel: #enableHelp
7021197a578f initial checkin
penk
parents:
diff changeset
   221
                                #extent: #(#Point 128 22)
7021197a578f initial checkin
penk
parents:
diff changeset
   222
                              )
7021197a578f initial checkin
penk
parents:
diff changeset
   223
                             )
7021197a578f initial checkin
penk
parents:
diff changeset
   224
                           
7021197a578f initial checkin
penk
parents:
diff changeset
   225
                          )
7021197a578f initial checkin
penk
parents:
diff changeset
   226
                        )
7021197a578f initial checkin
penk
parents:
diff changeset
   227
                       )
7021197a578f initial checkin
penk
parents:
diff changeset
   228
                     
7021197a578f initial checkin
penk
parents:
diff changeset
   229
                    )
7021197a578f initial checkin
penk
parents:
diff changeset
   230
                  )
7021197a578f initial checkin
penk
parents:
diff changeset
   231
                 )
7021197a578f initial checkin
penk
parents:
diff changeset
   232
               
7021197a578f initial checkin
penk
parents:
diff changeset
   233
              )
7021197a578f initial checkin
penk
parents:
diff changeset
   234
              #handles: #(#Any 0.3375 1.0)
7021197a578f initial checkin
penk
parents:
diff changeset
   235
            )
7021197a578f initial checkin
penk
parents:
diff changeset
   236
           )
7021197a578f initial checkin
penk
parents:
diff changeset
   237
         
7021197a578f initial checkin
penk
parents:
diff changeset
   238
        )
7021197a578f initial checkin
penk
parents:
diff changeset
   239
      )
7021197a578f initial checkin
penk
parents:
diff changeset
   240
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   241
7021197a578f initial checkin
penk
parents:
diff changeset
   242
!SettingsDialog class methodsFor:'menu specs'!
7021197a578f initial checkin
penk
parents:
diff changeset
   243
7021197a578f initial checkin
penk
parents:
diff changeset
   244
mainMenu
7021197a578f initial checkin
penk
parents:
diff changeset
   245
    "This resource specification was automatically generated
7021197a578f initial checkin
penk
parents:
diff changeset
   246
     by the MenuEditor of ST/X."
7021197a578f initial checkin
penk
parents:
diff changeset
   247
7021197a578f initial checkin
penk
parents:
diff changeset
   248
    "Do not manually edit this!! If it is corrupted,
7021197a578f initial checkin
penk
parents:
diff changeset
   249
     the MenuEditor may not be able to read the specification."
7021197a578f initial checkin
penk
parents:
diff changeset
   250
7021197a578f initial checkin
penk
parents:
diff changeset
   251
    "
7021197a578f initial checkin
penk
parents:
diff changeset
   252
     MenuEditor new openOnClass:SettingsDialog andSelector:#mainMenu
7021197a578f initial checkin
penk
parents:
diff changeset
   253
     (Menu new fromLiteralArrayEncoding:(SettingsDialog mainMenu)) startUp
7021197a578f initial checkin
penk
parents:
diff changeset
   254
    "
7021197a578f initial checkin
penk
parents:
diff changeset
   255
7021197a578f initial checkin
penk
parents:
diff changeset
   256
    <resource: #menu>
7021197a578f initial checkin
penk
parents:
diff changeset
   257
7021197a578f initial checkin
penk
parents:
diff changeset
   258
    ^ 
7021197a578f initial checkin
penk
parents:
diff changeset
   259
     #(#Menu
7021197a578f initial checkin
penk
parents:
diff changeset
   260
        #(
7021197a578f initial checkin
penk
parents:
diff changeset
   261
         #(#MenuItem
7021197a578f initial checkin
penk
parents:
diff changeset
   262
            #label: 'File'
7021197a578f initial checkin
penk
parents:
diff changeset
   263
            #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   264
            #submenu: 
7021197a578f initial checkin
penk
parents:
diff changeset
   265
           #(#Menu
7021197a578f initial checkin
penk
parents:
diff changeset
   266
              #(
7021197a578f initial checkin
penk
parents:
diff changeset
   267
               #(#MenuItem
7021197a578f initial checkin
penk
parents:
diff changeset
   268
                  #label: 'Load from...'
7021197a578f initial checkin
penk
parents:
diff changeset
   269
                  #itemValue: #loadSettings
7021197a578f initial checkin
penk
parents:
diff changeset
   270
                  #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   271
                )
7021197a578f initial checkin
penk
parents:
diff changeset
   272
               #(#MenuItem
7021197a578f initial checkin
penk
parents:
diff changeset
   273
                  #label: 'Save as...'
7021197a578f initial checkin
penk
parents:
diff changeset
   274
                  #itemValue: #saveSettings
7021197a578f initial checkin
penk
parents:
diff changeset
   275
                  #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   276
                )
7021197a578f initial checkin
penk
parents:
diff changeset
   277
               #(#MenuItem
7021197a578f initial checkin
penk
parents:
diff changeset
   278
                  #label: 'Exit'
7021197a578f initial checkin
penk
parents:
diff changeset
   279
                  #itemValue: #closeRequest
7021197a578f initial checkin
penk
parents:
diff changeset
   280
                  #translateLabel: true
7021197a578f initial checkin
penk
parents:
diff changeset
   281
                )
7021197a578f initial checkin
penk
parents:
diff changeset
   282
               )
7021197a578f initial checkin
penk
parents:
diff changeset
   283
              nil
7021197a578f initial checkin
penk
parents:
diff changeset
   284
              nil
7021197a578f initial checkin
penk
parents:
diff changeset
   285
            )
7021197a578f initial checkin
penk
parents:
diff changeset
   286
          )
7021197a578f initial checkin
penk
parents:
diff changeset
   287
         )
7021197a578f initial checkin
penk
parents:
diff changeset
   288
        nil
7021197a578f initial checkin
penk
parents:
diff changeset
   289
        nil
7021197a578f initial checkin
penk
parents:
diff changeset
   290
      )
7021197a578f initial checkin
penk
parents:
diff changeset
   291
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   292
7021197a578f initial checkin
penk
parents:
diff changeset
   293
!SettingsDialog methodsFor:'accessing'!
7021197a578f initial checkin
penk
parents:
diff changeset
   294
7021197a578f initial checkin
penk
parents:
diff changeset
   295
requestor
7021197a578f initial checkin
penk
parents:
diff changeset
   296
    "return the 'requestor' of the SettingsDialog"
7021197a578f initial checkin
penk
parents:
diff changeset
   297
7021197a578f initial checkin
penk
parents:
diff changeset
   298
    ^ requestor
7021197a578f initial checkin
penk
parents:
diff changeset
   299
!
7021197a578f initial checkin
penk
parents:
diff changeset
   300
7021197a578f initial checkin
penk
parents:
diff changeset
   301
requestor:something
7021197a578f initial checkin
penk
parents:
diff changeset
   302
    "set the value of the instance variable 'requestor' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
   303
7021197a578f initial checkin
penk
parents:
diff changeset
   304
    requestor := something.
7021197a578f initial checkin
penk
parents:
diff changeset
   305
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   306
7021197a578f initial checkin
penk
parents:
diff changeset
   307
!SettingsDialog methodsFor:'actions'!
7021197a578f initial checkin
penk
parents:
diff changeset
   308
7021197a578f initial checkin
penk
parents:
diff changeset
   309
destroyAll
7021197a578f initial checkin
penk
parents:
diff changeset
   310
7021197a578f initial checkin
penk
parents:
diff changeset
   311
    self applicationList do:[ : applItem |
7021197a578f initial checkin
penk
parents:
diff changeset
   312
        (applItem isCategory not and:[applItem application notNil]) ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   313
            applItem application close.
7021197a578f initial checkin
penk
parents:
diff changeset
   314
        ].
7021197a578f initial checkin
penk
parents:
diff changeset
   315
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   316
    ^ true
7021197a578f initial checkin
penk
parents:
diff changeset
   317
!
7021197a578f initial checkin
penk
parents:
diff changeset
   318
7021197a578f initial checkin
penk
parents:
diff changeset
   319
doIndicatorClick:index 
7021197a578f initial checkin
penk
parents:
diff changeset
   320
    "handle a click on the indicator
7021197a578f initial checkin
penk
parents:
diff changeset
   321
    "
7021197a578f initial checkin
penk
parents:
diff changeset
   322
7021197a578f initial checkin
penk
parents:
diff changeset
   323
    (self applicationList at:index) toggleExpand
7021197a578f initial checkin
penk
parents:
diff changeset
   324
!
7021197a578f initial checkin
penk
parents:
diff changeset
   325
7021197a578f initial checkin
penk
parents:
diff changeset
   326
doReload
7021197a578f initial checkin
penk
parents:
diff changeset
   327
7021197a578f initial checkin
penk
parents:
diff changeset
   328
    | item |
7021197a578f initial checkin
penk
parents:
diff changeset
   329
7021197a578f initial checkin
penk
parents:
diff changeset
   330
    item := self selectedItem value.
7021197a578f initial checkin
penk
parents:
diff changeset
   331
    (item isNil or:[item isCategory or:[item application isNil]]) ifTrue:[ ^ self].
7021197a578f initial checkin
penk
parents:
diff changeset
   332
    item application loadRequest.
7021197a578f initial checkin
penk
parents:
diff changeset
   333
!
7021197a578f initial checkin
penk
parents:
diff changeset
   334
7021197a578f initial checkin
penk
parents:
diff changeset
   335
doSave
7021197a578f initial checkin
penk
parents:
diff changeset
   336
    | item |
7021197a578f initial checkin
penk
parents:
diff changeset
   337
7021197a578f initial checkin
penk
parents:
diff changeset
   338
    item := self selectedItem value.
7021197a578f initial checkin
penk
parents:
diff changeset
   339
    (item isNil or:[item isCategory or:[item application isNil]]) ifTrue:[ ^ self].
4388
4302767e1720 ressources from AbstractLauncherApplication
penk
parents: 4384
diff changeset
   340
    self withWaitCursorDo:[
4302767e1720 ressources from AbstractLauncherApplication
penk
parents: 4384
diff changeset
   341
        item application saveSettings.
4302767e1720 ressources from AbstractLauncherApplication
penk
parents: 4384
diff changeset
   342
    ].
4378
7021197a578f initial checkin
penk
parents:
diff changeset
   343
!
7021197a578f initial checkin
penk
parents:
diff changeset
   344
7021197a578f initial checkin
penk
parents:
diff changeset
   345
help
7021197a578f initial checkin
penk
parents:
diff changeset
   346
7021197a578f initial checkin
penk
parents:
diff changeset
   347
    | item |
7021197a578f initial checkin
penk
parents:
diff changeset
   348
7021197a578f initial checkin
penk
parents:
diff changeset
   349
    item := self selectedItem value.
7021197a578f initial checkin
penk
parents:
diff changeset
   350
    (item isNil or:[item isCategory or:[item application isNil]]) ifTrue:[ ^ self].
7021197a578f initial checkin
penk
parents:
diff changeset
   351
    item application help.
7021197a578f initial checkin
penk
parents:
diff changeset
   352
!
7021197a578f initial checkin
penk
parents:
diff changeset
   353
7021197a578f initial checkin
penk
parents:
diff changeset
   354
sendLoadRequestToAll
7021197a578f initial checkin
penk
parents:
diff changeset
   355
7021197a578f initial checkin
penk
parents:
diff changeset
   356
    self applicationList do:[ : applItem |
7021197a578f initial checkin
penk
parents:
diff changeset
   357
        (applItem isCategory not and:[applItem application notNil]) ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   358
            ^ applItem application loadRequest 
7021197a578f initial checkin
penk
parents:
diff changeset
   359
        ].
7021197a578f initial checkin
penk
parents:
diff changeset
   360
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   361
    ^ true
7021197a578f initial checkin
penk
parents:
diff changeset
   362
!
7021197a578f initial checkin
penk
parents:
diff changeset
   363
7021197a578f initial checkin
penk
parents:
diff changeset
   364
sendSaveRequestToAll
7021197a578f initial checkin
penk
parents:
diff changeset
   365
7021197a578f initial checkin
penk
parents:
diff changeset
   366
    self applicationList do:[ : applItem |
7021197a578f initial checkin
penk
parents:
diff changeset
   367
        (applItem isCategory not and:[applItem application notNil]) ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   368
            applItem application saveRequest ifFalse:[
7021197a578f initial checkin
penk
parents:
diff changeset
   369
                ^ false
7021197a578f initial checkin
penk
parents:
diff changeset
   370
            ].
7021197a578f initial checkin
penk
parents:
diff changeset
   371
        ].
7021197a578f initial checkin
penk
parents:
diff changeset
   372
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   373
    ^ true
7021197a578f initial checkin
penk
parents:
diff changeset
   374
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   375
7021197a578f initial checkin
penk
parents:
diff changeset
   376
!SettingsDialog methodsFor:'application list access'!
7021197a578f initial checkin
penk
parents:
diff changeset
   377
7021197a578f initial checkin
penk
parents:
diff changeset
   378
addApplClass:aClass withName:aName
7021197a578f initial checkin
penk
parents:
diff changeset
   379
" add a application in the to the settingsTree, take the icon from the application class defaultIcon method"
7021197a578f initial checkin
penk
parents:
diff changeset
   380
7021197a578f initial checkin
penk
parents:
diff changeset
   381
    self addApplClass:aClass withName:aName icon:nil.
7021197a578f initial checkin
penk
parents:
diff changeset
   382
!
7021197a578f initial checkin
penk
parents:
diff changeset
   383
7021197a578f initial checkin
penk
parents:
diff changeset
   384
addApplClass:aClass withName:aName icon:icon
7021197a578f initial checkin
penk
parents:
diff changeset
   385
7021197a578f initial checkin
penk
parents:
diff changeset
   386
    |applicationLabel locIcon locClass|
7021197a578f initial checkin
penk
parents:
diff changeset
   387
7021197a578f initial checkin
penk
parents:
diff changeset
   388
    (self applicationNames includes:aName) ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   389
        ^ self.
7021197a578f initial checkin
penk
parents:
diff changeset
   390
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   391
    self addCategoriesFor:aName.
7021197a578f initial checkin
penk
parents:
diff changeset
   392
    locIcon := icon.
7021197a578f initial checkin
penk
parents:
diff changeset
   393
    locClass := Smalltalk classNamed:aClass.
7021197a578f initial checkin
penk
parents:
diff changeset
   394
    (locIcon isNil and:[locClass respondsTo:#defaultIcon]) ifTrue:[ locIcon := locClass defaultIcon].
7021197a578f initial checkin
penk
parents:
diff changeset
   395
    applicationLabel := (aName asCollectionOfSubstringsSeparatedBy:$/) last.
7021197a578f initial checkin
penk
parents:
diff changeset
   396
    self createItemName:aName label:applicationLabel class:locClass icon:locIcon
7021197a578f initial checkin
penk
parents:
diff changeset
   397
!
7021197a578f initial checkin
penk
parents:
diff changeset
   398
7021197a578f initial checkin
penk
parents:
diff changeset
   399
addIcon:aIcon forCategory:aCategoryName
7021197a578f initial checkin
penk
parents:
diff changeset
   400
7021197a578f initial checkin
penk
parents:
diff changeset
   401
" add a new category Icon for a categorie "
7021197a578f initial checkin
penk
parents:
diff changeset
   402
7021197a578f initial checkin
penk
parents:
diff changeset
   403
    self categoryIcons at:aCategoryName put:aIcon
7021197a578f initial checkin
penk
parents:
diff changeset
   404
!
7021197a578f initial checkin
penk
parents:
diff changeset
   405
7021197a578f initial checkin
penk
parents:
diff changeset
   406
applicationNames
7021197a578f initial checkin
penk
parents:
diff changeset
   407
7021197a578f initial checkin
penk
parents:
diff changeset
   408
    ^ self applicationList collect:[:item | item nameString].
7021197a578f initial checkin
penk
parents:
diff changeset
   409
!
7021197a578f initial checkin
penk
parents:
diff changeset
   410
7021197a578f initial checkin
penk
parents:
diff changeset
   411
categoryIcons
7021197a578f initial checkin
penk
parents:
diff changeset
   412
7021197a578f initial checkin
penk
parents:
diff changeset
   413
    categoryIcons isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   414
        categoryIcons := Dictionary new.
7021197a578f initial checkin
penk
parents:
diff changeset
   415
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   416
    ^ categoryIcons 
7021197a578f initial checkin
penk
parents:
diff changeset
   417
!
7021197a578f initial checkin
penk
parents:
diff changeset
   418
7021197a578f initial checkin
penk
parents:
diff changeset
   419
remApplClass:aName 
7021197a578f initial checkin
penk
parents:
diff changeset
   420
" remove a application from the settingsTree"
7021197a578f initial checkin
penk
parents:
diff changeset
   421
7021197a578f initial checkin
penk
parents:
diff changeset
   422
    |item parent remParent|
7021197a578f initial checkin
penk
parents:
diff changeset
   423
7021197a578f initial checkin
penk
parents:
diff changeset
   424
    item := self getItemForName:aName.
7021197a578f initial checkin
penk
parents:
diff changeset
   425
    parent := item parent.
7021197a578f initial checkin
penk
parents:
diff changeset
   426
    parent remove:item.
7021197a578f initial checkin
penk
parents:
diff changeset
   427
    
7021197a578f initial checkin
penk
parents:
diff changeset
   428
    [parent isCategory and:[parent children isEmptyOrNil]] whileTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   429
        remParent := parent.
7021197a578f initial checkin
penk
parents:
diff changeset
   430
        parent := remParent parent.
7021197a578f initial checkin
penk
parents:
diff changeset
   431
        parent remove:remParent.
7021197a578f initial checkin
penk
parents:
diff changeset
   432
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   433
!
7021197a578f initial checkin
penk
parents:
diff changeset
   434
7021197a578f initial checkin
penk
parents:
diff changeset
   435
removeApplicationByClass:aClass
7021197a578f initial checkin
penk
parents:
diff changeset
   436
7021197a578f initial checkin
penk
parents:
diff changeset
   437
    | classEntries|
7021197a578f initial checkin
penk
parents:
diff changeset
   438
7021197a578f initial checkin
penk
parents:
diff changeset
   439
    self applicationList isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   440
        self initialize.
7021197a578f initial checkin
penk
parents:
diff changeset
   441
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   442
    classEntries := self applicationList select:[: aEntry | ((aEntry at:2) == aClass)].
7021197a578f initial checkin
penk
parents:
diff changeset
   443
    ApplicationList removeAll:classEntries.
7021197a578f initial checkin
penk
parents:
diff changeset
   444
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   445
7021197a578f initial checkin
penk
parents:
diff changeset
   446
!SettingsDialog methodsFor:'application list access -private'!
7021197a578f initial checkin
penk
parents:
diff changeset
   447
7021197a578f initial checkin
penk
parents:
diff changeset
   448
addCategoriesFor:aName
7021197a578f initial checkin
penk
parents:
diff changeset
   449
7021197a578f initial checkin
penk
parents:
diff changeset
   450
    " create all the categories before application itself
7021197a578f initial checkin
penk
parents:
diff changeset
   451
    "
7021197a578f initial checkin
penk
parents:
diff changeset
   452
7021197a578f initial checkin
penk
parents:
diff changeset
   453
    (aName includes:$/) not ifTrue:[ ^ self].
7021197a578f initial checkin
penk
parents:
diff changeset
   454
    self treeName:aName do:[:currentLabel :currentName| | length icon|
7021197a578f initial checkin
penk
parents:
diff changeset
   455
        currentLabel notEmpty ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   456
            icon := self categoryIcons at:currentName ifAbsent:[nil].
7021197a578f initial checkin
penk
parents:
diff changeset
   457
            self createItemName:currentName label:currentLabel icon:icon.
7021197a578f initial checkin
penk
parents:
diff changeset
   458
        ]
7021197a578f initial checkin
penk
parents:
diff changeset
   459
    ] forgetLast:1.
7021197a578f initial checkin
penk
parents:
diff changeset
   460
!
7021197a578f initial checkin
penk
parents:
diff changeset
   461
7021197a578f initial checkin
penk
parents:
diff changeset
   462
createItemName:aNameString label:aLabel class:aClass icon:aIcon
7021197a578f initial checkin
penk
parents:
diff changeset
   463
7021197a578f initial checkin
penk
parents:
diff changeset
   464
    " create an application item in my application list 
7021197a578f initial checkin
penk
parents:
diff changeset
   465
    "
4384
e16e816f6680 *** empty log message ***
penk
parents: 4378
diff changeset
   466
    | newItem parent locIcon|
4378
7021197a578f initial checkin
penk
parents:
diff changeset
   467
7021197a578f initial checkin
penk
parents:
diff changeset
   468
    aNameString ~= aLabel ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   469
        parent := self getItemForName:(aNameString copyTo:(aNameString size - aLabel size - 1)).
7021197a578f initial checkin
penk
parents:
diff changeset
   470
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   471
    parent isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   472
        parent := self applicationList root.
7021197a578f initial checkin
penk
parents:
diff changeset
   473
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   474
    parent children notNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   475
        (parent children detect:[ :aItem | aItem label = aLabel] ifNone:[nil]) notNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   476
            ^ self.
7021197a578f initial checkin
penk
parents:
diff changeset
   477
        ]
7021197a578f initial checkin
penk
parents:
diff changeset
   478
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   479
    newItem := self class itemClass new.  
7021197a578f initial checkin
penk
parents:
diff changeset
   480
    newItem label:(Text string:aLabel emphasis:#bold).
7021197a578f initial checkin
penk
parents:
diff changeset
   481
    newItem nameString:aNameString.
7021197a578f initial checkin
penk
parents:
diff changeset
   482
    newItem applicationClass:aClass.
7021197a578f initial checkin
penk
parents:
diff changeset
   483
    locIcon := aIcon.
7021197a578f initial checkin
penk
parents:
diff changeset
   484
    locIcon isNil ifTrue:[ locIcon := self class defaultSettingsAppIcon].
7021197a578f initial checkin
penk
parents:
diff changeset
   485
    newItem icon:locIcon.
4384
e16e816f6680 *** empty log message ***
penk
parents: 4378
diff changeset
   486
    parent add:newItem.
4378
7021197a578f initial checkin
penk
parents:
diff changeset
   487
!
7021197a578f initial checkin
penk
parents:
diff changeset
   488
7021197a578f initial checkin
penk
parents:
diff changeset
   489
createItemName:aNameString label:aLabel icon:aIcon
7021197a578f initial checkin
penk
parents:
diff changeset
   490
7021197a578f initial checkin
penk
parents:
diff changeset
   491
    " create an application item in my application list 
7021197a578f initial checkin
penk
parents:
diff changeset
   492
    "
7021197a578f initial checkin
penk
parents:
diff changeset
   493
    self createItemName:aNameString label:aLabel class:nil icon:aIcon
7021197a578f initial checkin
penk
parents:
diff changeset
   494
!
7021197a578f initial checkin
penk
parents:
diff changeset
   495
7021197a578f initial checkin
penk
parents:
diff changeset
   496
getItemForName:aName
7021197a578f initial checkin
penk
parents:
diff changeset
   497
7021197a578f initial checkin
penk
parents:
diff changeset
   498
    | searchItem|
7021197a578f initial checkin
penk
parents:
diff changeset
   499
7021197a578f initial checkin
penk
parents:
diff changeset
   500
    searchItem := self applicationList root.
7021197a578f initial checkin
penk
parents:
diff changeset
   501
    self treeName:aName do:[:currentLabel :currentName|
7021197a578f initial checkin
penk
parents:
diff changeset
   502
        searchItem children isNil ifTrue:[ ^ nil].
7021197a578f initial checkin
penk
parents:
diff changeset
   503
        searchItem := searchItem children detect:[: item | item nameString = currentName] ifNone:[nil].
7021197a578f initial checkin
penk
parents:
diff changeset
   504
        searchItem isNil ifTrue:[ ^ nil].
7021197a578f initial checkin
penk
parents:
diff changeset
   505
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   506
    ^ searchItem
7021197a578f initial checkin
penk
parents:
diff changeset
   507
!
7021197a578f initial checkin
penk
parents:
diff changeset
   508
7021197a578f initial checkin
penk
parents:
diff changeset
   509
treeName:aName do:aBlock
7021197a578f initial checkin
penk
parents:
diff changeset
   510
7021197a578f initial checkin
penk
parents:
diff changeset
   511
    self treeName:aName do:aBlock forgetLast:0
7021197a578f initial checkin
penk
parents:
diff changeset
   512
!
7021197a578f initial checkin
penk
parents:
diff changeset
   513
7021197a578f initial checkin
penk
parents:
diff changeset
   514
treeName:aName do:aBlock forgetLast:last
7021197a578f initial checkin
penk
parents:
diff changeset
   515
7021197a578f initial checkin
penk
parents:
diff changeset
   516
    | tree  length|
7021197a578f initial checkin
penk
parents:
diff changeset
   517
7021197a578f initial checkin
penk
parents:
diff changeset
   518
    tree := aName asCollectionOfSubstringsSeparatedBy:$/.
7021197a578f initial checkin
penk
parents:
diff changeset
   519
    tree from:1 to:(tree size - last) keysAndValuesDo:[:idx :aCategory| | itemName |
7021197a578f initial checkin
penk
parents:
diff changeset
   520
        length := 0.
7021197a578f initial checkin
penk
parents:
diff changeset
   521
        tree from:1 to:idx keysAndValuesDo:[:idx2 : el | 
7021197a578f initial checkin
penk
parents:
diff changeset
   522
            length := length + el size.
7021197a578f initial checkin
penk
parents:
diff changeset
   523
            idx2 > 1 ifTrue:[length := length + 1].
7021197a578f initial checkin
penk
parents:
diff changeset
   524
        ].
7021197a578f initial checkin
penk
parents:
diff changeset
   525
        itemName := aName copyTo:length.
7021197a578f initial checkin
penk
parents:
diff changeset
   526
        aBlock value:aCategory value:itemName.
7021197a578f initial checkin
penk
parents:
diff changeset
   527
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   528
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   529
7021197a578f initial checkin
penk
parents:
diff changeset
   530
!SettingsDialog methodsFor:'aspects'!
7021197a578f initial checkin
penk
parents:
diff changeset
   531
7021197a578f initial checkin
penk
parents:
diff changeset
   532
applicationList
7021197a578f initial checkin
penk
parents:
diff changeset
   533
7021197a578f initial checkin
penk
parents:
diff changeset
   534
    applicationList isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   535
        applicationList := SettingsDialog::HierarchicalApplicationList new.
7021197a578f initial checkin
penk
parents:
diff changeset
   536
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   537
    ^ applicationList.
7021197a578f initial checkin
penk
parents:
diff changeset
   538
!
7021197a578f initial checkin
penk
parents:
diff changeset
   539
7021197a578f initial checkin
penk
parents:
diff changeset
   540
enableHelp
7021197a578f initial checkin
penk
parents:
diff changeset
   541
7021197a578f initial checkin
penk
parents:
diff changeset
   542
    enableHelp isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   543
        enableHelp := true asValue.
7021197a578f initial checkin
penk
parents:
diff changeset
   544
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   545
    ^ enableHelp.
7021197a578f initial checkin
penk
parents:
diff changeset
   546
!
7021197a578f initial checkin
penk
parents:
diff changeset
   547
7021197a578f initial checkin
penk
parents:
diff changeset
   548
enableOK
7021197a578f initial checkin
penk
parents:
diff changeset
   549
7021197a578f initial checkin
penk
parents:
diff changeset
   550
    enableOK isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   551
        enableOK := true asValue.
7021197a578f initial checkin
penk
parents:
diff changeset
   552
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   553
    ^ enableOK.
7021197a578f initial checkin
penk
parents:
diff changeset
   554
!
7021197a578f initial checkin
penk
parents:
diff changeset
   555
7021197a578f initial checkin
penk
parents:
diff changeset
   556
enableReload
7021197a578f initial checkin
penk
parents:
diff changeset
   557
7021197a578f initial checkin
penk
parents:
diff changeset
   558
    enableReload isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   559
        enableReload := true asValue.
7021197a578f initial checkin
penk
parents:
diff changeset
   560
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   561
    ^ enableReload.
7021197a578f initial checkin
penk
parents:
diff changeset
   562
!
7021197a578f initial checkin
penk
parents:
diff changeset
   563
7021197a578f initial checkin
penk
parents:
diff changeset
   564
selectedItem
7021197a578f initial checkin
penk
parents:
diff changeset
   565
7021197a578f initial checkin
penk
parents:
diff changeset
   566
    selectedItem isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   567
        selectedItem := ValueHolder new.
7021197a578f initial checkin
penk
parents:
diff changeset
   568
        selectedItem addDependent:self.
7021197a578f initial checkin
penk
parents:
diff changeset
   569
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   570
    ^ selectedItem.
7021197a578f initial checkin
penk
parents:
diff changeset
   571
!
7021197a578f initial checkin
penk
parents:
diff changeset
   572
7021197a578f initial checkin
penk
parents:
diff changeset
   573
subCanvasApplicationHolder
7021197a578f initial checkin
penk
parents:
diff changeset
   574
7021197a578f initial checkin
penk
parents:
diff changeset
   575
    subCanvasApplicationHolder isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   576
        subCanvasApplicationHolder := ValueHolder new.
7021197a578f initial checkin
penk
parents:
diff changeset
   577
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   578
    ^ subCanvasApplicationHolder.
7021197a578f initial checkin
penk
parents:
diff changeset
   579
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   580
7021197a578f initial checkin
penk
parents:
diff changeset
   581
!SettingsDialog methodsFor:'change & update'!
7021197a578f initial checkin
penk
parents:
diff changeset
   582
7021197a578f initial checkin
penk
parents:
diff changeset
   583
modifiedChanged
7021197a578f initial checkin
penk
parents:
diff changeset
   584
7021197a578f initial checkin
penk
parents:
diff changeset
   585
    |changedObject|
7021197a578f initial checkin
penk
parents:
diff changeset
   586
7021197a578f initial checkin
penk
parents:
diff changeset
   587
    changedObject := self subCanvasApplicationHolder value modifiedChannel.
7021197a578f initial checkin
penk
parents:
diff changeset
   588
    self enableOK value:(changedObject value).
7021197a578f initial checkin
penk
parents:
diff changeset
   589
    self enableReload value:(changedObject value).
7021197a578f initial checkin
penk
parents:
diff changeset
   590
!
7021197a578f initial checkin
penk
parents:
diff changeset
   591
7021197a578f initial checkin
penk
parents:
diff changeset
   592
selectionChanged
7021197a578f initial checkin
penk
parents:
diff changeset
   593
7021197a578f initial checkin
penk
parents:
diff changeset
   594
    | item oldAppl noApp|
7021197a578f initial checkin
penk
parents:
diff changeset
   595
7021197a578f initial checkin
penk
parents:
diff changeset
   596
    oldAppl := self subCanvasApplicationHolder value.
7021197a578f initial checkin
penk
parents:
diff changeset
   597
    oldAppl notNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   598
        oldAppl saveRequest.
7021197a578f initial checkin
penk
parents:
diff changeset
   599
        oldAppl modifiedChannel removeDependent:self.
7021197a578f initial checkin
penk
parents:
diff changeset
   600
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   601
    item := self selectedItem value.
7021197a578f initial checkin
penk
parents:
diff changeset
   602
    item isNil ifTrue:[ noApp := true] ifFalse:[noApp := item isCategory].
7021197a578f initial checkin
penk
parents:
diff changeset
   603
    self enableOK value:(noApp not).
7021197a578f initial checkin
penk
parents:
diff changeset
   604
    self enableReload value:(noApp not).
7021197a578f initial checkin
penk
parents:
diff changeset
   605
    self enableHelp value:(noApp not).
7021197a578f initial checkin
penk
parents:
diff changeset
   606
    noApp ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   607
        self subCanvasApplicationHolder value:nil.
7021197a578f initial checkin
penk
parents:
diff changeset
   608
        ^ self
7021197a578f initial checkin
penk
parents:
diff changeset
   609
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   610
    item application isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   611
        item application:(item applicationClass new).
7021197a578f initial checkin
penk
parents:
diff changeset
   612
7021197a578f initial checkin
penk
parents:
diff changeset
   613
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   614
    item application modifiedChannel addDependent:self.
7021197a578f initial checkin
penk
parents:
diff changeset
   615
    self subCanvasApplicationHolder value:item application.
7021197a578f initial checkin
penk
parents:
diff changeset
   616
    self modifiedChanged.
7021197a578f initial checkin
penk
parents:
diff changeset
   617
!
7021197a578f initial checkin
penk
parents:
diff changeset
   618
7021197a578f initial checkin
penk
parents:
diff changeset
   619
update:something with:aParameter from:changedObject
7021197a578f initial checkin
penk
parents:
diff changeset
   620
    "Invoked when an object that I depend upon sends a change notification."
7021197a578f initial checkin
penk
parents:
diff changeset
   621
7021197a578f initial checkin
penk
parents:
diff changeset
   622
    "stub code automatically generated - please change as required"
7021197a578f initial checkin
penk
parents:
diff changeset
   623
7021197a578f initial checkin
penk
parents:
diff changeset
   624
    changedObject == self selectedItem ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   625
        self selectionChanged.
7021197a578f initial checkin
penk
parents:
diff changeset
   626
        ^ self
7021197a578f initial checkin
penk
parents:
diff changeset
   627
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   628
    changedObject == self subCanvasApplicationHolder value modifiedChannel ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   629
        self modifiedChanged.
7021197a578f initial checkin
penk
parents:
diff changeset
   630
        ^ self
7021197a578f initial checkin
penk
parents:
diff changeset
   631
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   632
7021197a578f initial checkin
penk
parents:
diff changeset
   633
    super update:something with:aParameter from:changedObject
7021197a578f initial checkin
penk
parents:
diff changeset
   634
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   635
7021197a578f initial checkin
penk
parents:
diff changeset
   636
!SettingsDialog methodsFor:'initialization & release'!
7021197a578f initial checkin
penk
parents:
diff changeset
   637
7021197a578f initial checkin
penk
parents:
diff changeset
   638
closeRequest
7021197a578f initial checkin
penk
parents:
diff changeset
   639
    "This is a hook method generated by the Browser.
7021197a578f initial checkin
penk
parents:
diff changeset
   640
     It will be invoked when your app/dialog-window is about to be
7021197a578f initial checkin
penk
parents:
diff changeset
   641
     closed (this method has a chance to suppress the close).
7021197a578f initial checkin
penk
parents:
diff changeset
   642
     See also #closeDownViews, which is invoked when the close is really done."
7021197a578f initial checkin
penk
parents:
diff changeset
   643
7021197a578f initial checkin
penk
parents:
diff changeset
   644
    self sendSaveRequestToAll ifFalse:[ ^ self].
7021197a578f initial checkin
penk
parents:
diff changeset
   645
    self destroyAll.
7021197a578f initial checkin
penk
parents:
diff changeset
   646
    self requestor settingsClosed.
7021197a578f initial checkin
penk
parents:
diff changeset
   647
    ^ super closeRequest
7021197a578f initial checkin
penk
parents:
diff changeset
   648
!
7021197a578f initial checkin
penk
parents:
diff changeset
   649
7021197a578f initial checkin
penk
parents:
diff changeset
   650
initialize
7021197a578f initial checkin
penk
parents:
diff changeset
   651
7021197a578f initial checkin
penk
parents:
diff changeset
   652
    |rootItem|
7021197a578f initial checkin
penk
parents:
diff changeset
   653
7021197a578f initial checkin
penk
parents:
diff changeset
   654
    resources := AbstractLauncherApplication resources.
7021197a578f initial checkin
penk
parents:
diff changeset
   655
    rootItem := self class itemClass new.
7021197a578f initial checkin
penk
parents:
diff changeset
   656
    rootItem label:(Text string:(resources string:'Settings') emphasis:#bold).
7021197a578f initial checkin
penk
parents:
diff changeset
   657
    rootItem nameString:'Settings'.
7021197a578f initial checkin
penk
parents:
diff changeset
   658
    rootItem icon:self class settingsIcon.
7021197a578f initial checkin
penk
parents:
diff changeset
   659
    self applicationList root:rootItem.
7021197a578f initial checkin
penk
parents:
diff changeset
   660
    self applicationList showRoot:true.
7021197a578f initial checkin
penk
parents:
diff changeset
   661
    self selectedItem value:rootItem.
7021197a578f initial checkin
penk
parents:
diff changeset
   662
    super initialize.
7021197a578f initial checkin
penk
parents:
diff changeset
   663
!
7021197a578f initial checkin
penk
parents:
diff changeset
   664
7021197a578f initial checkin
penk
parents:
diff changeset
   665
postBuildSubCanvas:aWidget
7021197a578f initial checkin
penk
parents:
diff changeset
   666
7021197a578f initial checkin
penk
parents:
diff changeset
   667
    aWidget keepClientView:true. 
7021197a578f initial checkin
penk
parents:
diff changeset
   668
!
7021197a578f initial checkin
penk
parents:
diff changeset
   669
7021197a578f initial checkin
penk
parents:
diff changeset
   670
postOpenWith:aBuilder
7021197a578f initial checkin
penk
parents:
diff changeset
   671
7021197a578f initial checkin
penk
parents:
diff changeset
   672
    self applicationList root expand.
7021197a578f initial checkin
penk
parents:
diff changeset
   673
    super postOpenWith:aBuilder.
7021197a578f initial checkin
penk
parents:
diff changeset
   674
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   675
7021197a578f initial checkin
penk
parents:
diff changeset
   676
!SettingsDialog methodsFor:'menu actions'!
7021197a578f initial checkin
penk
parents:
diff changeset
   677
7021197a578f initial checkin
penk
parents:
diff changeset
   678
loadSettings
7021197a578f initial checkin
penk
parents:
diff changeset
   679
7021197a578f initial checkin
penk
parents:
diff changeset
   680
    "restore settings from a settings-file."
7021197a578f initial checkin
penk
parents:
diff changeset
   681
7021197a578f initial checkin
penk
parents:
diff changeset
   682
    "a temporary kludge - we need a central systemSettings object for this,
7021197a578f initial checkin
penk
parents:
diff changeset
   683
     which can be saved/restored with a single store/read."
7021197a578f initial checkin
penk
parents:
diff changeset
   684
7021197a578f initial checkin
penk
parents:
diff changeset
   685
    |fileName|
7021197a578f initial checkin
penk
parents:
diff changeset
   686
7021197a578f initial checkin
penk
parents:
diff changeset
   687
    fileName := Dialog 
7021197a578f initial checkin
penk
parents:
diff changeset
   688
        requestFileName:(resources string:'Load Settings From:') 
7021197a578f initial checkin
penk
parents:
diff changeset
   689
        default:'settings.stx'
7021197a578f initial checkin
penk
parents:
diff changeset
   690
        ok:(resources string:'Load') 
7021197a578f initial checkin
penk
parents:
diff changeset
   691
        abort:(resources string:'Cancel') 
7021197a578f initial checkin
penk
parents:
diff changeset
   692
        pattern:'*.stx'
7021197a578f initial checkin
penk
parents:
diff changeset
   693
        fromDirectory:nil.
7021197a578f initial checkin
penk
parents:
diff changeset
   694
7021197a578f initial checkin
penk
parents:
diff changeset
   695
    (fileName size == 0) ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   696
        "/ canceled
7021197a578f initial checkin
penk
parents:
diff changeset
   697
        ^ self
7021197a578f initial checkin
penk
parents:
diff changeset
   698
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   699
7021197a578f initial checkin
penk
parents:
diff changeset
   700
    self withWaitCursorDo:[
7021197a578f initial checkin
penk
parents:
diff changeset
   701
        Smalltalk fileIn:fileName.
7021197a578f initial checkin
penk
parents:
diff changeset
   702
        Transcript current topView model reOpen.
7021197a578f initial checkin
penk
parents:
diff changeset
   703
        self sendLoadRequestToAll.
7021197a578f initial checkin
penk
parents:
diff changeset
   704
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   705
!
7021197a578f initial checkin
penk
parents:
diff changeset
   706
7021197a578f initial checkin
penk
parents:
diff changeset
   707
saveSettings
7021197a578f initial checkin
penk
parents:
diff changeset
   708
7021197a578f initial checkin
penk
parents:
diff changeset
   709
    |fileName resources|
7021197a578f initial checkin
penk
parents:
diff changeset
   710
4388
4302767e1720 ressources from AbstractLauncherApplication
penk
parents: 4384
diff changeset
   711
    resources := AbstractLauncherApplication classResources.
4378
7021197a578f initial checkin
penk
parents:
diff changeset
   712
7021197a578f initial checkin
penk
parents:
diff changeset
   713
    fileName := Dialog 
7021197a578f initial checkin
penk
parents:
diff changeset
   714
        requestFileName:(resources string:'Save settings in:') 
7021197a578f initial checkin
penk
parents:
diff changeset
   715
        default:'settings.stx'
7021197a578f initial checkin
penk
parents:
diff changeset
   716
        ok:(resources string:'Save') 
7021197a578f initial checkin
penk
parents:
diff changeset
   717
        abort:(resources string:'Cancel') 
7021197a578f initial checkin
penk
parents:
diff changeset
   718
        pattern:'*.stx'
7021197a578f initial checkin
penk
parents:
diff changeset
   719
        fromDirectory:'.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   720
7021197a578f initial checkin
penk
parents:
diff changeset
   721
    fileName size ~~ 0 ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   722
        "not canceled"
7021197a578f initial checkin
penk
parents:
diff changeset
   723
        self saveSettingsIn:fileName.
7021197a578f initial checkin
penk
parents:
diff changeset
   724
    ]
7021197a578f initial checkin
penk
parents:
diff changeset
   725
!
7021197a578f initial checkin
penk
parents:
diff changeset
   726
7021197a578f initial checkin
penk
parents:
diff changeset
   727
saveSettingsIn:fileName
7021197a578f initial checkin
penk
parents:
diff changeset
   728
    "save settings to a settings-file."
7021197a578f initial checkin
penk
parents:
diff changeset
   729
7021197a578f initial checkin
penk
parents:
diff changeset
   730
    "a temporary kludge - we need a central systemSettings object for this,
7021197a578f initial checkin
penk
parents:
diff changeset
   731
     which can be saved/restored with a single store/read.
7021197a578f initial checkin
penk
parents:
diff changeset
   732
     Will move entries over to UserPreferences over time;
7021197a578f initial checkin
penk
parents:
diff changeset
   733
     new items should always go there."
7021197a578f initial checkin
penk
parents:
diff changeset
   734
7021197a578f initial checkin
penk
parents:
diff changeset
   735
    |resources s screen currentUserPrefs|
7021197a578f initial checkin
penk
parents:
diff changeset
   736
4388
4302767e1720 ressources from AbstractLauncherApplication
penk
parents: 4384
diff changeset
   737
    resources := AbstractSettingsApplication classResources.
4378
7021197a578f initial checkin
penk
parents:
diff changeset
   738
7021197a578f initial checkin
penk
parents:
diff changeset
   739
    s := fileName asFilename writeStream.
7021197a578f initial checkin
penk
parents:
diff changeset
   740
    s isNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   741
        self warn:(resources string:'Cannot write the %1 file !!' with:fileName).
7021197a578f initial checkin
penk
parents:
diff changeset
   742
        ^ self
7021197a578f initial checkin
penk
parents:
diff changeset
   743
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   744
7021197a578f initial checkin
penk
parents:
diff changeset
   745
    currentUserPrefs := UserPreferences current.
7021197a578f initial checkin
penk
parents:
diff changeset
   746
    screen := Screen current.
7021197a578f initial checkin
penk
parents:
diff changeset
   747
7021197a578f initial checkin
penk
parents:
diff changeset
   748
    s nextPutLine:'"/ ST/X saved settings';
7021197a578f initial checkin
penk
parents:
diff changeset
   749
      nextPutLine:'"/ DO NOT MODIFY MANUALLY';
7021197a578f initial checkin
penk
parents:
diff changeset
   750
      nextPutLine:'"/ (modifications would be lost with next save-settings)';
7021197a578f initial checkin
penk
parents:
diff changeset
   751
      nextPutLine:'"/';
7021197a578f initial checkin
penk
parents:
diff changeset
   752
      nextPutLine:'"/ this file was automatically generated by the';
7021197a578f initial checkin
penk
parents:
diff changeset
   753
      nextPutLine:'"/ ''save settings'' function of the Launcher';
7021197a578f initial checkin
penk
parents:
diff changeset
   754
      nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   755
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   756
7021197a578f initial checkin
penk
parents:
diff changeset
   757
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   758
    s nextPutLine:'"/ saved by ' , OperatingSystem getLoginName , '@' , OperatingSystem getHostName , ' at ' , AbsoluteTime now printString.
7021197a578f initial checkin
penk
parents:
diff changeset
   759
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   760
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   761
7021197a578f initial checkin
penk
parents:
diff changeset
   762
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   763
    s nextPutLine:'"/ Display settings:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   764
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   765
    s nextPutLine:'"/ only restore the display settings, if on the same Display ...'.
7021197a578f initial checkin
penk
parents:
diff changeset
   766
    s nextPutLine:'Display notNil ifTrue:['.
7021197a578f initial checkin
penk
parents:
diff changeset
   767
    s nextPutLine:' Display displayName = ' , (screen displayName storeString) , ' ifTrue:['.
7021197a578f initial checkin
penk
parents:
diff changeset
   768
      screen fixColors notNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   769
        s nextPutLine:'  Image flushDeviceImages.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   770
        s nextPutLine:'  Color colorAllocationFailSignal catch:['.
7021197a578f initial checkin
penk
parents:
diff changeset
   771
        s nextPutLine:'    Color getColorsRed:6 green:6 blue:4 on:Display'.
7021197a578f initial checkin
penk
parents:
diff changeset
   772
        s nextPutLine:'  ].'.
7021197a578f initial checkin
penk
parents:
diff changeset
   773
      ] ifFalse:[
7021197a578f initial checkin
penk
parents:
diff changeset
   774
        s nextPutLine:'  Display releaseFixColors.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   775
      ].
7021197a578f initial checkin
penk
parents:
diff changeset
   776
      s nextPutLine:'  Display hasColors: ' , (screen hasColors storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   777
      s nextPutLine:'  Display widthInMillimeter: ' , (screen widthInMillimeter storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   778
      s nextPutLine:'  Display heightInMillimeter: ' , (screen heightInMillimeter storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   779
      s nextPutLine:'  Display supportsDeepIcons: ' , (screen supportsDeepIcons storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   780
      s nextPutLine:'  Image ditherAlgorithm: ' , (Image ditherAlgorithm storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   781
      s nextPutLine:'  View defaultStyle:' , View defaultStyle storeString , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   782
    s nextPutLine:' ].'.
7021197a578f initial checkin
penk
parents:
diff changeset
   783
    s nextPutLine:'].'.
7021197a578f initial checkin
penk
parents:
diff changeset
   784
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   785
7021197a578f initial checkin
penk
parents:
diff changeset
   786
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   787
    s nextPutLine:'"/ Compiler settings:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   788
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   789
    s nextPutLine:'Compiler warnSTXSpecials: ' , (Compiler warnSTXSpecials storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   790
      nextPutLine:'Compiler warnUnderscoreInIdentifier: ' , (Compiler warnUnderscoreInIdentifier storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   791
      nextPutLine:'Compiler warnOldStyleAssignment: ' , (Compiler warnOldStyleAssignment storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   792
      nextPutLine:'Compiler warnCommonMistakes: ' , (Compiler warnCommonMistakes storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   793
      nextPutLine:'Compiler warnPossibleIncompatibilities: ' , (Compiler warnPossibleIncompatibilities storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   794
      nextPutLine:'Compiler allowUnderscoreInIdentifier: ' , (Compiler allowUnderscoreInIdentifier storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   795
      nextPutLine:'Compiler allowSqueakExtensions: ' , (Compiler allowSqueakExtensions storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   796
      nextPutLine:'Compiler allowDolphinExtensions: ' , (Compiler allowDolphinExtensions storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   797
      nextPutLine:'Compiler arraysAreImmutable: ' , (Compiler arraysAreImmutable storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   798
      nextPutLine:'Compiler lineNumberInfo: ' , (Compiler lineNumberInfo storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   799
7021197a578f initial checkin
penk
parents:
diff changeset
   800
      nextPutLine:'Compiler foldConstants: ' , (Compiler foldConstants storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   801
      nextPutLine:'Compiler stcCompilation: ' , (Compiler stcCompilation storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   802
      nextPutLine:'OperatingSystem getOSType = ' , (OperatingSystem getOSType storeString) , ' ifTrue:[';
7021197a578f initial checkin
penk
parents:
diff changeset
   803
      nextPutLine:'  Compiler stcCompilationIncludes: ' , (Compiler stcCompilationIncludes storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   804
      nextPutLine:'  Compiler stcCompilationDefines: ' , (Compiler stcCompilationDefines storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   805
      nextPutLine:'  Compiler stcCompilationOptions: ' , (Compiler stcCompilationOptions storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   806
      nextPutLine:'  ' , (Compiler stcModulePath storeString) , ' asFilename exists ifTrue:[';
7021197a578f initial checkin
penk
parents:
diff changeset
   807
      nextPutLine:'    Compiler stcModulePath: ' , (Compiler stcModulePath storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   808
      nextPutLine:'  ].';
7021197a578f initial checkin
penk
parents:
diff changeset
   809
      nextPutLine:'  Compiler stcPath: ' , (Compiler stcPath storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   810
      nextPutLine:'  Compiler ccCompilationOptions: ' , (Compiler ccCompilationOptions storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   811
      nextPutLine:'  Compiler ccPath: ' , (Compiler ccPath storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   812
      nextPutLine:'  ObjectFileLoader linkArgs: ' , (ObjectFileLoader linkArgs storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   813
      nextPutLine:'  ObjectFileLoader linkCommand: ' , (ObjectFileLoader linkCommand storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   814
      nextPutLine:'  ObjectFileLoader libPath: ' , (ObjectFileLoader libPath storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   815
      nextPutLine:'  ObjectFileLoader searchedLibraries: ' , (ObjectFileLoader searchedLibraries storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   816
      nextPutLine:'].';
7021197a578f initial checkin
penk
parents:
diff changeset
   817
7021197a578f initial checkin
penk
parents:
diff changeset
   818
      nextPutLine:'ObjectMemory justInTimeCompilation: ' , (ObjectMemory justInTimeCompilation storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   819
      nextPutLine:'ObjectMemory fullSingleStepSupport: ' , (ObjectMemory fullSingleStepSupport storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   820
7021197a578f initial checkin
penk
parents:
diff changeset
   821
    HistoryManager notNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   822
        HistoryManager isActive ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   823
            s nextPutLine:'HistoryManager notNil ifTrue:[HistoryManager activate].'.
7021197a578f initial checkin
penk
parents:
diff changeset
   824
            s nextPutLine:'HistoryManager notNil ifTrue:[HistoryManager fullHistoryUpdate:' , HistoryManager fullHistoryUpdate storeString , '].'.
7021197a578f initial checkin
penk
parents:
diff changeset
   825
        ] ifFalse:[
7021197a578f initial checkin
penk
parents:
diff changeset
   826
            s nextPutLine:'HistoryManager notNil ifTrue:[HistoryManager deactivate].'.
7021197a578f initial checkin
penk
parents:
diff changeset
   827
        ].
7021197a578f initial checkin
penk
parents:
diff changeset
   828
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   829
7021197a578f initial checkin
penk
parents:
diff changeset
   830
    ObjectFileLoader notNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   831
        s nextPutLine:'ObjectFileLoader searchedLibraries: ' , (ObjectFileLoader searchedLibraries storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   832
        s nextPutLine:'ObjectFileLoader libPath: ' , (ObjectFileLoader libPath storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   833
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   834
7021197a578f initial checkin
penk
parents:
diff changeset
   835
    s nextPutLine:'Class catchMethodRedefinitions: ' , (Class catchMethodRedefinitions storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   836
    s nextPutLine:'ClassCategoryReader sourceMode: ' , (ClassCategoryReader sourceMode storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   837
7021197a578f initial checkin
penk
parents:
diff changeset
   838
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   839
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   840
    s nextPutLine:'"/ Info & Debug Messages:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   841
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   842
    s nextPutLine:'ObjectMemory infoPrinting: ' , (ObjectMemory infoPrinting storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   843
      nextPutLine:'ObjectMemory debugPrinting: ' , (ObjectMemory debugPrinting storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   844
      nextPutLine:'Object infoPrinting: ' , (Object infoPrinting storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   845
      nextPutLine:'DeviceWorkstation errorPrinting: ' , (DeviceWorkstation errorPrinting storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   846
7021197a578f initial checkin
penk
parents:
diff changeset
   847
    FlyByHelp isActive ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   848
        s nextPutLine:'FlyByHelp start.'
7021197a578f initial checkin
penk
parents:
diff changeset
   849
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   850
7021197a578f initial checkin
penk
parents:
diff changeset
   851
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   852
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   853
    s nextPutLine:'"/ Edit settings:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   854
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   855
    "/ s nextPutLine:'EditTextView st80Mode: ' , (EditTextView st80Mode storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   856
    s nextPutLine:'TextView st80SelectMode: ' , (TextView st80SelectMode storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   857
    s nextPutLine:'UserPreferences current syntaxColoring: ' , (currentUserPrefs syntaxColoring storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   858
    (ListView userDefaultTabPositions = ListView tab4Positions) ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   859
        s nextPutLine:'ListView userDefaultTabPositions:(ListView tab4Positions).'.
7021197a578f initial checkin
penk
parents:
diff changeset
   860
    ] ifFalse:[
7021197a578f initial checkin
penk
parents:
diff changeset
   861
        s nextPutLine:'ListView userDefaultTabPositions:(ListView tab8Positions).'.
7021197a578f initial checkin
penk
parents:
diff changeset
   862
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   863
7021197a578f initial checkin
penk
parents:
diff changeset
   864
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   865
    s nextPutLine:'"/ User preference values:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   866
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   867
    currentUserPrefs keysAndValuesDo:[:k :v |
7021197a578f initial checkin
penk
parents:
diff changeset
   868
        (UserPreferences includesSelector:(k , ':') asSymbol) ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   869
            s nextPutLine:'UserPreferences current ' , k , ':' , v storeString , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   870
        ] ifFalse:[
7021197a578f initial checkin
penk
parents:
diff changeset
   871
            s nextPutLine:'UserPreferences current at:' , k storeString , ' put:' , v storeString , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   872
        ]
7021197a578f initial checkin
penk
parents:
diff changeset
   873
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   874
7021197a578f initial checkin
penk
parents:
diff changeset
   875
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   876
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   877
    s nextPutLine:'"/ Misc settings:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   878
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   879
    s nextPutLine:'Class keepMethodHistory: ' , (Class methodHistory notNil storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   880
      nextPutLine:'Smalltalk logDoits: ' , (Smalltalk logDoits storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   881
      nextPutLine:'Autoload compileLazy: ' , (Autoload compileLazy storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   882
      nextPutLine:'Smalltalk loadBinaries: ' , (Smalltalk loadBinaries storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   883
      nextPutLine:'StandardSystemView includeHostNameInLabel: ' , (StandardSystemView includeHostNameInLabel storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   884
7021197a578f initial checkin
penk
parents:
diff changeset
   885
      "/ claus - I dont think its a good idea to save those ...
7021197a578f initial checkin
penk
parents:
diff changeset
   886
      nextPutLine:'"/ Class updateChanges: ' , (Class updatingChanges storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   887
      nextPutLine:'"/ ObjectMemory nameForChanges: ' , (ObjectMemory nameForChanges storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   888
7021197a578f initial checkin
penk
parents:
diff changeset
   889
      nextPutLine:'StandardSystemView returnFocusWhenClosingModalBoxes: ' , (StandardSystemView returnFocusWhenClosingModalBoxes storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   890
      nextPutLine:'StandardSystemView takeFocusWhenMapped: ' , (StandardSystemView takeFocusWhenMapped storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   891
      nextPutLine:'Display notNil ifTrue:[';
7021197a578f initial checkin
penk
parents:
diff changeset
   892
      nextPutLine:' Display activateOnClick: ' , ((screen activateOnClick:nil) storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   893
      nextPutLine:'].';
7021197a578f initial checkin
penk
parents:
diff changeset
   894
      nextPutLine:'MenuView showAcceleratorKeys: ' , (MenuView showAcceleratorKeys storeString) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   895
      nextPutLine:'Class tryLocalSourceFirst: ' , (Class tryLocalSourceFirst storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   896
    (Exception emergencyHandler == AbstractLauncherApplication notifyingEmergencyHandler) ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   897
        s nextPutLine:'Exception emergencyHandler:(AbstractLauncherApplication notifyingEmergencyHandler).'.
7021197a578f initial checkin
penk
parents:
diff changeset
   898
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   899
    Processor isTimeSlicing ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   900
        s nextPutLine:'Processor startTimeSlicing.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   901
        s nextPutLine:('Processor supportDynamicPriorities:' , (Processor supportDynamicPriorities ? false) storeString , '.').
7021197a578f initial checkin
penk
parents:
diff changeset
   902
    ] ifFalse:[
7021197a578f initial checkin
penk
parents:
diff changeset
   903
        s nextPutLine:'Processor stopTimeSlicing.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   904
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   905
7021197a578f initial checkin
penk
parents:
diff changeset
   906
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   907
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   908
    s nextPutLine:'"/ Printer settings:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   909
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   910
    s nextPutLine:'Printer := ' , (Printer name) , '.';
7021197a578f initial checkin
penk
parents:
diff changeset
   911
      nextPutLine:'Printer printCommand: ' , (Printer printCommand storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   912
7021197a578f initial checkin
penk
parents:
diff changeset
   913
    Printer supportsPageSizes ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   914
        s nextPutLine:'Printer pageFormat: ' , (Printer pageFormat storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   915
        s nextPutLine:'Printer landscape: ' , (Printer landscape storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   916
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   917
    Printer supportsMargins ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   918
        s nextPutLine:'Printer topMargin: ' , (Printer topMargin storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   919
        s nextPutLine:'Printer leftMargin: ' , (Printer leftMargin storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   920
        s nextPutLine:'Printer rightMargin: ' , (Printer rightMargin storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   921
        s nextPutLine:'Printer bottomMargin: ' , (Printer bottomMargin storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   922
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   923
    Printer supportsPostscript ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   924
        s nextPutLine:'Printer supportsColor: ' , (Printer supportsColor storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   925
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   926
7021197a578f initial checkin
penk
parents:
diff changeset
   927
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   928
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   929
    s nextPutLine:'"/ Font settings:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   930
    s nextPutLine:'"/ (only restored, if image is restarted on the same display)'.
7021197a578f initial checkin
penk
parents:
diff changeset
   931
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   932
    s nextPutLine:'Display notNil ifTrue:['.
7021197a578f initial checkin
penk
parents:
diff changeset
   933
    s nextPutLine:' Display displayName = ' , (screen displayName storeString) , ' ifTrue:['.
7021197a578f initial checkin
penk
parents:
diff changeset
   934
    s nextPutLine:'  View defaultFont: ' , (View defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   935
    s nextPutLine:'  Label defaultFont: ' , (Label defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   936
    s nextPutLine:'  Button defaultFont: ' , (Button defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   937
    s nextPutLine:'  Toggle defaultFont: ' , (Toggle defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   938
    s nextPutLine:'  SelectionInListView defaultFont: ' , (SelectionInListView defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   939
    s nextPutLine:'  MenuView defaultFont: ' , (MenuView defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   940
    s nextPutLine:'  PullDownMenu defaultFont: ' , (PullDownMenu defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   941
    s nextPutLine:'  TextView defaultFont: ' , (TextView defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   942
    s nextPutLine:'  EditTextView defaultFont: ' , (EditTextView defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   943
    s nextPutLine:'  CodeView defaultFont: ' , (CodeView defaultFont storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   944
    s nextPutLine:' ].'.
7021197a578f initial checkin
penk
parents:
diff changeset
   945
    s nextPutLine:'].'.
7021197a578f initial checkin
penk
parents:
diff changeset
   946
7021197a578f initial checkin
penk
parents:
diff changeset
   947
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   948
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   949
    s nextPutLine:'"/ Language setting:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   950
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   951
    s nextPutLine:'Smalltalk language: ' , (Smalltalk language storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   952
    s nextPutLine:'Smalltalk languageTerritory: ' , (Smalltalk languageTerritory storeString) , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   953
7021197a578f initial checkin
penk
parents:
diff changeset
   954
    s cr.
7021197a578f initial checkin
penk
parents:
diff changeset
   955
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   956
    s nextPutLine:'"/ SourceCodeManager settings:'.
7021197a578f initial checkin
penk
parents:
diff changeset
   957
    s nextPutLine:'"/ (only restored, if image is restarted on the same host)'.
7021197a578f initial checkin
penk
parents:
diff changeset
   958
    s nextPutLine:'"/'.
7021197a578f initial checkin
penk
parents:
diff changeset
   959
    s nextPutLine:'OperatingSystem getHostName = ' , (OperatingSystem getHostName storeString) , ' ifTrue:['.
7021197a578f initial checkin
penk
parents:
diff changeset
   960
    s nextPutLine:'  Class tryLocalSourceFirst:' , Class tryLocalSourceFirst storeString , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   961
    (Smalltalk at:#SourceCodeManager) == CVSSourceCodeManager ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   962
    s nextPutLine:'  Smalltalk at:#SourceCodeManager put: CVSSourceCodeManager.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   963
    s nextPutLine:'  AbstractSourceCodeManager cacheDirectoryName:' , AbstractSourceCodeManager cacheDirectoryName storeString , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   964
    s nextPutLine:'  CVSSourceCodeManager cvsBinDirectory:' , CVSSourceCodeManager cvsBinDirectory storeString , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   965
    s nextPutLine:'  CVSSourceCodeManager repositoryNamesPerModule:' , CVSSourceCodeManager repositoryNamesPerModule storeString , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   966
    s nextPutLine:'  CVSSourceCodeManager initializeForRepository:' , CVSSourceCodeManager repositoryName storeString , '.'.
7021197a578f initial checkin
penk
parents:
diff changeset
   967
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   968
    s nextPutLine:'].'.
7021197a578f initial checkin
penk
parents:
diff changeset
   969
7021197a578f initial checkin
penk
parents:
diff changeset
   970
    s close.
7021197a578f initial checkin
penk
parents:
diff changeset
   971
7021197a578f initial checkin
penk
parents:
diff changeset
   972
    "
7021197a578f initial checkin
penk
parents:
diff changeset
   973
     Transcript topView application saveSettings
7021197a578f initial checkin
penk
parents:
diff changeset
   974
    "
7021197a578f initial checkin
penk
parents:
diff changeset
   975
7021197a578f initial checkin
penk
parents:
diff changeset
   976
    "Modified: / 6.1.1999 / 14:24:16 / cg"
7021197a578f initial checkin
penk
parents:
diff changeset
   977
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   978
7021197a578f initial checkin
penk
parents:
diff changeset
   979
!SettingsDialog methodsFor:'queries'!
7021197a578f initial checkin
penk
parents:
diff changeset
   980
7021197a578f initial checkin
penk
parents:
diff changeset
   981
recursiveGetParentFor:aCategory fromItem:aItem
7021197a578f initial checkin
penk
parents:
diff changeset
   982
7021197a578f initial checkin
penk
parents:
diff changeset
   983
    | children |
7021197a578f initial checkin
penk
parents:
diff changeset
   984
    children := aItem children.
7021197a578f initial checkin
penk
parents:
diff changeset
   985
    children notNil ifTrue:[
7021197a578f initial checkin
penk
parents:
diff changeset
   986
        children do:[:aChildItem | | newItem |
7021197a578f initial checkin
penk
parents:
diff changeset
   987
            aChildItem nameString = aCategory ifTrue:[ ^ aChildItem].
7021197a578f initial checkin
penk
parents:
diff changeset
   988
            newItem := self recursiveGetParentFor:aCategory fromItem:aChildItem.
7021197a578f initial checkin
penk
parents:
diff changeset
   989
            newItem notNil ifTrue:[^ newItem].
7021197a578f initial checkin
penk
parents:
diff changeset
   990
        ].
7021197a578f initial checkin
penk
parents:
diff changeset
   991
    ].
7021197a578f initial checkin
penk
parents:
diff changeset
   992
    ^ nil
7021197a578f initial checkin
penk
parents:
diff changeset
   993
! !
7021197a578f initial checkin
penk
parents:
diff changeset
   994
7021197a578f initial checkin
penk
parents:
diff changeset
   995
!SettingsDialog::HierarchicalApplicationList::ApplicationItem methodsFor:'accessing'!
7021197a578f initial checkin
penk
parents:
diff changeset
   996
7021197a578f initial checkin
penk
parents:
diff changeset
   997
application
7021197a578f initial checkin
penk
parents:
diff changeset
   998
    "return the value of the instance variable 'application' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
   999
7021197a578f initial checkin
penk
parents:
diff changeset
  1000
    ^ application
7021197a578f initial checkin
penk
parents:
diff changeset
  1001
!
7021197a578f initial checkin
penk
parents:
diff changeset
  1002
7021197a578f initial checkin
penk
parents:
diff changeset
  1003
application:something
7021197a578f initial checkin
penk
parents:
diff changeset
  1004
    "set the value of the instance variable 'application' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
  1005
7021197a578f initial checkin
penk
parents:
diff changeset
  1006
    application := something.
7021197a578f initial checkin
penk
parents:
diff changeset
  1007
!
7021197a578f initial checkin
penk
parents:
diff changeset
  1008
7021197a578f initial checkin
penk
parents:
diff changeset
  1009
applicationClass
7021197a578f initial checkin
penk
parents:
diff changeset
  1010
    "return the value of the instance variable 'applicationClass' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
  1011
7021197a578f initial checkin
penk
parents:
diff changeset
  1012
    ^ applicationClass
7021197a578f initial checkin
penk
parents:
diff changeset
  1013
!
7021197a578f initial checkin
penk
parents:
diff changeset
  1014
7021197a578f initial checkin
penk
parents:
diff changeset
  1015
applicationClass:something
7021197a578f initial checkin
penk
parents:
diff changeset
  1016
    "set the value of the instance variable 'applicationClass' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
  1017
7021197a578f initial checkin
penk
parents:
diff changeset
  1018
    applicationClass := something.
7021197a578f initial checkin
penk
parents:
diff changeset
  1019
!
7021197a578f initial checkin
penk
parents:
diff changeset
  1020
7021197a578f initial checkin
penk
parents:
diff changeset
  1021
icon
7021197a578f initial checkin
penk
parents:
diff changeset
  1022
    "return the value of the instance variable 'icon' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
  1023
7021197a578f initial checkin
penk
parents:
diff changeset
  1024
    ^ icon
7021197a578f initial checkin
penk
parents:
diff changeset
  1025
!
7021197a578f initial checkin
penk
parents:
diff changeset
  1026
7021197a578f initial checkin
penk
parents:
diff changeset
  1027
icon:something
7021197a578f initial checkin
penk
parents:
diff changeset
  1028
    "set the value of the instance variable 'icon' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
  1029
7021197a578f initial checkin
penk
parents:
diff changeset
  1030
    icon := something.
7021197a578f initial checkin
penk
parents:
diff changeset
  1031
!
7021197a578f initial checkin
penk
parents:
diff changeset
  1032
7021197a578f initial checkin
penk
parents:
diff changeset
  1033
label
7021197a578f initial checkin
penk
parents:
diff changeset
  1034
    "return the value of the instance variable 'label' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
  1035
7021197a578f initial checkin
penk
parents:
diff changeset
  1036
    ^ label
7021197a578f initial checkin
penk
parents:
diff changeset
  1037
!
7021197a578f initial checkin
penk
parents:
diff changeset
  1038
7021197a578f initial checkin
penk
parents:
diff changeset
  1039
label:something
7021197a578f initial checkin
penk
parents:
diff changeset
  1040
    "set the value of the instance variable 'label' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
  1041
7021197a578f initial checkin
penk
parents:
diff changeset
  1042
    label := something.
7021197a578f initial checkin
penk
parents:
diff changeset
  1043
!
7021197a578f initial checkin
penk
parents:
diff changeset
  1044
7021197a578f initial checkin
penk
parents:
diff changeset
  1045
nameString
7021197a578f initial checkin
penk
parents:
diff changeset
  1046
    "return the value of the instance variable 'nameString' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
  1047
7021197a578f initial checkin
penk
parents:
diff changeset
  1048
    ^ nameString
7021197a578f initial checkin
penk
parents:
diff changeset
  1049
!
7021197a578f initial checkin
penk
parents:
diff changeset
  1050
7021197a578f initial checkin
penk
parents:
diff changeset
  1051
nameString:something
7021197a578f initial checkin
penk
parents:
diff changeset
  1052
    "set the value of the instance variable 'nameString' (automatically generated)"
7021197a578f initial checkin
penk
parents:
diff changeset
  1053
7021197a578f initial checkin
penk
parents:
diff changeset
  1054
    nameString := something.
7021197a578f initial checkin
penk
parents:
diff changeset
  1055
! !
7021197a578f initial checkin
penk
parents:
diff changeset
  1056
7021197a578f initial checkin
penk
parents:
diff changeset
  1057
!SettingsDialog::HierarchicalApplicationList::ApplicationItem methodsFor:'queries'!
7021197a578f initial checkin
penk
parents:
diff changeset
  1058
7021197a578f initial checkin
penk
parents:
diff changeset
  1059
isCategory
7021197a578f initial checkin
penk
parents:
diff changeset
  1060
7021197a578f initial checkin
penk
parents:
diff changeset
  1061
    ^ self applicationClass isNil
7021197a578f initial checkin
penk
parents:
diff changeset
  1062
! !
7021197a578f initial checkin
penk
parents:
diff changeset
  1063
7021197a578f initial checkin
penk
parents:
diff changeset
  1064
!SettingsDialog class methodsFor:'documentation'!
7021197a578f initial checkin
penk
parents:
diff changeset
  1065
7021197a578f initial checkin
penk
parents:
diff changeset
  1066
version
4388
4302767e1720 ressources from AbstractLauncherApplication
penk
parents: 4384
diff changeset
  1067
    ^ '$Header: /cvs/stx/stx/libtool/SettingsDialog.st,v 1.3 2002-12-16 17:24:12 penk Exp $'
4378
7021197a578f initial checkin
penk
parents:
diff changeset
  1068
! !