#
# This file is a part of the NsCDE - Not so Common Desktop Environment
# Author: Hegel3DReloaded
# Licence: GPLv3
#

UseGettext {$NSCDE_ROOT/share/locale;NsCDE-StyleMgr}
WindowLocaleTitle {Style Manager}
WindowSize 790 110
WindowPosition 30 30
Colorset 22

Init
Begin
   Key Q C 1 1 {Quit}
   Key F1 A 1 1 {Help}
   Key H A 1 1 {Help}
   Key Help A 1 1 {Help}
   Key C A 1 1 {Color}
   Key F A 1 1 {Font}
   Key B A 1 1 {Backdrop}
   Key K A 1 1 {Kbd}
   Key M A 1 1 {Mouse}
   Key E A 1 1 {Beep}
   Key S A 1 1 {Scrn}
   Key W A 1 1 {Window}
   Key D A 1 1 {Desks}
   Key P A 1 1 {Pwr}
   Key T A 1 1 {Start}

   ChangeTitle 27 (Gettext {Color})
   ChangeTitle 28 (Gettext {Font})
   ChangeTitle 29 (Gettext {Backdrop})
   ChangeTitle 30 (Gettext {Keyboard})
   ChangeTitle 31 (Gettext {Mouse})
   ChangeTitle 32 (Gettext {Beep})
   ChangeTitle 33 (Gettext {Screen})
   ChangeTitle 34 (Gettext {Window})
   ChangeTitle 35 (Gettext {Desks})
   ChangeTitle 36 (Gettext {Power})
   ChangeTitle 37 (Gettext {Startup})

   Set $IconFnClean = (GetOutput {$NSCDE_TOOLSDIR/getfont -v -t normal -s small -Z 11.5} 1 -1)
   Set $IconFn = {Shadow=2 0 SE:} $IconFnClean {:antialias=0}

   ChangeFont 27 $IconFn
   ChangeFont 28 $IconFn
   ChangeFont 29 $IconFn
   ChangeFont 30 $IconFn
   ChangeFont 31 $IconFn
   ChangeFont 32 $IconFn
   ChangeFont 33 $IconFn
   ChangeFont 34 $IconFn
   ChangeFont 35 $IconFn
   ChangeFont 36 $IconFn
   ChangeFont 37 $IconFn

   # Make the same as ItemDraw which differs the rest of the app from menu
   ChangeColorset 7 21
   ChangeColorset 8 21
   ChangeColorset 9 21
   ChangeColorset 10 21
   ChangeColorset 11 21
   ChangeColorset 12 21
   ChangeColorset 13 21
   ChangeColorset 14 21
   ChangeColorset 15 21
   ChangeColorset 16 21
   ChangeColorset 17 21

   ChangeColorset 27 21
   ChangeColorset 28 21
   ChangeColorset 29 21
   ChangeColorset 30 21
   ChangeColorset 31 21
   ChangeColorset 32 21
   ChangeColorset 33 21
   ChangeColorset 34 21
   ChangeColorset 35 21
   ChangeColorset 36 21
   ChangeColorset 37 21

   Set $DefaultFont = (GetOutput {$NSCDE_TOOLSDIR/getfont -v -t normal -s medium -Z 12} 1 -1)

   ChangeFont 1 $DefaultFont
   ChangeFont 2 $DefaultFont
   ChangeFont 3 $DefaultFont
   ChangeFont 4 $DefaultFont
End

