Update plainbow theme to use features in FVWM 2.5.25+
[fvwm-themes.git] / scripts / FvwmScript-ThemesCenter
blob7caabb6a8896deadda2c3de443cce678bded7656
1 # This script is free software; you can redistribute it and/or modify
2 # it under the terms of the GNU General Public License as published by
3 # the Free Software Foundation; either version 2 of the License, or
4 # (at your option) any later version.
6 # This program is distributed in the hope that it will be useful,
7 # but WITHOUT ANY WARRANTY; without even the implied warranty of
8 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 # GNU General Public License for more details.
11 # You should have received a copy of the GNU General Public License
12 # along with this program; if not, write to the Free Software
13 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16 #-----------------------------------------------------------------------------
17 # Copyright 2000, Olivier Chapuis
18 #-----------------------------------------------------------------------------
21 WindowTitle {FVWM Themes Center}
22 WindowSize 600 480
23 Font    -adobe-helvetica-bold-r-*-*-12-*
25 Init
26 Begin
27     Do {FvwmScript FvwmScript-NoteMessage "Loading Themes"}
28     Set $Lang = {}
29     Set $TextColorset = {}
30     Set $ViewerColorset = {}
31     Set $IconColorset = {}
32     # Arguments
33     Set $i = 1
34     Set $arg = (GetScriptArgument $i)
35     While $arg <> {} Do
36     Begin
37         Set $j = (Add $i 1)
38         If $arg == {--viewer-colorset} Then
39             Set $ViewerColorset = (GetScriptArgument $j)
40         If $arg == {--text-colorset} Then
41             Set $TextColorset = (GetScriptArgument $j)
42         If $arg == {--icon-colorset} Then
43             Set $IconColorset = (GetScriptArgument $j)
44         If $arg == {--lang} Then
45             Set $Lang = (GetScriptArgument $j)  
46         Set $i = (Add $i 2)
47         Set $arg = (GetScriptArgument $i)
48     End
51     If $TextColorset <> {} Then
52     Begin
53         ChangeColorset 6 $TextColorset
54         ChangeColorset 12 $TextColorset
55         ChangeColorset 17 $TextColorset
56         ChangeColorset 41 $TextColorset
57         ChangeColorset 27 $TextColorset
58         ChangeColorset 22 $TextColorset
59     End
61     If $ViewerColorset <> {} Then
62     Begin
63         ChangeColorset 95 $ViewerColorset
64     End
66     Set $SelFont = {-adobe-helvetica-bold-r-*-*-12-*}
67     Set $ShadeFont = {-adobe-helvetica-medium-r-*-*-12-*}
68     Set $FixedFont = {-*-fixed-medium-r-semicondensed-*-13-*}
69     Set $nonDefaultFont = 0
71     #Set $Lang = {en}
72     #Set $Lang = {ru}
73     # ------------------------------- Internationalization.
75     If $Lang == {} Then
76     Begin
77         Set $cmd = {echo "$LANG" | cut -c1-2}
78         Set $Lang = (GetOutput $cmd 1 -1)
79     End
80     If $Lang == {} Then
81         Set $Lang = {C}
83     Set $msg = {}
84     Set $id = {}
85     Set $cmd = {fvwm-themes-script --get-msg }FvwmScript-ThemesCenter{ --lang }$Lang
86     Set $MSG = (GetOutput $cmd 1 -1)
87     Set $index = 0
88     Set $notdone = 1
89     While $notdone == 1 Do
90     Begin
91         Set $index = (Add $index 1)
92         Set $id = (StrCopy $MSG $index (Add $index 11))
93         Set $index = (Add $index 12)
94         Set $tmp = (StrCopy $MSG $index (Add $index 3))
95         Set $index = (Add $index 4)
96         Set $pos = (Add $index $tmp)
97         Set $msg = (StrCopy $MSG $index $pos)
98         Set $index = (Add $index $tmp)
99         #Do {Echo id:}$id{:msg:}$msg{:}
101         If $index > 9999 Then
102             Set $notdone = 0
103         If $id == {END         } Then
104             Set $notdone = 0
105         If $id == {} Then
106             Set $notdone = 0
107         # TS
108         If $id == {CT          } Then
109             ChangeTitle 1 $msg
110         If $id == {CTList      } Then
111             ChangeTitle 2 $msg
112         If $id == {ThemesList  } Then
113             ChangeTitle 5 $msg
114         If $id == {Readme      } Then
115             ChangeTitle 7 $msg
116         If $id == {LoadAll     } Then
117             ChangeTitle 8 $msg
118         If $id == {LoadLook    } Then
119             ChangeTitle 9 $msg
120         If $id == {MSelTheme   } Then
121             Set $l_MustSelecteTheme = $msg
122         If $id == {AComponent  } Then
123             Set $l_A_Component = $msg
124         If $id == {AComponent  } Then
125             Set $l_A_Component = $msg
126         If $id == {NoThemeSel  } Then
127             ChangeTitle 11 $msg
128         If $id == {Load        } Then
129             ChangeTitle 13 $msg
130         If $id == {Info        } Then
131         Begin
132             ChangeTitle 14 $msg
133             ChangeTitle 24 $msg
134         End
135         If $id == {View        } Then
136             ChangeTitle 15 $msg
137         If $id == {MSelThemeCp } Then
138             Set $l_MustSelectThemeComp = $msg
139         If $id == {MSelCC      } Then
140             Set $l_MustSelectCurrentComp = $msg
141         If $id == {NoScreenShot} Then
142             Set $l_NoScreenShot = $msg
143         If $id == {NoHelp      } Then
144             Set $l_NoHelp = $msg
145         If $id == {USThemeComp } Then
146             ChangeTitle 16 $msg     
147         If $id == {Properties  } Then
148             ChangeTitle 18 $msg
149         If $id == {Restore     } Then
150         Begin
151             ChangeTitle 19 $msg
152             ChangeTitle 23 $msg
153         End
154         If $id == {Drop        } Then
155         Begin
156             ChangeTitle 20 $msg
157             #ChangeTitle 25 $msg
158         End
159         If $id == {Lock        } Then
160             Set $l_Lock = $msg
161         If $id == {Unlock      } Then
162             Set $l_Unlock = $msg
163         If $id == {NoProp      } Then
164             Set $l_NoProperties = $msg
165         If $id == {ThreeEditor } Then
166             Set $l_OnlyThreeEditor = $msg
167         If $id == {PropEditor  } Then
168             Set $l_PropertyEditor = $msg
169         If $id == {AActive     } Then
170             Set $l_AlreadyActive = $msg
171         If $id == {CompNotSet  } Then
172             Set $l_CompNotSet = $msg
173         If $id == {DropNotImp  } Then
174             Set $l_DropNotImp = $msg
175         If $id == {NoDrop      } Then
176             Set $l_NoDrop = $msg
177         # GS
178         If $id == {SetUSComp   } Then
179             ChangeTitle 21 $msg
180         If $id == {SelAComp    } Then
181             ChangeTitle 26 $msg
182         If $id == {VariantsFor } Then
183             Set $l_VariantsFor = $msg
184         If $id == {Set         } Then
185             ChangeTitle 28 $msg
186         If $id == {MSelVar     } Then
187             Set $l_MustSelectVariant = $msg
188         # SM
189         If $id == {CurSession  } Then
190             Set $l_CurrentSession = $msg
191         If $id == {UpTime      } Then
192             Set $l_UpTime = $msg
193         If $id == {SessionsList} Then
194             ChangeTitle 40 $msg
195         If $id == {FinishEdit  } Then
196             Set $l_FinishEdit = $msg
197         If $id == {SelSession  } Then
198         Begin
199             Set $l_SelectedSession = $msg
200             ChangeTitle 45 $msg
201         End
202         If $id == {MSelSession } Then
203             Set $l_MustSelectSession = $msg
204         # SM
205         If $id == {BEdit       } Then
206             Set $l_B_Edit = $msg
207         If $id == {AEdit       } Then
208             Set $l_A_Edit = $msg
209         If $id == {Edit        } Then
210             ChangeTitle 42 $msg
211         If $id == {Add         } Then
212             ChangeTitle 43 $msg
213         If $id == {Remove      } Then
214             ChangeTitle 44 $msg
215         If $id == {SessionH1   } Then
216             ChangeTitle 46 $msg
217         If $id == {SessionH2   } Then
218             ChangeTitle 47 $msg
219         If $id == {SessionH3   } Then
220             ChangeTitle 48 $msg
221         If $id == {SessionH4   } Then
222             ChangeTitle 58 $msg
223         If $id == {AddSession  } Then
224             Set $l_AddSession = $msg
225         If $id == {NRemoveMain } Then
226             Set $l_NotRemoveMain = $msg
227         If $id == {NRemoveCur  } Then
228             Set $l_NotRemoveCur = $msg
229         If $id == {BReallyRem  } Then
230             Set $l_B_ReallyRemove = $msg
231         If $id == {AReallyRem  } Then
232             Set $l_A_ReallyRemove = $msg
233         If $id == {SessionName } Then
234             ChangeTitle 50 $msg
235         If $id == {ConfigOf    } Then
236             ChangeTitle 51 $msg
237         If $id == {Ok          } Then
238             Set $l_Ok = $msg
239         If $id == {Cancel      } Then
240             Set $l_Cancel = $msg
241         If $id == {Yes         } Then
242             Set $l_Yes = $msg
243         If $id == {No          } Then
244             Set $l_No = $msg
245         If $id == {NameNotValid} Then
246             Set $l_NameNotValid = $msg
247         If $id == {NameAlreadyU} Then
248             Set $l_NameAlreadyUse = $msg
249         If $id == {SysErr      } Then
250             Set $l_SysErr = $msg
251         If $id == {CNewSession } Then
252             Set $l_ClickNewSession = $msg
253         If $id == {NoChanges   } Then
254             Set $l_NoChanges = $msg
255         If $id == {AThemeConf  } Then
256             Set $l_ApplyThemeConfig = $msg
257         If $id == {ANewSession } Then
258             Set $l_ApplyNewSession= $msg
259         If $id == {RefreshConf } Then
260             Set $l_Refresh = $msg
261         If $id == {UpdateConf  } Then
262             Set $l_Update = $msg
263         If $id == {MsgInfo     } Then
264             ChangeTitle 95 $msg
265         If $id == {Apply       } Then
266             ChangeTitle 96 $msg
267         If $id == {Refresh     } Then
268             ChangeTitle 97 $msg
269         If $id == {Update      } Then
270             ChangeTitle 94 $msg
271         If $id == {Help        } Then
272             ChangeTitle 98 $msg
273         If $id == {Quit        } Then
274             ChangeTitle 99 $msg
275         If $id == {ChangeFont  } Then
276             Set $nonDefaultFont = $msg
277         If $id == {SelFont     } Then
278             Set $SelFont = $msg
279         If $id == {ShadeFont   } Then
280             Set $ShadeFont = $msg
281         If $id == {FixedFont   } Then
282             Set $FixedFont = $msg
283     End
285     ChangeTitle 53 $l_Ok
286     ChangeTitle 54 $l_Cancel
287     ChangeTitle 100 $l_Lock
289     # found the FvwmScript pid
290     Set $pid = (GetPid)
291     Set $ComName = {config-}$pid
293     # Run fvwm-themes-config until the end of the script
294     Do {Exec fvwm-themes-config --com-mode --com-name=}$ComName{ &}
295     
296     # Get the themes list, the current config, ...etc.
297     Set $cmd = {all-startup-stuff|}
298     Set $RES = (SendMsgAndGet $ComName $cmd 1)
299     Set $ThemesList = (Parse $RES 1)
300     ChangeTitle 6 $ThemesList
301     Set $CurrentConfig = (Parse $RES 2)
302     ChangeTitle 17 $CurrentConfig
304     # Get the settings config
305     Set $SettingsConfig = (Parse $RES 3)
306     ChangeTitle 22 $SettingsConfig
308     # Get the session info
309     Set $CurrentSession = (Parse $RES 4)
310     Set $SessionUpTime = (Parse $RES 5)
311     Set $tmp = {Current Session: }$CurrentSession{                 Up Time:  }$SessionUpTime
312     ChangeTitle 39 $tmp
313     Set $SessionList = (Parse $RES 6)
314     ChangeTitle 41 $SessionList
315     Set $ConfigurationList = (Parse $RES 7)
316     ChangeTitle 52 $ConfigurationList
317     
318     # Common Variables
319     Set $SpecialMessage = {}
320     Set $NullMessage = 0
321     # TS: Themes Selector; GS: General Settings; SM: FT Sessions Management
322     Set $ConfigTool = {TS}
324     # TS main variables
325     Set $ThemeName = {}
326     Set $ThemeIndex = 0
327     Set $ComponentName = {}
328     Set $ComponentIndex = 0
329     Set $CSCompIndex = 0
330     Set $CSCompName = {}
331     Set $CSThemeName = {}
332     Set $CSCompHasOpt = 0
333     Set $CSCompIsSet = 0
334     Set $CSCompCanBeDropped = 0
335     Set $PropertyEditorOne = {}
336     Set $PropertyEditorOneTandC = {}
337     Set $PropertyEditorTwo = {}
338     Set $PropertyEditorTwoTandC = {}
339     Set $PropertyEditorLast = {}
340     Set $PropertyEditorLastTandC = {}
342     # GS main variables
343     Set $SettingsIndex = 0
344     Set $SettingsComponent = {}
345     Set $SettingsName ={}
346     Set $SettingsVariantsIndex = 0
348     # SM main variables
349     Set $SessionIndex = 0
350     Set $SelectedSession = {}
351     Set $SMEditorState = 0
353     Set $tmp = 7
354     While $tmp <> 10 Do
355     Begin
356         ChangeFont $tmp $ShadeFont
357         Set $tmp2 = (Add $tmp 6)
358         ChangeFont $tmp2 $ShadeFont
359         Set $tmp2 = (Add $tmp2 5)
360         ChangeFont $tmp2 $ShadeFont
361         Set $tmp = (Add $tmp 1)
362     End
363     ChangeFont 23 $ShadeFont
364     ChangeFont 24 $ShadeFont
365     #ChangeFont 25 $ShadeFont
366     ChangeFont 28 $ShadeFont
367     ChangeFont 100 $ShadeFont
368     # change the fonts for non west-european language
369     If $nonDefaultFont == 1 Then
370     Begin
371         ChangeFont 1 $SelFont
372         ChangeFont 2 $SelFont
373         ChangeFont 6 $FixedFont
374         ChangeFont 5 $SelFont
375         ChangeFont 11 $SelFont
376         ChangeFont 12 $FixedFont
377         ChangeFont 16 $SelFont
378         ChangeFont 17 $FixedFont
379         ChangeFont 21 $SelFont
380         ChangeFont 22 $FixedFont
381         ChangeFont 26 $SelFont
382         ChangeFont 27 $FixedFont
383         ChangeFont 39 $SelFont
384         ChangeFont 40 $SelFont
385         ChangeFont 41 $FixedFont
386         ChangeFont 42 $SelFont
387         ChangeFont 43 $SelFont
388         ChangeFont 44 $SelFont
389         ChangeFont 45 $SelFont
390         ChangeFont 46 $FixedFont
391         ChangeFont 47 $FixedFont
392         ChangeFont 48 $FixedFont
393         ChangeFont 58 $FixedFont
394         ChangeFont 49 $SelFont
395         ChangeFont 50 $FixedFont
396         ChangeFont 51 $FixedFont
397         ChangeFont 53 $SelFont
398         ChangeFont 54 $SelFont
399         ChangeFont 57 $SelFont
400         Set $tmp = 94
401         While $tmp <> 100 Do
402         Begin
403             ChangeFont $tmp $SelFont
404             Set $tmp = (Add $tmp 1)
405         End
406     End
407     #Set $tmp = 1
408     #While $tmp <> 10 Do
409     #Begin
410         
411     # Hide the widgets
412     HideWidget 21
413     Set $tmp = 21
414     While $tmp <> 25 Do
415     Begin
416         HideWidget $tmp
417         Set $tmp = (Add $tmp 1)
418     End
419     Set $tmp = 26
420     While $tmp <> 29 Do
421     Begin
422         HideWidget $tmp
423         Set $tmp = (Add $tmp 1)
424     End
425     Set $tmp = 39
426     While $tmp <> 59 Do
427     Begin
428         HideWidget $tmp
429         Set $tmp = (Add $tmp 1)
430     End
432     Do {All (FvwmScript-NoteMessage) Delete}
435 # ---------------------------------------------------------------------------
437 # Periodic Task
439 # ---------------------------------------------------------------------------
441 PeriodicTasks
442 Begin
444 #----------------------------------------------------------------------------
445 # config tool switching
447     If $HideThemeChooser == {1} Then
448     Begin
449         Set $HideThemeChooser = 0
450         Set $tmp = 5
451         While $tmp <> 10 Do
452         Begin
453             HideWidget $tmp
454             Set $tmp = (Add $tmp 1)
455         End
456         Set $tmp = 11
457         While $tmp <> 21 Do
458         Begin
459             HideWidget $tmp
460             Set $tmp = (Add $tmp 1)
461         End
462         HideWidget 100
463     End
465     If $HideGeneralSettings == {1} Then
466     Begin
467         Set $HideGeneralSettings = 0
468         Set $tmp = 21
469         While $tmp <> 25 Do
470         Begin
471             HideWidget $tmp
472             Set $tmp = (Add $tmp 1)
473         End
474         Set $tmp = 26
475         While $tmp <> 29 Do
476         Begin
477             HideWidget $tmp
478             Set $tmp = (Add $tmp 1)
479         End
480     End
482     If $HideSession == {1} Then
483     Begin
484         Set $HideSession = 0
485         Set $tmp = 39
486         While $tmp <> 59 Do
487         Begin
488             HideWidget $tmp
489             Set $tmp = (Add $tmp 1)
490         End
491     End
493     If $ShowThemeChooser == {1} Then
494     Begin
495         Set $ShowThemeChooser = 0
496         Set $ConfigTool = {TS}
497         Set $tmp = 5
498         While $tmp <> 10 Do
499         Begin
500             ShowWidget $tmp
501             Set $tmp = (Add $tmp 1)
502         End
503         Set $tmp = 11
504         While $tmp <> 21 Do
505         Begin
506             ShowWidget $tmp
507             Set $tmp = (Add $tmp 1)
508         End
509         ShowWidget 100
510     End
512     If $ShowGeneralSettings == {1} Then
513     Begin
514         Set $ShowGeneralSettings = 0
515         Set $ConfigTool = {GS}
516         Set $tmp = 21
517         While $tmp <> 25 Do
518         Begin
519             ShowWidget $tmp
520             Set $tmp = (Add $tmp 1)
521         End
522         ShowWidget 26
523         If $SettingsIndex <> 0 Then
524         Begin
525             ShowWidget 27
526             ShowWidget 28
527         End         
528     End
530     If $ShowSession == {1} Then
531     Begin
532         Set $ShowSession = 0
533         Set $ConfigTool = {SM}
534         Set $tmp = 39
535         While $tmp <> 46 Do
536         Begin
537             ShowWidget $tmp
538             Set $tmp = (Add $tmp 1)
539         End
540         If $SMEditorState == 0 Then
541         Begin
542             ShowWidget 46
543             ShowWidget 47
544             ShowWidget 48
545             ShowWidget 58
546         End
547         Else
548         Begin
549             Set $tmp = 49
550             While $tmp <> 55 Do
551             Begin
552                 ShowWidget $tmp
553                 Set $tmp = (Add $tmp 1)
554             End
555             If $SMEditorState == 1 Then
556                 ShowWidget 55
557             Else
558                 ShowWidget 56
559         End
560         Set $UpdateSessionUpTime = 1
561     End
563 #-----------------------------------------------------------------------------
564 # TS & GS & SM
566 # -----------------------------------------------
567 # Apply for TS & GS
569     If $ApplyTSCmdOpts == 1 Then
570     Begin
571         Set $ApplyTSCmdOpts = 0
572         Set $CMD = {apply-ts-cmd-opts|}
573         # execute the CMD
574         SendSignal 999 2
575         If $RES <> {0000} Then
576         Begin
577             Set $SwitchCmd = $RES
578             If $SwitchCmd <> {} Then
579             Begin
580                 # fs
581                 Do $SwitchCmd
582                 Set $UpdateAllTSLists = 1
583                 Set $UpdateSettingsListAndVariants = 1
584                 Set $SendUpdateMsg = 1
585                 Set $NullMessage = 1
586             End
587             Else
588             Begin
589                 ChangeTitle 95 $l_NoChanges
590             End
591         End
592     End
594 # -----------------------------------------------
595 # refresh or update for TS & GS & SM 
596     If $RefreshORUpdate == 1 Then
597     Begin
598         Set $RefreshORUpdate = 0
599         Set $CMD = {update }$RefreshUpdateValue{|}
600         # execute the CMD
601         SendSignal 999 2
602         If $RefreshUpdateValue == 1 Then
603             Do {FuncFvwmThemesFresh}
604         Set $UpdateSMLists = 1
605         Set $UpdateAllTSLists = 1
606         Set $UpdateSettingsListAndVariants = 1
607         Set $SendUpdateMsg = 1
608         Set $NullMessage = 1
609     End
610         
611 #-----------------------------------------------------------------------------
612 # TS
614 #------------------------------------------------
615 # update Theme Selectors List
617     If $UpdateAllTSLists == {1} Then
618     Begin
619         Set $UpdateAllTSLists = 0
620         Set $CMD = {all-ts-lists }$ThemeIndex{ }$CSCompIndex{|}
621         # execute the CMD
622         SendSignal 999 2
623         If $RES <> {0000} Then
624         Begin
625             Set $ThemesList = (Parse $RES 1)
626             ChangeTitle 6 $ThemesList
627             Set $tmp = (Parse $RES 2)
628             If $ThemeIndex <> 0 Then
629             Begin
630                 Set $ThemeComponents = $tmp
631                 ChangeTitle 12 $ThemeComponents
632             End
633             Set $CurrentConfig = (Parse $RES 3)
634             ChangeTitle 17 $CurrentConfig
635             If $CSCompIndex <> 0 Then
636             Begin
637                 Set $CSCompName = (Parse $RES 4)
638                 Set $CSThemeName = (Parse $RES 5)
639                 Set $tmp = (Parse $RES 6)
640                 Set $CSCompHasOpt = (StrCopy $tmp 1 1)
641                 Set $CSCompIsSet = (StrCopy $tmp 2 2)
642                 Set $CSCompCanBeDropped = (StrCopy $tmp 3 3)
643                 Set $CSCompIsLocked = (StrCopy $tmp 4 4)
644                 Set $UpdateCSButtons = 1
645             End
646         End
647     End
649     If $UpdateCurrentConfig == 1 Then
650     Begin
651         Set $UpdateCurrentConfig = 0
652         Set $CMD = {current-config }$CSCompIndex{|}
653         # execute the CMD
654         SendSignal 999 2
655         If $RES <> {0000} Then
656         Begin
657             Set $CurrentConfig = (Parse $RES 1)
658             ChangeTitle 17 $CurrentConfig
659             If $CSCompIndex <> 0 Then
660             Begin
661                 Set $CSCompName = (Parse $RES 2)
662                 Set $CSThemeName = (Parse $RES 3)
663                 Set $tmp = (Parse $RES 4)
664                 Set $CSCompHasOpt = (StrCopy $tmp 1 1)
665                 Set $CSCompIsSet = (StrCopy $tmp 2 2)
666                 Set $CSCompCanBeDropped = (StrCopy $tmp 3 3)
667                 Set $CSCompIsLocked = (StrCopy $tmp 4 4)
668                 Set $UpdateCSButtons = 1
669             End
670         End
671     End
673     If $UpdateCurrentConfigLine == 1 Then
674     Begin
675         Set $UpdateCurrentConfigLine = 0
676         If $CSCompIndex <> 0 Then
677         Begin
678             Set $CMD = {current-comp-name }$CSCompIndex{|}
679             # execute the CMD
680             SendSignal 999 2
681             If $RES <> {0000} Then
682             Begin
683                 Set $CSCompName = (Parse $RES 1)
684                 Set $CSThemeName = (Parse $RES 2)
685                 Set $tmp = (Parse $RES 3)
686                 Set $CSCompHasOpt = (StrCopy $tmp 1 1)
687                 Set $CSCompIsSet = (StrCopy $tmp 2 2)
688                 Set $CSCompCanBeDropped = (StrCopy $tmp 3 3)
689                 Set $CSCompIsLocked = (StrCopy $tmp 4 4)
690                 Set $UpdateCSButtons = 1
691             End
692         End
693     End
695     If $UpdateCSButtons == 1 Then
696     Begin
697         ChangeFont 100 $SelFont
698         If $CSCompIsLocked == 1 Then
699             ChangeTitle 100 $l_Unlock
700         Else
701             ChangeTitle 100 $l_Lock
702         Set $UpdateCSButtons = 0
703         If $CSCompHasOpt == 1 Then
704             ChangeFont 18 $SelFont
705         Else
706             ChangeFont 18 $ShadeFont
707         If $CSCompIsSet == 1 Then
708             ChangeFont 19 $SelFont
709         Else
710             ChangeFont 19 $ShadeFont   
711         If $CSCompCanBeDropped == 1 Then
712             ChangeFont 20 $SelFont
713         Else
714             ChangeFont 20 $ShadeFont
715     End
717 #----------------------------------------------------------------------------
718 # GS
720     If $UpdateSettingsListAndVariants == 1 Then
721     Begin
722         Set $UpdateSettingsListAndVariants = 0
723         If $SettingsComponent <> {} Then
724         Begin
725             Set $CMD = {settings-config-and-variant }$SettingsComponent{ default }$SettingsIndex{|}
726         End
727         Else
728         Begin
729             Set $CMD = {settings-config-and-variant None None 0|}
730         End
731         # execute the CMD
732         SendSignal 999 2
733         If $RES <> {0000} Then
734         Begin
735             Set $SettingsConfig = (Parse $RES 1)
736             ChangeTitle 22 $SettingsConfig
737             If $SettingsComponent <> {} Then
738             Begin
739                 Set $SettingsVariants = (Parse $RES 2)
740                 ChangeTitle 27 $SettingsVariants
741             End
742         End
743     End
745     If $UpdateSettingsList == 1 Then
746     Begin
747         Set $UpdateSettingsList = 0
748         Set $CMD = {settings-config|}
749         # execute the CMD
750         SendSignal 999 2
751         If $RES <> {0000} Then
752         Begin
753             Set $SettingsConfig = $RES
754             ChangeTitle 22 $SettingsConfig
755         End
756     End
758 #----------------------------------------------------------------------------
759 # SM
761     If $ConfigTool == {SM} Then
762     Begin
763         If (RemainderOfDiv (GetTime) 60)== 0 Then
764             Set $UpdateSessionUpTime = 1
765     End
767     If $UpdateSessionUpTime == 1 Then
768     Begin
769         Set $UpdateSessionUpTime = 0
770         Set $CMD = {session-uptime|}
771         # execute the CMD
772         SendSignal 999 2
773         If $RES <> {0000} Then
774         Begin
775             Set $SessionUpTime = $RES
776             Set $tmp = $l_CurrentSession{: }$CurrentSession{                 }$l_UpTime{:  }$SessionUpTime
777             ChangeTitle 39 $tmp
778         End
779     End
781     If $ShowSMEditor == 1 Then
782     Begin
783         Set $ShowSMEditor = 0
784         HideWidget 46
785         HideWidget 47
786         HideWidget 48
787         HideWidget 58
788         If $SMEditorState == 3 Then
789         Begin
790             ShowWidget 57
791             ShowWidget 54
792             ShowWidget 53
793             ChangeTitle 53 $l_Yes
794             ChangeTitle 54 $l_No
795         End
796         Else
797         Begin
798             Set $tmp = 49
799             While $tmp <> 55 Do
800             Begin
801                 ShowWidget $tmp
802                 Set $tmp = (Add $tmp 1)
803             End  
804             If $SMEditorState == 1 Then
805                 ShowWidget 55
806             Else
807                 ShowWidget 56
808             ChangeTitle 53 $l_Ok
809             ChangeTitle 54 $l_Cancel
810         End
811     End
813     If $HideSMEditor == 1 Then
814     Begin
815         Set $HideSMEditor = 0 
816         Set $tmp = 49
817         While $tmp <> 58 Do
818         Begin
819             HideWidget $tmp
820             Set $tmp = (Add $tmp 1)
821         End
822         ShowWidget 46
823         ShowWidget 47
824         ShowWidget 48
825         ShowWidget 58
826         Set $SMEditorState = 0
827     End
829     If $UpdateSMLists == 1 Then
830     Begin
831         Set $UpdateSMLists = 0
832         Set $CMD = {session-info|}
833         # execute the CMD
834         SendSignal 999 2
835         If $RES <> {0000} Then
836         Begin
837             Set $CurrentSession = (Parse $RES 1)
838             Set $SessionUpTime = (Parse $RES 2)
839             Set $tmp = {Current Session: }$CurrentSession{                 Up Time:  }$SessionUpTime
840             ChangeTitle 39 $tmp
841             Set $SessionList = (Parse $RES 3)
842             ChangeTitle 41 $SessionList
843             Set $ConfigurationList = (Parse $RES 4)
844             ChangeTitle 52 $ConfigurationList
845         End
846     End
848 #----------------------------------------------------------------------------
849 # TS, GS and SM
851     If $NullMessage == {1} Then
852     Begin
853         Set $NullMessage = 0
854         Set $msg = {}
855         ChangeTitle 95 $msg
856     End
858     If $SpecialMessage <> {} Then
859     Begin
860         ChangeTitle 95 $SpecialMessage
861         Set $SpecialMessage = {}
862     End
864 #----------------------------------------------------------------------------
867     If $SendUpdateMsg == 1 Then
868     Begin
869         Set $SendUpdateMsg = 0
870         Do {SendToModule FvwmScript-ComponentProperties SendString 1 1 update}
871     End
876 # ---------------------------------------------------------------------------
878 # QuitFunc
880 # ---------------------------------------------------------------------------
881 QuitFunc
882 Begin
883    Do {SendToModule FvwmScript-ComponentProperties SendString 1 1 exit}
886 # ---------------------------------------------------------------------------
888 # Now the widgets
890 # ---------------------------------------------------------------------------
891 # ---------------------------------------------------------------------------
893 # The action widget
895 # ---------------------------------------------------------------------------
897 Widget 999
898 Property
899     Flags Hidden
900     Position 0 0
901     Size 0 0
902     Type ItemDraw
903     Title {}
904 Main
905 Case message of
907     SingleClic :
908     Begin
909     End
911     # Apply for TS & GS
912     1 :
913     Begin
914         Set $CMD = {apply-ts-cmd-opts|}
915         # execute the CMD
916         SendSignal 999 2
917         If $RES <> {0000} Then
918         Begin
919             Set $SwitchCmd = $RES
920             If $SwitchCmd <> {} Then
921             Begin
922                 # fs
923                 Do $SwitchCmd
924                 Set $UpdateAllTSLists = 1
925                 Set $UpdateSettingsListAndVariants = 1
926                 Set $SendUpdateMsg = 1
927                 Set $NullMessage = 1
928             End
929             Else
930             Begin
931                 ChangeTitle 95 $l_NoChanges
932             End
933         End
934     End
936     2 :
937     Begin
938         Set $tmp = {}
939         Set $count = 0
940         While $tmp == {} Do
941         Begin
942             Set $tmp = (SendMsgAndGet $ComName $CMD 1)
943             Set $count = (Add $count 1)
944             If $count == 10 Then
945             Begin
946                 If $tmp == {} Then
947                     Set $tmp = {0000}
948             End
949         End
950         Set $RES = $tmp
951     End
954 # ---------------------------------------------------------------------------
956 # Head: GUI chooser and rectangle delimiter
958 # ---------------------------------------------------------------------------
960 Widget 1
961 Property
962     Flags NoReliefString NoFocus
963     Position 90 10
964     Size 175 20
965     Type ItemDraw
966     Title {}
967 Main
968 Case message of
969  SingleClic :
970  Begin
971  End
973 # message from FvwmScript-ComponentProperties
974  1 :
975  Begin
976     Set $ls = (LastString)
977     Set $id = (StrCopy $ls 1 1)
979     If $id == {1} Then
980     Begin
981         If $ls == {1quit} Then
982         Begin
983             Set $PropertyEditorOne = {}
984             Set $PropertyEditorOneTandC = {}
985         End
986         If $ls == {1update} Then
987         Begin
988             Set $UpdateCurrentConfig = 1
989         End
990         If $ls == {1updatequit} Then
991         Begin
992             Set $PropertyEditorOne = {}
993             Set $PropertyEditorOneTandC = {}
994             Set $UpdateCurrentConfig = 1
995         End
996     End
998     If $id == {2} Then
999     Begin
1000         If $ls == {2quit} Then
1001         Begin
1002             Set $PropertyEditorTwo = {}
1003             Set $PropertyEditorTwoTandC = {}
1004          End
1005          If $ls == {2update} Then
1006          Begin
1007             Set $UpdateCurrentConfig = 1
1008          End
1009          If $ls == {2updatequit} Then
1010          Begin
1011             Set $PropertyEditorTwo = {}
1012             Set $PropertyEditorTwoTandC = {}
1013             Set $UpdateCurrentConfig = 1
1014          End
1015     End
1017     If $id == {3} Then
1018     Begin
1019         If $ls == {3quit} Then
1020         Begin
1021             Set $PropertyEditorLast = {}
1022             Set $PropertyEditorLastTandC = {}
1023          End
1024          If $ls == {3update} Then
1025          Begin
1026             Set $UpdateCurrentConfig = 1
1027          End
1028          If $ls == {3updatequit} Then
1029          Begin
1030             Set $PropertyEditorLast = {}
1031             Set $PropertyEditorLastTandC = {}
1032             Set $UpdateCurrentConfig = 1
1033         End
1034     End
1035     Set $ls = {}
1036  End
1040 Widget 2
1041 Property
1042     Flags NoReliefString
1043     Position 270 5
1044     Type PopupMenu
1045     Title {       Themes Selector        |       General Settings        |        FVWM Themes Sessions     }
1046 Main
1047 Case message of
1048  SingleClic :
1049  Begin
1050     Set $tmp = (GetValue 2)
1051     If $tmp == 1 Then
1052     Begin
1053         Set $ShowThemeChooser = 1
1054         Set $HideSession = 1
1055         Set $HideGeneralSettings = 1
1056     End
1057     If $tmp == 2 Then
1058     Begin
1059         Set $HideThemeChooser = 1
1060         Set $HideSession = 1
1061         Set $ShowGeneralSettings = 1
1062     End
1063     If $tmp == 3 Then
1064     Begin
1065         Set $HideThemeChooser = 1
1066         Set $HideGeneralSettings = 1
1067         Set $ShowSession = 1
1068     End
1069     Set $NullMessage = 1
1070  End
1074 Widget 3
1075 Property
1076     Size 590 410
1077     Position 5 35
1078     Type Rectangle
1079 Main
1080 Case message of
1081     SingleClic :
1082     Begin
1083     End
1086 #-----------------------------------------------------------------------------
1088 # Theme Chooser
1090 #-----------------------------------------------------------------------------
1092 #-----------------------------------------------------------------------------
1093 # List of themes
1095 Widget 5
1096 Property
1097     Flags NoReliefString NoFocus
1098     Position 20 45
1099     Size 270 20
1100     Type ItemDraw
1101     Title {}
1102 Main
1103 Case message of
1104     SingleClic :
1105     Begin
1106     End
1109 Widget 6
1110 Property
1111     Flags NoReliefString
1112     Position 20 65
1113     Size 270 150
1114     Font -*-fixed-medium-r-semicondensed-*-13-*
1115     Type List
1116     Title {}
1117 Main
1118 Case message of
1119 SingleClic :
1120  Begin
1121     Set $index = (GetValue 6)
1122     If $index <> $ThemeIndex Then
1123     Begin
1124         Set $CMD = {theme-components }$index{|}
1125         # execute the CMD
1126         SendSignal 999 2
1127         If $RES <> {0000} Then
1128         Begin
1129             Set $safe = (Parse $RES 1)
1130             If $safe <> {None} Then
1131             Begin
1132                 Set $tmp = 7
1133                 While $tmp <> 10 Do
1134                 Begin
1135                     ChangeFont $tmp $SelFont
1136                     Set $tmp = (Add $tmp 1)
1137                 End
1138                 Set $ThemeIndex = $index
1139                 Set $ThemeComponents = $safe
1140                 Set $ThemeName = (Parse $RES 2)
1141                 Set $ThemeDir = (Parse $RES 3)
1142                 ChangeTitle 12 $ThemeComponents
1143                 Set $t = $l_B_Component $ThemeName $l_A_Component
1144                 ChangeTitle 11 $t
1146                 Set $NullMessage = 1
1147                 Set $ComponentName = {}
1148                 ChangeValue 12 0
1149                 Set $tmp = 13
1150                 While $tmp <> 16 Do
1151                 Begin
1152                     ChangeFont $tmp $ShadeFont
1153                     Set $tmp = (Add $tmp 1)
1154                 End
1155             End
1156         End
1157     End
1158  End
1161 # ReadMe
1162 Widget 7
1163 Property
1164     Flags NoReliefString
1165     Position 25 225
1166     Size 80 20
1167     Type PushButton
1168     Title {}
1169 Main
1170 Case message of
1171  SingleClic :
1172  Begin
1173     If $ThemeName == {} Then
1174     Begin
1175         ChangeTitle 95 $l_msg_MustSelecteTheme
1176     End
1177     Else
1178     Begin
1179         Do {FuncFvwmViewFile }$ThemeDir{/README}
1180         Set $NullMessage = 1
1181     End
1182  End
1185 # Load All
1186 Widget 8
1187 Property
1188     Flags NoReliefString
1189     Position 115 225
1190     Size 80 20
1191     Type PushButton
1192     Title {}
1193 Main
1194  Case message of
1195  SingleClic :
1196  Begin
1197     If $ThemeName == {} Then
1198     Begin
1199         ChangeTitle 95 $l_msg_MustSelecteTheme
1200     End
1201     Else
1202     Begin
1203         Set $CMD = {load-all }$ThemeName{|}
1204         # execute the CMD
1205         SendSignal 999 2
1206         Set $NullMessage = 1
1207         Set $UpdateAllTSLists = 1
1208     End
1209  End
1212 # load look
1213 Widget 9
1214 Property
1215     Flags NoReliefString
1216     Position 205 225
1217     Size 80 20
1218     Type PushButton
1219     Title {}
1220 Main
1221  Case message of
1222  SingleClic :
1223  Begin
1224     If $ThemeName == {} Then
1225     Begin
1226         ChangeTitle 95 $l_msg_MustSelecteTheme
1227     End
1228     Else
1229     Begin
1230         Set $CMD = {load-main-look }$ThemeName{|}
1231         # execute the CMD
1232         SendSignal 999 2
1233         Set $NullMessage = 1
1234         Set $UpdateAllTSLists = 1
1235     End
1236   End
1239 #-----------------------------------------------------------------------------
1240 # List of component of a theme
1242 Widget 11
1243 Property
1244     Flags NoReliefString NoFocus
1245     Position 310 45
1246     Size 270 20
1247     Type ItemDraw
1248     Title {}
1249 Main
1250 Case message of
1251     SingleClic :
1252     Begin
1253     End
1256 Widget 12
1257 Property
1258     Flags NoReliefString
1259     Position 310 65
1260     Size 270 150
1261     Font -*-fixed-medium-r-semicondensed-*-13-*
1262     Type List
1263     Title {}
1264 Main
1265 Case message of
1266  SingleClic :
1267  Begin
1268     Set $index = (GetValue 12)
1269     If $ThemeName <> {} Then
1270     Begin
1271         Set $CMD = {component-name }$ThemeName{ }$index{|}
1272         # execute the CMD
1273         SendSignal 999 2
1274         If $RES <> {0000} Then
1275         Begin
1276             If $RES <> {1} Then
1277             Begin
1278                 Set $ComponentIndex = $index
1279                 # 15 is not yet avaiable
1280                 ChangeFont 13 $SelFont
1281                 ChangeFont 14 $SelFont
1282                 Set $ComponentName = $RES
1283                 Set $NullMessage = 1
1284             End
1285             Else
1286             Begin
1287                 Set $ComponentName = {}
1288                 # 15 is not yet avaiable
1289                 ChangeFont 13 $ShadeFont
1290                 ChangeFont 14 $ShadeFont
1291                 Set $NullMessage = 1
1292             End
1293         End
1294     End
1295  End
1298 # Load
1299 Widget 13
1300 Property
1301     Flags NoReliefString
1302     Position 315 225
1303     Size 80 20
1304     Type PushButton
1305     Title {}
1306 Main
1307 Case message of
1308  SingleClic :
1309  Begin
1310     If $ComponentName == {} Then
1311     Begin
1312         ChangeTitle 95 $l_MustSelectThemeComp
1313     End
1314     Else
1315     Begin
1316         Set $CMD = {load-one }$ThemeName{ }$ComponentName{|}
1317         # execute the CMD
1318         SendSignal 999 2
1319         Set $NullMessage = 1
1320         Set $UpdateAllTSLists = 1
1321     End
1322  End
1325 # Info
1326 Widget 14
1327 Property
1328     Flags NoReliefString
1329     Position 405 225
1330     Size 80 20
1331     Type PushButton
1332     Title {}
1333 Main
1334 Case message of
1335  SingleClic :
1336  Begin
1337     If $ComponentName == {} Then
1338     Begin
1339         ChangeTitle 95 $l_MustSelectThemeComp
1340     End
1341     Else
1342     Begin
1343         #ChangeTitle 95 $l_NoHelp
1344         Do {FuncFvwmShowComponentInfo }$ComponentName{@}$ThemeName
1345     End
1346  End
1349 # View
1350 Widget 15
1351 Property
1352     Flags NoReliefString
1353     Position 495 225
1354     Size 80 20
1355     Type PushButton
1356     Title {}
1357 Main
1358 Case message of
1359  SingleClic :
1360  Begin
1361         ChangeTitle 95 $l_NoScreenShot
1362  End
1365 #-----------------------------------------------------------------------------
1366 # Current/setted Config
1368 Widget 16
1369 Property
1370     Flags NoReliefString NoFocus
1371     Position 30 265
1372     Size 445 20
1373     Type ItemDraw
1374     Title {}
1375 Main
1376 Case message of
1377     SingleClic :
1378     Begin
1379     End
1382 Widget 17
1383 Property
1384     Flags NoReliefString
1385     Position 30 290
1386     Size 445 115
1387     Font -*-fixed-medium-r-semicondensed-*-13-*
1388     Type List
1389     Title {}
1390 Main
1391 Case message of
1392 SingleClic :
1393  Begin
1394     Set $index = (GetValue 17)
1395     If $index <> $CSCompIndex Then
1396     Begin
1397         Set $CSCompIndex = $index
1398         Set $UpdateCurrentConfigLine = 1
1399         Set $NullMessage = 1
1400     End
1401  End
1404 # Properties
1405 Widget 18
1406 Property
1407     Flags NoReliefString
1408     Position 490 290
1409     Size 80 20
1410     Type PushButton
1411     Title {}
1412 Main
1413 Case message of
1414 SingleClic :
1415  Begin
1417     Set $break = 1
1418     Set $test = 0
1419     If $CSCompIndex == 0 Then
1420     Begin
1421         ChangeTitle 95 $l_MustSelectCurrentComp
1422         Set $break = 0
1423     End
1424     If $break == 1 Then
1425     Begin
1426         If $CSCompName == {} Then
1427         Begin
1428             Set $break = 0
1429             ChangeTitle 95 {Internal error: no component name for Properties}
1430         End
1431     End
1432     If $break == 1 Then
1433     Begin
1434         If $CSThemeName == {} Then
1435         Begin
1436             Set $break = 0
1437             ChangeTitle 95 {Internal error: no theme name for Properties}
1438         End
1439     End
1440     If $CSCompHasOpt == 0 Then
1441         Set $test = 1
1442     Set $test = (Mult $break $test) 
1443     If $test == 1 Then
1444     Begin
1445         ChangeTitle 95 $l_NoProperties
1446         Set $break = 0
1447     End
1448     If $break == 1 Then
1449     Begin
1450         Set $break = 0
1451         Set $tmp = $CSCompName{@}$CSThemeName
1452         Set $arg={FvwmScript-ComponentProperties --text-colorset }$TextColorset{ --com-pid }$pid{ --component }$CSCompName{ --theme }$CSThemeName
1453         If $tmp == $PropertyEditorOneTandC Then
1454             Set $break = 1
1455         If $tmp == $PropertyEditorTwoTandC Then
1456             Set $break = 1
1457         If $tmp == $PropertyEditorLastTandC Then
1458             Set $break = 1
1459         If $break == 1 Then
1460         Begin
1461             Set $msg = $l_PropertyEditor{ }$tmp{ }$l_AlreadyActive
1462             ChangeTitle 95 $msg
1463         End
1464         Else
1465         Begin
1466             Set $break = 1
1467             If $PropertyEditorOne == {} Then
1468             Begin
1469                 Set $arg = $arg{ --id 1}
1470                 Set $PropertyEditorOne = (LaunchScript $arg)
1471                 Set $PropertyEditorOneTandC = $tmp
1472                 Set $break = 0
1473                 Set $NullMessage = 1
1474             End
1475             If $PropertyEditorTwo == {} Then
1476                 Set $test = 1
1477             Set $test = (Mult $test $break)
1478             If $test == 1 Then
1479             Begin
1480                 Set $arg = $arg{ --id 2}
1481                 Set $PropertyEditorTwo = (LaunchScript $arg)
1482                 Set $PropertyEditorTwoTandC = $tmp
1483                 Set $break = 0
1484                 Set $NullMessage = 1
1485             End
1486             If $PropertyEditorLast == {} Then
1487                 Set $test = 1
1488             Set $test = (Mult $test $break)
1489             If $test == 1 Then
1490             Begin
1491                 Set $arg = $arg{ --id 3}
1492                 Set $PropertyEditorLast = (LaunchScript $arg)
1493                 Set $PropertyEditorLastTandC = $tmp
1494                 Set $break = 0
1495                 Set $NullMessage = 1
1496             End
1497             If $break == 1 Then
1498             Begin
1499                 ChangeTitle 95 $l_OnlyThreeEditor
1500             End
1501         End
1502     End
1503  End
1506 # Restore
1507 Widget 19
1508 Property
1509     Flags NoReliefString
1510     Position 490 320
1511     Size 80 20
1512     Type PushButton
1513     Title {}
1514 Main
1515 Case message of
1516 SingleClic :
1517  Begin
1518     Set $break = 1
1519     Set $test = 0
1520     If $CSCompIndex == 0 Then
1521     Begin
1522         ChangeTitle 95 $l_MustSelectCurrentComp
1523         Set $break = 0
1524     End
1525     If $CSCompIsSet == 0 Then
1526         Set $test = 1
1527     Set $test = (Mult $break $test) 
1528     If $test == 1 Then
1529     Begin
1530         ChangeTitle 95 $l_CompNotSet
1531         Set $break = 0
1532     End
1533     If $break == 1 Then
1534     Begin
1535         Set $CMD = {restore }$CSCompName{|}
1536         # execute the CMD
1537         SendSignal 999 2
1538         Set $UpdateAllTSLists = 1
1539         Set $NullMessage = 1
1540         Set $SendUpdateMsg = 1
1541     End
1542  End
1545 # Drop
1546 Widget 20
1547 Property
1548     Flags NoReliefString
1549     Position 490 350
1550     Size 80 20
1551     Type PushButton
1552     Title {}
1553 Main
1554 Case message of
1555 SingleClic :
1556  Begin
1557     Set $break = 1
1558     Set $test = 0
1559     If $CSCompIndex == 0 Then
1560     Begin
1561         ChangeTitle 95 $l_MustSelectCurrentComp
1562         Set $break = 0
1563     End
1564     If $CSCompCanBeDropped == 0 Then
1565         Set $test = 1
1566     Set $test = (Mult $break $test) 
1567     If $test == 1 Then
1568     Begin
1569         ChangeTitle 95 $l_NoDrop
1570         Set $break = 0
1571     End
1572     If $break == 1 Then
1573     Begin
1574         #ChangeTitle 95 $l_DropNotImp
1575         Set $CMD = {drop }$CSCompName{|}
1576         # execute the CMD
1577         SendSignal 999 2
1578         Set $UpdateAllTSLists = 1
1579         Set $NullMessage = 1
1580     End
1581  End
1584 # Lock
1585 Widget 100
1586 Property
1587     Flags NoReliefString
1588     Position 490 380
1589     Size 80 20
1590     Type PushButton
1591     Title {}
1592 Main
1593 Case message of
1594 SingleClic :
1595  Begin
1596     Set $break = 1
1597     Set $test = 0
1598     If $CSCompIndex == 0 Then
1599     Begin
1600         ChangeTitle 95 $l_MustSelectCurrentComp
1601         Set $break = 0
1602     End
1603     If $break == 1 Then
1604     Begin
1605         Set $CMD = {lock }$CSCompName{|}
1606         # execute the CMD
1607         SendSignal 999 2
1608         Set $UpdateAllTSLists = 1
1609         Set $NullMessage = 1
1610     End
1611  End
1614 #-----------------------------------------------------------------------------
1616 # General Settings Configuration
1618 #-----------------------------------------------------------------------------
1620 Widget 21
1621 Property
1622     Flags NoReliefString NoFocus
1623     Position 15 50
1624     Size 570 20
1625     Type ItemDraw
1626     Title {}
1627 Main
1628 Case message of
1629 SingleClic :
1630  Begin
1631  End
1634 Widget 22
1635 Property
1636     Flags NoReliefString
1637     Position 15 75
1638     Size 570 114
1639     Font -*-fixed-medium-r-semicondensed-*-13-*
1640     Type List
1641     Title {}
1642 Main
1643 Case message of
1644  SingleClic :
1645  Begin
1646     Set $value = (GetValue 22)
1647     If $value <> $SettingsIndex Then
1648     Begin
1649         If $SettingsIndex == 0 Then
1650         Begin
1651             ShowWidget 27
1652             ShowWidget 28
1653             # info and drop not yet supported ...
1654             ChangeFont 24 $SelFont
1655             #ChangeFont 25 $SelFont
1656         End
1657         Set $SettingsIndex = $value
1658         Set $CMD = {settings-comp }$SettingsIndex{|}
1659         # execute the CMD
1660         SendSignal 999 2
1661         If $RES <> {0000} Then
1662         Begin
1663             Set $SettingsName = (Parse $RES 1)
1664             Set $tmp = $l_VariantsFor{ }$SettingsName
1665             ChangeTitle 26 $tmp
1666             Set $SettingsComponent = (Parse $RES 2)
1667             Set $SettingsComponentIsSet = (Parse $RES 3)
1668             Set $SettingsVariants = (Parse $RES 4)
1669             ChangeTitle 27 $SettingsVariants
1670             If $SettingsComponentIsSet == 1 Then
1671                 ChangeFont 23 $SelFont
1672             Else
1673                 ChangeFont 23 $ShadeFont
1674             Set $SettingsVariantsIndex = 0
1675             ChangeValue 27 0
1676             ChangeFont 28 $ShadeFont
1677             Set $NullMessage = 1
1678         End
1679     End
1680  End
1683 # Restore
1684 Widget 23
1685 Property
1686     Flags NoReliefString
1687     Position 130 194
1688     Size 80 20
1689     Type PushButton
1690     Title {Restore}
1691 Main
1692 Case message of
1693 SingleClic :
1694  Begin
1695     Set $break = 1
1696     Set $test = 0
1697     If $SettingsIndex == 0 Then
1698     Begin
1699         ChangeTitle 95 $l_MustSelectCurrentComp
1700         Set $break = 0
1701     End
1702     If $SettingsComponentIsSet == 0 Then
1703         Set $test = 1
1704     Set $test = (Mult $break $test)
1705     If $test == 1 Then
1706     Begin
1707         ChangeTitle 95 $l_CompNotSet
1708         Set $break = 0
1709     End
1710     If $break == 1 Then
1711     Begin
1712         Set $CMD = {restore }$SettingsComponent{|}
1713         # execute the CMD
1714         SendSignal 999 2
1715         Set $UpdateSettingsListAndVariants = 1
1716         ChangeFont 23 $ShadeFont
1717         Set $NullMessage = 1
1718     End
1719  End
1722 # Info
1723 Widget 24
1724 Property
1725     Flags NoReliefString
1726     Position 380 194
1727     Size 80 20
1728     Type PushButton
1729     Title {}
1730 Main
1731 Case message of
1732 SingleClic :
1733  Begin
1734     If $SettingsComponent == {} Then
1735     Begin
1736         ChangeTitle 95 $l_MustSelectCurrentComp
1737     End
1738     Else
1739     Begin
1740         Do {FuncFvwmShowComponentInfo }$SettingsComponent{@default}
1741         #ChangeTitle 95 $l_NoHelp
1742     End
1743  End
1746 # component
1747 Widget 26
1748 Property
1749     Flags NoReliefString NoFocus
1750     Position 30 235
1751     Size 540 20
1752     Type ItemDraw
1753     Title {}
1754 Main
1755 Case message of
1756 SingleClic :
1757  Begin
1758  End
1761 Widget 27
1762 Property
1763     Flags NoReliefString
1764     Position  150 260
1765     Size 280 110
1766     Font -*-fixed-medium-r-semicondensed-*-13-*
1767     Type List
1768     Title {}
1769 Main
1770 Case message of
1771  SingleClic :
1772  Begin
1773     Set $tmp = (GetValue 27)
1774     If $tmp == 0 Then
1775         ChangeFont 28 $ShadeFont
1776     Else
1777         ChangeFont 28 $SelFont
1778     Set $NullMessage = 1
1779  End
1782 # Set
1783 Widget 28
1784 Property
1785     Flags NoReliefString
1786     Position 265 380
1787     Size 80 20
1788     Type PushButton
1789     Title {}
1790 Main
1791 Case message of
1792 SingleClic :
1793  Begin
1794     Set $SettingsVariantsIndex = (GetValue 27)
1795     If $SettingsVariantsIndex <> 0 Then 
1796     Begin
1797         Set $CMD = {set-options }$SettingsComponent{ default 1 }$SettingsVariantsIndex{|}
1798         # execute the CMD
1799         SendSignal 999 2
1800         Set $SettingsComponentIsSet = 1
1801         ChangeFont 23 $SelFont
1802         Set $UpdateSettingsListAndVariants = 1
1803         Set $NullMessage = 1
1804     End
1805     Else
1806     Begin
1807         ChangeTitle 95 $l_MustSelectVariant
1808     End
1809  End
1812 #-----------------------------------------------------------------------------
1814 # FT Sessions
1816 #-----------------------------------------------------------------------------
1817 Widget 39
1818 Property
1819     Flags NoReliefString  NoFocus
1820     Position 20 45
1821     Size 560 20
1822     Type ItemDraw
1823     Title {}
1824 Main
1825 Case message of
1826     SingleClic :
1827     Begin
1828     End
1831 # list title
1832 Widget 40
1833 Property
1834     Flags NoReliefString NoFocus
1835     Position 40 75
1836     Size 255 20
1837     Type ItemDraw
1838     Title {}
1839 Main
1840 Case message of
1841 SingleClic :
1842  Begin
1843  End
1846 Widget 41
1847 Property
1848     Flags NoReliefString
1849     Position 40 100
1850     Size 255 150
1851     Font -*-fixed-medium-r-semicondensed-*-13-*
1852     Type List
1853     Title {}
1854 Main
1855 Case message of
1856 SingleClic :
1857  Begin
1858     Set $break = 1
1859     If $SMEditorState <> 0 Then
1860     Begin
1861         ChangeTitle 95 $l_FinishEdit
1862         Set $break = 0
1863         ChangeValue 41 $SessionIndex
1864     End
1865     If $break == 1 Then
1866     Begin
1867         Set $SessionIndex = (GetValue 41)
1868         Set $CMD = {session-name }$SessionIndex{|}
1869         # execute the CMD
1870         SendSignal 999 2
1871         If $RES <> {0000} Then
1872         Begin
1873             Set $SelectedSession = $RES
1874             If $SelectedSession <> {1} Then
1875                 Set $tmp = $l_SelectedSession{ }$SelectedSession
1876             Else
1877             Begin
1878                 Set $tmp = $l_SelectedSession 
1879                 Set $SessionIndex = 0
1880                 Set $SelectedSession = {}
1881             End
1882             ChangeTitle 45 $tmp
1883             Set $NullMessage = 1
1884         End
1885     End
1886  End
1889 # Edit
1890 Widget 42
1891 Property
1892     Flags NoReliefString
1893     Position 330 115
1894     Size 80 20
1895     Type PushButton
1896     Title {}
1897 Main
1898 Case message of
1899 SingleClic :
1900  Begin
1901     Set $break = 1
1902     If $SelectedSession == {} Then
1903     Begin
1904         ChangeTitle 95 $l_MustSelectSession
1905         Set $break = 0
1906     End
1907     Set $test = 0
1908     If $SMEditorState <> 0 Then
1909         Set $test = 1
1910     Set $test = (Mult $break $test)
1911     If $test == 1 Then
1912     Begin
1913         ChangeTitle 95 $l_FinishEdit
1914         Set $break = 0
1915     End
1916     
1917     If $break == 1 Then
1918     Begin
1919         If $SelectedSession == {main} Then
1920         Begin
1921             ChangeTitle 56 $SelectedSession
1922             Set $SMEditorState = 2
1923         End
1924         Else
1925         Begin
1926             Set $SMEditorState = 1
1927             ChangeTitle 55 $SelectedSession
1928         End
1929         Set $tmp = $l_B_Edit $SelectedSession $l_A_Edit
1930         ChangeTitle 49 $tmp
1931         Set $tmp = (Add $SessionIndex 1)
1932         ChangeValue 52 $tmp
1933         Set $SMEditorType = {Edit}
1934         Set $ShowSMEditor = 1
1935         Set $NullMessage = 1    
1936     End
1937  End
1940 # Add
1941 Widget 43
1942 Property
1943     Flags NoReliefString
1944     Position 330 160
1945     Size 80 20
1946     Type PushButton
1947     Title {}
1948 Main
1949 Case message of
1950 SingleClic :
1951  Begin
1952     Set $break = 1
1953     If $SMEditorState <> 0 Then
1954     Begin
1955         ChangeTitle 95 $l_FinishEdit
1956         Set $break = 0
1957     End
1958     
1959     If $break == 1 Then
1960     Begin
1961         Set $SMEditorState = 1
1962         ChangeTitle 55 {}
1963         ChangeValue 52 1
1964         ChangeTitle 49 $l_AddSession
1965         Set $SMEditorType = {Add}
1966         Set $ShowSMEditor = 1
1967         Set $NullMessage = 1
1968     End
1969  End
1972 # Remove
1973 Widget 44
1974 Property
1975     Flags NoReliefString
1976     Position 330 205
1977     Size 80 20
1978     Type PushButton
1979     Title {}
1980 Main
1981 Case message of
1982 SingleClic :
1983  Begin
1984     Set $break = 1
1985     If $SelectedSession == {} Then
1986     Begin
1987         ChangeTitle 95 $l_MustSelectSession
1988         Set $break = 0
1989     End
1990     Set $test = 0
1991     If $SMEditorState <> 0 Then
1992         Set $test = 1
1993     Set $test = (Mult $break $test)
1994     If $test == 1 Then
1995     Begin
1996         ChangeTitle 95 $l_FinishEdit
1997         Set $break = 0
1998     End
1999     Set $test = 0
2000     If $SelectedSession == {main} Then
2001         Set $test = 1
2002     Set $test = (Mult $break $test)
2003     If $test == 1 Then
2004     Begin
2005         ChangeTitle 95 $l_NotRemoveMain
2006         Set $break = 0
2007     End
2008     Set $test = 0
2009     If $SelectedSession == $CurrentSession Then
2010         Set $test = 1
2011     Set $test = (Mult $break $test)
2012     If $test == 1 Then
2013     Begin
2014         ChangeTitle 95 $l_NotRemoveCur
2015         Set $break = 0
2016     End
2017     If $break == 1 Then
2018     Begin
2019         Set $ShowSMEditor = 1
2020         Set $SMEditorState = 3
2021         Set $SMEditorType = {Remove}
2022         Set $tmp = $l_B_ReallyRemove $SelectedSession $l_A_ReallyRemove
2023         ChangeTitle 57 $tmp
2024         Set $NullMessage = 1
2025     End
2026  End
2029 # Selected Session
2030 Widget 45
2031 Property
2032     Flags NoReliefString NoFocus
2033     Position 40 260
2034     Size 255 20
2035     Type ItemDraw
2036     Title {}
2037 Main
2038 Case message of
2039     SingleClic :
2040     Begin
2041     End
2044 Widget 46
2045 Property
2046     Flags NoReliefString NoFocus
2047     Position 70 315
2048     Type ItemDraw
2049     Font -*-fixed-medium-r-semicondensed-*-13-*
2050     Title {* To load a session, select it and click on Apply                              }
2051 Main
2052 Case message of
2053     SingleClic :
2054     Begin
2055     End
2058 Widget 47
2059 Property
2060     Flags NoReliefString NoFocus
2061     Position 70 335
2062     Type ItemDraw
2063     Font -*-fixed-medium-r-semicondensed-*-13-*
2064     Title {* To Reload the current session, click on Refresh                              }
2065 Main
2066 Case message of
2067     SingleClic :
2068     Begin
2069     End
2072 Widget 48
2073 Property
2074     Flags NoReliefString NoFocus
2075     Position 70 355
2076     Type ItemDraw
2077     Font -*-fixed-medium-r-semicondensed-*-13-*
2078     Title {* A click on "Update" will rebuild the session list                            }
2079 Main
2080 Case message of
2081     SingleClic :
2082     Begin
2083     End
2086 Widget 58
2087 Property
2088     Flags NoReliefString NoFocus
2089     Position 70 375
2090     Type ItemDraw
2091     Font -*-fixed-medium-r-semicondensed-*-13-*
2092     Title {* If you Apply, the not applied changes in the others config tools will be lost}
2094 Main
2095 Case message of
2096     SingleClic :
2097     Begin
2098     End
2101 # "editor" title
2102 Widget 49
2103 Property
2104     Flags NoReliefString NoFocus
2105     Size 510 20
2106     Position 45 290
2107     Type ItemDraw
2108     Title {}
2109 Main
2110 Case message of
2111     SingleClic :
2112     Begin
2113     End
2116 # Session name
2117 Widget 50
2118 Property
2119     Flags NoReliefString NoFocus
2120     Position 20 331
2121     Font -*-fixed-medium-r-semicondensed-*-13-*
2122     Type ItemDraw
2123     Title {                       }
2124 Main
2125 Case message of
2126     SingleClic :
2127     Begin
2128     End
2131 Widget 55
2132 Property
2133     Flags NoReliefString
2134     Position 160 325
2135     Size 130 20
2136     Type TextField
2137     Title {}
2138 Main
2139 Case message of
2140     SingleClic :
2141     Begin
2142     End
2145 Widget 56
2146 Property
2147     Flags NoReliefString NoFocus
2148     Position 160 330
2149     Type ItemDraw
2150     Title {main}
2151 Main
2152 Case message of
2153     SingleClic :
2154     Begin
2155     End
2158 # Configurtaion of ...
2159 Widget 51
2160 Property
2161     Flags NoReliefString NoFocus
2162     Position 310 331
2163     Type ItemDraw
2164     Font -*-fixed-medium-r-semicondensed-*-13-*
2165     Title {                      }
2166 Main
2167 Case message of
2168     SingleClic :
2169     Begin
2170     End
2173 Widget 52
2174 Property
2175     Flags NoReliefString
2176     Position 450 325
2177     Type PopupMenu
2178     Title {   Default   }
2179 Main
2180 Case message of
2181     SingleClic :
2182     Begin
2183     End
2186 # OK
2187 Widget 53
2188 Property
2189     Flags NoReliefString
2190     Position  185 370
2191     Size 70 20
2192     Type PushButton
2193     Title {}
2194 Main
2195 Case message of
2196 SingleClic :
2197  Begin
2198     Set $break = 1 
2199     Set $session = {main}
2200     If $SMEditorState == 1 Then
2201         Set $session = (GetTitle 55)
2202     Set $config = (GetValue 52)
2203     If $SMEditorType == {Edit} Then
2204     Begin
2205         Set $CMD = {edit-session }$SelectedSession{:}$session{:}$config{|}
2206     End
2207     If $SMEditorType == {Add} Then
2208     Begin
2209         Set $CMD = {add-session }$session{:}$config{|}
2210     End
2211     If $SMEditorType == {Remove} Then
2212     Begin
2213         Set $CMD = {remove-session }$SelectedSession{|}
2214     End
2215     # execute the CMD
2216     SendSignal 999 2
2217     If $RES <> {0000} Then
2218     Begin
2219         If $RES == {Err1} Then
2220         Begin
2221             Set $break = 0
2222             ChangeTitle 95 $l_NameNotValid
2223         End
2224         If $RES == {Err2} Then
2225         Begin
2226             Set $break = 0
2227             ChangeTitle 95 $l_NameAlreadyUse
2228         End
2229         If $RES == {Err3} Then
2230         Begin
2231             Set $break = 0
2232             ChangeTitle 95 $l_SysErr
2233         End
2234         If $break == 1 Then
2235         Begin
2236             # Maybe need to do the translation one day
2237             If $SMEditorType == {Add} Then
2238             Begin
2239                 Set $msg = {Adding }$session{ FVWM Themes Session}
2240                 ChangeTitle 95 $msg
2241             End
2242             If $SMEditorType == {Edit} Then
2243             Begin
2244                 Set $msg = {Applying Changes To }$session{ FVWM Themes Session}
2245                 ChangeTitle 95 $msg
2246             End
2247             If $SMEditorType == {Remove} Then
2248             Begin
2249                 Set $msg = {Removing }$SelectedSession{ FVWM Themes Session}
2250                 ChangeTitle 95 $msg
2251                 Set $session = (Parse $RES 1)
2252                 Set $RES = (Parse $RES 2)
2253             End
2254             ChangeValue 41 $RES
2255             Set $SessionIndex = $RES
2256             Set $SelectedSession = $session
2257             Set $t = {Selected Session: }$SelectedSession
2258             ChangeTitle 45 $t
2259             If $SMEditorType <> {Remove} Then
2260                 Set $SpecialMessage = $l_ClickNewSession
2261             Else
2262                 Set $NullMessage = 1
2263             Set $HideSMEditor = 1
2264             # this update also the current session ...
2265             Set $UpdateSMLists = 1
2266         End
2267     End
2268  End
2271 # Cancel
2272 Widget 54
2273 Property
2274     Flags NoReliefString
2275     Position 345 370
2276     Size 70 20
2277     Type PushButton
2278     Title {}
2279 Main
2280 Case message of
2281 SingleClic :
2282  Begin
2283     Set $HideSMEditor = 1
2284     Set $NullMessage = 1         
2285  End
2288 # Really Remove ?
2289 Widget 57
2290 Property
2291     Flags NoReliefString NoFocus
2292     Size 510 20
2293     Position 45 320
2294     Type ItemDraw
2295     Title {}
2296 Main
2297 Case message of
2298     SingleClic :
2299     Begin
2300     End
2303 #-----------------------------------------------------------------------------
2305 # Message, Apply, quit, ...
2307 #-----------------------------------------------------------------------------
2309 # Message
2310 Widget 95
2311 Property
2312     Flags NoReliefString NoFocus
2313     Position 20 417
2314     Size 560 20
2315     Type ItemDraw
2316     Title {}
2317 Main
2318 Case message of
2319     SingleClic :
2320     Begin
2321     End
2324 # Apply
2325 Widget 96
2326 Property
2327     Flags NoReliefString
2328     Position 30 450
2329     Size 85 20
2330     Type PushButton
2331     Title {}
2332 Main
2333 Case message of
2334  SingleClic :
2335  Begin
2336     If $ConfigTool == {SM} Then
2337     Begin
2338         ChangeTitle 95 $l_ApplyNewSession
2339         Set $break = 0
2340         If $SelectedSession == {} Then
2341         Begin
2342             ChangeTitle 95 $l_MustSelectSession
2343             Set $break = 1
2344         End
2345         If $SMEditorState <> 0 Then
2346         Begin
2347             ChangeTitle 95 $l_FinishEdit
2348             Set $break = 1
2349         End
2350         # need to fix that one day
2351         #If $SelectedSession == $CurrentSession Then
2352         #Begin
2353         #   Set $msg = {Warn: You already use }$CurrentSession{ session}
2354         #   ChangeTitle 95 $msg
2355         #   Set $break = 1
2356         #End
2357         If $break == 0 Then
2358         Begin
2359             #ChangeTitle 95 $l_ApplyNewSession
2360             Set $CMD = {apply-sm }$SelectedSession{|}
2361             # execute the CMD
2362             SendSignal 999 2
2363             Set $UpdateSMLists = 1
2364             Set $UpdateAllTSLists = 1
2365             Set $UpdateSettingsListAndVariants = 1
2366             Do {SendToModule FvwmScript-ComponentProperties SendString 1 1 exit}
2367             Set $NullMessage = 1
2368             Do {Read themes-rc-3}
2369             Do {FuncFvwmThemesFresh}
2370         End
2371     End
2372     Else
2373     Begin
2374         ChangeTitle 95 $l_ApplyThemeConfig
2375         #Set $ApplyTSCmdOpts = 1
2376         SendSignal 999 1
2377     End
2378  End
2381 # Refresh
2382 Widget 97
2383 Property
2384     Flags NoReliefString
2385     Position 145 450
2386     Size 85 20
2387     Type PushButton
2388     Title {}
2389 Main
2390 Case message of
2391  SingleClic :
2392  Begin
2393         ChangeTitle 95 $l_Refresh
2394         Set $RefreshORUpdate = 1
2395         Set $RefreshUpdateValue = 1
2396  End
2399 # Update
2400 Widget 94
2401 Property
2402     Flags NoReliefString
2403     Position 260 450
2404     Size 85 20
2405     Type PushButton
2406     Title {}
2407 Main
2408 Case message of
2409  SingleClic :
2410  Begin
2411         ChangeTitle 95 $l_Update
2412         Set $RefreshORUpdate = 1
2413         Set $RefreshUpdateValue = 0
2414  End
2417 # Help
2418 Widget 98
2419 Property
2420     Flags NoReliefString
2421     Position 375 450
2422     Size 85 20
2423     Type PushButton
2424     Title {}
2425 Main
2426  Case message of
2427   SingleClic :
2428   Begin
2429     Set $arg={FvwmScript-Help --in-line-doc FvwmScript-ThemesCenter --title "Themes Center"}
2430     If $TextColorset <> {} Then
2431         Set $arg=$arg{ --text-colorset }$TextColorset
2432     If $Lang <> {} Then
2433         Set $arg=$arg{ --lang }$Lang
2434     Set $dummy = (LaunchScript $arg)
2435   End
2438 # Quit
2439 Widget 99
2440 Property
2441     Flags NoReliefString
2442     Position 490 450
2443     Size 85 20
2444     Type PushButton
2445     Title {Quit}
2446 Main
2447  Case message of
2448   SingleClic :
2449   Begin
2450     Do {SendToModule FvwmScript-ComponentProperties SendString 1 1 exit}
2451     Set $cmd = {exit|}
2452     Set $dummy = (SendMsgAndGet $ComName $cmd 0)
2453     Quit
2454   End