diff --git a/editor/images/bold.png b/editor/images/bold.png
new file mode 100644
index 00000000..19ac5bbd
Binary files /dev/null and b/editor/images/bold.png differ
diff --git a/editor/images/italic.png b/editor/images/italic.png
new file mode 100644
index 00000000..63485dea
Binary files /dev/null and b/editor/images/italic.png differ
diff --git a/editor/svg-editor.html b/editor/svg-editor.html
index c99ee0b6..e05a2ddd 100644
--- a/editor/svg-editor.html
+++ b/editor/svg-editor.html
@@ -120,6 +120,8 @@

+
![Bold Text [B] Bold](images/bold.png)
+
diff --git a/editor/svg-editor.js b/editor/svg-editor.js
index cc0a4701..10b9aa67 100644
--- a/editor/svg-editor.js
+++ b/editor/svg-editor.js
@@ -134,6 +134,18 @@ function svg_edit_setup() {
case "text":
// jquery's show() always sets display to block
$('#text_panel').show().css("display", "inline");
+ if (svgCanvas.getItalic()) {
+ $('#tool_italic').addClass('tool_button_current');
+ }
+ else {
+ $('#tool_italic').removeClass('tool_button_current');
+ }
+ if (svgCanvas.getBold()) {
+ $('#tool_bold').addClass('tool_button_current');
+ }
+ else {
+ $('#tool_bold').removeClass('tool_button_current');
+ }
$('#font_family').val(elem.getAttribute("font-family"));
$('#font_size').val(elem.getAttribute("font-size"));
$('#text').val(elem.textContent);
@@ -354,6 +366,16 @@ function svg_edit_setup() {
updateContextPanel();
}
}
+
+ var clickBold = function(){
+ svgCanvas.setBold( !svgCanvas.getBold() );
+ updateContextPanel();
+ };
+
+ var clickItalic = function(){
+ svgCanvas.setItalic( !svgCanvas.getItalic() );
+ updateContextPanel();
+ };
var clickSave = function(){
svgCanvas.save();
@@ -390,6 +412,8 @@ function svg_edit_setup() {
// these two lines are required to make Opera work properly with the new flyout mechanism
$('#tools_rect_show').click(clickSquare);
$('#tools_ellipse_show').click(clickCircle);
+ $('#tool_bold').mousedown(clickBold);
+ $('#tool_italic').mousedown(clickItalic);
// added these event handlers for all the push buttons so they
// behave more like buttons being pressed-in and not images
diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js
index f762ed89..16675b1a 100644
--- a/editor/svgcanvas.js
+++ b/editor/svgcanvas.js
@@ -1360,6 +1360,45 @@ function SvgCanvas(c)
this.setIdPrefix = function(p) {
idprefix = p;
};
+
+ this.getBold = function() {
+ // should only have one element selected
+ var selected = selectedElements[0];
+ if (selected != null && selected.tagName == "text" &&
+ selectedElements[1] == null)
+ {
+ return (selected.getAttribute("font-weight") == "bold");
+ }
+ return false;
+ };
+
+ this.setBold = function(b) {
+ var selected = selectedElements[0];
+ if (selected != null && selected.tagName == "text" &&
+ selectedElements[1] == null)
+ {
+ selected.setAttribute("font-weight", b ? "bold" : "normal");
+ }
+ };
+
+ this.getItalic = function() {
+ var selected = selectedElements[0];
+ if (selected != null && selected.tagName == "text" &&
+ selectedElements[1] == null)
+ {
+ return (selected.getAttribute("font-style") == "italic");
+ }
+ return false;
+ };
+
+ this.setItalic = function(i) {
+ var selected = selectedElements[0];
+ if (selected != null && selected.tagName == "text" &&
+ selectedElements[1] == null)
+ {
+ selected.setAttribute("font-style", i ? "italic" : "normal");
+ }
+ };
this.getFontFamily = function() {
return current_font_family;