Applying recent 2.4 branch changes to trunk

git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1174 eee81c28-f429-11dd-99c0-75d572ba1ddd
master
Alexis Deveria 2010-01-08 20:36:39 +00:00
parent bb0d190b4a
commit 4313c95d7e
5 changed files with 271 additions and 123 deletions

View File

@ -1,110 +1,157 @@
[ [
{"id":"layer_new","title":"لایه جدید"}, {"id":"layer_new","title":"‫لایه جدید‬"},
{"id":"layer_delete","title":"حذف لایه"}, {"id":"layer_delete","title":"‫حذف لایه‬"},
{"id":"layer_rename","title":"تغییر نام لایه"}, {"id":"layer_rename","title":"‫تغییر نام لایه‬"},
{"id":"layer_up","title":"لایه انتقال بالا"}, {"id":"layer_up","title":"‫انتقال لایه به بالا‬"},
{"id":"layer_down","title":"حرکت لایه پایین"}, {"id":"layer_down","title":"‫انتقال لایه به پایین‬"},
{"id":"tool_clear","title":"تصویر جدید [N]"}, {"id":"tool_clear","title":"‫تصویر جدید "},
{"id":"tool_open","title":"تصویر را باز [O]"}, {"id":"tool_open","title":"‫باز کردن تصویر "},
{"id":"tool_save","title":"ذخیره تصویر [S]"}, {"id":"tool_save","title":"‫ذخیره تصویر "},
{"id":"tool_docprops","title":"خواص و سند [I]"}, {"id":"tool_docprops","title":"‫مشخصات سند "},
{"id":"tool_source","title":"ویرایش منبع [U]"}, {"id":"tool_source","title":"‫ویرایش منبع "},
{"id":"tool_undo","title":"واگرد [Z]"}, {"id":"tool_undo","title":"‫واگرد "},
{"id":"tool_redo","title":"ازنو [Y]"}, {"id":"tool_redo","title":"‫ازنو "},
{"id":"tool_clone","title":"کلون عنصر [C]"}, {"id":"tool_clone","title":"‫ایجاد کپی از عنصر "},
{"id":"tool_delete","title":"حذف عنصر [Delete/Backspace]"}, {"id":"tool_delete","title":"‫حذف عنصر "},
{"id":"tool_move_top","title":"انتقال به بالا [Shift Up]"}, {"id":"tool_move_top","title":"‫انتقال به بالاترین "},
{"id":"tool_move_bottom","title":"انتقال به پایین [Shift Down]"}, {"id":"tool_move_bottom","title":"‫انتقال به پایین ترین "},
{"id":"group_opacity","title":"تغییر قلم دوم از اقلام انتخاب شده تاری"}, {"id":"group_opacity","title":"‫تغییر تاری عنصر انتخاب شده‬"},
{"id":"angle","title":"تغییر زاویه چرخش"}, {"id":"angle","title":"‫تغییر زاویه چرخش‬"},
{"id":"tool_clone_multi","title":"عناصر کلون [C]"}, {"id":"tool_clone_multi","title":"‫ایجاد کپی از عناصر "},
{"id":"tool_delete_multi","title":"حذف المان ها انتخاب شده [Delete/Backspace]"}, {"id":"tool_delete_multi","title":"‫حذف عناصر انتخاب شده "},
{"id":"tool_alignleft","title":"چپ چین"}, {"id":"tool_alignleft","title":"‫چپ چین‬"},
{"id":"tool_aligncenter","title":"چین مرکز"}, {"id":"tool_aligncenter","title":"‫وسط چین‬"},
{"id":"tool_alignright","title":"راست چین"}, {"id":"tool_alignright","title":"‫راست چین‬"},
{"id":"tool_aligntop","title":"ترازبالا"}, {"id":"tool_aligntop","title":"‫تراز بالا‬"},
{"id":"tool_alignmiddle","title":"تراز میانه"}, {"id":"tool_alignmiddle","title":"‫تراز میانه‬"},
{"id":"tool_alignbottom","title":"ترازپایین"}, {"id":"tool_alignbottom","title":"‫تراز پایین‬"},
{"id":"align_relative_to","title":"چین نسبت به ..."}, {"id":"align_relative_to","title":"‫تراز نسبت به ..."},
{"id":"tool_group","title":"عناصر گروه [G]"}, {"id":"tool_group","title":"‫قرار دادن عناصر در گروه "},
{"id":"tool_ungroup","title":"عناصر Ungroup [G]"}, {"id":"tool_ungroup","title":"‫خارج کردن عناصر از گروه "},
{"id":"rect_x","title":"تغییر مستطیل اکس مختصات"}, {"id":"rect_width","title":"‫تغییر عرض مستطیل‬"},
{"id":"rect_y","title":"تغییر ý مستطیل مختصات"}, {"id":"rect_height","title":"‫تغییر ارتفاع مستطیل‬"},
{"id":"rect_width","title":"تغییر عرض مستطیل"}, {"id":"rect_rx","title":"‫تغییر شعاع گوشه مستطیل‬"},
{"id":"rect_height","title":"تغییر ارتفاع مستطیل"}, {"id":"image_width","title":"‫تغییر عرض تصویر‬"},
{"id":"rect_rx","title":"تغییر مستطیل گوشه شعاع"}, {"id":"image_height","title":"‫تغییر ارتفاع تصویر‬"},
{"id":"image_x","title":"تغییر تصویر اکس مختصات"}, {"id":"image_url","title":"‫تغییر نشانی وب (url)"},
{"id":"image_y","title":"تغییر تصویر هماهنگ ý"}, {"id":"circle_cx","title":"‫تغییر مختصات cx دایره‬"},
{"id":"image_width","title":"تغییر عرض تصویر"}, {"id":"circle_cy","title":"‫تغییر مختصات cy دایره‬"},
{"id":"image_height","title":"تغییر ارتفاع با مزه"}, {"id":"circle_r","title":"‫تغییر شعاع دایره‬"},
{"id":"image_url","title":"تغییر آدرس"}, {"id":"ellipse_cx","title":"‫تغییر مختصات cx بیضی‬"},
{"id":"circle_cx","title":"cx 'sدایره تغییر مختصات"}, {"id":"ellipse_cy","title":"‫تغییر مختصات cy بیضی‬"},
{"id":"circle_cy","title":"دایره تغییر 'scy مختصات"}, {"id":"ellipse_rx","title":"‫تغییر شعاع rx بیضی‬"},
{"id":"circle_r","title":"شعاع دایره را تغییر"}, {"id":"ellipse_ry","title":"‫تغییر شعاع ry بیضی‬"},
{"id":"ellipse_cx","title":"تغییر مختصات بیضی 'scx"}, {"id":"line_x1","title":"‫تغییر مختصات x آغاز خط‬"},
{"id":"ellipse_cy","title":"بیضی تغییر 'scy مختصات"}, {"id":"line_y1","title":"‫تغییر مختصات y آغاز خط‬"},
{"id":"ellipse_rx","title":"x بیضی تغییر 'sشعاع"}, {"id":"line_x2","title":"‫تغییر مختصات x پایان خط‬"},
{"id":"ellipse_ry","title":"ý شعاع بیضی تغییر 's"}, {"id":"line_y2","title":"‫تغییر مختصات y پایان خط‬"},
{"id":"line_x1","title":"خط شروع را تغییر مختصات x"}, {"id":"tool_bold","title":"‫متن توپر "},
{"id":"line_y1","title":"تغییر خط را هماهنگ با شروع ý"}, {"id":"tool_italic","title":"‫متن کج "},
{"id":"line_x2","title":"خط پایان را تغییر مختصات x"}, {"id":"font_family","title":"‫تغییر خانواده قلم‬"},
{"id":"line_y2","title":"تغییر خط را پایان دادن به مختصات ý"}, {"id":"font_size","title":"‫تغییر اندازه قلم‬"},
{"id":"text_x","title":"تغییر متن اکس مختصات"}, {"id":"text","title":"‫تغییر محتویات متن‬"},
{"id":"text_y","title":"تغییر ý متن مختصات"}, {"id":"tool_select","title":"‫ابزار انتخاب "},
{"id":"tool_bold","title":"متن پررنگ [B]"}, {"id":"tool_fhpath","title":"‫ابزار مداد "},
{"id":"tool_italic","title":"متن ایتالیک [I]"}, {"id":"tool_line","title":"‫ابزار خط "},
{"id":"font_family","title":"تغییر فونت خانواده"}, {"id":"tools_rect_show","title":"‫ابزار مستطیل/مربع "},
{"id":"font_size","title":"تغییر اندازه فونت"}, {"id":"tools_ellipse_show","title":"‫ابزار بیضی/دایره "},
{"id":"text","title":"مطالب تغییر متن"}, {"id":"tool_text","title":"‫ابزار متن "},
{"id":"tool_select","title":"انتخاب ابزار [1]"}, {"id":"tool_path","title":"‫ابزار مسیر "},
{"id":"tool_path","title":"ابزار مداد [2]"}, {"id":"tool_image","title":"‫ابزار تصویر "},
{"id":"tool_line","title":"خط ابزار [3]"}, {"id":"tool_zoom","title":"‫ابزار بزرگ نمایی "},
{"id":"tools_rect_show","title":"میدان / Rect ابزار [4/Shift 4]"}, {"id":"zoom","title":"‫تغییر بزرگ نمایی‬"},
{"id":"tools_ellipse_show","title":"بیضی / دایره ابزار [5/Shift 5]"}, {"id":"fill_color","title":"‫تغییر رنگ‬"},
{"id":"tool_text","title":"ابزار متن [6]"}, {"id":"stroke_color","title":"‫تغییر رنگ لبه‬"},
{"id":"tool_poly","title":"پلی ابزار [7]"}, {"id":"stroke_width","title":"‫تغییر عرض لبه‬"},
{"id":"tool_image","title":"ابزار تصویر [8]"}, {"id":"stroke_style","title":"‫تغییر نقطه چین لبه‬"},
{"id":"tool_zoom","title":"زوم ابزار [Ctrl Up/Down]"}, {"id":"palette","title":"‫برای تغییر رنگ، کلیک کنید. برای تغییر رنگ لبه، کلید تبدیل (shift) را فشرده و کلیک کنید‬"},
{"id":"zoom","title":"تغییر سطح زوم"}, {"id":"tool_square","title":"‫مربع‬"},
{"id":"fill_color","title":"تغییر رنگ را پر کنید"}, {"id":"tool_rect","title":"‫مستطیل‬"},
{"id":"stroke_color","title":"تغییر رنگ سکته مغزی"}, {"id":"tool_fhrect","title":"‫مستطیل با قابلیت تغییر پویا‬"},
{"id":"stroke_width","title":"تغییر عرض سکته مغزی"}, {"id":"tool_circle","title":"‫دایره‬"},
{"id":"stroke_style","title":"سکته مغزی تغییر شیوه خط تیره"}, {"id":"tool_ellipse","title":"‫بیضی‬"},
{"id":"palette","title":"کلیک کنید ، برای تغییر پر رنگ ، تغییر مکان کلیک کنید برای تغییر رنگ سکته مغزی"}, {"id":"tool_fhellipse","title":"‫بیضی با قابلیت تغییر پویا‬"},
{"id":"tool_square","title":"میدان"}, {"id":"bkgnd_color","title":"‫تغییر رنگ پس زمینه / تاری‬"},
{"id":"tool_rect","title":"مستطیل"}, {"id":"rwidthLabel","textContent":"‫عرض:"},
{"id":"tool_fhrect","title":"رایگان دست مستطیل"}, {"id":"rheightLabel","textContent":"‫ارتفاع:"},
{"id":"tool_circle","title":"دایره"}, {"id":"cornerRadiusLabel","textContent":"‫شعاع گوشه:"},
{"id":"tool_ellipse","title":"بیضی"}, {"id":"iwidthLabel","textContent":"‫عرض:"},
{"id":"tool_fhellipse","title":"رایگان دست بیضی"}, {"id":"iheightLabel","textContent":"‫ارتفاع:"},
{"id":"bkgnd_color","title":"تغییر رنگ پس زمینه / تاری"}, {"id":"svginfo_width","textContent":"‫عرض:"},
{"id":"rwidthLabel","textContent":"عرض :"}, {"id":"svginfo_height","textContent":"‫ارتفاع:"},
{"id":"rheightLabel","textContent":"قد :"}, {"id":"angleLabel","textContent":"‫زاویه:"},
{"id":"cornerRadiusLabel","textContent":"شعاع گوشه :"}, {"id":"relativeToLabel","textContent":"‫نسبت به:"},
{"id":"iwidthLabel","textContent":"عرض:"}, {"id":"zoomLabel","textContent":"‫بزرگ نمایی:"},
{"id":"iheightLabel","textContent":"ارتفاع:"}, {"id":"layersLabel","textContent":"‫لایه:"},
{"id":"svginfo_width","textContent":"عرض:"}, {"id":"selectedPredefined","textContent":"‫از پیش تعریف شده را انتخاب کنید:"},
{"id":"svginfo_height","textContent":"قد:"}, {"id":"fitToContent","textContent":"‫هم اندازه شدن با محتوا‬"},
{"id":"angleLabel","textContent":"زاویه:"}, {"id":"tool_source_save","textContent":"‫اعمال تغییرات‬"},
{"id":"relativeToLabel","textContent":"نسبت به:"}, {"id":"tool_docprops_save","textContent":"‫تأیید‬"},
{"id":"zoomLabel","textContent":"زوم:"}, {"id":"tool_docprops_cancel","textContent":"‫لغو‬"},
{"id":"svninfo_change_background","textContent":"بوم سابقه و هدف"}, {"id":"tool_source_cancel","textContent":"‫لغو‬"},
{"id":"layersLable","textContent":"لایه:"}, {"id":"fit_to_all","textContent":"‫هم اندازه شدن با همه محتویات‬"},
{"id":"selectedPredefined","textContent":"از پیش تعریف شده را انتخاب کنید:"}, {"id":"fit_to_layer_content","textContent":"‫هم اندازه شدن با محتوای لایه‬"},
{"id":"fitToContent","textContent":"جا به محتوا"}, {"id":"fit_to_sel","textContent":"‫هم اندازه شدن با اشیاء انتخاب شده‬"},
{"id":"tool_source_save","textContent":"ذخیره"}, {"id":"fit_to_canvas","textContent":"‫هم اندازه شدن با صفحه مجازی (بوم)"},
{"id":"tool_docprops_save","textContent":"ذخیره"}, {"id":"selected_objects","textContent":"‫اشیاء انتخاب شده‬"},
{"id":"tool_docprops_cancel","textContent":"انصراف"}, {"id":"largest_object","textContent":"‫بزرگترین شئ‬"},
{"id":"tool_source_cancel","textContent":"انصراف"}, {"id":"smallest_object","textContent":"‫کوچکترین شئ‬"},
{"id":"fit_to_all","textContent":"مناسب برای همه مطالب"}, {"id":"page","textContent":"‫صفحه‬"},
{"id":"fit_to_layer_content","textContent":"جا به محتوا لایه"}, {"id":"fill_tool_bottom","textContent":"‫رنگ:"},
{"id":"fit_to_sel","textContent":"به انتخاب مناسب"}, {"id":"stroke_tool_bottom","textContent":"‫لبه:"},
{"id":"fit_to_canvas","textContent":"متناسببا بوم"}, {"id":"path_node_x","title":"‫تغییر مختصات x نقطه‬"},
{"id":"selected_objects","textContent":"انتخاب اشیاء"}, {"id":"path_node_y","title":"‫تغییر مختصات y نقطه‬"},
{"id":"largest_object","textContent":"بزرگترین شی"}, {"id":"seg_type","title":"‫تغییر نوع قطعه (segment)"},
{"id":"smallest_object","textContent":"کوچکترین شی"}, {"id":"straight_segments","textContent":"‫مستقیم‬"},
{"id":"page","textContent":"صفحه"}, {"id":"curve_segments","textContent":"‫منحنی‬"},
{"id":"fill_tool_bottom","textContent":"پر:"}, {"id":"tool_node_clone","title":"‫ایجاد کپی از نقطه‬"},
{"id":"stroke_tool_bottom","textContent":"سکته مغزی:"}, {"id":"tool_node_delete","title":"‫حذف نقطه‬"},
{"id":"svninfo_dim","textContent":"ابعاد بوم"} {"id":"selLayerLabel","textContent":"‫انتقال عناصر به:"},
{"id":"selLayerNames","title":"‫انتقال عناصر انتخاب شده به یک لایه متفاوت‬"},
{"id":"sidepanel_handle","title":"‫برای تغییر اندازه منوی کناری، آن را به سمت راست/چپ بکشید ","textContent":"‫لایه ها"},
{"id":"tool_wireframe","title":"‫حالت نمایش لبه ها "},
{"id":"svginfo_image_props","textContent":"‫مشخصات تصویر‬"},
{"id":"svginfo_title","textContent":"‫عنوان‬"},
{"id":"svginfo_dim","textContent":"‫ابعاد صفحه مجازی (بوم)"},
{"id":"includedImages","textContent":"‫تصاویر گنجانده شده‬"},
{"id":"image_opt_embed","textContent":"‫داده های جای داده شده (پرونده های محلی)"},
{"id":"image_opt_ref","textContent":"‫استفاده از ارجاع به پرونده‬"},
{"id":"svginfo_editor_prefs","textContent":"‫تنظیمات ویراستار‬"},
{"id":"svginfo_lang","textContent":"‫زبان‬"},
{"id":"svginfo_change_background","textContent":"‫پس زمینه ویراستار‬"},
{"id":"svginfo_bg_note","textContent":"‫توجه: پس زمینه همراه تصویر ذخیره نخواهد شد."},
{"id":"svginfo_icons","textContent":"‫اندازه شمایل‬"},
{"id":"icon_small","textContent":"‫کوچک‬"},
{"id":"icon_medium","textContent":"‫متوسط‬"},
{"id":"icon_large","textContent":"‫بزرگ‬"},
{"id":"icon_xlarge","textContent":"‫خیلی بزرگ‬"},
{"id":"selected_x","title":"‫تغییر مختصات X"},
{"id":"selected_y","title":"‫تغییر مختصات Y"},
{"id":"tool_topath","title":"‫تبدیل به مسیر‬"},
{"id":"tool_reorient","title":"‫جهت دهی مجدد مسیر‬"},
{"id":"tool_node_link","title":"‫پیوند دادن نقاط کنترل‬"},
{"js_strings": {
"invalidAttrValGiven":"‫مقدار داده شده نامعتبر است‬",
"noContentToFitTo":"‫محتوایی برای هم اندازه شدن وجود ندارد‬",
'layer':"‫لایه‬",
"dupeLayerName":"‫لایه ای با آن نام وجود دارد!",
"enterUniqueLayerName":"‫لطفا یک نام لایه یکتا انتخاب کنید‬",
"enterNewLayerName":"‫لطفا نام لایه جدید را وارد کنید‬",
"layerHasThatName":"‫لایه از قبل آن نام را دارد‬",
"QmoveElemsToLayer":"‫عناصر انتخاب شده به لایه '%s' منتقل شوند؟‬",
"QwantToClear":"‫آیا مطمئن هستید که می خواهید نقاشی را پاک کنید؟\nاین عمل باعث حذف تاریخچه واگرد شما خواهد شد!",
"QerrorsRevertToSource":"‫در منبع SVG شما خطاهای تجزیه (parse) وجود داشت.\nبه منبع SVG اصلی بازگردانده شود؟‬",
"QignoreSourceChanges":"‫تغییرات اعمال شده در منبع SVG نادیده گرفته شوند؟‬",
"featNotSupported":"‫این ویژگی پشتیبانی نشده است‬",
"enterNewImgURL":"‫نشانی وب (url) تصویر جدید را وارد کنید‬",
"ok":"‫تأیید‬",
"cancel":"‫لغو‬",
"pathNodeTooltip":"‫برای جابه جا کردن نقطه، آن را بکشید. برای تغییر قطعه (segment)، روی نقطه دوبار کلیک کنید‬",
"pathCtrlPtTooltip":"‫برای تنظیم مشخصات منحنی، نقطه کنترل را بکشید‬",
"key_up":"‫بالا ",
"key_down":"‫پایین ",
"key_backspace":"‫پس بر ",
"key_del":"‫حذف "
}
}
] ]

