1# An FvwmScript GUI to change colorsets 2# I can't believe how big this is 3# I haven't got the energy to implement a Save button 4# Just goes to show that command lines are better 5# Don't switch on Dynamic update unless using ReadWriteColors 6WindowTitle {Colorset Editor} 7WindowSize 380 290 8Colorset 0 9 10Init 11 Begin 12 # This is the colorset being worked on 13 Set $Cset = 0 14 Set $OldCset = 0 15 Set $Color = (GetBack 1) 16 Do {Colorset } $Cset { Pixmap, Background #} $Color {, Foreground Contrast} 17 # Sliders are initially hidden 18 HideWidget 1 19 HideWidget 2 20 HideWidget 3 21 HideWidget 21 22 HideWidget 22 23 HideWidget 23 24 End 25 26# radio buttons to pick the colorset aspect to change 27Widget 13 28Property 29 Position 120 10 30 Type RadioButton 31 Title {Background} 32Main 33 Case message of 34 SingleClic : 35 Begin 36 Set $Color = (GetBack 1) 37 ChangeValue 1 (HexToNum (StrCopy $Color 1 2)) 38 ChangeValue 2 (HexToNum (StrCopy $Color 3 4)) 39 ChangeValue 3 (HexToNum (StrCopy $Color 5 6)) 40 ChangeValue 10 0 41 ChangeValue 11 0 42 ChangeValue 12 0 43 ShowWidget 1 44 ShowWidget 2 45 ShowWidget 3 46 ShowWidget 21 47 ShowWidget 22 48 ShowWidget 23 49 End 50End 51 52Widget 10 53Property 54 Position 220 10 55 Type RadioButton 56 Title {Foreground} 57Main 58 Case message of 59 SingleClic : 60 Begin 61 Set $Color = (GetFore 1) 62 ChangeValue 1 (HexToNum (StrCopy $Color 1 2)) 63 ChangeValue 2 (HexToNum (StrCopy $Color 3 4)) 64 ChangeValue 3 (HexToNum (StrCopy $Color 5 6)) 65 ChangeValue 11 0 66 ChangeValue 12 0 67 ChangeValue 13 0 68 ShowWidget 1 69 ShowWidget 2 70 ShowWidget 3 71 ShowWidget 21 72 ShowWidget 22 73 ShowWidget 23 74 End 75End 76 77Widget 11 78Property 79 Position 120 30 80 Type RadioButton 81 Title {Hilite} 82Main 83 Case message of 84 SingleClic : 85 Begin 86 Set $Color = (GetHilight 1) 87 ChangeValue 1 (HexToNum (StrCopy $Color 1 2)) 88 ChangeValue 2 (HexToNum (StrCopy $Color 3 4)) 89 ChangeValue 3 (HexToNum (StrCopy $Color 5 6)) 90 ChangeValue 10 0 91 ChangeValue 12 0 92 ChangeValue 13 0 93 ShowWidget 1 94 ShowWidget 2 95 ShowWidget 3 96 ShowWidget 21 97 ShowWidget 22 98 ShowWidget 23 99 End 100End 101 102Widget 12 103Property 104 Position 220 30 105 Type RadioButton 106 Title {Shadow} 107Main 108 Case message of 109 SingleClic : 110 Begin 111 Set $Color = (GetShadow 1) 112 ChangeValue 1 (HexToNum (StrCopy $Color 1 2)) 113 ChangeValue 2 (HexToNum (StrCopy $Color 3 4)) 114 ChangeValue 3 (HexToNum (StrCopy $Color 5 6)) 115 ChangeValue 10 0 116 ChangeValue 11 0 117 ChangeValue 13 0 118 ShowWidget 1 119 ShowWidget 2 120 ShowWidget 3 121 ShowWidget 21 122 ShowWidget 22 123 ShowWidget 23 124 End 125End 126 127# colorset selector 128# miniscrolls clic on button press and release hence the (div x 2) 129# and they roll over which is bad for defining colorsets 130Widget 4 131Property 132 Position 10 10 133 Type MiniScroll 134 Value 0 135 MinValue 0 136 MaxValue 101 137Main 138 Case message of 139 SingleClic : 140 Begin 141 # hold at max value 142 If (GetValue 4) == 100 Then 143 ChangeValue 4 99 144 # hold at min value 145 If (GetValue 4) > 100 Then 146 ChangeValue 4 0 147 Set $OldCset = $Cset 148 Set $Cset = (Div (GetValue 4) 2) 149 Set $CsetName = {Colorset } $Cset 150 ChangeTitle 5 $CsetName 151 # redisplay in new colorset 152 ChangeColorset 0 $Cset 153 ChangeColorset 1 $Cset 154 ChangeColorset 2 $Cset 155 ChangeColorset 3 $Cset 156 ChangeColorset 4 $Cset 157 ChangeColorset 5 $Cset 158 ChangeColorset 6 $Cset 159 ChangeColorset 7 $Cset 160 ChangeColorset 10 $Cset 161 ChangeColorset 11 $Cset 162 ChangeColorset 12 $Cset 163 ChangeColorset 13 $Cset 164 ChangeColorset 21 $Cset 165 ChangeColorset 22 $Cset 166 ChangeColorset 23 $Cset 167 ChangeColorset 0 $Cset 168 # unselect all radio buttons 169 ChangeValue 10 0 170 ChangeValue 11 0 171 ChangeValue 12 0 172 ChangeValue 13 0 173 # hide the sliders 174 HideWidget 1 175 HideWidget 2 176 HideWidget 3 177 HideWidget 21 178 HideWidget 22 179 HideWidget 23 180 # change current colorset to be just plain 181 If $OldCset == $Cset Then 182 Begin 183 End 184 Else 185 Begin 186 # I think there might be a bug in Colorset that resets a colorset to a copy of 0 187 # if {pixmap} is used to select a plain background 188 Set $Color = (GetBack 1) 189 Do {Colorset } $Cset { Pixmap, Background #} $Color {, Foreground Contrast} 190 Set $OldCset = $Cset 191 End 192 End 193End 194 195# Example 196Widget 5 197Property 198 Size 80 34 199 Position 29 10 200 Type ItemDraw 201 Title {Colorset 0} 202End 203 204# auto apply selector 205# handles signals from color selectors and passes them on to the apply 206# button if enabled 207Widget 6 208Property 209 Position 120 250 210 Type CheckBox 211 Title {Auto Apply} 212Main 213 Case message of 214 1 : 215 Begin 216 If (GetValue 6) == 1 Then 217 SendSignal 7 1 218 End 219End 220 221# apply button (does the main processing) 222# sends a signal to itself when clicked 223# sets the colorset when it receives a signal 224Widget 7 225Property 226 Position 10 250 227 Type PushButton 228 Title {Apply} 229Main 230 Case message of 231 SingleClic : 232 Begin 233 SendSignal 7 1 234 End 235 1 : 236 Begin 237 # calculate the current color in RGB hex terms 238 Set $Color = {rgb:} (NumToHex (GetValue 1) 2) 239 Set $Color = $Color {/} (NumToHex (GetValue 2) 2) 240 Set $Color = $Color {/} (NumToHex (GetValue 3) 2) 241 # pick the current colorset 242 Set $Command = {Colorset } $Cset 243 # pick the type to set 244 If (GetValue 10) == 1 Then 245 Set $Command = $Command { Foreground } $Color 246 If (GetValue 11) == 1 Then 247 Set $Command = $Command { Hilite } $Color 248 If (GetValue 12) == 1 Then 249 Set $Command = $Command { Shadow } $Color 250 If (GetValue 13) == 1 Then 251 Set $Command = $Command { Background } $Color {, Foreground Contrast} 252 Do $Command 253 End 254End 255 256# RGB sliders 257Widget 1 258Property 259 Size 320 0 260 Position 50 60 261 Type HScrollBar 262 MinValue 0 263 MaxValue 255 264Main 265 Case message of 266 SingleClic : 267 Begin 268 SendSignal 6 1 269 End 270End 271 272Widget 21 273Property 274 Size 10 0 275 Position 10 80 276 Type ItemDraw 277 Title {Red} 278End 279 280Widget 2 281Property 282 Size 320 0 283 Position 50 120 284 Type HScrollBar 285 MinValue 0 286 MaxValue 255 287Main 288 Case message of 289 SingleClic : 290 Begin 291 SendSignal 6 1 292 End 293End 294 295Widget 22 296Property 297 Size 10 0 298 Position 10 140 299 Type ItemDraw 300 Title {Green} 301End 302 303Widget 3 304Property 305 Size 320 0 306 Position 50 180 307 Type HScrollBar 308 MinValue 0 309 MaxValue 255 310Main 311 Case message of 312 SingleClic : 313 Begin 314 SendSignal 6 1 315 End 316End 317 318Widget 23 319Property 320 Size 10 0 321 Position 10 200 322 Type ItemDraw 323 Title {Blue} 324End 325