private void extCheckBoxStar_Click(object sender, EventArgs e) { if (extCheckBoxStar.Checked == true) { ExtendedControls.ConfigurableForm f = new ExtendedControls.ConfigurableForm(); int width = 500; f.Add(new ExtendedControls.ConfigurableForm.Entry("L", typeof(Label), "System:".T(EDTx.UserControlEDSM_System), new Point(10, 40), new Size(110, 24), null)); f.Add(new ExtendedControls.ConfigurableForm.Entry("Sys", typeof(ExtendedControls.ExtTextBoxAutoComplete), "", new Point(120, 40), new Size(width - 120 - 20, 24), null)); f.AddOK(new Point(width - 20 - 80, 80)); f.AddCancel(new Point(width - 200, 80)); f.Trigger += (dialogname, controlname, tag) => { if (controlname == "OK" || controlname == "Cancel" || controlname == "Close") { f.ReturnResult(controlname == "OK" ? DialogResult.OK : DialogResult.Cancel); } else if (controlname == "Sys:Return") { if (f.Get("Sys").HasChars()) { f.ReturnResult(DialogResult.OK); } f.SwallowReturn = true; } }; f.InitCentred(this.FindForm(), this.FindForm().Icon, "Show System".T(EDTx.UserControlEDSM_EnterSys), null, null, closeicon: true); f.GetControl <ExtendedControls.ExtTextBoxAutoComplete>("Sys").SetAutoCompletor(SystemCache.ReturnSystemAutoCompleteList, true); DialogResult res = f.ShowDialog(this.FindForm()); if (res == DialogResult.OK) { string sname = f.Get("Sys"); if (sname.HasChars()) { override_system = new EliteDangerousCore.SystemClass(sname); PresentSystem(override_system); extCheckBoxStar.Checked = true; } else { extCheckBoxStar.Checked = false; } } else { extCheckBoxStar.Checked = false; } } else { override_system = null; PresentSystem(last_sys); extCheckBoxStar.Checked = false; } }
private void extPictureTrades_ClickElement(object sender, MouseEventArgs eventargs, ExtendedControls.ExtPictureBox.ImageElement i, object tag) { if (i != null && tag is ElementTrade && last_mcl != null) // must be an element, with a tag, must have a current mcl { ElementTrade current = (ElementTrade)tag; System.Diagnostics.Debug.WriteLine("Clicked on " + current.type + " " + current.element.Name); if (selected != null) { List <MaterialCommodityMicroResource> mcl = discoveryform.history.MaterialCommoditiesMicroResources.Get(last_mcl.Value); int currenttotal = mcl.Find(x => x.Details == current.element)?.Count ?? 0; // current mat total. If not there, its zero foreach (var trade in tradelist) { if (trade.fromelement.FDName == current.element.FDName) { currenttotal -= trade.offer; // may go negative if over offered } if (trade.element.FDName == current.element.FDName) { currenttotal += trade.receive; } } if (selected.element.FDName == current.element.FDName) // clicked on same.. deselect { selected = null; } else if (currenttotal >= current.offer) // if we have enough for at least 1 trade { DisplayTradeSelection(current.element); ExtendedControls.ConfigurableForm f = new ExtendedControls.ConfigurableForm(); int width = 250; int margin = 20; var butl = new ExtendedControls.ExtButton(); butl.Image = BaseUtils.Icons.IconSet.GetIcon("Controls.MaterialTrader.LeftArrow"); f.Add(new ExtendedControls.ConfigurableForm.Entry(butl, "less", "", new Point(margin, 64), new Size(32, 32), null)); var butr = new ExtendedControls.ExtButton(); butr.Image = BaseUtils.Icons.IconSet.GetIcon("Controls.MaterialTrader.RightArrow"); f.Add(new ExtendedControls.ConfigurableForm.Entry(butr, "more", "", new Point(width - margin - 32, 64), new Size(32, 32), null)); f.Add(new ExtendedControls.ConfigurableForm.Entry("olabel", typeof(Label), "Offer".T(EDTx.UserControlMaterialTrader_Offer), new Point(margin, 30), new Size(width - margin * 2, 20), null, 1.5f, ContentAlignment.MiddleCenter)); f.Add(new ExtendedControls.ConfigurableForm.Entry("offer", typeof(Label), "0/" + currenttotal.ToStringInvariant(), new Point(width / 2 - 12, 50), new Size(width / 2 - 20, 20), null, 1.2f, ContentAlignment.MiddleLeft)); var bar = new PictureBox(); bar.SizeMode = PictureBoxSizeMode.StretchImage; bar.Image = BaseUtils.Icons.IconSet.GetIcon("Controls.MaterialTrader.TraderBar"); f.Add(new ExtendedControls.ConfigurableForm.Entry(bar, "bar", "", new Point(width / 2 - 32, 70), new Size(64, 16), null)); f.Add(new ExtendedControls.ConfigurableForm.Entry("receive", typeof(Label), "0", new Point(width / 2 - 12, 90), new Size(width / 2 - 20, 20), null, 1.2f, ContentAlignment.MiddleLeft)); f.Add(new ExtendedControls.ConfigurableForm.Entry("rlabel", typeof(Label), "Receive".T(EDTx.UserControlMaterialTrader_Receive), new Point(margin, 110), new Size(width - margin * 2, 20), null, 1.5f, ContentAlignment.MiddleCenter)); f.AddOK(new Point(width - margin - 80, 150), "Press to Accept".T(EDTx.UserControlModules_PresstoAccept)); f.AddCancel(new Point(margin, 150), "Press to Cancel".T(EDTx.UserControlModules_PresstoCancel)); int currentoffer = 0; int currentreceive = 0; f.Trigger += (dialogname, controlname, xtag) => { if (controlname == "OK") { f.ReturnResult(DialogResult.OK); } else if (controlname == "Cancel" || controlname == "Close") { f.ReturnResult(DialogResult.Cancel); } else if (controlname == "less" || controlname == "more") { if (controlname == "less") { if (currentoffer > 0) { currentoffer -= current.offer; currentreceive -= current.receive; } } else { int newoffer = currentoffer + current.offer; if (newoffer <= currenttotal) { currentoffer = newoffer; currentreceive += current.receive; } } f.GetControl <Label>("offer").Text = currentoffer.ToStringInvariant() + "/" + currenttotal.ToStringInvariant(); f.GetControl <Label>("receive").Text = currentreceive.ToStringInvariant(); } }; f.RightMargin = margin; f.InitCentred(this.FindForm(), this.FindForm().Icon, " ", closeicon: true); DialogResult res = f.ShowDialog(); if (res == DialogResult.OK) { ElementTrade t = new ElementTrade() { element = selected.element, fromelement = current.element, offer = currentoffer, receive = currentreceive }; tradelist.Add(t); selected = null; StoreTrades(); DisplayTradeList(); } DisplayTradeSelection(); } } else { selected = current; } DisplayTradeSelection(); } }
public override bool ExecuteAction(ActionProgramRun ap) { string exp; if (ap.Functions.ExpandString(UserData, out exp) != Functions.ExpandResult.Failed) { StringParser sp = new StringParser(exp); string handle = sp.NextWordComma(); if (handle != null) { bool infile = ap.ActionFile.Dialogs.ContainsKey(handle); bool inlocal = ap.Dialogs.ContainsKey(handle); ExtendedControls.ConfigurableForm f = infile ? ap.ActionFile.Dialogs[handle] : (inlocal ? ap.Dialogs[handle] : null); string cmd = sp.NextWordLCInvariant(); if (cmd == null) { ap.ReportError("Missing command in DialogControl"); } else if (cmd.Equals("exists")) { ap["Exists"] = (f != null) ? "1" : "0"; } else if (f == null) { ap.ReportError("No such dialog exists in DialogControl"); } else if (cmd.Equals("continue")) { return((inlocal) ? false : true); // if local, pause. else just ignore } else if (cmd.Equals("position")) // verified 10/1/21 { int?x = sp.NextIntComma(","); int?y = sp.NextInt(); if (x != null) { if (y != null) { f.Location = new System.Drawing.Point(x.Value, y.Value); } else { ap.ReportError("Missing position in DialogControl position"); } } else if (sp.IsEOL) { ap["X"] = f.Location.X.ToStringInvariant(); ap["Y"] = f.Location.Y.ToStringInvariant(); } else { ap.ReportError("Missing position in DialogControl position"); } } else if (cmd.Equals("size")) // verified 10/1/21 { int?w = sp.NextIntComma(","); int?h = sp.NextInt(); if (w != null) { if (h != null) { f.Size = new System.Drawing.Size(w.Value, h.Value); } else { ap.ReportError("Missing size in DialogControl size"); } } else if (sp.IsEOL) { ap["W"] = f.Size.Width.ToStringInvariant(); ap["H"] = f.Size.Height.ToStringInvariant(); } else { ap.ReportError("Missing size in DialogControl size"); } } else if (cmd.Equals("get")) { string control = sp.NextQuotedWord(); string r; if (control != null && (r = f.Get(control)) != null) { ap["DialogResult"] = r; } else { ap.ReportError("Missing or invalid dialog name in DialogControl get"); } } else if (cmd.Equals("set")) { string control = sp.NextQuotedWord(" ="); string value = sp.IsCharMoveOn('=') ? sp.NextQuotedWord() : null; if (control != null && value != null) { if (!f.Set(control, value)) { ap.ReportError("Cannot set control " + control + " in DialogControl set"); } } else { ap.ReportError("Missing or invalid dialog name and/or value in DialogControl set"); } } else if (cmd.Equals("enable") || cmd.Equals("visible")) // verified 10/1/21 { string control = sp.NextQuotedWord(); Control c; if (control != null && (c = f.GetControl(control)) != null) { bool?r = sp.NextBoolComma(); if (r != null) { if (cmd.Equals("enable")) { c.Enabled = r.Value; } else { c.Visible = r.Value; } } else if (sp.IsEOL) { if (cmd.Equals("enable")) { ap["Enabled"] = c.Enabled.ToStringIntValue(); } else { ap["Visible"] = c.Visible.ToStringIntValue(); } } else { ap.ReportError("Missing or invalid " + cmd + "value in DialogControl " + cmd); } } else { ap.ReportError("Missing or invalid dialog control name in DialogControl " + cmd); } } else if (cmd.Equals("controlbounds")) // verified 10/1/21 { string control = sp.NextQuotedWord(); Control c; if (control != null && (c = f.GetControl(control)) != null) { int?x = sp.NextIntComma(","); int?y = sp.NextIntComma(","); int?w = sp.NextIntComma(","); int?h = sp.NextInt(); if (x != null && y != null && w != null && h != null) { c.Bounds = new System.Drawing.Rectangle(x.Value, y.Value, w.Value, h.Value); } else if (sp.IsEOL) { ap["X"] = c.Left.ToStringInvariant(); ap["Y"] = c.Top.ToStringInvariant(); ap["W"] = c.Width.ToStringInvariant(); ap["H"] = c.Height.ToStringInvariant(); } else { ap.ReportError("Missing or invalid bounds values in DialogControl controlbounds"); } } else { ap.ReportError("Missing or invalid dialog control name in DialogControl controlbounds"); } } else if (cmd.Equals("close")) { f.ReturnResult(f.DialogResult); if (inlocal) { ap.Dialogs.Remove(handle); } else { ap.ActionFile.Dialogs.Remove(handle); } } else { ap.ReportError("Unknown command in DialogControl"); } } else { ap.ReportError("Missing handle in DialogControl"); } } else { ap.ReportError(exp); } return(true); }