|
115 | 115 | * Returns the text's bounding box |
116 | 116 | */ |
117 | 117 | Raphael.fn.text_bbox = function (text, font) { |
118 | | - var p = this.print(0, 0, text, font, 16, 'middle'); |
| 118 | + var p; |
| 119 | + if (font) { |
| 120 | + p = this.print(0, 0, text, font, 16, 'middle'); |
| 121 | + } else { |
| 122 | + p = this.text(0, 0, text); |
| 123 | + } |
| 124 | + |
119 | 125 | var bb = p.getBBox(); |
120 | 126 | p.remove(); |
| 127 | + |
121 | 128 | return bb; |
122 | 129 | }; |
123 | 130 |
|
|
394 | 401 | }); |
395 | 402 |
|
396 | 403 | // Mid point between actors |
397 | | - var midx = (bX - aX) / 2 + aX; |
398 | | - |
399 | | - var x = midx - signal.width / 2 + signal.text_bb.x; |
| 404 | + var x = (bX - aX) / 2 + aX; |
400 | 405 | y = offsetY + signal.height / 2; |
401 | 406 |
|
| 407 | + if (this._font) { |
| 408 | + // This is a bit of a hack, but fixes alignment issues |
| 409 | + x = x - signal.width / 2 + signal.text_bb.x; |
| 410 | + } |
| 411 | + |
402 | 412 | this.draw_text(x, y, signal.message); |
403 | 413 | /* |
404 | 414 | var t = paper.text(midx, offsetY + this.height / 2); |
|
438 | 448 | */ |
439 | 449 | draw_text : function (x, y, text) { |
440 | 450 | var paper = this._paper; |
441 | | - var t = paper.print(x, y, text, this._font, 16, 'middle'); |
| 451 | + var t; |
| 452 | + if (this._font) { |
| 453 | + t = paper.print(x, y, text, this._font, 16, 'middle'); |
| 454 | + } else { |
| 455 | + t = paper.text(x, y, text); |
| 456 | + } |
442 | 457 | // draw a rect behind it |
443 | 458 | var bb = t.getBBox(); |
444 | 459 | var r = paper.rect(bb.x, bb.y, bb.width, bb.height); |
|
457 | 472 | rect.attr(LINE); |
458 | 473 |
|
459 | 474 | // Draw text |
460 | | - //x = box.x + padding; |
461 | | - //y = box.y + box.height / 2; |
462 | | - |
463 | 475 | x = box.x + margin + padding - box.text_bb.x; |
464 | 476 | y = box.y + margin + padding - box.text_bb.y; |
465 | 477 |
|
466 | | - this._paper.print(x, y, text, this._font, 16, 'middle'); |
467 | | - |
468 | | - /* |
469 | | - var t = this._paper.text(x, y); |
470 | | - t.attr(FONT); |
471 | | - t.attr({ |
472 | | - 'text': text, |
473 | | - 'text-anchor': 'middle', |
474 | | - }); |
475 | | - */ |
| 478 | + this.draw_text(x, y, text); |
476 | 479 | } |
477 | 480 |
|
478 | 481 | /** |
|
0 commit comments