public static GuitarTextEvent CreateTextEvent(GuitarMessageList owner, int absoluteTicks, string text) { var ret = new GuitarTextEvent(owner, absoluteTicks, text); ret.IsNew = true; ret.CreateEvents(); return ret; }
public static GuitarTextEvent CreateTextEvent(GuitarMessageList owner, int absoluteTicks, string text) { var ret = new GuitarTextEvent(owner, absoluteTicks, text); ret.IsNew = true; ret.CreateEvents(); return(ret); }
public void Add(GuitarTextEvent ev, RectangleF rect) { Events.Add(new VisibleTextEvent() { DrawRect = rect, Event = ev }); Events.Sort(); }
public void SetNorm(GuitarTextEvent ev) { Norm = ev; if (ev == null) { Loopable = false; } else { Loopable = true; } }
public GuitarTrainer(GuitarMessageList owner, TickPair ticks, GuitarTrainerType type, GuitarTextEvent start, GuitarTextEvent end, GuitarTextEvent norm) : base(owner, ticks, GuitarMessageType.GuitarTrainer) { this.TrainerType = type; Start = start; End = end; Norm = norm; this.TrainerIndex = ParseTrainerIndex(); this.Loopable = norm != null; SetTicks(ticks); }
public GuitarTrainer(GuitarMessageList owner, TickPair ticks, GuitarTrainerType type, bool loopable, int index = Int32.MinValue) : base(owner, ticks, GuitarMessageType.GuitarTrainer) { this.TrainerType = type; this.TrainerIndex = index.IsNull() ? (owner.Trainers.Where(x => x.TrainerType == type).Count() + 1) : index; this.Loopable = loopable; Start = new GuitarTextEvent(owner, ticks.Down, GetStartText(TrainerType, TrainerIndex)); End = new GuitarTextEvent(owner, ticks.Up, GetEndText(TrainerType, TrainerIndex)); if (Loopable) { Norm = new GuitarTextEvent(owner, GetNormTick(ticks), GetNormText(TrainerType, TrainerIndex, Loopable)); } SetTicks(ticks); }
private void DrawTextEvent(Graphics g, bool tabActive, bool drawSelected, GuitarTextEvent tr, SolidBrush tb) { var st = GetClientPointFromTick(tr.AbsoluteTicks); var et = st + 1; if (et > 0 && st < Width && st < et) { if (st < 0) st = 0; if (et > Width) et = Width; g.FillRectangle(tb, st, 0, et - st, InnerHeight - 1); using (var p = new Pen(tb)) { g.DrawRectangle(p, st, 0, et - st, InnerHeight - 1); } var size = g.MeasureString(tr.Text, Utility.fretFont); if (size.Width > 4 || size.Height > 4) { bool found = false; var textRect = new RectangleF((float)st, (size.Height * (0)) + (0 * size.Height * 0.1f), size.Width, size.Height); for (int idx = 0; idx < 8; idx++) { var ntr = new RectangleF((float)st, (size.Height * (idx)) + (idx * size.Height * 0.1f), size.Width, size.Height); if (VisibleTextEvents.CountOverlapping(ntr) == 0) { VisibleTextEvents.Add(tr, ntr); textRect = ntr; found = true; break; } } if (!found) { VisibleTextEvents.Add(tr, textRect); } using (var tbg = new SolidBrush(Color.FromArgb(tabActive ? (drawSelected ? 255 : 180) : 80, Utility.BackgroundBrush.Color))) { g.FillRectangle(tbg, textRect.X, textRect.Y, textRect.Width, textRect.Height + 1); } using (var tbg = new Pen(Color.FromArgb(180, Utility.noteBoundPen.Color))) { g.DrawRectangle(tbg, textRect.X, textRect.Y, textRect.Width, textRect.Height + 1); } using (var fb = new SolidBrush(Color.FromArgb(180, Utility.fretBrush.Color))) { var tl = textRect.Location; tl.X -= 1; textRect.Location = tl; textRect.Width += 3; g.DrawString(tr.Text, Utility.fretFont, fb, textRect, StringFormat.GenericDefault); } } } }
public void SetStart(GuitarTextEvent ev) { Start = ev; }
public void SetEnd(GuitarTextEvent ev) { End = ev; }