Check-in [8ad68eaa09]
Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Write-Splash fix for PS2. Release a 0.9.0 |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | 0.9.0 |
Files: | files | file ages | folders |
SHA1: |
8ad68eaa090e519164b8b1153b59a419 |
User & Date: | mario 2018-04-15 18:22:21 |
Context
2018-04-15
| ||
19:05 | .output.Parent.Parent.ScrollToEnd() to message ScrollViewer, not RTB check-in: 7cb3a3ddb7 user: mario tags: trunk | |
18:22 | Write-Splash fix for PS2. Release a 0.9.0 check-in: 8ad68eaa09 user: mario tags: trunk, 0.9.0 | |
13:15 | More current vars test (multiline definition and filechooser/button). Check all colors in Write-Host test. check-in: 885044ef20 user: mario tags: trunk | |
Changes
Changes to ClickyColoury.cmd.
1 | @echo off | < | | 1 2 3 4 | @echo off REM -- for debugging, leave out `-WindowStyle Hidden` of course cd %~dp0 powershell.exe -STA -WindowStyle Hidden -File ./modules/starter.ps1 |
Changes to NEWS.
1 |
| | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 0.9.0 (2018-04-15) * Ported to Powershell 5.0 * Toolblocks are just buttons again, in a TreeView; for performance reasons (became too slow with 200 scripts) * Output pane is a FlowDocument now, allows -XAML passing * Extra parameters now bring up a form box, new vars: meta field * New darker theme * Splash screen added * Introducing cross-runspace events now (albeit Cancel non-functional, simple $GUI.tasks queue still used) * Proper GUI output to HTML clipboard conversion 0.8.0 (2017-09-22) * First public (stripped down) release * Main code condensed into modules/ directory. * Global configuration hash is now populated in starter.ps1 * Restructured tools/ again into category-nested subfolders. * Implemented HTML clipboard kludge (collect alongside Out-Gui). |
︙ | ︙ |
Changes to modules/guimenu.psm1.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # api: ps # title: GUI handling, WPF + WinForms # description: WinForm and WPF interaction, GUI and thread handling # depends: menu, clipboard, sys:presentationframework, sys:system.windows.forms, sys:system.drawing # doc: http://fossil.include-once.org/clickycoloury/wiki/W # version: 1.2.0 # license: MITL # type: functions # category: ui # config: # { name: cfg.threading, type: bool, value: 1, description: Enable threading/runspaces for GUI/WPF version } # { name: cfg.autoclear, type: int, value: 300, description: Clear output box after N seconds. } # { name: cfg.noheader, type: bool, value: 0, description: Disable script info header in output. } | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # api: ps # title: GUI handling, WPF + WinForms # description: WinForm and WPF interaction, GUI and thread handling # depends: menu, clipboard, sys:presentationframework, sys:system.windows.forms, sys:system.drawing # doc: http://fossil.include-once.org/clickycoloury/wiki/W # version: 1.2.0 # license: MITL # type: functions # category: ui # config: # { name: cfg.threading, type: bool, value: 1, description: Enable threading/runspaces for GUI/WPF version } # { name: cfg.autoclear, type: int, value: 300, description: Clear output box after N seconds. } # { name: cfg.noheader, type: bool, value: 0, description: Disable script info header in output. } # { name: cfg.theme, type: select, select: "dark|bunti|beta", value: dark, description: XAML theme file. } # status: stable # priority: core # # Handles $menu list in WPF window. Creates widgets and menu entries # for plugin list / $menu meta data. # · `type: inline` is the implied default, renders output in TextBlock # · `type: cli` or `window` plugins are run in a separate window # · `hidden: 1` tools only show up in menus # · `keycode:` is used for shortcuts; the CLI `key:` regex ignored # · `type: init-gui` plugins are run once during GUI construction # · Whereas `type: init` execute in the main/script RunSpace # |
︙ | ︙ | |||
36 37 38 39 40 41 42 | # · Thus `Out-Gui` manages output, and a few helpers for title, var fetching. # · Toolbar actions run entirely in the GUI thread, thus can freeze UI a bit. # # Scripts/tools should work identically as for the CLI version: # · Aliases for `Write-Host` and `Read-Host` should make it transparent. # · However simple console output (typically to the stdout stream) will # have to be pipe-captured. | | | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | # · Thus `Out-Gui` manages output, and a few helpers for title, var fetching. # · Toolbar actions run entirely in the GUI thread, thus can freeze UI a bit. # # Scripts/tools should work identically as for the CLI version: # · Aliases for `Write-Host` and `Read-Host` should make it transparent. # · However simple console output (typically to the stdout stream) will # have to be pipe-captured. # · Order of pipe/stream output and Write-Host calls do not intermix still. # #-- register libs Add-Type -AN PresentationCore, PresentationFramework, WindowsBase Add-Type -AN System.Drawing, System.Windows.Forms, Microsoft.VisualBasic [System.Windows.Forms.Application]::EnableVisualStyles() |
︙ | ︙ | |||
542 543 544 545 546 547 548 | #-- Startup splash screen (WinForms) # · runs in main thread, no callbacks or extra background handling # · keeps its own reference once initialized by first call function Write-Splash { Param($msg, $progress=25, $TITLE="▶ ClickyColoury 0.9", $VENDOR="PWSH") $null = &{ if (!$Splash) { | | | | 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 | #-- Startup splash screen (WinForms) # · runs in main thread, no callbacks or extra background handling # · keeps its own reference once initialized by first call function Write-Splash { Param($msg, $progress=25, $TITLE="▶ ClickyColoury 0.9", $VENDOR="PWSH") $null = &{ if (!$Splash) { $bold = New-Object System.Drawing.Font -ArgumentList "Verdana",13,"Bold","Pixel" $impc = New-Object System.Drawing.Font -ArgumentList "Impact",22 $v = $PSVersionTable.PSVersion $global:Splash = @{ psv1 = (WF Label @{Text=$VENDOR; Location=5,5; Size=50,16; Font=$BOLD; ForeColor="Gray"}) psv2 = (WF Label @{Text="$($v.Major).$($v.Minor)"; Location=50,5; Size=40,16; Font=$BOLD; ForeColor="Orange"}) title = (WF Label @{Text=$TITLE; Location=5,25; Size=280,50; AutoSize=0; TextAlign="MiddleCenter"; Font=$IMPC; ForeColor="#333333"}) prg = (WF ProgressBar @{Location=10,80; Size=280,30; Value=1; Step=25; Maximum=1000}) msg = (WF Label @{Location=15,120; Size=270,20; Text="..."}) |
︙ | ︙ | |||
966 967 968 969 970 971 972 | return $GUI.vars } #-- print header/title function Out-GuiHeader($e) { Set-GuiTitle "➱ $($cfg.main.title) → $($e.title)" if ($e.noheader -or $cfg.noheader) { return; } | | | 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 | return $GUI.vars } #-- print header/title function Out-GuiHeader($e) { Set-GuiTitle "➱ $($cfg.main.title) → $($e.title)" if ($e.noheader -or $cfg.noheader) { return; } #$Host.UI.Write("HDR`r`n") $XAML = @" <Paragraph xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Foreground="#ff9988dd" Background="#ff102070" Margin="0,3" ><Image Source='$(Get-IconPath $e.icon $e.img $e.category)' Width='16' Height='16' /><Bold><![CDATA[$($e.title)]]></Bold><Span Foreground="#a98d"><![CDATA[ - $($e.description)]]></Span ></Paragraph> "@ |
︙ | ︙ | |||
1020 1021 1022 1023 1024 1025 1026 | Out-GuiHeader $e #-- plugins TRAP { $_ | out-gui -b red } $plugins.before | % { Invoke-Expression ($_.ToString()) } #-- Run $menu entry rules (command=, func=, or fn=) | | | 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 | Out-GuiHeader $e #-- plugins TRAP { $_ | out-gui -b red } $plugins.before | % { Invoke-Expression ($_.ToString()) } #-- Run $menu entry rules (command=, func=, or fn=) #$Host.UI.Write("INVOKE`r`n") try { #-- Internal commands if ($e.command) { [void]((Invoke-Expression $e.command) | Out-String | Out-Gui -f Yellow) } elseif ($e.func) { [void]((Invoke-Expression "$e.func $machine $username") | Out-String | Out-Gui -f Yellow) |
︙ | ︙ |