PoshCode Archive  Artifact [0cf3fd5c4f]

Artifact 0cf3fd5c4f1c2f81fe6f2008f0eaded28b45a4dd929d055e05611e49428ad025:

  • File Show-Sample1.ps1 — part of check-in [66a2a8fea6] at 2018-06-10 13:14:01 on branch trunk — A demonstration of how to do menus and commands in ShowUI (it works against the Latest Changeset d7ad095858eb right now, so you can just hit the download link on the right of that page). (user: Joel Bennett size: 2454)

# encoding: ascii
# api: powershell
# title: Show-Sample1
# description: A demonstration of how to do menus and commands in ShowUI (it works against the Latest Changeset ‘d7ad095858eb’ right now, so you can just hit the download link on the right of that page).
# version: 0.1
# type: function
# author: Joel Bennett
# license: CC0
# x-poshcode-id: 2669
# x-archived: 2011-05-16T21:23:11
# x-published: 2011-05-10T20:45:00
#
#
if(!(Get-Command New-System.Windows.Input.CommandBinding -ErrorAction SilentlyContinue)) {
   Add-UIFunction -Type System.Windows.Input.CommandBinding
}

Show -Width 300 -Height 150 {
   DockPanel {
      Menu -DockPanel-Dock Top -Height 20 {
         MenuItem -Header "_File" {
            ## Hook up the "New" menuitem to the New command ...
            MenuItem -Header "_New" -Command ([system.windows.input.applicationcommands]::new)
            MenuItem -Header "_Open"
            MenuItem -Header "_Save"
            MenuItem -Header "Save _As"
            Separator
            MenuItem -Header "_Print"
            Separator
            MenuItem -Header "E_xit"
         }
         MenuItem -Header "_Edit" {
            MenuItem -Header "_Undo"
            Separator
            MenuItem -Header "Cu_t"
            MenuItem -Header "_Copy"
            MenuItem -Header "_Paste"
            MenuItem -Header "De_lete"
            Separator
            MenuItem -Header "_Find"
            MenuItem -Header "Find _Next"
            MenuItem -Header "_Replace"
            MenuItem -Header "_Go To"
            Separator
            MenuItem -Header "Select _All"
            MenuItem -Header "Time/_Date"
            
         }
         MenuItem -Header "F_ormat" {
            MenuItem -Header "_Word Wrap"
            MenuItem -Header "_Font"
         }
         MenuItem -Header "_View" {
            MenuItem -Header "_Status Bar"
         }
         MenuItem -Header "_Help" {
            MenuItem -Header "_About"
         }
      }
      
      TextBox -Name "Content"
   }
   
   
   ## Down here you can hook up command bindings as usual...
   $this.CommandBindings.Add( (
      CommandBinding -Command ([system.windows.input.applicationcommands]::new) `
                  -On_CanExecute { param($sender, $e) $e.CanExecute = $true }   `
                  -On_Executed { (Select-UIElement $this Content).Text = ""; } 
   ) ) | Out-Null
}