Widget 1 # Handler
   Property
   Type Menu
   Position 0 0
   Flags NoReliefString Left Hidden
   Value 0
   Title {}
   Font "xft:::pixelsize=18:charwidth=9.8"
   Main
      Case message of
      SingleClic :
      Begin
      End
      1 :
      Begin
         If (LastString) == {Quit} Then
            Quit
         If (LastString) == {Help} Then
            SendSignal 4 1
         If (LastString) == {Color} Then
            SendSignal 7 1
         If (LastString) == {Font} Then
            SendSignal 8 1
         If (LastString) == {Backdrop} Then
            SendSignal 9 1
         If (LastString) == {Kbd} Then
            SendSignal 10 1
         If (LastString) == {Mouse} Then
            SendSignal 11 1
         If (LastString) == {Beep} Then
            SendSignal 12 1
         If (LastString) == {Scrn} Then
            SendSignal 13 1
         If (LastString) == {Window} Then
            SendSignal 14 1
         If (LastString) == {Desks} Then
            SendSignal 15 1
         If (LastString) == {Pwr} Then
            SendSignal 16 1
         If (LastString) == {Start} Then
            SendSignal 17 1
      End
End

Widget 2
   Property
   Type Menu
   Position 0 10
   Flags NoReliefString Left
   Value 0
   Font "xft:::pixelsize=18:charwidth=9.8"
   LocaleTitle {File|Exit     Ctrl+Q}
   Main
      Case message of
      SingleClic :
      Begin
         If (GetValue 2) == {1} Then
         Begin
            Quit
         End
      End
End

Widget 3 # Handler
   Property
   Type Menu
   Position 0 0
   Font "xft:::pixelsize=12:spacing=mono:charwidth=10"
   Flags NoReliefString Left Hidden
   Value 0
   LocaleTitle {0000000000000000000000000000000000000000000000000000000000000000000}
   Main
      Case message of
      SingleClic :
      Begin
      End
      1 :
      Begin
         Quit
      End
End

Widget 4
   Property
   Type Menu
   Position 0 0
   Flags NoReliefString Left
   Value 0
   LocaleTitle {Help|Style Manager Key Bindings|Style Manager Help}
   Font "xft:::pixelsize=18:charwidth=9.8"
   Main
      Case message of
      SingleClic :
      Begin
         If (GetValue 4) == 2 Then
         Begin
            SendSignal 4 1
         End
         If (GetValue 4) == 1 Then
         Begin
            SendSignal 4 2
         End
      End
      1 :
      Begin
         Do {f_DisplayURL "$[gt.Style Manager]" html/NsCDE-GUI-Tools.html}
      End
      2 :
      Begin
         Do {Schedule 250 f_NotifierFromFile stylemgrkbd "$[gt.Style Manager Key Bindings]" "$[gt.Dismiss]" "NsCDE/Info.xpm" "$NSCDE_DATADIR/help/StyleMgr_Keybindings.help" "NsCDE-StyleMgr"}
      End
End

# Background different from menu if ncolors == 8
Widget 5
   Property
   Size 790 104
   Position 0 28
   Flags NoReliefString
   Type ItemDraw
   Colorset 21
   Title {}
   Main
      Case message of
      SingleClic :
      Begin
      End
End

# Select Frame and Press/Unpress worker.
Widget 6
   Property
   Size 62 86
   Position 4 31
   Flags NoReliefString Hidden
   Type ItemDraw
   Colorset 2
   Title {}
   Main
      Case message of
      SingleClic :
      Begin
      End
      1 :
      Begin
         If (StrCopy (LastString) 1 7) == {pressed} Then
         Begin
            Set $IconWidget = (StrCopy (LastString) 9 10)
            Set $TextWidget = (StrCopy (LastString) 12 13)
            If (StrCopy $IconWidget 1 1) == {0} Then
            Begin
               Set $NIconWidget = (StrCopy $IconWidget 2 2)
               ChangeColorset $NIconWidget 28
            End
            Else
            Begin
               ChangeColorset $IconWidget 28
            End
            ChangeColorset $TextWidget 28
            Do {Schedule 250 SendToModule StyleMgr SendString 6 1 unpressme_} $IconWidget {_} $TextWidget
         End
         If (StrCopy (LastString) 1 9) == {unpressme} Then
         Begin
            Set $IconWidget = (StrCopy (LastString) 11 12)
            Set $TextWidget = (StrCopy (LastString) 14 15)
            If (StrCopy $IconWidget 1 1) == {0} Then
            Begin
               Set $NIconWidget = (StrCopy $IconWidget 2 2)
               ChangeColorset $NIconWidget 21
            End
            Else
            Begin
               ChangeColorset $IconWidget 21
            End
            ChangeColorset $TextWidget 21
         End
      End
      2 :
      Begin
         # IconWidget is from "6 1" - if it is initialized to non-zero
         # this means something has been clicked and frame widget (6)
         # has moved to some sane position for uncovering.
         If $IconWidget <> {} Then
         Begin
            If (LastString) == {hideframe} Then
            Begin
               HideWidget 6
            End
            If (LastString) == {showframe} Then
            Begin
               ShowWidget 6
            End
         End
      End
