├── .gitignore
├── AppLauncher
├── App.config
├── AppLauncher.csproj
├── AppLauncher.ico
├── Launchable.cs
├── MainForm.Designer.cs
├── MainForm.cs
├── MainForm.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
└── packages.config
├── CmdTitle
├── App.config
├── CmdTitle.csproj
├── Program.cs
└── Properties
│ └── AssemblyInfo.cs
├── DirBrowser
├── App.config
├── DirBrowser.Designer.cs
├── DirBrowser.cs
├── DirBrowser.csproj
├── DirBrowser.ico
├── DirBrowser.resx
├── DirBrowser.svg
├── LICENSE
├── Program.cs
└── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── FunUtils.sln
├── Ghidra
├── App.config
├── Ghidra.csproj
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
└── ghidra.ico
├── GitExtBar
├── App.config
├── GitExtBar.Designer.cs
├── GitExtBar.cs
├── GitExtBar.csproj
├── GitExtBar.ico
├── GitExtBar.resx
├── LICENSE
├── LICENSE.md
├── ProcessCommandLine.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
└── Resources
│ ├── IconAbout.ico
│ ├── IconAdded.ico
│ ├── IconBranchCheckout.ico
│ ├── IconBranchCheckout.png
│ ├── IconBranchCreate.ico
│ ├── IconBranchCreate.png
│ ├── IconBrowseFileExplorer.ico
│ ├── IconCloneRepoGit.ico
│ ├── IconCommit.ico
│ ├── IconDiff.ico
│ ├── IconFileHistory.ico
│ ├── IconPatchApply.ico
│ ├── IconPull.ico
│ ├── IconPullFetch.png
│ ├── IconPush.ico
│ ├── IconRepoCreate.ico
│ ├── IconResetFileTo.ico
│ ├── IconResetWorkingDirChanges.png
│ ├── IconRevisionCheckout.ico
│ ├── IconRevisionCheckout.png
│ ├── IconSettings.ico
│ └── IconStash.ico
├── LICENSE
├── NewFile
├── App.config
├── NewFile.csproj
├── Program.cs
└── Properties
│ └── AssemblyInfo.cs
├── Notes
├── .gitignore
├── LICENSE
├── Notes.sln
├── Notes
│ ├── App.config
│ ├── Notes.Designer.cs
│ ├── Notes.cs
│ ├── Notes.csproj
│ ├── Notes.resx
│ ├── Program.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── TreeList.cs
│ ├── notes-pngrepo-com.png
│ ├── notes-svgrepo-com.svg
│ ├── notes.ico
│ └── packages.config
└── TreeList
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TreeList.cs
│ └── TreeList.csproj
├── README.md
├── RipGrepGUI
├── App.config
├── Helpers.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── RipGrepGUI.Designer.cs
├── RipGrepGUI.cs
├── RipGrepGUI.csproj
├── RipGrepGUI.resx
├── search-svgrepo-com.ico
├── search-svgrepo-com.png
└── search-svgrepo-com.svg
├── SysShellHandler
├── App.config
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── SysShellHandler.Designer.cs
├── SysShellHandler.cs
├── SysShellHandler.csproj
├── SysShellHandler.ico
└── SysShellHandler.resx
├── separate-console
├── App.config
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
└── separate-console.csproj
└── sudo
├── resource.h
├── resource.rc
├── sudo.cpp
├── sudo.vcxproj
├── sudo.vcxproj.filters
└── uac.ico
/.gitignore:
--------------------------------------------------------------------------------
1 | .vs/
2 | bin/
3 | obj/
4 | Release/
5 | Debug/
6 | x64/
7 | *.aps
8 | *.vcxproj.user
9 | packages/
10 | *.user
11 |
--------------------------------------------------------------------------------
/AppLauncher/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/AppLauncher/AppLauncher.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {0DB1C5AA-E59E-41E4-A573-09AE9F47D894}
8 | WinExe
9 | AppLauncher
10 | AppLauncher
11 | v4.6.1
12 | 512
13 | true
14 |
15 |
16 | AnyCPU
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 | false
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 | false
35 |
36 |
37 | AppLauncher.ico
38 |
39 |
40 |
41 | ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | Form
59 |
60 |
61 | MainForm.cs
62 |
63 |
64 |
65 |
66 | MainForm.cs
67 |
68 |
69 | ResXFileCodeGenerator
70 | Resources.Designer.cs
71 | Designer
72 |
73 |
74 | True
75 | Resources.resx
76 |
77 |
78 |
79 | SettingsSingleFileGenerator
80 | Settings.Designer.cs
81 |
82 |
83 | True
84 | Settings.settings
85 | True
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/AppLauncher/AppLauncher.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/AppLauncher/AppLauncher.ico
--------------------------------------------------------------------------------
/AppLauncher/Launchable.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 |
3 | namespace AppLauncher
4 | {
5 | public class Launchable
6 | {
7 | public int PriorityBias { get; set; }
8 | public string Name { get; set; }
9 | public string FileName { get; set; }
10 | public string Arguments { get; set; }
11 | public string WorkingDirectory { get; set; }
12 |
13 | public bool MatchesFilter(string filter) => Name.ToLower().Contains(filter.ToLower());
14 |
15 | public int Order(string filter)
16 | {
17 | var words = Name.Split();
18 | var startBias = words.Count(w => w.ToLower().StartsWith(filter.ToLower()));
19 | return PriorityBias + startBias;
20 | }
21 |
22 | public void Launch()
23 | {
24 | System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
25 | {
26 | FileName = FileName,
27 | Arguments = string.IsNullOrEmpty(Arguments) ? null : Arguments,
28 | WorkingDirectory = string.IsNullOrEmpty(WorkingDirectory) ? null : WorkingDirectory,
29 | });
30 | }
31 |
32 | public override string ToString() => Name;
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/AppLauncher/MainForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace AppLauncher
2 | {
3 | partial class MainForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.listBoxLaunchables = new System.Windows.Forms.ListBox();
32 | this.labelFilter = new System.Windows.Forms.Label();
33 | this.SuspendLayout();
34 | //
35 | // listBoxLaunchables
36 | //
37 | this.listBoxLaunchables.FormattingEnabled = true;
38 | this.listBoxLaunchables.Location = new System.Drawing.Point(12, 25);
39 | this.listBoxLaunchables.Name = "listBoxLaunchables";
40 | this.listBoxLaunchables.Size = new System.Drawing.Size(319, 173);
41 | this.listBoxLaunchables.TabIndex = 0;
42 | //
43 | // labelFilter
44 | //
45 | this.labelFilter.AutoSize = true;
46 | this.labelFilter.Location = new System.Drawing.Point(12, 9);
47 | this.labelFilter.Name = "labelFilter";
48 | this.labelFilter.Size = new System.Drawing.Size(45, 13);
49 | this.labelFilter.TabIndex = 1;
50 | this.labelFilter.Text = "Filter: \"\"";
51 | //
52 | // MainForm
53 | //
54 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
55 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
56 | this.ClientSize = new System.Drawing.Size(346, 216);
57 | this.Controls.Add(this.labelFilter);
58 | this.Controls.Add(this.listBoxLaunchables);
59 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
60 | this.MaximizeBox = false;
61 | this.MinimizeBox = false;
62 | this.Name = "MainForm";
63 | this.Text = "AppLauncher";
64 | this.TopMost = true;
65 | this.ResumeLayout(false);
66 | this.PerformLayout();
67 |
68 | }
69 |
70 | #endregion
71 |
72 | private System.Windows.Forms.ListBox listBoxLaunchables;
73 | private System.Windows.Forms.Label labelFilter;
74 | }
75 | }
76 |
77 |
--------------------------------------------------------------------------------
/AppLauncher/MainForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/AppLauncher/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace AppLauncher
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// The main entry point for the application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new MainForm());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/AppLauncher/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("AppLauncher")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("AppLauncher")]
13 | [assembly: AssemblyCopyright("Copyright © 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("0db1c5aa-e59e-41e4-a573-09ae9f47d894")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/AppLauncher/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace AppLauncher.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AppLauncher.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/AppLauncher/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/AppLauncher/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace AppLauncher.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/AppLauncher/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/AppLauncher/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/CmdTitle/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/CmdTitle/CmdTitle.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {33D78399-FBE0-4D13-8D1D-B170C7E0DDBB}
8 | WinExe
9 | CmdTitle
10 | CmdTitle
11 | v4.7.2
12 | 512
13 | true
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 | false
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 | false
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/CmdTitle/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Diagnostics;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using System.Windows.Forms;
9 |
10 | namespace CmdTitle
11 | {
12 | class Program
13 | {
14 | public static string Git(string command)
15 | {
16 | var p = Process.Start(new ProcessStartInfo
17 | {
18 | FileName = "git",
19 | Arguments = command,
20 | WorkingDirectory = Directory.GetCurrentDirectory(),
21 | UseShellExecute = false,
22 | CreateNoWindow = true,
23 | RedirectStandardOutput = true,
24 | });
25 | p.WaitForExit();
26 | return p.ExitCode == 0 ? p.StandardOutput.ReadToEnd().Trim() : "";
27 | }
28 |
29 | static void Main(string[] args)
30 | {
31 | var gitRoot = Git("rev-parse --show-toplevel").Replace('/', '\\');
32 | if (string.IsNullOrEmpty(gitRoot))
33 | gitRoot = Directory.GetCurrentDirectory();
34 | var title = Path.GetFileName(gitRoot);
35 | Process.Start("cmd.exe", $"/k \"title {title}\"");
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/CmdTitle/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("CmdTitle")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("CmdTitle")]
13 | [assembly: AssemblyCopyright("Copyright © 2020")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("33d78399-fbe0-4d13-8d1d-b170c7e0ddbb")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/DirBrowser/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/DirBrowser/DirBrowser.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace DirBrowser
2 | {
3 | partial class DirBrowser
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.buttonCmd = new System.Windows.Forms.Button();
32 | this.buttonLeft = new System.Windows.Forms.Button();
33 | this.buttonRight = new System.Windows.Forms.Button();
34 | this.SuspendLayout();
35 | //
36 | // buttonCmd
37 | //
38 | this.buttonCmd.Location = new System.Drawing.Point(12, 12);
39 | this.buttonCmd.Name = "buttonCmd";
40 | this.buttonCmd.Size = new System.Drawing.Size(134, 23);
41 | this.buttonCmd.TabIndex = 0;
42 | this.buttonCmd.Text = "&Command Prompt";
43 | this.buttonCmd.UseVisualStyleBackColor = true;
44 | this.buttonCmd.Click += new System.EventHandler(this.buttonCmd_Click);
45 | //
46 | // buttonLeft
47 | //
48 | this.buttonLeft.Location = new System.Drawing.Point(12, 41);
49 | this.buttonLeft.Name = "buttonLeft";
50 | this.buttonLeft.Size = new System.Drawing.Size(134, 23);
51 | this.buttonLeft.TabIndex = 1;
52 | this.buttonLeft.Text = "Total Commander (&Left)";
53 | this.buttonLeft.UseVisualStyleBackColor = true;
54 | this.buttonLeft.Click += new System.EventHandler(this.buttonLeft_Click);
55 | //
56 | // buttonRight
57 | //
58 | this.buttonRight.Location = new System.Drawing.Point(12, 70);
59 | this.buttonRight.Name = "buttonRight";
60 | this.buttonRight.Size = new System.Drawing.Size(134, 23);
61 | this.buttonRight.TabIndex = 2;
62 | this.buttonRight.Text = "Total Commander (&Right)";
63 | this.buttonRight.UseVisualStyleBackColor = true;
64 | this.buttonRight.Click += new System.EventHandler(this.buttonRight_Click);
65 | //
66 | // DirBrowser
67 | //
68 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
69 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
70 | this.ClientSize = new System.Drawing.Size(156, 107);
71 | this.Controls.Add(this.buttonRight);
72 | this.Controls.Add(this.buttonLeft);
73 | this.Controls.Add(this.buttonCmd);
74 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
75 | this.MaximizeBox = false;
76 | this.MinimizeBox = false;
77 | this.Name = "DirBrowser";
78 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
79 | this.Text = "DirBrowser";
80 | this.ResumeLayout(false);
81 |
82 | }
83 |
84 | #endregion
85 |
86 | private System.Windows.Forms.Button buttonCmd;
87 | private System.Windows.Forms.Button buttonLeft;
88 | private System.Windows.Forms.Button buttonRight;
89 | }
90 | }
91 |
92 |
--------------------------------------------------------------------------------
/DirBrowser/DirBrowser.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Drawing;
5 | using System.IO;
6 | using System.Windows.Forms;
7 |
8 | namespace DirBrowser
9 | {
10 | public partial class DirBrowser : Form
11 | {
12 | Dictionary _hotkeys = new Dictionary();
13 |
14 | public DirBrowser()
15 | {
16 | InitializeComponent();
17 | KeyPreview = true;
18 | Icon = Icon.ExtractAssociatedIcon(System.Reflection.Assembly.GetExecutingAssembly().Location);
19 |
20 | foreach (var c in Controls)
21 | {
22 | if (c is Button b)
23 | {
24 | var ampIdx = b.Text.IndexOf('&');
25 | if (ampIdx != -1)
26 | _hotkeys.Add(char.ToLower(b.Text[ampIdx + 1]), b);
27 | }
28 | }
29 | }
30 |
31 | private static char ToChar(Keys key)
32 | {
33 | char c = '\0';
34 | if ((key >= Keys.A) && (key <= Keys.Z))
35 | {
36 | c = (char)((int)'a' + (int)(key - Keys.A));
37 | }
38 |
39 | else if ((key >= Keys.D0) && (key <= Keys.D9))
40 | {
41 | c = (char)((int)'0' + (int)(key - Keys.D0));
42 | }
43 | else if (key == Keys.Space)
44 | {
45 | c = ' ';
46 | }
47 |
48 | return char.ToLower(c);
49 | }
50 |
51 | protected override void OnKeyDown(KeyEventArgs e)
52 | {
53 | switch(e.KeyCode)
54 | {
55 | case Keys.Escape:
56 | Close();
57 | break;
58 | default:
59 | var ch = char.ToLower(ToChar(e.KeyCode));
60 | if (_hotkeys.ContainsKey(ch))
61 | _hotkeys[ch].PerformClick();
62 | else
63 | base.OnKeyDown(e);
64 | break;
65 | }
66 | }
67 |
68 | private void buttonCmd_Click(object sender, EventArgs e)
69 | {
70 | var dir = Directory.GetCurrentDirectory();
71 | Process.Start(new ProcessStartInfo
72 | {
73 | FileName = "cmd.exe",
74 | Arguments = $"/K \"title {Path.GetFileNameWithoutExtension(dir)}\"",
75 | WorkingDirectory = dir,
76 | });
77 | Close();
78 | }
79 |
80 | private void buttonLeft_Click(object sender, EventArgs e)
81 | {
82 | Process.Start(new ProcessStartInfo
83 | {
84 | FileName = @"c:\totalcmd\TOTALCMD64.EXE",
85 | Arguments = $"/P=L \"/L={Directory.GetCurrentDirectory()}\"",
86 | });
87 | Close();
88 | }
89 |
90 | private void buttonRight_Click(object sender, EventArgs e)
91 | {
92 | Process.Start(new ProcessStartInfo
93 | {
94 | FileName = @"c:\totalcmd\TOTALCMD64.EXE",
95 | Arguments = $"/P=R \"/R={Directory.GetCurrentDirectory()}\"",
96 | });
97 | Close();
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/DirBrowser/DirBrowser.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {AA8B9201-F1F6-4009-99EF-4E00E751C124}
8 | WinExe
9 | DirBrowser
10 | DirBrowser
11 | v4.6.1
12 | 512
13 | true
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 | false
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 | false
36 |
37 |
38 | DirBrowser.ico
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 | Form
56 |
57 |
58 | DirBrowser.cs
59 |
60 |
61 |
62 |
63 | DirBrowser.cs
64 |
65 |
66 | ResXFileCodeGenerator
67 | Resources.Designer.cs
68 | Designer
69 |
70 |
71 | True
72 | Resources.resx
73 |
74 |
75 | SettingsSingleFileGenerator
76 | Settings.Designer.cs
77 |
78 |
79 | True
80 | Settings.settings
81 | True
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/DirBrowser/DirBrowser.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/DirBrowser/DirBrowser.ico
--------------------------------------------------------------------------------
/DirBrowser/DirBrowser.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/DirBrowser/DirBrowser.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
--------------------------------------------------------------------------------
/DirBrowser/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2016 Duncan Ogilvie
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/DirBrowser/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace DirBrowser
5 | {
6 | static class Program
7 | {
8 | ///
9 | /// The main entry point for the application.
10 | ///
11 | [STAThread]
12 | static void Main()
13 | {
14 | Application.EnableVisualStyles();
15 | Application.SetCompatibleTextRenderingDefault(false);
16 | Application.Run(new DirBrowser());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/DirBrowser/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("DirBrowser")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("DirBrowser")]
13 | [assembly: AssemblyCopyright("Copyright © 2019")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("aa8b9201-f1f6-4009-99ef-4e00e751c124")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/DirBrowser/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace DirBrowser.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DirBrowser.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/DirBrowser/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/DirBrowser/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace DirBrowser.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/DirBrowser/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Ghidra/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Ghidra/Ghidra.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {007AAFF6-D3CB-41E1-867E-4F0A5A8C821F}
8 | WinExe
9 | Ghidra
10 | Ghidra
11 | v4.7.2
12 | 512
13 | true
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 | false
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 | false
36 |
37 |
38 |
39 |
40 |
41 | ghidra.ico
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/Ghidra/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 | using System.Diagnostics;
9 |
10 | namespace Ghidra
11 | {
12 | class Program
13 | {
14 | static void Main(string[] args)
15 | {
16 | if (!File.Exists("ghidraRun.bat"))
17 | {
18 | MessageBox.Show("Put this executable next to ghidraRun.bat", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
19 | return;
20 | }
21 | Process.Start(new ProcessStartInfo
22 | {
23 | FileName = "cmd.exe",
24 | Arguments = "/c title Ghidra & ghidraRun.bat",
25 | //CreateNoWindow = true,
26 | UseShellExecute = false,
27 | //WindowStyle = ProcessWindowStyle.Minimized,
28 | });
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Ghidra/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Ghidra")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Ghidra")]
13 | [assembly: AssemblyCopyright("Copyright © 2020")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("007aaff6-d3cb-41e1-867e-4f0a5a8c821f")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Ghidra/ghidra.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/Ghidra/ghidra.ico
--------------------------------------------------------------------------------
/GitExtBar/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/GitExtBar/GitExtBar.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace GitExtBar
2 | {
3 | partial class GitExtBar
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.listViewActions = new System.Windows.Forms.ListView();
32 | this.panel1 = new System.Windows.Forms.Panel();
33 | this.labelAction = new System.Windows.Forms.Label();
34 | this.panel1.SuspendLayout();
35 | this.SuspendLayout();
36 | //
37 | // listViewActions
38 | //
39 | this.listViewActions.BorderStyle = System.Windows.Forms.BorderStyle.None;
40 | this.listViewActions.Location = new System.Drawing.Point(-1, 9);
41 | this.listViewActions.Name = "listViewActions";
42 | this.listViewActions.Size = new System.Drawing.Size(415, 42);
43 | this.listViewActions.TabIndex = 1;
44 | this.listViewActions.UseCompatibleStateImageBehavior = false;
45 | //
46 | // panel1
47 | //
48 | this.panel1.BackColor = System.Drawing.Color.White;
49 | this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
50 | this.panel1.Controls.Add(this.listViewActions);
51 | this.panel1.Location = new System.Drawing.Point(12, 29);
52 | this.panel1.Name = "panel1";
53 | this.panel1.Size = new System.Drawing.Size(415, 61);
54 | this.panel1.TabIndex = 2;
55 | //
56 | // labelAction
57 | //
58 | this.labelAction.AutoSize = true;
59 | this.labelAction.Location = new System.Drawing.Point(12, 9);
60 | this.labelAction.Name = "labelAction";
61 | this.labelAction.Size = new System.Drawing.Size(93, 13);
62 | this.labelAction.TabIndex = 0;
63 | this.labelAction.Text = "Choose an action:";
64 | //
65 | // GitExtBar
66 | //
67 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
68 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
69 | this.ClientSize = new System.Drawing.Size(439, 108);
70 | this.Controls.Add(this.panel1);
71 | this.Controls.Add(this.labelAction);
72 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
73 | this.MaximizeBox = false;
74 | this.MinimizeBox = false;
75 | this.Name = "GitExtBar";
76 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
77 | this.Text = "Git Extensions";
78 | this.panel1.ResumeLayout(false);
79 | this.ResumeLayout(false);
80 | this.PerformLayout();
81 |
82 | }
83 |
84 | #endregion
85 | private System.Windows.Forms.ListView listViewActions;
86 | private System.Windows.Forms.Panel panel1;
87 | private System.Windows.Forms.Label labelAction;
88 | }
89 | }
90 |
91 |
--------------------------------------------------------------------------------
/GitExtBar/GitExtBar.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {63A0047E-64E8-4620-BB50-AE1CA17B3975}
8 | WinExe
9 | GitExtBar
10 | GitExtBar
11 | v4.6.1
12 | 512
13 | true
14 |
15 |
16 | AnyCPU
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 | false
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 | false
35 |
36 |
37 | GitExtBar.ico
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 | Form
56 |
57 |
58 | GitExtBar.cs
59 |
60 |
61 |
62 |
63 |
64 | GitExtBar.cs
65 |
66 |
67 | ResXFileCodeGenerator
68 | Resources.Designer.cs
69 | Designer
70 |
71 |
72 | True
73 | Resources.resx
74 | True
75 |
76 |
77 | SettingsSingleFileGenerator
78 | Settings.Designer.cs
79 |
80 |
81 | True
82 | Settings.settings
83 | True
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
--------------------------------------------------------------------------------
/GitExtBar/GitExtBar.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/GitExtBar.ico
--------------------------------------------------------------------------------
/GitExtBar/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace GitExtBar
5 | {
6 | static class Program
7 | {
8 | ///
9 | /// The main entry point for the application.
10 | ///
11 | [STAThread]
12 | static void Main()
13 | {
14 | Application.EnableVisualStyles();
15 | Application.SetCompatibleTextRenderingDefault(false);
16 | Application.Run(new GitExtBar());
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/GitExtBar/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("GitExtBar")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("GitExtBar")]
13 | [assembly: AssemblyCopyright("Copyright © x64dbg 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("63a0047e-64e8-4620-bb50-ae1ca17b3975")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/GitExtBar/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace GitExtBar.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/GitExtBar/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconAbout.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconAbout.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconAdded.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconAdded.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconBranchCheckout.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconBranchCheckout.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconBranchCheckout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconBranchCheckout.png
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconBranchCreate.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconBranchCreate.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconBranchCreate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconBranchCreate.png
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconBrowseFileExplorer.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconBrowseFileExplorer.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconCloneRepoGit.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconCloneRepoGit.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconCommit.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconCommit.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconDiff.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconDiff.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconFileHistory.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconFileHistory.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconPatchApply.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconPatchApply.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconPull.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconPull.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconPullFetch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconPullFetch.png
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconPush.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconPush.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconRepoCreate.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconRepoCreate.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconResetFileTo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconResetFileTo.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconResetWorkingDirChanges.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconResetWorkingDirChanges.png
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconRevisionCheckout.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconRevisionCheckout.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconRevisionCheckout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconRevisionCheckout.png
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconSettings.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconSettings.ico
--------------------------------------------------------------------------------
/GitExtBar/Resources/IconStash.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/GitExtBar/Resources/IconStash.ico
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Projects have different licenses in this repository, look in each subdirectory for details.
--------------------------------------------------------------------------------
/NewFile/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/NewFile/NewFile.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {D442021E-3289-4A76-BBDD-55BB8ECA7C08}
8 | WinExe
9 | NewFile
10 | NewFile
11 | v4.7.2
12 | 512
13 | true
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 | false
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 | false
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/NewFile/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows.Forms;
7 | using Microsoft.VisualBasic;
8 | using System.IO;
9 |
10 | namespace NewFile
11 | {
12 | class Program
13 | {
14 | static void Main(string[] args)
15 | {
16 | var fileName = Interaction.InputBox("Enter file name to create:", "Total Commander");
17 | if (string.IsNullOrEmpty(fileName))
18 | {
19 | return;
20 | }
21 |
22 | var fullPath = Path.Combine(Directory.GetCurrentDirectory(), fileName.Replace('/', Path.DirectorySeparatorChar));
23 |
24 | if (File.Exists(fullPath))
25 | {
26 | Interaction.MsgBox("File already exists!");
27 | return;
28 | }
29 |
30 | var baseDirectory = Path.GetDirectoryName(fullPath);
31 | Directory.CreateDirectory(baseDirectory);
32 | using (var file = File.Create(fullPath))
33 | {
34 |
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/NewFile/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NewFile")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("NewFile")]
13 | [assembly: AssemblyCopyright("Copyright © 2021")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("d442021e-3289-4a76-bbdd-55bb8eca7c08")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Notes/.gitignore:
--------------------------------------------------------------------------------
1 | .vs/
2 | bin/
3 | obj/
4 | *.user
5 | packages/
6 |
--------------------------------------------------------------------------------
/Notes/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Duncan Ogilvie
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/Notes/Notes.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30611.23
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Notes", "Notes\Notes.csproj", "{2802E943-0E90-4267-B6FF-E65D6E4E267F}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TreeList", "TreeList\TreeList.csproj", "{CDF6194D-77E1-4E17-8D2A-94908663D09D}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {2802E943-0E90-4267-B6FF-E65D6E4E267F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {2802E943-0E90-4267-B6FF-E65D6E4E267F}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {2802E943-0E90-4267-B6FF-E65D6E4E267F}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {2802E943-0E90-4267-B6FF-E65D6E4E267F}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {CDF6194D-77E1-4E17-8D2A-94908663D09D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {CDF6194D-77E1-4E17-8D2A-94908663D09D}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {CDF6194D-77E1-4E17-8D2A-94908663D09D}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {CDF6194D-77E1-4E17-8D2A-94908663D09D}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {FA72DAE7-6D2B-4205-8D83-0378DAF76382}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/Notes/Notes/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | NOTSET
15 |
16 |
17 | NOTSET
18 |
19 |
20 | Personal
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Notes/Notes/Notes.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace Notes
2 | {
3 | partial class Notes
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.buttonSubmit = new System.Windows.Forms.Button();
32 | this.radioButtonWork = new System.Windows.Forms.RadioButton();
33 | this.radioButtonPersonal = new System.Windows.Forms.RadioButton();
34 | this.treeList = new TreeList.TreeList();
35 | this.SuspendLayout();
36 | //
37 | // buttonSubmit
38 | //
39 | this.buttonSubmit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
40 | this.buttonSubmit.Location = new System.Drawing.Point(422, 290);
41 | this.buttonSubmit.Name = "buttonSubmit";
42 | this.buttonSubmit.Size = new System.Drawing.Size(75, 23);
43 | this.buttonSubmit.TabIndex = 1;
44 | this.buttonSubmit.Text = "&Submit";
45 | this.buttonSubmit.UseVisualStyleBackColor = true;
46 | this.buttonSubmit.Click += new System.EventHandler(this.buttonSubmit_Click);
47 | //
48 | // radioButtonWork
49 | //
50 | this.radioButtonWork.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
51 | this.radioButtonWork.AutoSize = true;
52 | this.radioButtonWork.Location = new System.Drawing.Point(365, 293);
53 | this.radioButtonWork.Name = "radioButtonWork";
54 | this.radioButtonWork.Size = new System.Drawing.Size(51, 17);
55 | this.radioButtonWork.TabIndex = 2;
56 | this.radioButtonWork.Text = "&Work";
57 | this.radioButtonWork.UseVisualStyleBackColor = true;
58 | //
59 | // radioButtonPersonal
60 | //
61 | this.radioButtonPersonal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
62 | this.radioButtonPersonal.AutoSize = true;
63 | this.radioButtonPersonal.Checked = true;
64 | this.radioButtonPersonal.Location = new System.Drawing.Point(293, 293);
65 | this.radioButtonPersonal.Name = "radioButtonPersonal";
66 | this.radioButtonPersonal.Size = new System.Drawing.Size(66, 17);
67 | this.radioButtonPersonal.TabIndex = 3;
68 | this.radioButtonPersonal.TabStop = true;
69 | this.radioButtonPersonal.Text = "&Personal";
70 | this.radioButtonPersonal.UseVisualStyleBackColor = true;
71 | //
72 | // treeList
73 | //
74 | this.treeList.AcceptsTab = true;
75 | this.treeList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
76 | | System.Windows.Forms.AnchorStyles.Left)
77 | | System.Windows.Forms.AnchorStyles.Right)));
78 | this.treeList.BackColor = System.Drawing.Color.White;
79 | this.treeList.BorderStyle = System.Windows.Forms.BorderStyle.None;
80 | this.treeList.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
81 | this.treeList.Location = new System.Drawing.Point(12, 12);
82 | this.treeList.Name = "treeList";
83 | this.treeList.Size = new System.Drawing.Size(485, 272);
84 | this.treeList.TabIndex = 0;
85 | //
86 | // Notes
87 | //
88 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
89 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
90 | this.BackColor = System.Drawing.Color.White;
91 | this.ClientSize = new System.Drawing.Size(509, 325);
92 | this.Controls.Add(this.radioButtonPersonal);
93 | this.Controls.Add(this.radioButtonWork);
94 | this.Controls.Add(this.treeList);
95 | this.Controls.Add(this.buttonSubmit);
96 | this.Name = "Notes";
97 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
98 | this.Text = "Notes";
99 | this.ResumeLayout(false);
100 | this.PerformLayout();
101 |
102 | }
103 |
104 | #endregion
105 | private System.Windows.Forms.Button buttonSubmit;
106 | private TreeList.TreeList treeList;
107 | private System.Windows.Forms.RadioButton radioButtonWork;
108 | private System.Windows.Forms.RadioButton radioButtonPersonal;
109 | }
110 | }
111 |
112 |
--------------------------------------------------------------------------------
/Notes/Notes/Notes.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {2802E943-0E90-4267-B6FF-E65D6E4E267F}
8 | WinExe
9 | Notes
10 | Notes
11 | v4.7.2
12 | 512
13 | true
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 | notes.ico
37 |
38 |
39 |
40 | ..\..\packages\Airtable.1.1.4\lib\netstandard2.0\AirtableApiClient.dll
41 |
42 |
43 | ..\..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | Form
62 |
63 |
64 | Notes.cs
65 |
66 |
67 |
68 |
69 | Notes.cs
70 |
71 |
72 | ResXFileCodeGenerator
73 | Resources.Designer.cs
74 | Designer
75 |
76 |
77 | True
78 | Resources.resx
79 |
80 |
81 |
82 | SettingsSingleFileGenerator
83 | Settings.Designer.cs
84 |
85 |
86 | True
87 | Settings.settings
88 | True
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 | {CDF6194D-77E1-4E17-8D2A-94908663D09D}
97 | TreeList
98 |
99 |
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/Notes/Notes/Notes.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/Notes/Notes/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using System.Windows.Forms;
7 | using Notes.Properties;
8 | using System.Threading;
9 | using System.Reflection;
10 | using System.IO;
11 | using System.Runtime.InteropServices;
12 |
13 | namespace Notes
14 | {
15 | static class Program
16 | {
17 | [DllImport("user32.dll")]
18 | [return: MarshalAs(UnmanagedType.Bool)]
19 | private static extern bool ShowWindow(IntPtr hWnd, ShowWindowEnum flags);
20 |
21 | [DllImport("user32.dll")]
22 | private static extern int SetForegroundWindow(IntPtr hwnd);
23 |
24 | [DllImport("user32.dll")]
25 | [return: MarshalAs(UnmanagedType.Bool)]
26 | private static extern bool FlashWindow(IntPtr hWnd, bool bInvert);
27 |
28 | private enum ShowWindowEnum
29 | {
30 | Hide = 0,
31 | ShowNormal = 1, ShowMinimized = 2, ShowMaximized = 3,
32 | Maximize = 3, ShowNormalNoActivate = 4, Show = 5,
33 | Minimize = 6, ShowMinNoActivate = 7, ShowNoActivate = 8,
34 | Restore = 9, ShowDefault = 10, ForceMinimized = 11
35 | };
36 |
37 | ///
38 | /// The main entry point for the application.
39 | ///
40 | [STAThread]
41 | static void Main()
42 | {
43 | Application.EnableVisualStyles();
44 | Application.SetCompatibleTextRenderingDefault(false);
45 |
46 | // Check if there is already another instance open
47 | // https://stackoverflow.com/a/59079638/1806760
48 | var mutex = new Mutex(true, $"Global\\{typeof(Notes).GUID}", out bool mutexCreated);
49 | if (!mutexCreated)
50 | {
51 | // Attempt to bring the other instance to the front
52 | var processName = Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().Location);
53 | var process = Process.GetProcessesByName(processName).Where(p => p.Id != Process.GetCurrentProcess().Id).FirstOrDefault();
54 |
55 | if (process != null)
56 | {
57 | var hWnd = process.MainWindowHandle;
58 | if (hWnd != IntPtr.Zero)
59 | {
60 | ShowWindow(hWnd, ShowWindowEnum.Restore);
61 | SetForegroundWindow(hWnd);
62 | FlashWindow(hWnd, true);
63 | return;
64 | }
65 | }
66 |
67 | MessageBox.Show("Another instance is already running!");
68 | return;
69 | }
70 |
71 | // Verify settings
72 | var defaultTable = Settings.Default.DefaultTable;
73 | switch (defaultTable)
74 | {
75 | case "Personal":
76 | case "Work":
77 | break;
78 | default:
79 | MessageBox.Show($"Invalid DefaultTable \"{defaultTable}\". Fix your configuration!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
80 | Environment.Exit(1);
81 | break;
82 | }
83 | if (Settings.Default.APIKey == "NOTSET" || Settings.Default.BaseID == "NOTSET")
84 | {
85 | MessageBox.Show("APIKey and/or BaseID not set up correctly. Fix your configuration!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
86 | Process.Start("https://airtable.com/api");
87 | Environment.Exit(1);
88 | }
89 |
90 | Application.Run(new Notes());
91 | }
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/Notes/Notes/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Notes")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Notes")]
13 | [assembly: AssemblyCopyright("Copyright © Duncan Ogilvie 2020")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("2802e943-0e90-4267-b6ff-e65d6e4e267f")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Notes/Notes/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Notes.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Notes.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Notes/Notes/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/Notes/Notes/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Notes.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 |
26 | [global::System.Configuration.ApplicationScopedSettingAttribute()]
27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
28 | [global::System.Configuration.DefaultSettingValueAttribute("NOTSET")]
29 | public string BaseID {
30 | get {
31 | return ((string)(this["BaseID"]));
32 | }
33 | }
34 |
35 | [global::System.Configuration.ApplicationScopedSettingAttribute()]
36 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
37 | [global::System.Configuration.DefaultSettingValueAttribute("NOTSET")]
38 | public string APIKey {
39 | get {
40 | return ((string)(this["APIKey"]));
41 | }
42 | }
43 |
44 | [global::System.Configuration.ApplicationScopedSettingAttribute()]
45 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
46 | [global::System.Configuration.DefaultSettingValueAttribute("Personal")]
47 | public string DefaultTable {
48 | get {
49 | return ((string)(this["DefaultTable"]));
50 | }
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/Notes/Notes/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | NOTSET
7 |
8 |
9 | NOTSET
10 |
11 |
12 | Personal
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Notes/Notes/TreeList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 | using System.Windows.Forms.Design;
9 |
10 | namespace Notes
11 | {
12 | [Designer(typeof(ParentControlDesigner))]
13 | public class TreeList : RichTextBox
14 | {
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Notes/Notes/notes-pngrepo-com.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/Notes/Notes/notes-pngrepo-com.png
--------------------------------------------------------------------------------
/Notes/Notes/notes-svgrepo-com.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
50 |
--------------------------------------------------------------------------------
/Notes/Notes/notes.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrexodia/FunUtils/466967cbc3102d8db68f5193af45e2ef90e76a97/Notes/Notes/notes.ico
--------------------------------------------------------------------------------
/Notes/Notes/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Notes/TreeList/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("TreeList")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("TreeList")]
13 | [assembly: AssemblyCopyright("Copyright © Duncan Ogilvie 2020")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("cdf6194d-77e1-4e17-8d2a-94908663d09d")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Notes/TreeList/TreeList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.CodeDom.Compiler;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 | using System.Windows.Forms.Design;
11 |
12 | namespace TreeList
13 | {
14 | [Designer(typeof(ParentControlDesigner))]
15 | public class TreeList : RichTextBox
16 | {
17 | private readonly int Indent = 30;
18 |
19 | public TreeList()
20 | {
21 | SelectionBullet = true;
22 | AcceptsTab = true;
23 | }
24 |
25 | public void DumpHistory()
26 | {
27 | var historyDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "history");
28 | Directory.CreateDirectory(historyDir);
29 | var historyFile = Path.Combine(historyDir, $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss_fff}.rtf");
30 | File.WriteAllText(historyFile, Rtf);
31 | }
32 |
33 | public int GetLineIndent(int line)
34 | {
35 | return GetPositionFromCharIndex(GetFirstCharIndexFromLine(line)).X / Indent;
36 | }
37 |
38 | protected override void OnKeyDown(KeyEventArgs e)
39 | {
40 | if (SelectionLength > 0)
41 | {
42 | // Do not attempt to customize the behavior when there is a selection
43 | base.OnKeyDown(e);
44 | }
45 | else if (e.KeyCode == Keys.Tab)
46 | {
47 | e.Handled = true;
48 | var lineIdx = GetLineFromCharIndex(SelectionStart);
49 | if (e.Shift)
50 | {
51 | if (SelectionIndent != 0)
52 | {
53 | // Only allow un-indenting if there is indentation
54 | SelectionIndent -= Indent;
55 | }
56 | else
57 | {
58 | // Ignore un-indent
59 | }
60 | }
61 | else if (lineIdx > 0 && GetLineIndent(lineIdx - 1) >= GetLineIndent(lineIdx))
62 | {
63 | // First line cannot be indented
64 | // Only allow indenting if the previous line has a bigger or equal level
65 | SelectionIndent += Indent;
66 | }
67 | }
68 | else if (e.KeyCode == Keys.Back)
69 | {
70 | if (SelectionStart == 0)
71 | {
72 | // Do not delete the list itself
73 | e.Handled = true;
74 | }
75 | else if (SelectionStart - GetFirstCharIndexOfCurrentLine() == 0)
76 | {
77 | // When pressing backspace on an empty bullet: delete the bullet and move to the end of the previous line
78 | SelectionBullet = false;
79 | SelectionStart--;
80 | SelectionBullet = true;
81 | e.Handled = true;
82 | }
83 | else
84 | {
85 | base.OnKeyDown(e);
86 | }
87 | }
88 | else if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
89 | {
90 | // TODO: detect enter on the first line and act accordingly (create new bullet)
91 | if (/* false && */ SelectionStart - GetFirstCharIndexOfCurrentLine() == 0)
92 | {
93 | // When pressing enter on an empty bullet: do nothing (TODO: allow empty bullets), or reduce nesting if nested
94 | if (SelectionIndent > 0)
95 | SelectionIndent -= Indent;
96 | e.Handled = true;
97 | }
98 | else
99 | {
100 | base.OnKeyDown(e);
101 | }
102 | }
103 | else
104 | {
105 | base.OnKeyDown(e);
106 | }
107 | }
108 |
109 | protected override void OnKeyPress(KeyPressEventArgs e)
110 | {
111 | if (e.KeyChar == '\t')
112 | {
113 | e.Handled = true;
114 | }
115 | else
116 | {
117 | base.OnKeyPress(e);
118 |
119 | // If the user manages to escape the bulleted list, start a new one
120 | SelectionBullet = true;
121 | }
122 | }
123 | }
124 | }
125 |
--------------------------------------------------------------------------------
/Notes/TreeList/TreeList.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {CDF6194D-77E1-4E17-8D2A-94908663D09D}
8 | Library
9 | TreeList
10 | TreeList
11 | v4.7.2
12 | 512
13 | true
14 |
15 |
16 | true
17 | full
18 | false
19 | bin\Debug\
20 | DEBUG;TRACE
21 | prompt
22 | 4
23 |
24 |
25 | pdbonly
26 | true
27 | bin\Release\
28 | TRACE
29 | prompt
30 | 4
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | Component
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # FunUtils
2 |
3 | Just some fun utilities I wrote for productivity reasons.
4 |
5 | ## GitExtBar
6 |
7 | 
8 |
9 | Icon source: https://github.com/gitextensions/gitextensions
10 |
11 | ## DirBrowser
12 |
13 | 
14 |
15 | Icon source: https://visualpharm.com/free-icons/open-595b40b85ba036ed117da75e
16 |
17 | ## Ghidra
18 |
19 | Copy `Ghidra.exe` next to `ghidraRun.bat` and add a shortcut to your desktop/start menu.
20 |
21 | ## sudo
22 |
23 | Simple `sudo` utility for Windows:
24 |
25 | 
26 |
27 | Icon source: `user32.dll`
28 |
29 | ## Notes
30 |
31 | Very simple application that allows you to submit notes to [Airtable](https://airtable.com).
32 |
33 | 
34 |
35 | Icon source: https://www.svgrepo.com/svg/142693/notes
36 |
37 | ## SysShellHandler
38 |
39 | Simple utility to provide some meaningful options when opening a `.sys` file in explorer.
40 |
41 | 
42 |
--------------------------------------------------------------------------------
/RipGrepGUI/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | False
15 |
16 |
17 | True
18 |
19 |
20 | True
21 |
22 |
23 | True
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/RipGrepGUI/Helpers.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading;
3 | using System.Diagnostics;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using System.Windows.Forms;
9 | using System.Configuration;
10 | using RipGrepGUI.Properties;
11 | using System.Reflection;
12 |
13 | namespace RipGrepGUI
14 | {
15 | static class Helpers
16 | {
17 | ///
18 | /// Waits asynchronously for the process to exit.
19 | ///
20 | /// The process to wait for cancellation.
21 | /// A cancellation token. If invoked, the task will return
22 | /// immediately as cancelled.
23 | /// A Task representing waiting for the process to end.
24 | public static Task WaitForExitAsync(
25 | this Process process,
26 | CancellationToken cancellationToken = default(CancellationToken))
27 | {
28 | process.EnableRaisingEvents = true;
29 |
30 | var taskCompletionSource = new TaskCompletionSource