public static void __hx_ctor_alphatab_rendering_TabBarRenderer(global::alphatab.rendering.TabBarRenderer __temp_me104, global::alphatab.model.Bar bar) { unchecked { global::alphatab.rendering.GroupedBarRenderer.__hx_ctor_alphatab_rendering_GroupedBarRenderer(__temp_me104, bar); } }
public virtual void createNoteGlyphs(global::alphatab.model.Note n) { unchecked { if ((n.trillValue >= 0)) { this.addGlyph(new global::alphatab.rendering.glyphs.SpacingGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(0, true), ((int)((4 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))), ((global::haxe.lang.Null <bool>)(default(global::haxe.lang.Null <bool>))))); global::alphatab.model.Note trillNote = new global::alphatab.model.Note(); trillNote.isGhost = true; trillNote.fret = (n.trillValue - n.beat.voice.bar.track.tuning[((n.beat.voice.bar.track.tuning.length - ((n.@string - 1))) - 1)]); trillNote.@string = n.@string; global::alphatab.rendering.TabBarRenderer tr = default(global::alphatab.rendering.TabBarRenderer); tr = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); global::alphatab.rendering.Glyph trillNumberGlyph = new global::alphatab.rendering.glyphs.NoteNumberGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(0, true), ((global::alphatab.model.Note)(trillNote)), ((bool)(true))); int l = (n.beat.voice.bar.track.tuning.length - n.@string); trillNumberGlyph.y = tr.getTabY(l, default(global::haxe.lang.Null <int>)); this.addGlyph(trillNumberGlyph); } if ((n.bendPoints.length > 1)) { int bendHeight = ((int)((60 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); this.renderer.registerOverflowTop(bendHeight); int __temp_stmt599 = default(int); { double x = (this.getBeatDurationWidth() * this.renderer.stave.staveGroup.layout.renderer.settings.scale); __temp_stmt599 = ((int)(x)); } this.addGlyph(new global::alphatab.rendering.glyphs.BendGlyph(((global::alphatab.model.Note)(n)), ((int)(__temp_stmt599)), ((int)(bendHeight)))); } } }
public virtual void createNoteGlyph(global::alphatab.model.Note n) { unchecked { bool isGrace = (this.container.beat.graceType != global::alphatab.model.GraceType.None); global::alphatab.rendering.TabBarRenderer tr = default(global::alphatab.rendering.TabBarRenderer); tr = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); global::alphatab.rendering.glyphs.NoteNumberGlyph noteNumberGlyph = new global::alphatab.rendering.glyphs.NoteNumberGlyph(new global::haxe.lang.Null <int>(0, true), new global::haxe.lang.Null <int>(0, true), ((global::alphatab.model.Note)(n)), ((bool)(isGrace))); int l = ((n.beat.voice.bar.track.tuning.length - n.@string) + 1); noteNumberGlyph.y = tr.getTabY(l, new global::haxe.lang.Null <int>(-2, true)); this.noteNumbers.addNoteGlyph(noteNumberGlyph, n); } }
public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { if (((this._endNote == default(global::alphatab.model.Note)) || (this._startNote.beat.index != this._endNote.beat.index))) { return; } global::alphatab.rendering.TabBarRenderer r = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); global::alphatab.rendering.glyphs.TabBeatContainerGlyph parent = ((global::alphatab.rendering.glyphs.TabBeatContainerGlyph)(this._parent)); global::alphatab.rendering.RenderingResources res = r.stave.staveGroup.layout.renderer.renderingResources; int startX = (cx + r.getNoteX(this._startNote, default(global::haxe.lang.Null <bool>))); int endX = default(int); if ((this._endNote == default(global::alphatab.model.Note))) { endX = (((cx + parent.x) + parent.postNotes.x) + parent.postNotes.width); } else { endX = (cx + r.getNoteX(this._endNote, new global::haxe.lang.Null <bool>(false, true))); } bool down = (this._startNote.@string > 3); double offset = (res.tablatureFont.getSize() / 2); if (down) { offset *= ((double)(-1)); } double startY = ((cy + r.getNoteY(this._startNote)) + offset); double endY = default(double); if ((this._endNote == default(global::alphatab.model.Note))) { endY = startY; } else { endY = ((cy + r.getNoteY(this._endNote)) + offset); } global::alphatab.rendering.glyphs.TieGlyph.paintTie(canvas, this.renderer.stave.staveGroup.layout.renderer.settings.scale, ((double)(startX)), startY, ((double)(endX)), endY, new global::haxe.lang.Null <bool>((this._startNote.@string > 3), true)); canvas.setColor(this.renderer.stave.staveGroup.layout.renderer.renderingResources.mainGlyphColor); canvas.fill(); } }
public override void doLayout() { unchecked { int w = 0; { int _g = 0; global::haxe.root.Array <object> _g1 = this._notes; while ((_g < _g1.length)) { global::alphatab.rendering.glyphs.NoteNumberGlyph g = ((global::alphatab.rendering.glyphs.NoteNumberGlyph)(_g1[_g])); ++_g; g.renderer = this.renderer; g.doLayout(); if ((g.width > w)) { w = g.width; } } } global::alphatab.rendering.TabBarRenderer tabRenderer = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); double tabHeight = this.renderer.stave.staveGroup.layout.renderer.renderingResources.tablatureFont.getSize(); int effectY = default(int); { double x = (this.getNoteY(this._minNote) + (tabHeight / 2)); effectY = ((int)(x)); } int effectSpacing = ((int)((7 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); { object __temp_iterator449 = this.beatEffects.iterator(); while (((bool)(global::haxe.lang.Runtime.callField(__temp_iterator449, "hasNext", 407283053, default(global::haxe.root.Array))))) { global::alphatab.rendering.Glyph g1 = ((global::alphatab.rendering.Glyph)(global::haxe.lang.Runtime.callField(__temp_iterator449, "next", 1224901875, default(global::haxe.root.Array)))); g1.y = effectY; g1.x = (this.width / 2); g1.renderer = this.renderer; effectY += effectSpacing; g1.doLayout(); } } this.width = w; } }
public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { global::alphatab.rendering.TabBarRenderer r = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); int sizeX = ((int)((12 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); int sizeY = ((int)((3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); int startX = default(int); int startY = default(int); int endX = default(int); int endY = default(int); { global::alphatab.model.SlideType _g = this._type; switch (global::haxe.root.Type.enumIndex(_g)) { case 1: case 2: { int startOffsetY = default(int); int endOffsetY = default(int); if ((this._startNote.slideTarget == default(global::alphatab.model.Note))) { startOffsetY = 0; endOffsetY = 0; } else { if ((this._startNote.slideTarget.fret > this._startNote.fret)) { startOffsetY = sizeY; endOffsetY = (sizeY * -1); } else { startOffsetY = (sizeY * -1); endOffsetY = sizeY; } } startX = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(true, true))); startY = ((cy + r.getNoteY(this._startNote)) + startOffsetY); if ((this._startNote.slideTarget != default(global::alphatab.model.Note))) { endX = (cx + r.getNoteX(this._startNote.slideTarget, new global::haxe.lang.Null <bool>(false, true))); endY = ((cy + r.getNoteY(this._startNote.slideTarget)) + endOffsetY); } else { endX = (((cx + this._parent.x) + this._parent.postNotes.x) + this._parent.postNotes.width); endY = startY; } break; } case 3: { endX = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(false, true))); endY = (cy + r.getNoteY(this._startNote)); startX = (endX - sizeX); startY = ((cy + r.getNoteY(this._startNote)) + sizeY); break; } case 4: { endX = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(false, true))); endY = (cy + r.getNoteY(this._startNote)); startX = (endX - sizeX); startY = ((cy + r.getNoteY(this._startNote)) - sizeY); break; } case 5: { startX = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(true, true))); startY = (cy + r.getNoteY(this._startNote)); endX = (startX + sizeX); endY = ((cy + r.getNoteY(this._startNote)) - sizeY); break; } case 6: { startX = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(true, true))); startY = (cy + r.getNoteY(this._startNote)); endX = (startX + sizeX); endY = ((cy + r.getNoteY(this._startNote)) + sizeY); break; } default: { return; } } } canvas.setColor(this.renderer.stave.staveGroup.layout.renderer.renderingResources.mainGlyphColor); canvas.beginPath(); canvas.moveTo(((double)(startX)), ((double)(startY))); canvas.lineTo(((double)(endX)), ((double)(endY))); canvas.stroke(); } }
public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { global::alphatab.rendering.TabBarRenderer tabBarRenderer = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); global::alphatab.rendering.RenderingResources res = this.renderer.stave.staveGroup.layout.renderer.renderingResources; int startY = default(int); int __temp_stmt600 = default(int); { double x = (tabBarRenderer.getNoteY(this._beat.maxNote()) - (res.tablatureFont.getSize() / 2)); __temp_stmt600 = ((int)(x)); } startY = ((cy + this.y) + __temp_stmt600); double endY = (((cy + this.y) + tabBarRenderer.getNoteY(this._beat.minNote())) + (res.tablatureFont.getSize() / 2)); int arrowX = ((int)(((cx + this.x) + (((double)(this.width)) / 2)))); double arrowSize = (8 * this.renderer.stave.staveGroup.layout.renderer.settings.scale); canvas.setColor(res.mainGlyphColor); if ((this._beat.brushType != global::alphatab.model.BrushType.None)) { if (((this._beat.brushType == global::alphatab.model.BrushType.BrushUp) || (this._beat.brushType == global::alphatab.model.BrushType.BrushDown))) { canvas.beginPath(); canvas.moveTo(((double)(arrowX)), ((double)(startY))); canvas.lineTo(((double)(arrowX)), endY); canvas.stroke(); } else { int size = ((int)((15 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); int steps = default(int); { double v = (global::System.Math.Abs(((double)((endY - startY)))) / size); { double x1 = global::System.Math.Floor(((double)(v))); steps = ((int)(x1)); } } { int _g = 0; while ((_g < ((int)(steps)))) { int i = _g++; global::alphatab.rendering.glyphs.SvgGlyph arrow = new global::alphatab.rendering.glyphs.SvgGlyph(new global::haxe.lang.Null <int>(((int)((3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))), true), new global::haxe.lang.Null <int>(0, true), ((global::alphatab.rendering.glyphs.LazySvg)(global::alphatab.rendering.glyphs.MusicFont.WaveVertical)), ((double)(1)), ((double)(1))); arrow.renderer = this.renderer; arrow.doLayout(); arrow.paint((cx + this.x), (startY + (i * size)), canvas); } } } if (((this._beat.brushType == global::alphatab.model.BrushType.BrushUp) || (this._beat.brushType == global::alphatab.model.BrushType.ArpeggioUp))) { canvas.beginPath(); canvas.moveTo(((double)(arrowX)), endY); canvas.lineTo(((double)(((int)((arrowX + (arrowSize / 2)))))), ((double)(((int)((endY - arrowSize)))))); canvas.lineTo(((double)(((int)((arrowX - (arrowSize / 2)))))), ((double)(((int)((endY - arrowSize)))))); canvas.closePath(); canvas.fill(); } else { canvas.beginPath(); canvas.moveTo(((double)(arrowX)), ((double)(startY))); canvas.lineTo(((double)(((int)((arrowX + (arrowSize / 2)))))), ((double)(((int)((startY + arrowSize)))))); canvas.lineTo(((double)(((int)((arrowX - (arrowSize / 2)))))), ((double)(((int)((startY + arrowSize)))))); canvas.closePath(); canvas.fill(); } } } }
public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { global::alphatab.rendering.TabBarRenderer r = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); global::alphatab.rendering.RenderingResources res = this.renderer.stave.staveGroup.layout.renderer.renderingResources; double dX = (((double)(this.width)) / 60); int maxValue = 0; { int _g1 = 0; int _g = this._note.bendPoints.length; while ((_g1 < _g)) { int i = _g1++; if ((((global::alphatab.model.BendPoint)(this._note.bendPoints[i])).@value > maxValue)) { maxValue = ((global::alphatab.model.BendPoint)(this._note.bendPoints[i])).@value; } } } double dY = (((double)(this._height)) / maxValue); int xx = (cx + this.x); int yy = ((cy + this.y) + r.getNoteY(this._note)); canvas.beginPath(); { int _g11 = 0; int _g2 = (this._note.bendPoints.length - 1); while ((_g11 < _g2)) { int i1 = _g11++; global::alphatab.model.BendPoint firstPt = ((global::alphatab.model.BendPoint)(this._note.bendPoints[i1])); global::alphatab.model.BendPoint secondPt = ((global::alphatab.model.BendPoint)(this._note.bendPoints[(i1 + 1)])); if (((firstPt.@value == secondPt.@value) && (i1 == (this._note.bendPoints.length - 2)))) { continue; } double x1 = (xx + (dX * firstPt.offset)); double y1 = (yy - (dY * firstPt.@value)); double x2 = (xx + (dX * secondPt.offset)); double y2 = (yy - (dY * secondPt.@value)); if ((firstPt.@value == secondPt.@value)) { canvas.moveTo(x1, y1); canvas.lineTo(x2, y2); canvas.stroke(); } else { double hx = (x1 + ((x2 - x1))); double hy = (yy - (dY * firstPt.@value)); canvas.moveTo(x1, y1); canvas.bezierCurveTo(hx, hy, x2, y2, x2, y2); canvas.stroke(); } double arrowSize = (6 * this.renderer.stave.staveGroup.layout.renderer.settings.scale); if ((secondPt.@value > firstPt.@value)) { canvas.beginPath(); canvas.moveTo(x2, y2); canvas.lineTo((x2 - (arrowSize * 0.5)), (y2 + arrowSize)); canvas.lineTo((x2 + (arrowSize * 0.5)), (y2 + arrowSize)); canvas.closePath(); canvas.fill(); } else { if ((secondPt.@value != firstPt.@value)) { canvas.beginPath(); canvas.moveTo(x2, y2); canvas.lineTo((x2 - (arrowSize * 0.5)), (y2 - arrowSize)); canvas.lineTo((x2 + (arrowSize * 0.5)), (y2 - arrowSize)); canvas.closePath(); canvas.fill(); } } canvas.stroke(); if ((secondPt.@value != 0)) { double dV = ((double)((secondPt.@value - firstPt.@value))); bool up = (dV > 0); dV = global::System.Math.Abs(((double)(dV))); string s = ""; if ((dV == 4)) { s = "full"; dV -= ((double)(4)); } else { if ((dV > 4)) { int __temp_stmt594 = default(int); { double x = global::System.Math.Floor(((double)((dV / 4)))); __temp_stmt594 = ((int)(x)); } string __temp_stmt593 = global::Std.@string(__temp_stmt594); string __temp_stmt592 = global::haxe.lang.Runtime.concat(__temp_stmt593, " "); s = global::haxe.lang.Runtime.concat(s, __temp_stmt592); { double x3 = global::System.Math.Floor(((double)(dV))); dV -= ((double)(((int)(x3)))); } } } if ((dV > 0)) { s = global::haxe.lang.Runtime.concat(s, global::haxe.lang.Runtime.concat(global::Std.@string(dV), "/4")); } if (!(string.Equals(s, ""))) { if (!(up)) { s = global::haxe.lang.Runtime.concat("-", s); } canvas.setFont(res.tablatureFont); double size = canvas.measureText(s); double y = default(double); if (up) { y = ((y2 - res.tablatureFont.getSize()) - (2 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)); } else { y = (y2 + (2 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)); } double x4 = (x2 - (size / 2)); canvas.fillText(s, x4, y); } } } } } }
public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { global::alphatab.rendering.TabBarRenderer tabBarRenderer = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); global::alphatab.model.Track track = this.renderer.stave.staveGroup.layout.renderer.track; global::alphatab.rendering.RenderingResources res = this.renderer.stave.staveGroup.layout.renderer.renderingResources; double startY = ((cy + this.y) + ((10 * this.renderer.stave.staveGroup.layout.renderer.settings.scale) * 0.6)); int endY = ((cy + this.y) + tabBarRenderer.getTabY(track.tuning.length, new global::haxe.lang.Null <int>(-2, true))); double fontScale = ((double)(1)); double correction = ((double)(0)); { int _g = track.tuning.length; switch (_g) { case 4: { fontScale = 0.6; break; } case 5: { fontScale = 0.8; break; } case 6: { fontScale = 1.1; correction = ((double)(1)); break; } case 7: { fontScale = 1.15; break; } case 8: { fontScale = 1.35; break; } } } global::alphatab.platform.model.Font font = res.tabClefFont.clone(); font.setSize((font.getSize() * fontScale)); canvas.setColor(res.mainGlyphColor); canvas.setFont(font); canvas.setTextAlign(global::alphatab.platform.model.TextAlign.Center); canvas.fillText("T", ((double)(((cx + this.x) + (this.width / 2)))), startY); canvas.fillText("A", ((double)(((cx + this.x) + (this.width / 2)))), ((startY + font.getSize()) - ((int)((correction * this.renderer.stave.staveGroup.layout.renderer.settings.scale))))); canvas.fillText("B", ((double)(((cx + this.x) + (this.width / 2)))), (startY + (((font.getSize() - ((int)((correction * this.renderer.stave.staveGroup.layout.renderer.settings.scale))))) * 2))); } }
public override void doLayout() { unchecked { base.doLayout(); int minY = 0; int maxY = 0; int sizeY = ((int)((60 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); if ((this._beat.whammyBarPoints.length >= 2)) { double dy = (((double)(sizeY)) / 24); { int _g1 = 0; int _g = this._beat.whammyBarPoints.length; while ((_g1 < _g)) { int i = _g1++; global::alphatab.model.BendPoint pt = ((global::alphatab.model.BendPoint)(this._beat.whammyBarPoints[i])); int ptY = ((int)((0 - (dy * pt.@value)))); if ((ptY > maxY)) { maxY = ptY; } if ((ptY < minY)) { minY = ptY; } } } } global::alphatab.rendering.TabBarRenderer tabBarRenderer = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); global::alphatab.model.Track track = this.renderer.stave.staveGroup.layout.renderer.track; int tabTop = tabBarRenderer.getTabY(0, new global::haxe.lang.Null <int>(-2, true)); int tabBottom = tabBarRenderer.getTabY(track.tuning.length, new global::haxe.lang.Null <int>(-2, true)); int absMinY = ((this.y + minY) + tabTop); int absMaxY = ((this.y + maxY) - tabBottom); if ((absMinY < 0)) { int __temp_stmt601 = default(int); { double x = global::System.Math.Abs(((double)(absMinY))); __temp_stmt601 = ((int)(x)); } tabBarRenderer.registerOverflowTop(__temp_stmt601); } if ((absMaxY > 0)) { int __temp_stmt602 = default(int); { double x1 = global::System.Math.Abs(((double)(absMaxY))); __temp_stmt602 = ((int)(x1)); } tabBarRenderer.registerOverflowBottom(__temp_stmt602); } int height = tabBarRenderer.height; } }
public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas) { unchecked { global::alphatab.rendering.TabBarRenderer tabBarRenderer = ((global::alphatab.rendering.TabBarRenderer)(this.renderer)); global::alphatab.rendering.RenderingResources res = this.renderer.stave.staveGroup.layout.renderer.renderingResources; double startX = ((cx + this.x) + (((double)(this._parent.onNotes.width)) / 2)); double endX = default(double); if (((this._beat.nextBeat == default(global::alphatab.model.Beat)) || (this._beat.voice != this._beat.nextBeat.voice))) { endX = (((cx + this.x) + (((double)(this._parent.onNotes.width)) / 2)) + this._parent.postNotes.width); } else { endX = ((double)((cx + tabBarRenderer.getBeatX(this._beat.nextBeat)))); } int startY = (cy + this.y); int textOffset = ((int)((3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); int sizeY = ((int)((60 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))); canvas.setTextAlign(global::alphatab.platform.model.TextAlign.Center); if ((this._beat.whammyBarPoints.length >= 2)) { double dx = (((endX - startX)) / 60); double dy = (((double)(sizeY)) / 24); canvas.beginPath(); { int _g1 = 0; int _g = (this._beat.whammyBarPoints.length - 1); while ((_g1 < _g)) { int i = _g1++; global::alphatab.model.BendPoint pt1 = ((global::alphatab.model.BendPoint)(this._beat.whammyBarPoints[i])); global::alphatab.model.BendPoint pt2 = ((global::alphatab.model.BendPoint)(this._beat.whammyBarPoints[(i + 1)])); if (((pt1.@value == pt2.@value) && (i == (this._beat.whammyBarPoints.length - 2)))) { continue; } int pt1X = ((int)((startX + (dx * pt1.offset)))); int pt1Y = ((int)((startY - (dy * pt1.@value)))); int pt2X = ((int)((startX + (dx * pt2.offset)))); int pt2Y = ((int)((startY - (dy * pt2.@value)))); canvas.moveTo(((double)(pt1X)), ((double)(pt1Y))); canvas.lineTo(((double)(pt2X)), ((double)(pt2Y))); if ((pt2.@value != 0)) { double dv = (pt2.@value / 4.0); bool up = ((pt2.@value - pt1.@value) >= 0); string s = ""; if ((dv < 0)) { s = global::haxe.lang.Runtime.concat(s, "-"); } if (((dv >= 1) || (dv <= -1))) { int __temp_stmt605 = default(int); { double v = global::System.Math.Abs(((double)(dv))); { double x = global::System.Math.Floor(((double)(v))); __temp_stmt605 = ((int)(x)); } } string __temp_stmt604 = global::Std.@string(__temp_stmt605); string __temp_stmt603 = global::haxe.lang.Runtime.concat(__temp_stmt604, " "); s = global::haxe.lang.Runtime.concat(s, __temp_stmt603); } { double x1 = global::System.Math.Floor(((double)(dv))); dv -= ((double)(((int)(x1)))); } if ((dv == 0.25)) { s = global::haxe.lang.Runtime.concat(s, "1/4"); } else { if ((dv == 0.5)) { s = global::haxe.lang.Runtime.concat(s, "1/2"); } else { if ((dv == 0.75)) { s = global::haxe.lang.Runtime.concat(s, "3/4"); } } } canvas.setFont(res.graceFont); double size = canvas.measureText(s); double sy = default(double); if (up) { sy = ((pt2Y - res.graceFont.getSize()) - textOffset); } else { sy = ((double)((pt2Y + textOffset))); } int sx = pt2X; canvas.fillText(s, ((double)(sx)), sy); } } } canvas.stroke(); } } }