Powershell GUI fronted (WPF) to run categorized console scripts

βŒˆβŒ‹ βŽ‡ branch:  ClickyColoury


Artifact [d8e2810e33]

Artifact d8e2810e3325bc20af1f2c4cbe53d74c02ac7f62:

  • File modules/kbt5.xaml — part of check-in [16ea606fae] at 2018-05-18 17:58:54 on branch trunk — Attempt at making TreeViewItems more solid (metro/burger style menu) (user: mario size: 11147)

<!--
# api: wpf
# type: gui
# title: MultiTool window
# version: 1.2.0
-->
<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:r="http://schemas.microsoft.com/winfx/2006/xaml/presentation/ribbon"   
  x:Name="Window" Title="➱ Clicky" WindowStartupLocation="CenterScreen" 
  Width="980" Height="720"
  ShowInTaskbar="True">

  <!-- Styles -->
  <Window.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="e:/modules/theme.dark.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Window.Resources>

  <!-- Widgets --> 
  <DockPanel Background="#77797c">

  <Menu DockPanel.Dock="Top">
     <MenuItem Header="CMD" x:Name="Menu_CMD" ToolTip="Computer/command-line tools">
       <MenuItem Header="OnBehalf" x:Name="Menu_ONBEHALF" ToolTip="OnBehalf remote execution" />
     </MenuItem>
     <MenuItem Header="User" x:Name="Menu_USER" ToolTip="Account/Users" />
     <MenuItem Header="PowerShell" x:Name="Menu_POWERSHELL" ToolTip="Powershell scripts">
       <MenuItem Header="Bulk" x:Name="Menu_BULK"><MenuItem.Icon><Image Source="e:/img/csv.png" Width="18" Height="18"/></MenuItem.Icon></MenuItem>
     </MenuItem>
     <MenuItem Header="Exchange" x:Name="Menu_EXCHANGE" ToolTip="Exchange/Outlook" />
     <MenuItem Header="Network" x:Name="Menu_NETWORK" ToolTip="Network and server">
        <MenuItem Header="Server" x:Name="Menu_SERVER"><MenuItem.Icon><Image Source="e:/img/icon.server.png"/></MenuItem.Icon></MenuItem>
     </MenuItem>
     <MenuItem Header="Info" x:Name="Menu_INFO" ToolTip="Info (read-only) tools for users/machines" />
     <MenuItem Header="WMI" x:Name="Menu_WMI" ToolTip="Windows Management Interface" />
     <MenuItem Header="UserTools" x:Name="Menu_USERTOOLS" ToolTip="Shortcuts installed on \\$machine\c:\Users\$username\Desktop" />
     <MenuItem Header="Beta" x:Name="Menu_BETA" ToolTip="New/experimental scripts" />
     <MenuItem Header="_Extras" x:Name="Menu_EXTRAS" ToolTip="Config, Miscellaneous, Shortcuts">
        <MenuItem Header="Misc" x:Name="Menu_MISC"><MenuItem.Icon><Image Source="e:/img/icon.controller.png"/></MenuItem.Icon></MenuItem>
        <MenuItem Header="Config" x:Name="Menu_CONFIG"><MenuItem.Icon><Image Source="e:/img/icon.tools.png"/></MenuItem.Icon></MenuItem>
        <MenuItem Header="Update" x:Name="Menu_UPDATE"><MenuItem.Icon><Image Source="e:/img/icon.log.png"/></MenuItem.Icon></MenuItem>
        <!--MenuItem Header="TEST scripts" x:Name="Menu_TEST"><MenuItem.Icon><Image Source="e:/img/icon.godzilla.png"/></MenuItem.Icon></MenuItem-->
     </MenuItem>
     <MenuItem Header="✐" x:Name="Menu_EDIT" ToolTip="Script editing" />
     <MenuItem Header="δ·°"  HorizontalAlignment="Right" x:Name="Menu_DOCS" ToolTip="docs" />
  </Menu>

  <DockPanel x:Name="Ribbon" DockPanel.Dock="Top" Height="80" Style="{StaticResource RibbonGradient}">

    <!-- Computer -->
    <Border Style="{StaticResource RibbonBorder}" Width="170" DockPanel.Dock="Left">
      <DockPanel>
        <!-- Btn -->
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" VerticalAlignment="Bottom" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="Machine/Hostname"/>
        <Button DockPanel.Dock="Left" x:Name="BtnComputer" Width="64" Height="64" Style="{StaticResource ActionButton}" ToolTip="Computer (←clipbrd)"><Image Source="e:/img/computer.png" Width="64" Height="64" /></Button>
        <DockPanel>
          <!-- Clear/Copy/Ping/ToUser -->
          <WrapPanel DockPanel.Dock="Top">
            <Button x:Name="BtnComputerClr" Style="{StaticResource ActionButton}" ToolTip="Clear" Margin="0,0,5,0"><Image Source="e:/img/clear.png" Width="16" Height="16" Opacity="0.2"  /></Button>
            <Button x:Name="BtnComputerCpy" Style="{StaticResource ActionButton}" ToolTip="Copy" Margin="0,0,10,0"><Image Source="e:/img/copy.png" Width="16" Height="16" Opacity="0.5" /></Button>
            <Button x:Name="BtnComputerPng" Style="{StaticResource ActionButton}" ToolTip="ping" Margin="0,0,5,0"><Image Source="e:/img/ping.png" Width="16" Height="16" Opacity="0.4" /></Button>
            <Button x:Name="BtnComputerUsr" Style="{StaticResource ActionButton}" ToolTip="Get current user β†’"><Image Source="e:/img/to-user.png" Width="18" Height="16" Opacity="0.8" /></Button>
          </WrapPanel>
          <!-- Input -->
          <ComboBox x:Name="machine" IsEditable="True" Height="22" Width="90" FontSize="13" FontWeight="Bold">localhost</ComboBox>
        </DockPanel>
      </DockPanel>
    </Border>

    <!-- User -->
    <Border Style="{StaticResource RibbonBorder}" Width="175" DockPanel.Dock="Left">
      <DockPanel>
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="User target"/>
        <Button DockPanel.Dock="Left" x:Name="BtnUsername" Style="{StaticResource ActionButton}" ToolTip="User (←clipbrd)"><Image Source="e:/img/user.png" /></Button>
        <DockPanel>
          <!-- Clear/Copy/ToComputer -->
          <WrapPanel DockPanel.Dock="Top">
            <Button x:Name="BtnUsernameClr" Style="{StaticResource ActionButton}" ToolTip="Clear" Margin="0,0,5,0"><Image Source="e:/img/clear.png" Width="16" Height="16" Opacity="0.2"  /></Button>
            <Button x:Name="BtnUsernameCpy" Style="{StaticResource ActionButton}" ToolTip="Copy" Margin="0,0,50,0"><Image Source="e:/img/copy.png" Width="16" Height="16" Opacity="0.5" /></Button>
            <Button x:Name="BtnUsernameCom" Style="{StaticResource ActionButton}" ToolTip="← To primary computer"><Image Source="e:/img/to-user.png" Width="18" Height="16" Opacity="0.2" /></Button>
          </WrapPanel>
          <!-- Input -->
          <ComboBox x:Name="username" IsEditable="True" Height="22" Width="120" FontSize="13" FontWeight="Bold" />
        </DockPanel>
      </DockPanel>
    </Border> 

    <!-- Shortcuts -->
    <Border Style="{StaticResource RibbonBorder}" Width="85" DockPanel.Dock="Left">
      <DockPanel>
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="Shortcuts"/>
        <WrapPanel DockPanel.Dock="Top" x:Name="Shortcuts" Width="82" Height="80" />
      </DockPanel>
    </Border> 

    <!-- Cancel -->
    <Border Style="{StaticResource RibbonBorder}" Width="45" DockPanel.Dock="Left">
      <DockPanel>
        <Button x:Name="Cancel" DockPanel.Dock="Bottom" HorizontalAlignment="Center"
        FontSize="32" Foreground="Red" Background="#99663322" Height="50" Width="30" Content="X"/>
      </DockPanel>
    </Border> 

    <!-- Unicode -->
    <Border Style="{StaticResource RibbonBorderGreen}" Width="140" DockPanel.Dock="Left" Padding="4,2,4,0">
      <DockPanel>
        <!--Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="Unicode"/-->
        <!--ScrollViewer DockPanel.Dock="Top"-->
        <WrapPanel DockPanel.Dock="Top" x:Name="UnicodeClip" Width="140" Height="66">
          <Button Style="{StaticResource ActionButton}" Content="❏" />
          <Button Style="{StaticResource ActionButton}" Content="βœ”" />
          <Button Style="{StaticResource ActionButton}" Content="✘" />
          <Button Style="{StaticResource ActionButton}" Content="➜" />
          <Button Style="{StaticResource ActionButton}" Content="➩" />
          <Button Style="{StaticResource ActionButton}" Content="β–Ά" />
          <Button Style="{StaticResource ActionButton}" Content="⏩" />
          <Button Style="{StaticResource ActionButton}" Content="✎" />

          <Button Style="{StaticResource ActionButton}" Content="❍"  />
          <Button Style="{StaticResource ActionButton}" Content="β˜‘" />
          <Button Style="{StaticResource ActionButton}" Content="β˜’" />
          <Button Style="{StaticResource ActionButton}" Content="⟳" />
          <Button Style="{StaticResource ActionButton}" Content="❎" />
          <Button Style="{StaticResource ActionButton}" Content="β˜›" />
          <Button Style="{StaticResource ActionButton}" Content="β™»" />
          <Button Style="{StaticResource ActionButton}" Content="βš™" />

          <Button Style="{StaticResource ActionButton}" Content="✰" />
          <Button Style="{StaticResource ActionButton}" Content="✱" />
          <Button Style="{StaticResource ActionButton}" Content="☎" />
          <Button Style="{StaticResource ActionButton}" Content="➟" />
          <Button Style="{StaticResource ActionButton}" Content="⚑" />
          <Button Style="{StaticResource ActionButton}" Content="β€·" />
          <Button Style="{StaticResource ActionButton}" Content="❚" />
          <Button Style="{StaticResource ActionButton}" Content="〓" />
          <Button Style="{StaticResource ActionButton}" Content="❯" />
        </WrapPanel>
        <!--/ScrollViewer-->
      </DockPanel>
    </Border> 

    <!-- Clipboard -->
    <Border Style="{StaticResource RibbonBorderGreen}" Width="125" DockPanel.Dock="Right">
      <DockPanel>
        <Label DockPanel.Dock="Bottom" HorizontalAlignment="Center" FontWeight="Bold" Style="{StaticResource ActionLabel}" Content="Clipboard"/>
        <Button DockPanel.Dock="Left" x:Name="BtnClipText" ToolTip="Copy (text)" Width="48" Height="48" Style="{StaticResource ActionButton}"><Image Source="e:/img/clipboard.png" /></Button>
        <Button DockPanel.Dock="Left" x:Name="BtnClipHtml" ToolTip="Copy (colored)" Width="48" Height="48" Style="{StaticResource ActionButton}"><Image Source="e:/img/html.png" /></Button>
        <Button DockPanel.Dock="Top" x:Name="BtnClipFree" ToolTip="Clear" Width="24" Height="20" Style="{StaticResource ActionButton}"><Image Source="e:/img/sweep.png" /></Button>
        <Button DockPanel.Dock="Bottom" x:Name="BtnClipSwap" ToolTip="Last buffer" Width="24" Height="20" Style="{StaticResource ActionButton}"><Image Source="e:/img/back.png" /></Button>
      </DockPanel>
    </Border> 
  </DockPanel>

  <!-- Main -->
  <Grid>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="250" />
      <ColumnDefinition Width="5" />
      <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <TreeView x:Name="Grid_ALL" Background="#ffcccccc" HorizontalAlignment="Left"
                 VerticalAlignment="Top" Width="250" Height="600">
    </TreeView>

    <GridSplitter Grid.Column="2" Width="5" HorizontalAlignment="Stretch" Background="#ff444444" />

    <!-- Output -->
    <ScrollViewer Grid.Column="3">
       <RichTextBox Padding="2"
       FontSize="12" FontFamily="Consolas,Mono" FontWeight="Normal" 
       Foreground="White" Background="#012356">
          <FlowDocument x:Name="Output" />
       </RichTextBox>
    </ScrollViewer>
  </Grid>

  </DockPanel>
</Window>