End


Widget 7
   Property
   Size 60 60
   Position 8 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-Color.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 7 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_07_27}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 7 31
         ChangeSize 6 62 77
         Do {None (ColorMgr) Module FvwmScript ColorMgr $[desk.n] $[NSCDE_PALETTE_NCOLORS]}
      End
End

Widget 27
   Property
   Size 60 28
   Position 8 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 7 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_07_27}
      End
End


Widget 8
   Property
   Size 60 60
   Position 78 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-Font.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 8 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_08_28}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 77 31
         ChangeSize 6 62 77
         Do {f_ToggleFvwmModule FvwmScript FontMgr}
      End
End

Widget 28
   Property
   Size 60 28
   Position 78 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 8 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_08_28}
      End
End

Widget 9
   Property
   Size 78 60
   Position 146 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-Backdrop.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 9 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_09_29}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 145 31
         ChangeSize 6 80 77
         Do {None (BackdropMgr) Module FvwmScript BackdropMgr $[desk.n] $[infostore.desknum]}
      End
End

Widget 29
   Property
   Size 78 28
   Position 146 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 9 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_09_29}
      End
End

Widget 10
   Property
   Size 78 60
   Position 229 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-Keybd.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 10 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_10_30}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 228 31
         ChangeSize 6 80 77
         Do {f_ToggleFvwmModule FvwmScript KeyboardMgr}
      End
End

Widget 30
   Property
   Size 78 28
   Position 229 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 10 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_10_30}
      End
End

Widget 11
   Property
   Size 60 60
   Position 310 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-Mouse.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 11 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_11_31}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 309 31
         ChangeSize 6 62 77
         Do {f_ToggleFvwmModule FvwmScript PointerMgr}
      End
End

Widget 31
   Property
   Size 60 28
   Position 310 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 11 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_11_31}
      End
End

Widget 12
   Property
   Size 58 60
   Position 372 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-Beep.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 12 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_12_32}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 371 31
         ChangeSize 6 60 77
         Do {f_ToggleFvwmModule FvwmScript BeepMgr}
      End
End

Widget 32
   Property
   Size 58 28
   Position 372 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 12 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_12_32}
      End
End

Widget 13
   Property
   Size 60 60
   Position 432 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-Screen.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 13 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_13_33}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 431 31
         ChangeSize 6 62 77
         Do {f_ToggleFvwmFunc xscreensaver-demo Close f_Xscreensaver -prefs}
      End
End

Widget 33
   Property
   Size 60 28
   Position 432 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 13 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_13_33}
      End
End

Widget 14
   Property
   Size 68 60
   Position 502 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-WinMgr.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 14 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_14_34}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 501 31
         ChangeSize 6 70 77
         Do {f_ToggleFvwmModule FvwmScript WindowMgr}
      End
End

Widget 34
   Property
   Size 68 28
   Position 502 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 14 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_14_34}
      End
End

Widget 15
   Property
   Size 68 60
   Position 576 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-Desks.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 15 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_15_35}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 575 31
         ChangeSize 6 70 77
         Do {f_ToggleFvwmModule FvwmScript WsPgMgr $[infostore.desknum] $[infostore.pagematrixX] $[infostore.pagematrixY]}
         Do {Schedule 500 All (WsPgMgr, CirculateHit) PlaceAgain
      End
End

Widget 35
   Property
   Size 68 28
   Position 576 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 15 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_15_35}
      End
