Skip to content

Commit 3b2f02d

Browse files
committed
Build with frame border fix
1 parent b7a2ce9 commit 3b2f02d

File tree

3 files changed

+49
-20
lines changed

3 files changed

+49
-20
lines changed

build/jsroot.js

Lines changed: 47 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// https://root.cern/js/ v7.10.0
1+
// https://root.cern/js/ v7.10.99
22
(function (global, factory) {
33
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
44
typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -10,11 +10,11 @@ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentS
1010

1111
/** @summary version id
1212
* @desc For the JSROOT release the string in format 'major.minor.patch' like '7.0.0' */
13-
const version_id = '7.10.0',
13+
const version_id = 'dev',
1414

1515
/** @summary version date
1616
* @desc Release date in format day/month/year like '14/04/2022' */
17-
version_date = '27/10/2025',
17+
version_date = '3/11/2025',
1818

1919
/** @summary version id and date
2020
* @desc Produced by concatenation of {@link version_id} and {@link version_date}
@@ -81558,7 +81558,7 @@ class TAxisPainter extends ObjectPainter {
8155881558

8155981559
/** @summary Draw axis labels
8156081560
* @return {Promise} with array label size and max width */
81561-
async drawLabels(axis_g, axis, w, h, handle, side, labelsFont, labeloffset, tickSize, ticksPlusMinus, max_text_width, frame_ygap) {
81561+
async drawLabels(axis_g, axis, w, h, handle, labelsside, labelsFont, labeloffset, tickSize, ticksPlusMinus, max_text_width, frame_ygap) {
8156281562
const center_lbls = this.isCenteredLabels(),
8156381563
label_g = [axis_g.append('svg:g').attr('class', 'axis_labels')],
8156481564
lbl_pos = handle.lbl_pos || handle.major,
@@ -81630,13 +81630,8 @@ class TAxisPainter extends ObjectPainter {
8163081630
}
8163181631
}
8163281632

81633-
let pr = Promise.resolve();
81634-
81635-
for (let lcnt = 0; lcnt < label_g.length; ++lcnt) {
81636-
if (lcnt > 0)
81637-
side = -side;
81638-
81639-
pr = pr.then(() => this.startTextDrawingAsync(labelsFont, 'font', label_g[lcnt])).then(() => {
81633+
const draw_labels = (lcnt, side) => {
81634+
return this.startTextDrawingAsync(labelsFont, 'font', label_g[lcnt]).then(() => {
8164081635
let lastpos = 0;
8164181636
const fix_coord = this.vertical ? -labeloffset * side : labeloffset * side + ticksPlusMinus * tickSize;
8164281637

@@ -81682,7 +81677,8 @@ class TAxisPainter extends ObjectPainter {
8168281677
if (this.vertical) {
8168381678
arg.x = fix_coord;
8168481679
arg.y = pos;
81685-
arg.align = rotate_lbls ? (this.optionLeft || this.reverseAlign ? 23 : 21) : (this.optionLeft || this.reverseAlign ? 12 : 32);
81680+
const flag = this.optionLeft || this.reverseAlign || (side < 0);
81681+
arg.align = rotate_lbls ? (flag ? 23 : 21) : (flag ? 12 : 32);
8168681682
if (this.cutLabels()) {
8168781683
const gap = labelsFont.size * (rotate_lbls ? 1.5 : 0.6);
8168881684
if ((pos < gap) || (pos > h - gap))
@@ -81752,14 +81748,16 @@ class TAxisPainter extends ObjectPainter {
8175281748
});
8175381749
}
8175481750

81755-
if ((lcnt > 1) && applied_scale)
81751+
if ((lcnt > 0) && applied_scale)
8175681752
this.scaleTextDrawing(applied_scale, label_g[lcnt]);
8175781753

8175881754
return this.finishTextDrawing(label_g[lcnt], true);
8175981755
});
81760-
}
81756+
};
8176181757

81762-
return pr.then(() => {
81758+
return draw_labels(0, labelsside).then(() => {
81759+
return label_g.length < 2 ? true : draw_labels(1, -labelsside);
81760+
}).then(() => {
8176381761
this._maxlbllen = maxtextlen; // for internal use in palette painter
8176481762

8176581763
if (lbl_tilt) {
@@ -84535,6 +84533,11 @@ class TFramePainter extends FrameInteractive {
8453584533
this.fillatt.setSolidColor('white');
8453684534
else if ((pad?.fFillStyle === 4000) && !this.fillatt.empty()) // special case of transpad.C macro, which set transparent pad
8453784535
this.fillatt.setOpacity(0);
84536+
84537+
if (pad && (pad.fFrameBorderMode || (pad.fFrameBorderSize !== 1))) {
84538+
this.#border_mode = pad.fFrameBorderMode;
84539+
this.#border_size = pad.fFrameBorderSize;
84540+
}
8453884541
}
8453984542

8454084543
if (!tframe && (pad?.fFrameLineColor !== undefined))
@@ -90044,6 +90047,10 @@ class TPadPainter extends ObjectPainter {
9004490047
padOpt('GRIDX', p => { p.fGridx = 1; });
9004590048
padOpt('GRIDY', p => { p.fGridy = 1; });
9004690049
padOpt('GRID', p => { p.fGridx = p.fGridy = 1; });
90050+
padOpt('TICKX2', p => { p.fTickx = 2; });
90051+
padOpt('TICKY2', p => { p.fTicky = 2; });
90052+
padOpt('TICKZ2', p => { p.fTickz = 2; });
90053+
padOpt('TICK2', p => { p.fTickx = p.fTicky = 2; });
9004790054
padOpt('TICKX', p => { p.fTickx = 1; });
9004890055
padOpt('TICKY', p => { p.fTicky = 1; });
9004990056
padOpt('TICKZ', p => { p.fTickz = 1; });
@@ -93203,6 +93210,14 @@ class THistDrawOptions {
9320393210
pad.fGridx = 1;
9320493211
if (d.check('GRIDY') && pad)
9320593212
pad.fGridy = 1;
93213+
if (d.check('TICKXY2') && pad)
93214+
pad.fTickx = pad.fTicky = 2;
93215+
if (d.check('TICKX2') && pad)
93216+
pad.fTickx = 2;
93217+
if (d.check('TICKY2') && pad)
93218+
pad.fTicky = 2;
93219+
if (d.check('TICKZ2') && pad)
93220+
pad.fTickz = 2;
9320693221
if (d.check('TICKXY') && pad)
9320793222
pad.fTickx = pad.fTicky = 1;
9320893223
if (d.check('TICKX') && pad)
@@ -93781,11 +93796,17 @@ class THistDrawOptions {
9378193796
res += '_GRIDX';
9378293797
if (pad.fGridy)
9378393798
res += '_GRIDY';
93784-
if (pad.fTickx)
93799+
if (pad.fTickx === 2)
93800+
res += '_TICKX2';
93801+
else if (pad.fTickx)
9378593802
res += '_TICKX';
93786-
if (pad.fTicky)
93803+
if (pad.fTicky === 2)
93804+
res += '_TICKY2';
93805+
else if (pad.fTicky)
9378793806
res += '_TICKY';
93788-
if (pad.fTickz)
93807+
if (pad.fTickz === 2)
93808+
res += '_TICKZ2';
93809+
else if (pad.fTickz)
9378993810
res += '_TICKZ';
9379093811
}
9379193812

@@ -102270,7 +102291,8 @@ function getTF1Value(func, x, skip_eval = undefined) {
102270102291
}
102271102292

102272102293
const PadDrawOptions = ['LOGXY', 'LOGX', 'LOGY', 'LOGZ', 'LOGV', 'LOG', 'LOG2X', 'LOG2Y', 'LOG2',
102273-
'LNX', 'LNY', 'LN', 'GRIDXY', 'GRIDX', 'GRIDY', 'TICKXY', 'TICKX', 'TICKY', 'TICKZ', 'FB', 'GRAYSCALE'];
102294+
'LNX', 'LNY', 'LN', 'GRIDXY', 'GRIDX', 'GRIDY',
102295+
'TICKXY2', 'TICKX2', 'TICKY2', 'TICKXY', 'TICKX', 'TICKY', 'TICKZ', 'FB', 'GRAYSCALE'];
102274102296

102275102297
/**
102276102298
* @summary Painter for TH1 classes
@@ -182660,6 +182682,12 @@ class RPadPainter extends RObjectPainter {
182660182682
pad.fGridy = 1;
182661182683
if (d.check('GRID'))
182662182684
pad.fGridx = pad.fGridy = 1;
182685+
if (d.check('TICKX2'))
182686+
pad.fTickx = 2;
182687+
if (d.check('TICKY2'))
182688+
pad.fTicky = 2;
182689+
if (d.check('TICK2'))
182690+
pad.fTickx = pad.fTicky = 2;
182663182691
if (d.check('TICKX'))
182664182692
pad.fTickx = 1;
182665182693
if (d.check('TICKY'))

changes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
## Changes in dev
55
1. Fix - proper paint axis labels on both sides when pad.fTickx/y = 2
6+
2. Fix - paint frame border mode/size from TCanvas
67

78

89
## Changes in 7.10.0

modules/core.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const version_id = 'dev',
66

77
/** @summary version date
88
* @desc Release date in format day/month/year like '14/04/2022' */
9-
version_date = '28/10/2025',
9+
version_date = '3/11/2025',
1010

1111
/** @summary version id and date
1212
* @desc Produced by concatenation of {@link version_id} and {@link version_date}

0 commit comments

Comments
 (0)