From f84b4370fae0311aaf6dda6f614797a55e7cc8d6 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Fri, 19 Feb 2010 16:37:20 -0600 Subject: [PATCH] Make Closepath Icons Work --- .../editor/extensions/closepath_icons.svg | 10 +++--- .../editor/extensions/ext-closepath.js | 34 ++++++++++++++----- public/svg-edit/editor/svg-editor.js | 13 +++---- 3 files changed, 39 insertions(+), 18 deletions(-) diff --git a/public/svg-edit/editor/extensions/closepath_icons.svg b/public/svg-edit/editor/extensions/closepath_icons.svg index 41a2664e..18abea78 100644 --- a/public/svg-edit/editor/extensions/closepath_icons.svg +++ b/public/svg-edit/editor/extensions/closepath_icons.svg @@ -1,15 +1,15 @@ - + - + Layer 1 - + @@ -20,7 +20,7 @@ - + Layer 1 @@ -40,4 +40,6 @@ + + \ No newline at end of file diff --git a/public/svg-edit/editor/extensions/ext-closepath.js b/public/svg-edit/editor/extensions/ext-closepath.js index 5d09350a..e7fcccbe 100644 --- a/public/svg-edit/editor/extensions/ext-closepath.js +++ b/public/svg-edit/editor/extensions/ext-closepath.js @@ -14,8 +14,11 @@ $(function() { var selElems, updateButton = function(path) { var seglist = path.pathSegList, - button = $('#closepath_panel > div.tool_button')[0]; - $(button).html(seglist.getItem(seglist.numberOfItems - 1).pathSegType==1 ? "open":"close"); + closed = seglist.getItem(seglist.numberOfItems - 1).pathSegType==1, + showbutton = closed ? '#tool_openpath' : '#tool_closepath', + hidebutton = closed ? '#tool_closepath' : '#tool_openpath'; + $(hidebutton).hide(); + $(showbutton).show(); }, showPanel = function(on) { $('#closepath_panel').toggle(on); @@ -44,12 +47,27 @@ $(function() { return { name: "ClosePath", svgicons: "extensions/closepath_icons.svg", - context_tools: [{ - type: "tool_button", + buttons: [{ + id: "tool_openpath", + type: "context", panel: "closepath_panel", - title: "Open or Close path", - id: "close", - events: { click: toggleClosed } + title: "Open path", + events: { + 'click': function() { + toggleClosed(); + } + } + }, + { + id: "tool_closepath", + type: "context", + panel: "closepath_panel", + title: "Close path", + events: { + 'click': function() { + toggleClosed(); + } + } }], callback: function() { $('#closepath_panel').hide(); @@ -70,7 +88,7 @@ $(function() { showPanel(false); } } - }, + } }; }); }); diff --git a/public/svg-edit/editor/svg-editor.js b/public/svg-edit/editor/svg-editor.js index fe6a1e12..4c556ca6 100644 --- a/public/svg-edit/editor/svg-editor.js +++ b/public/svg-edit/editor/svg-editor.js @@ -423,9 +423,9 @@ function svg_edit_setup() { var panel = $('#' + tool.panel); - if(!panel.length) { + // create the panel if it doesn't exist + if(!panel.length) panel = $('
', {id: tool.panel}).appendTo("#tools_top"); - } // TODO: Allow support for other types, or adding to existing tool switch (tool.type) { @@ -487,7 +487,6 @@ function svg_edit_setup() { var fallback_obj = {}, placement_obj = {}, svgicons = ext.svgicons; - var holders = {}; @@ -520,6 +519,9 @@ function svg_edit_setup() { case 'context': cls = 'tool_button'; parent = "#" + btn.panel; + // create the panel if it doesn't exist + if(!$(parent).length) + $('
', {id: btn.panel}).appendTo("#tools_top"); break; } @@ -527,7 +529,6 @@ function svg_edit_setup() { .attr("id", id) .attr("title", btn.title) .addClass(cls); - if(!btn.includeWith) { button.appendTo(parent); } else { @@ -1823,7 +1824,7 @@ function svg_edit_setup() { var cancelOverlays = function() { $('#dialog_box').hide(); - if (!editingsource && !editingforeign && !docprops) return; + if (!editingsource && !docprops) return; if (editingsource) { var oldString = svgCanvas.getSvgString(); @@ -2763,7 +2764,7 @@ function svg_edit_setup() { updateCanvas(true); }); -// var revnums = "svg-editor.js ($Rev: 1402 $) "; +// var revnums = "svg-editor.js ($Rev: 1414 $) "; // revnums += svgCanvas.getVersion(); // $('#copyright')[0].setAttribute("title", revnums); return svgCanvas;