End

Widget 16
   Property
   Size 60 60
   Position 646 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/Dtpowermgr.m.pm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 16 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_16_36}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 645 31
         ChangeSize 6 62 77
         Do {f_ToggleFvwmModule FvwmScript PowerSaveMgr}
      End
End

Widget 36
   Property
   Size 60 28
   Position 646 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 16 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_16_36}
      End
End

Widget 17
   Property
   Size 66 60
   Position 720 32
   Flags NoReliefString
   Type ItemDraw
   Title {}
   Icon NsCDE/StyleMgr-Start.xpm
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 17 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_17_37}
      End
      1 :
      Begin
         ShowWidget 6
         ChangePosition 6 719 31
         ChangeSize 6 68 77
         Set $CheckSessionManager = (GetOutput {echo $SESSION_MANAGER} 1 -1)
         Set $CheckDesk = (GetOutput {echo $XDG_CURRENT_DESKTOP} 1 -1)
         Set $CheckDeskRc = {NotListed}
         If $CheckSessionManager <> {} Then
         Begin
            If $CheckDesk == {MATE} Then
            Begin
               Do {Test (x mate-session-properties) Exec exec mate-session-properties}
               Do {Test (!x mate-session-properties) None (NsCDE-Notifier.NoCmd) f_Notifier "Style Manager" "Dismiss" "NsCDE/Error.xpm" "No mate-session-properties found." "NoCmd"}
               Set $CheckDeskRc = {Listed}
            End
            If $CheckDesk == {LXDE} Then
            Begin
               Do {Test (x lxsession-edit) Exec exec lxsession-edit}
               Do {Test (!x lxsession-edit) None (NsCDE-Notifier.NoCmd) f_Notifier "Style Manager" "Dismiss" "NsCDE/Error.xpm" "No lxsession-edit found." "NoCmd"}
               Set $CheckDeskRc = {Listed}
            End
            If $CheckDesk == {GNOME} Then
            Begin
               Do {Test (x gnome-tweaks) Exec exec gnome-tweaks}
               Do {Test (!x gnome-tweaks) None (NsCDE-Notifier.NoCmd) f_Notifier "Style Manager" "Dismiss" "NsCDE/Error.xpm" "No gnome-tweaks found." "NoCmd"}
               Set $CheckDeskRc = {Listed}
            End
            If $CheckDesk == {KDE} Then
            Begin
               Do {Test (x kcmshell5) Exec exec kcmshell5 kcmsmserver autostart kcmkded}
               Do {Test (!x kcmshell5) None (NsCDE-Notifier.NoCmd) f_Notifier "Style Manager" "Dismiss" "NsCDE/Error.xpm" "No kcmshell5 found." "NoCmd"}
               Set $CheckDeskRc = {Listed}
            End

            If $CheckDeskRc == {NotListed} Then
            Begin
               Do {None (NsCDE-Notifier.NotSupp) f_Notifier "Style Manager" "Dismiss" "NsCDE/Error.xpm" "Session Manager from desktop } $CheckDesk { not (yet) supported." "NotSupp"}
            End
         End
         Else
         Begin
            Do {None (NsCDE-Notifier.NoSess) f_Notifier "Style Manager" "Dismiss" "NsCDE/Info.xpm" "NsCDE appears not to be running under the X Session Manager." "NoSess"}
         End
      End
End

Widget 37
   Property
   Size 66 28
   Position 720 79
   Flags NoReliefString NoFocus
   Type ItemDraw
   Title {}
   Font "xft:::pixelsize=18"
   Main
      Case message of
      SingleClic :
      Begin
         SendSignal 17 1
         Do {SendToModule StyleMgr SendString 6 1 pressed_17_37}
      End
End