View File

@ -8,7 +8,8 @@
*/ */
var put_locale = function(svgCanvas, given_param){ var put_locale = function(svgCanvas, given_param){
var lang_param; var lang_param;
var good_langs = ['cs','de','en','es','fr','nl','ro','sk']; // TODO: Make this array be based on entries in svg-editor.html
var good_langs = ['cs','de','en','es','fa','fr','nl','ro','sk'];
if(given_param) { if(given_param) {
lang_param = given_param; lang_param = given_param;
} else { } else {

View File

@ -15,9 +15,9 @@
<script type="text/javascript" src="jgraduate/jquery.jgraduate.js"></script> <script type="text/javascript" src="jgraduate/jquery.jgraduate.js"></script>
<script type="text/javascript" src="svgicons/jquery.svgicons.js"></script> <script type="text/javascript" src="svgicons/jquery.svgicons.js"></script>
<script type="text/javascript" src="spinbtn/JQuerySpinBtn.js"></script> <script type="text/javascript" src="spinbtn/JQuerySpinBtn.js"></script>
<script type="text/javascript" src="locale/locale.js"></script>
<script type="text/javascript" src="svgcanvas.js"></script> <script type="text/javascript" src="svgcanvas.js"></script>
<script type="text/javascript" src="svg-editor.js"></script> <script type="text/javascript" src="svg-editor.js"></script>
<script type="text/javascript" src="locale/locale.js"></script>
<!-- Release version of script tags: > <!-- Release version of script tags: >
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
@ -240,8 +240,10 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
</div> </div>
<div id="text_panel"> <div id="text_panel">
<div class="tool_button" id="tool_bold" title="Bold Text [B]"><span></span>B</div> <div class="toolset">
<div class="tool_button" id="tool_italic" title="Italic Text [I]"><span></span>i</div> <div class="tool_button" id="tool_bold" title="Bold Text [B]"><span></span>B</div>
<div class="tool_button" id="tool_italic" title="Italic Text [I]"><span></span>i</div>
</div>
<div class="toolset"> <div class="toolset">
<input id="font_family" class="text_tool" type="text" title="Change Font Family" size="12"/> <input id="font_family" class="text_tool" type="text" title="Change Font Family" size="12"/>
@ -438,6 +440,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
<option id="lang_de" value="de">Deutsch</option> <option id="lang_de" value="de">Deutsch</option>
<option id="lang_en" value="en" selected="selected">English</option> <option id="lang_en" value="en" selected="selected">English</option>
<option id="lang_es" value="es">Español</option> <option id="lang_es" value="es">Español</option>
<option id="lang_fa" value="fa">فارسی</option>
<option id="lang_fr" value="fr">Français</option> <option id="lang_fr" value="fr">Français</option>
<option id="lang_nl" value="nl">Nederlands</option> <option id="lang_nl" value="nl">Nederlands</option>
<option id="lang_ro" value="ro">Româneşte</option> <option id="lang_ro" value="ro">Româneşte</option>

View File

@ -216,7 +216,7 @@ function svg_edit_setup() {
selectedElement = elem; selectedElement = elem;
} }
} }
// we update the contextual panel with potentially new // we update the contextual panel with potentially new
// positional/sizing information (we DON'T want to update the // positional/sizing information (we DON'T want to update the
// toolbar here as that creates an infinite loop) // toolbar here as that creates an infinite loop)
@ -347,8 +347,11 @@ function svg_edit_setup() {
// updates the context panel tools based on the selected element // updates the context panel tools based on the selected element
var updateContextPanel = function() { var updateContextPanel = function() {
var elem = selectedElement; var elem = selectedElement;
// If element has just been deleted, consider it null
if(elem != null && !elem.parentNode) elem = null;
var currentLayer = svgCanvas.getCurrentLayer(); var currentLayer = svgCanvas.getCurrentLayer();
var currentMode = svgCanvas.getMode(); var currentMode = svgCanvas.getMode();
// No need to update anything else in rotate mode // No need to update anything else in rotate mode
if (currentMode == 'rotate' && elem != null) { if (currentMode == 'rotate' && elem != null) {
var ang = svgCanvas.getRotationAngle(elem); var ang = svgCanvas.getRotationAngle(elem);
@ -366,7 +369,6 @@ function svg_edit_setup() {
$('#angle').val(angle); $('#angle').val(angle);
if(svgCanvas.addedNew) { if(svgCanvas.addedNew) {
console.log(elname)
if(elname == 'image') { if(elname == 'image') {
promptImgURL(); promptImgURL();
} else if(elname == 'text') { } else if(elname == 'text') {

View File

@ -8,6 +8,7 @@
* Copyright(c) 2010 Jeff Schiller * Copyright(c) 2010 Jeff Schiller
* *
*/ */
if(!window.console) { if(!window.console) {
window.console = {}; window.console = {};
window.console.log = function(str) {}; window.console.log = function(str) {};
@ -213,7 +214,7 @@ function RemoveElementCommand(elem, parent, text) {
if (svgTransformLists[elem.id]) { if (svgTransformLists[elem.id]) {
delete svgTransformLists[elem.id]; delete svgTransformLists[elem.id];
} }
} }
function MoveElementCommand(elem, oldNextSibling, oldParent, text) { function MoveElementCommand(elem, oldNextSibling, oldParent, text) {
@ -2268,6 +2269,7 @@ function BatchCommand(text) {
aabox: {x:minx, y:miny, width:(maxx-minx), height:(maxy-miny)} }; aabox: {x:minx, y:miny, width:(maxx-minx), height:(maxy-miny)} };
}; };
// Mouse events
(function() { (function() {
var d_attr = null; var d_attr = null;
@ -3218,21 +3220,27 @@ function BatchCommand(text) {
$('#ctrlpointgrip_container *').attr('display','none'); $('#ctrlpointgrip_container *').attr('display','none');
}; };
var addNodeToSelection = function(point) {
var addNodeToSelection = function(point) {
// Currently only one node can be selected at a time, should allow more later // Currently only one node can be selected at a time, should allow more later
// Should point be the index or the grip element? // Should point be the index or the grip element?
var is_closed = pathIsClosed(); var is_closed = pathIsClosed();
var last_pt = current_path_pts.length/2 - 1;
if(is_closed && point == current_path_pts.length/2 - 1) { if(is_closed && point == last_pt) {
current_path_pt = 0; current_path_pt = 0;
} else { } else {
current_path_pt = point; current_path_pt = point;
} }
$('#pathpointgrip_container circle').attr('stroke','#00F'); $('#pathpointgrip_container circle').attr('stroke','#00F');
var grip = $('#pathpointgrip_' + point).attr('stroke','#0FF');
var sel_point = (current_path_pt == 0 && is_closed)?last_pt:point;
$('#pathpointgrip_' + sel_point).attr('stroke','#0FF');
var grip = $('#pathpointgrip_' + point);
$('#ctrlpointgrip_container circle').attr('fill', '#EEE'); $('#ctrlpointgrip_container circle').attr('fill', '#EEE');
$('#ctrlpointgrip_' + current_path_pt + 'c1, #ctrlpointgrip_' + current_path_pt + 'c2').attr('fill','#0FF'); $('#ctrlpointgrip_' + current_path_pt + 'c1, #ctrlpointgrip_' + current_path_pt + 'c2').attr('fill','#0FF');
updateSegLine(); updateSegLine();
@ -4123,6 +4131,8 @@ function BatchCommand(text) {
zoomChange: function() { zoomChange: function() {
if(current_mode == "pathedit") { if(current_mode == "pathedit") {
resetPointGrips(); resetPointGrips();
updateSegLine(true);
updateSegLine();
} }
}, },
modeChange: function() { modeChange: function() {
@ -4140,7 +4150,7 @@ function BatchCommand(text) {
}, },
getNodePoint: function() { getNodePoint: function() {
if(current_path_pt != -1) { if(current_path_pt != -1) {
var pt = getPathPoint(current_path_pt, true); var pt = getPathPoint(current_path_pt);
var list = current_path.pathSegList; var list = current_path.pathSegList;
var segtype; var segtype;
if(list.numberOfItems > current_path_pt+1) { if(list.numberOfItems > current_path_pt+1) {
@ -4329,6 +4339,7 @@ function BatchCommand(text) {
call("changed", [current_path]); call("changed", [current_path]);
}, },
moveNode: function(attr, newValue) { moveNode: function(attr, newValue) {
newValue *= current_zoom;
var num = (attr == 'x')?0:1; var num = (attr == 'x')?0:1;
var old_path_pts = $.map(current_path_pts, function(n){return n/current_zoom;}); var old_path_pts = $.map(current_path_pts, function(n){return n/current_zoom;});
@ -5647,6 +5658,8 @@ function BatchCommand(text) {
ret = newg.getBBox(); ret = newg.getBBox();
while (newg.firstChild) { selected.appendChild(newg.firstChild); } while (newg.firstChild) { selected.appendChild(newg.firstChild); }
selected.parentNode.removeChild(newg); selected.parentNode.removeChild(newg);
} else if(elem.nodeName == 'path' && isWebkit) {
ret = getPathBBox(selected);
} else { } else {
try { ret = selected.getBBox(); } try { ret = selected.getBBox(); }
catch(e) { ret = null; } catch(e) { ret = null; }
@ -5988,7 +6001,7 @@ function BatchCommand(text) {
addCommandToHistory(batchCmd); addCommandToHistory(batchCmd);
} }
}; };
this.deleteSelectedElements = function() { this.deleteSelectedElements = function() {
var batchCmd = new BatchCommand("Delete Elements"); var batchCmd = new BatchCommand("Delete Elements");
var len = selectedElements.length; var len = selectedElements.length;
@ -6190,8 +6203,12 @@ function BatchCommand(text) {
var oldParent = t.parentNode; var oldParent = t.parentNode;
var oldNextSibling = t.nextSibling; var oldNextSibling = t.nextSibling;
if (oldNextSibling == selectorManager.selectorParentGroup) oldNextSibling = null; if (oldNextSibling == selectorManager.selectorParentGroup) oldNextSibling = null;
// first child is a comment, so call nextSibling var firstChild = t.parentNode.firstChild;
var firstChild = t.parentNode.firstChild.nextSibling; if (firstChild.tagName == 'title') {
firstChild = firstChild.nextSibling;
}
// This can probably be removed, as the defs should not ever apppear
// inside a layer group
if (firstChild.tagName == 'defs') { if (firstChild.tagName == 'defs') {
firstChild = firstChild.nextSibling; firstChild = firstChild.nextSibling;
} }
@ -6251,6 +6268,82 @@ function BatchCommand(text) {
} }
}; };
var getPathBBox = function(path) {
// Get correct BBox for a path in Webkit
// Converted from code found here:
// http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
var seglist = path.pathSegList;
var tot = seglist.numberOfItems;
var bounds = [[], []];
var start = seglist.getItem(0);
var P0 = [start.x, start.y];
for(var i=0; i < tot; i++) {
var seg = seglist.getItem(i);
if(!seg.x) continue;
// Add actual points to limits
bounds[0].push(P0[0]);
bounds[1].push(P0[1]);
if(seg.x1) {
var P1 = [seg.x1, seg.y1],
P2 = [seg.x2, seg.y2],
P3 = [seg.x, seg.y];
for(var j=0; j < 2; j++) {
var calc = function(t) {
return Math.pow(1-t,3) * P0[j]
+ 3 * Math.pow(1-t,2) * t * P1[j]
+ 3 * (1-t) * Math.pow(t,2) * P2[j]
+ Math.pow(t,3) * P3[j];
};
var b = 6 * P0[j] - 12 * P1[j] + 6 * P2[j];
var a = -3 * P0[j] + 9 * P1[j] - 9 * P2[j] + 3 * P3[j];
var c = 3 * P1[j] - 3 * P0[j];
if(a == 0) {
if(b == 0) {
continue;
}
var t = -c / b;
if(0 < t && t < 1) {
bounds[j].push(calc(t));
}
continue;
}
var b2ac = Math.pow(b,2) - 4 * c * a;
if(b2ac < 0) continue;
var t1 = (-b + Math.sqrt(b2ac))/(2 * a);
if(0 < t1 && t1 < 1) bounds[j].push(calc(t1));
var t2 = (-b - Math.sqrt(b2ac))/(2 * a);
if(0 < t2 && t2 < 1) bounds[j].push(calc(t2));
}
P0 = P3;
} else {
bounds[0].push(seg.x);
bounds[1].push(seg.y);
}
}
var x = Math.min.apply(null, bounds[0]);
var w = Math.max.apply(null, bounds[0]) - x;
var y = Math.min.apply(null, bounds[1]);
var h = Math.max.apply(null, bounds[1]) - y;
return {
'x': x,
'y': y,
'width': w,
'height': h
};
}
this.getStrokedBBox = function(elems) { this.getStrokedBBox = function(elems) {
if(!elems) elems = canvas.getVisibleElements(); if(!elems) elems = canvas.getVisibleElements();
if(!elems.length) return false; if(!elems.length) return false;
@ -6264,7 +6357,8 @@ function BatchCommand(text) {
// fine in FF, but not in other browsers (same problem mentioned // fine in FF, but not in other browsers (same problem mentioned
// in Issue 339 comment #2). // in Issue 339 comment #2).
var bb = elem.getBBox(); var bb = canvas.getBBox(elem);
var angle = canvas.getRotationAngle(elem); var angle = canvas.getRotationAngle(elem);
if ((angle && angle % 90) || hasMatrixTransform(canvas.getTransformList(elem))) { if ((angle && angle % 90) || hasMatrixTransform(canvas.getTransformList(elem))) {
// Accurate way to get BBox of rotated element in Firefox: // Accurate way to get BBox of rotated element in Firefox:
@ -6337,6 +6431,7 @@ function BatchCommand(text) {
var full_bb; var full_bb;
$.each(elems, function() { $.each(elems, function() {
if(full_bb) return; if(full_bb) return;
if(!this.parentNode) return;
full_bb = getCheckedBBox(this); full_bb = getCheckedBBox(this);
}); });