Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. using namespace Terminal.Gui # maybe it isn't installed yet, but who cares?
  2. if (!(Test-Path Libraries)) {
  3. mkdir Libraries -Confirm
  4. }
  5. if (!(Test-Path .\Libraries\Terminal.Gui.0.24.0\lib\netcoreapp2.0\Terminal.Gui.dll)) {
  6. Install-Package Terminal.Gui -Destination .\Libraries\
  7. }
  8. add-type -path .\Libraries\NStack.Core.0.11.0\lib\netstandard1.5\NStack.dll
  9. add-type -path .\Libraries\Terminal.Gui.0.24.0\lib\netcoreapp2.0\Terminal.Gui.dll
  10.  
  11. $Win = [Window]::new("Posh")
  12. $global:Text = [TextView]@{
  13. Width = [Dim]::Fill()
  14. Height = [Dim]::Fill()
  15. ReadOnly = $false
  16. }
  17. $Win.Add($global:Text)
  18.  
  19. $Menu = [MenuBar]::new([MenuBarItem[]]@(
  20. [MenuBarItem]::new("_File", [MenuItem[]]@(
  21. [MenuItem]::new("_New", "Creates new file", {
  22. $global:Text.Text = ""
  23. $global:OpenFile = ""
  24. }),
  25. [MenuItem]::new("_Save", "Save the file", {
  26. if (!$global:OpenFile) {
  27. $dialog = [SaveDialog]::new("Save", "Save as...")
  28. [Application]::Run($dialog)
  29. Write-Warning "FileName $($dialog.FileName)"
  30. Write-Warning "FilePath $($dialog.FilePath)"
  31. $global:OpenFile = [string]$dialog.FileName
  32. }
  33. if ($global:Text.Text) {
  34. Set-Content $global:OpenFile $global:Text.Text
  35. }
  36. $global:Text.EnsureFocus()
  37. }),
  38. [MenuItem]::new("Save _As", "Save with a new name", {
  39. $dialog = [SaveDialog]::new("Save", "Save as...")
  40. [Application]::Run($dialog)
  41. $global:OpenFile = [string]$dialog.FileName
  42. if ($global:Text.Text) {
  43. Set-Content $global:OpenFile $global:Text.Text
  44. }
  45. $global:Text.EnsureFocus()
  46. }),
  47. [MenuItem]::new("_Open", "Opens an existing file", {
  48. $dialog = [OpenDialog]::new("Open", "Open a file")
  49. [Application]::Run($dialog)
  50. $global:OpenFile = [string]$dialog.FilePaths[0]
  51. $global:Text.LoadFile($global:OpenFile)
  52. $global:Text.EnsureFocus()
  53. }),
  54. [MenuItem]::new("_Close", "", { }),
  55. [MenuItem]::new("E_xit", "", { [Application]::RequestStop() })
  56. ))
  57. ))
  58.  
  59. [Application]::Init()
  60. [Application]::Top.Add($win, $menu);
  61. [Application]::Run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement