public override void MouseDown(Rectangle rect, MouseButtons button, int x, int y) { if (button == MouseButtons.Right) { foreach (var reference in _drawnReferences) { if (reference.Rectangle.X <= x && reference.Rectangle.Right > x) { var menu = default(ContextMenuStrip); switch (reference.Reference) { case BranchBase branch: menu = new BranchMenu(branch); break; case Tag tag: menu = new TagMenu(tag); break; case Head head: menu = new HeadMenu(head); break; } if (menu != null) { Utility.MarkDropDownForAutoDispose(menu); Owner.OnContextMenuRequested(menu, new Point(x + 1, y + 1)); } return; } } } }
static void WriteTreeIndexToConsole(BranchMenu bMenu) { Console.WriteLine(bMenu.Text + " => " + bMenu.GetTreeIndexString()); foreach (var i in bMenu.Items) { WriteTreeIndexToConsole(i); } }
/// <summary> /// BranchMenu yü Json formatına dönüştürür /// </summary> /// <param name="menu">BranchMenu</param> /// <param name="path">Jsonun formatındaki dosyanın kaydedileceği yer</param> public static void BranchMenuToJSON(BranchMenu menu, string path) { using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) using (StreamWriter sw = new StreamWriter(fs)) { sw.Write(JsonConvert.SerializeObject(menu, jss)); } }
//BranchMenu den ToolStripMenuItem oluştur static ToolStripMenuItem GetMainMenu(BranchMenu menu) { var mainStripMenu = new ToolStripMenuItem(); ApplyStripMenuItem(ref mainStripMenu, menu); mainStripMenu.Tag = menu;//SmartOperation stripMenuItem_Click kontrol et return(mainStripMenu); }
public IMenuBuilder AddBranch(string name) { var branchMenu = new BranchMenu { Name = name }; branchMenu.ParentId = menu.Id; menu.AddSubMenu(branchMenu); return(new MenuBuilder(this, branchMenu)); }
/// <summary> /// Json formatındaki dosyayı okur ve BranchMenuye dönüştürür /// </summary> /// <param name="path">Okunacak dosya</param> /// <returns>Dönüştürülen BranchMenu</returns> public static BranchMenu JSONToBranchMenu(string path) { BranchMenu returnObj = null; using (StreamReader sr = new StreamReader(path)) { returnObj = JsonConvert.DeserializeObject <BranchMenu>(sr.ReadToEnd(), jss); } return(returnObj); }
static void BranchMenuBuilder() { BranchMenu branchMenu = new BranchMenu() { CanShowMenu = true, IsEnabled = true, Text = "Ogz's Context", Script = new ContextLua() { Show = "_MENU.Items[2][\"ExtData\"]={IsVisible=true}" } }; branchMenu.Items.Add(new BranchMenuItem() { ExtData = new ExpandoObject() { }, IsEnabled = true, Text = "Run Batch", Commands = new List <OgzShell.CLASSES.Command>() { new OgzShell.CLASSES.BatchScript() { CanShowConsole = true, Parameters = " custom par", Path = @"C:\OguzhanE\Projects\CSharp\WinForms\OgzShell\tst\ts.bat", }, } }); branchMenu.Items[0].ExtData.IsVisible = false; branchMenu.Items.Add(new BranchMenuItem() { IsEnabled = false, Text = "Run PS", ImagePath = @"C:\Users\unquiet\Downloads\1415656688_wooman.png", Commands = new List <OgzShell.CLASSES.Command>() { new OgzShell.CLASSES.PowerShellScript() { CanShowConsole = true, Parameters = " my pars", Path = @"C:\OguzhanE\Projects\CSharp\WinForms\OgzShell\tst\test.ps1", } } }); BranchMenuToJSON(branchMenu, @"C:\OguzhanE\Projects\CSharp\WinForms\OgzShell\src\OgzContext\bin\Release\Branches\pp.ogz"); Console.WriteLine("BrancMenu oluşturulup json formatında kaydedildi"); }
/// <summary> /// Json formatındaki dosyayı okr vs BranchMenuye dönüştürür /// </summary> /// <param name="path">Okunacak ddosya</param> /// <returns>Dönüştürülen BranchMenu</returns> public static BranchMenu JSONToBranchMenu(string path) { JsonSerializerSettings jss = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, TypeNameHandling = TypeNameHandling.Auto, }; BranchMenu returnObj = null; using (StreamReader sr = new StreamReader(path)) { returnObj = JsonConvert.DeserializeObject <BranchMenu>(sr.ReadToEnd(), jss); } return(returnObj); }
/// <summary> /// BranchMenu yü Json formatına dönüştürür /// </summary> /// <param name="menu">BranchMenu</param> /// <param name="path">Jsonun formatındaki dosyanın kaydedileceği yer</param> public static void BranchMenuToJSON(BranchMenu menu, string path) { JsonSerializerSettings jss = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, TypeNameHandling = TypeNameHandling.Auto,//abstract classlar sorun çıkartıyor sınıfın tipini belirterek serialize et }; if (File.Exists(path)) { File.Delete(path); } using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) using (StreamWriter sw = new StreamWriter(fs)) { sw.Write(JsonConvert.SerializeObject(menu, jss)); } }
// adds New BranchMenu to Context static void AddBranchToContextMenuStrip(ref ContextMenuStrip cxtMenuStrip, BranchMenu branchMenu) { try { //ana branch var mainStripMenu = GetMainMenu(branchMenu); foreach (var item in branchMenu.Items) { // child branch var stripMenuItem = GetMenuItem(item); mainStripMenu.DropDownItems.Add(stripMenuItem); AddItemToStripMenuItem(item, stripMenuItem); } cxtMenuStrip.Items.Add(mainStripMenu); } catch { } }
public override void MouseDown(Rectangle rect, MouseButtons button, int x, int y) { if (button == MouseButtons.Right) { foreach (var reference in _drawnReferences) { if (reference.Rectangle.X <= x && reference.Rectangle.Right > x) { var branch = reference.Reference as BranchBase; if (branch != null) { var menu = new BranchMenu(branch); Utility.MarkDropDownForAutoDispose(menu); Owner.OnContextMenuRequested(menu, new Point(x + 1, y + 1)); return; } var tag = reference.Reference as Tag; if (tag != null) { var menu = new TagMenu(tag); Utility.MarkDropDownForAutoDispose(menu); Owner.OnContextMenuRequested(menu, new Point(x + 1, y + 1)); return; } var head = reference.Reference as Head; if (head != null) { var menu = new HeadMenu(head); Utility.MarkDropDownForAutoDispose(menu); Owner.OnContextMenuRequested(menu, new Point(x + 1, y + 1)); return; } return; } } } }