public FileGadget(Gadget parent, IFileResolver fileResolver) : base(parent) { this.fileResolver = fileResolver; layout = new BoxLayout(Orientation.Vertical, Alignment.Fill); table = new TableGadget(this) { EvenColumns = false, SelectedCellChangedEvent = (o, i) => { TableSelectedChanged(); } }; table.AddColumn("Name", -1); table.AddColumn("Size", 64); table.AddColumn("Date", 130); table.AddColumn("Comment", 140); var dirBox = new BoxGadget(this, Orientation.Horizontal, Alignment.Fill); new LabelGadget(dirBox, "Drawer") { FixedWidth = 100 }; dirName = new StrGadget(dirBox) { FixedWidth = 300 }; var fileBox = new BoxGadget(this, Orientation.Horizontal, Alignment.Fill); new LabelGadget(fileBox, "File") { FixedWidth = 100 }; fileName = new StrGadget(fileBox) { FixedWidth = 300 }; var buttonBox = new BoxGadget(this, Orientation.Horizontal, Alignment.Fill, 0, 100); butOk = new ButtonGadget(buttonBox, "Open") { GadgetUpEvent = (o, i) => { Ok(); } }; butVolumes = new ButtonGadget(buttonBox, "Volumes") { GadgetUpEvent = (o, i) => { Volumes(); } }; butParent = new ButtonGadget(buttonBox, "Parent") { GadgetUpEvent = (o, i) => { GoToParent(); } }; butCancel = new ButtonGadget(buttonBox, "Cancel") { GadgetUpEvent = (o, i) => { Cancel(); } }; }
public void RenderGadget(IGraphics gfx, StrGadget gadget) { var frame = gadget.Bounds; var lFrame = gadget.LabelBounds; var cFrame = gadget.ContainerBounds; if (!string.IsNullOrEmpty(gadget.Label)) { gfx.RenderText(gadget.Font, gadget.Label, lFrame.CenterX, lFrame.CenterY, gadget.MouseSelected ? SelectedTextPen : TextPen); } DrawBox(gfx, cFrame, ShadowPen, ShinePen); string buffer = gadget.Buffer + " "; int lineSkip = 20; if (!string.IsNullOrEmpty(buffer)) { gfx.SaveState(); gfx.SetClip(cFrame.X, cFrame.Y, cFrame.Width, cFrame.Height); cFrame.Inflate(-2, -2); int x = cFrame.X; int y = cFrame.Y; bool selected = false; for (int i = 0; i < buffer.Length; i++) { var c = buffer[i]; selected = (i >= gadget.BufferSelStart && i < gadget.BufferSelEnd); if (selected) { gfx.RenderText(gadget.Font, "" + c, x, y, SelectedTextPen, GadgetSelectedPen, HorizontalTextAlign.Left, VerticalTextAlign.Top); } else { gfx.RenderText(gadget.Font, "" + c, x, y, TextPen, HorizontalTextAlign.Left, VerticalTextAlign.Top); } if (i == gadget.BufferPos) // drawCursor { if (gadget.Focused) { gfx.DrawLine(x, y, x, y + lineSkip - 1, TextPen); } } int ax = gfx.MeasureTextWidth(gadget.Font, "" + c); x += ax; } gfx.RestoreState(); } }
public NumericalGadget(Gadget parent) : base(parent) { increment = 0.1; strGadget = new StrGadget(this) { Flags = StrFlags.Double, GadgetUpEvent = (o, i) => { OnGadgetUp(); } }; upGadget = new ButtonGadget(this, Icons.ENTYPO_ICON_PLUS) { Repeat = true, Width = BUT_SIZE, Height = BUT_SIZE, GadgetUpEvent = (o, i) => { IncValue(); } }; downGadget = new ButtonGadget(this, Icons.ENTYPO_ICON_MINUS) { Repeat = true, Width = BUT_SIZE, Height = BUT_SIZE, GadgetUpEvent = (o, i) => { DecValue(); } }; }