summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c82bca2)
raw | patch | inline | side by side (parent: c82bca2)
author | Aurelio A. Heckert (a) <auriumgmaildotcom> | |
Mon, 29 Mar 2010 18:46:20 +0000 (15:46 -0300) | ||
committer | Aurelio A. Heckert (a) <auriumgmaildotcom> | |
Mon, 29 Mar 2010 18:46:20 +0000 (15:46 -0300) |
14 files changed:
diff --git a/po/inkscape.pot b/po/inkscape.pot
index 08da43e41539bd6d5efe7646bbca8dfbb717bb41..4f714fb4ef34ac0017a50df23a6772e321497097 100644 (file)
--- a/po/inkscape.pot
+++ b/po/inkscape.pot
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2010-03-18 20:17+0100\n"
+"POT-Creation-Date: 2010-03-29 12:15-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#: ../share/extensions/edge3d.inx.h:9 ../src/live_effects/lpe-knot.cpp:331
-#: ../src/widgets/stroke-style.cpp:1100
+#: ../src/widgets/stroke-style.cpp:691
msgid "Stroke width"
msgstr ""
#: ../share/extensions/foldablebox.inx.h:8
#: ../share/extensions/interp_att_g.inx.h:24
-#: ../share/extensions/printing-marks.inx.h:19 ../src/helper/units.cpp:37
+#: ../share/extensions/printing-marks.inx.h:20 ../src/helper/units.cpp:37
#: ../src/live_effects/lpe-ruler.cpp:44
msgid "Unit"
msgstr ""
#: ../src/ui/dialog/inkscape-preferences.cpp:578
#: ../src/ui/dialog/inkscape-preferences.cpp:1208
#: ../src/ui/dialog/inkscape-preferences.cpp:1273 ../src/verbs.cpp:2192
-#: ../src/widgets/stroke-style.cpp:772 ../src/widgets/toolbox.cpp:3991
+#: ../src/widgets/stroke-style.cpp:362 ../src/widgets/toolbox.cpp:3991
msgid "None"
msgstr ""
msgstr ""
#: ../share/extensions/interp_att_g.inx.h:4
-#: ../src/ui/dialog/fill-and-stroke.cpp:48
+#: ../src/ui/dialog/fill-and-stroke.cpp:57
msgid "Fill"
msgstr ""
#: ../share/extensions/interp_att_g.inx.h:16
#: ../share/extensions/render_alphabetsoup.inx.h:4
-#: ../src/live_effects/lpe-sketch.cpp:55 ../src/selection-chemistry.cpp:1650
+#: ../src/live_effects/lpe-sketch.cpp:55 ../src/selection-chemistry.cpp:1657
#: ../src/seltrans.cpp:531 ../src/ui/dialog/transformation.cpp:738
#: ../src/widgets/toolbox.cpp:4679
msgid "Scale"
msgstr ""
#: ../share/extensions/printing-marks.inx.h:16
-msgid "Set crop marks to"
+#: ../src/ui/dialog/align-and-distribute.cpp:927
+#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1414
+#: ../src/ui/dialog/icon-preview.cpp:178
+#: ../src/widgets/desktop-widget.cpp:1651
+msgid "Selection"
msgstr ""
#: ../share/extensions/printing-marks.inx.h:17
-msgid "Star Target"
+msgid "Set crop marks to"
msgstr ""
#: ../share/extensions/printing-marks.inx.h:18
+msgid "Star Target"
+msgstr ""
+
+#: ../share/extensions/printing-marks.inx.h:19
msgid "Top:"
msgstr ""
msgid "Create a slicer rectangle"
msgstr ""
-#: ../share/extensions/webslicer-create-rect.inx.h:9 ../src/main.cpp:298
+#: ../share/extensions/webslicer-create-rect.inx.h:9 ../src/main.cpp:300
#: ../src/ui/widget/rendering-options.cpp:43
msgid "DPI"
msgstr ""
msgid "Remove a connection point"
msgstr ""
-#: ../src/connector-context.h:50
-msgid "<b>Connection point</b>: click or drag to create a new connector"
-msgstr ""
-
-#: ../src/connector-context.h:51
-msgid "<b>Connection point</b>: click to select, drag to move"
-msgstr ""
-
#: ../src/live_effects/lpe-extrude.cpp:26
msgid "Direction"
msgstr ""
msgid "<b>3D Box</b>"
msgstr ""
-#: ../src/connector-context.cpp:778
+#: ../src/connector-context.cpp:236
+msgid "<b>Connection point</b>: click or drag to create a new connector"
+msgstr ""
+
+#: ../src/connector-context.cpp:237
+msgid "<b>Connection point</b>: click to select, drag to move"
+msgstr ""
+
+#: ../src/connector-context.cpp:781
msgid "Creating new connector"
msgstr ""
-#: ../src/connector-context.cpp:1156
+#: ../src/connector-context.cpp:1159
msgid "Connector endpoint drag cancelled."
msgstr ""
-#: ../src/connector-context.cpp:1186
+#: ../src/connector-context.cpp:1189
msgid "Connection point drag cancelled."
msgstr ""
-#: ../src/connector-context.cpp:1304
+#: ../src/connector-context.cpp:1307
msgid "Reroute connector"
msgstr ""
-#: ../src/connector-context.cpp:1477
+#: ../src/connector-context.cpp:1480
msgid "Create connector"
msgstr ""
-#: ../src/connector-context.cpp:1500
+#: ../src/connector-context.cpp:1503
msgid "Finishing connector"
msgstr ""
-#: ../src/connector-context.cpp:1787
+#: ../src/connector-context.cpp:1790
msgid "<b>Connector endpoint</b>: drag to reroute or connect to new shapes"
msgstr ""
-#: ../src/connector-context.cpp:1928
+#: ../src/connector-context.cpp:1931
msgid "Select <b>at least one non-connector object</b>."
msgstr ""
-#: ../src/connector-context.cpp:1933 ../src/widgets/toolbox.cpp:7558
+#: ../src/connector-context.cpp:1936 ../src/widgets/toolbox.cpp:7558
msgid "Make connectors avoid selected objects"
msgstr ""
-#: ../src/connector-context.cpp:1934 ../src/widgets/toolbox.cpp:7568
+#: ../src/connector-context.cpp:1937 ../src/widgets/toolbox.cpp:7568
msgid "Make connectors ignore selected objects"
msgstr ""
msgid "Delete tiled clones"
msgstr ""
-#: ../src/dialogs/clonetiler.cpp:1097 ../src/selection-chemistry.cpp:2016
+#: ../src/dialogs/clonetiler.cpp:1097 ../src/selection-chemistry.cpp:2023
msgid "Select an <b>object</b> to clone."
msgstr ""
"this extension."
msgstr ""
-#: ../src/extension/implementation/script.cpp:1053
+#: ../src/extension/implementation/script.cpp:979
msgid ""
"Inkscape has received additional data from the script executed. The script "
"did not return an error, but this may indicate the results will not be as "
msgid "Gamma"
msgstr ""
-#: ../src/filter-enums.cpp:94 ../src/selection-chemistry.cpp:424
+#: ../src/filter-enums.cpp:94 ../src/selection-chemistry.cpp:425
#: ../src/widgets/gradient-selector.cpp:141
msgid "Duplicate"
msgstr ""
"The file already exists in \"%s\". Replacing it will overwrite its contents."
msgstr ""
-#: ../src/io/sys.cpp:448 ../src/io/sys.cpp:456
-#, c-format
-msgid "Failed to read from child pipe (%s)"
-msgstr ""
-
-#: ../src/io/sys.cpp:480
-#, c-format
-msgid "Failed to change to directory '%s' (%s)"
-msgstr ""
-
-#: ../src/io/sys.cpp:486 ../src/io/sys.cpp:712
-#, c-format
-msgid "Failed to execute child process (%s)"
-msgstr ""
-
-#: ../src/io/sys.cpp:659
-#, c-format
-msgid "Invalid program name: %s"
-msgstr ""
-
-#: ../src/io/sys.cpp:669 ../src/io/sys.cpp:958
-#, c-format
-msgid "Invalid string in argument vector at %d: %s"
-msgstr ""
-
-#: ../src/io/sys.cpp:680 ../src/io/sys.cpp:973
-#, c-format
-msgid "Invalid string in environment: %s"
-msgstr ""
-
-#: ../src/io/sys.cpp:741
-#, c-format
-msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr ""
-
-#: ../src/io/sys.cpp:954
-#, c-format
-msgid "Invalid working directory: %s"
-msgstr ""
-
-#: ../src/io/sys.cpp:1022
-#, c-format
-msgid "Failed to execute helper program (%s)"
-msgstr ""
-
#: ../src/knot.cpp:431
msgid "Node or handle drag canceled."
msgstr ""
@@ -10951,224 +10914,224 @@ msgstr ""
msgid "Unable to find node ID: '%s'\n"
msgstr ""
-#: ../src/main.cpp:267
+#: ../src/main.cpp:269
msgid "Print the Inkscape version number"
msgstr ""
-#: ../src/main.cpp:272
+#: ../src/main.cpp:274
msgid "Do not use X server (only process files from console)"
msgstr ""
-#: ../src/main.cpp:277
+#: ../src/main.cpp:279
msgid "Try to use X server (even if $DISPLAY is not set)"
msgstr ""
-#: ../src/main.cpp:282
+#: ../src/main.cpp:284
msgid "Open specified document(s) (option string may be excluded)"
msgstr ""
-#: ../src/main.cpp:283 ../src/main.cpp:288 ../src/main.cpp:293
-#: ../src/main.cpp:360 ../src/main.cpp:365 ../src/main.cpp:370
-#: ../src/main.cpp:375 ../src/main.cpp:386
+#: ../src/main.cpp:285 ../src/main.cpp:290 ../src/main.cpp:295
+#: ../src/main.cpp:362 ../src/main.cpp:367 ../src/main.cpp:372
+#: ../src/main.cpp:377 ../src/main.cpp:388
msgid "FILENAME"
msgstr ""
-#: ../src/main.cpp:287
+#: ../src/main.cpp:289
msgid "Print document(s) to specified output file (use '| program' for pipe)"
msgstr ""
-#: ../src/main.cpp:292
+#: ../src/main.cpp:294
msgid "Export document to a PNG file"
msgstr ""
-#: ../src/main.cpp:297
+#: ../src/main.cpp:299
msgid ""
"Resolution for exporting to bitmap and for rasterization of filters in PS/"
"EPS/PDF (default 90)"
msgstr ""
-#: ../src/main.cpp:302
+#: ../src/main.cpp:304
msgid ""
"Exported area in SVG user units (default is the page; 0,0 is lower-left "
"corner)"
msgstr ""
-#: ../src/main.cpp:303
+#: ../src/main.cpp:305
msgid "x0:y0:x1:y1"
msgstr ""
-#: ../src/main.cpp:307
+#: ../src/main.cpp:309
msgid "Exported area is the entire drawing (not page)"
msgstr ""
-#: ../src/main.cpp:312
+#: ../src/main.cpp:314
msgid "Exported area is the entire page"
msgstr ""
-#: ../src/main.cpp:317
+#: ../src/main.cpp:319
msgid ""
"Snap the bitmap export area outwards to the nearest integer values (in SVG "
"user units)"
msgstr ""
-#: ../src/main.cpp:322
+#: ../src/main.cpp:324
msgid "The width of exported bitmap in pixels (overrides export-dpi)"
msgstr ""
-#: ../src/main.cpp:323
+#: ../src/main.cpp:325
msgid "WIDTH"
msgstr ""
-#: ../src/main.cpp:327
+#: ../src/main.cpp:329
msgid "The height of exported bitmap in pixels (overrides export-dpi)"
msgstr ""
-#: ../src/main.cpp:328
+#: ../src/main.cpp:330
msgid "HEIGHT"
msgstr ""
-#: ../src/main.cpp:332
+#: ../src/main.cpp:334
msgid "The ID of the object to export"
msgstr ""
-#: ../src/main.cpp:333 ../src/main.cpp:431
+#: ../src/main.cpp:335 ../src/main.cpp:433
msgid "ID"
msgstr ""
#. TRANSLATORS: this means: "Only export the object whose id is given in --export-id".
#. See "man inkscape" for details.
-#: ../src/main.cpp:339
+#: ../src/main.cpp:341
msgid ""
"Export just the object with export-id, hide all others (only with export-id)"
msgstr ""
-#: ../src/main.cpp:344
+#: ../src/main.cpp:346
msgid "Use stored filename and DPI hints when exporting (only with export-id)"
msgstr ""
-#: ../src/main.cpp:349
+#: ../src/main.cpp:351
msgid "Background color of exported bitmap (any SVG-supported color string)"
msgstr ""
-#: ../src/main.cpp:350
+#: ../src/main.cpp:352
msgid "COLOR"
msgstr ""
-#: ../src/main.cpp:354
+#: ../src/main.cpp:356
msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)"
msgstr ""
-#: ../src/main.cpp:355
+#: ../src/main.cpp:357
msgid "VALUE"
msgstr ""
-#: ../src/main.cpp:359
+#: ../src/main.cpp:361
msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)"
msgstr ""
-#: ../src/main.cpp:364
+#: ../src/main.cpp:366
msgid "Export document to a PS file"
msgstr ""
-#: ../src/main.cpp:369
+#: ../src/main.cpp:371
msgid "Export document to an EPS file"
msgstr ""
-#: ../src/main.cpp:374
+#: ../src/main.cpp:376
msgid "Export document to a PDF file"
msgstr ""
-#: ../src/main.cpp:379
+#: ../src/main.cpp:381
msgid ""
"Export PDF/PS/EPS without text. Besides the PDF/PS/EPS, a LaTeX file is "
"exported, putting the text on top of the PDF/PS/EPS file. Include the result "
"in LaTeX like: \\input{latexfile.tex}"
msgstr ""
-#: ../src/main.cpp:385
+#: ../src/main.cpp:387
msgid "Export document to an Enhanced Metafile (EMF) File"
msgstr ""
-#: ../src/main.cpp:391
+#: ../src/main.cpp:393
msgid "Convert text object to paths on export (PS, EPS, PDF)"
msgstr ""
-#: ../src/main.cpp:396
+#: ../src/main.cpp:398
msgid ""
"Render filtered objects without filters, instead of rasterizing (PS, EPS, "
"PDF)"
msgstr ""
#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:402
+#: ../src/main.cpp:404
msgid ""
"Query the X coordinate of the drawing or, if specified, of the object with --"
"query-id"
msgstr ""
#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:408
+#: ../src/main.cpp:410
msgid ""
"Query the Y coordinate of the drawing or, if specified, of the object with --"
"query-id"
msgstr ""
#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:414
+#: ../src/main.cpp:416
msgid ""
"Query the width of the drawing or, if specified, of the object with --query-"
"id"
msgstr ""
#. TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
-#: ../src/main.cpp:420
+#: ../src/main.cpp:422
msgid ""
"Query the height of the drawing or, if specified, of the object with --query-"
"id"
msgstr ""
-#: ../src/main.cpp:425
+#: ../src/main.cpp:427
msgid "List id,x,y,w,h for all objects"
msgstr ""
-#: ../src/main.cpp:430
+#: ../src/main.cpp:432
msgid "The ID of the object whose dimensions are queried"
msgstr ""
#. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory
-#: ../src/main.cpp:436
+#: ../src/main.cpp:438
msgid "Print out the extension directory and exit"
msgstr ""
-#: ../src/main.cpp:441
+#: ../src/main.cpp:443
msgid "Remove unused definitions from the defs section(s) of the document"
msgstr ""
-#: ../src/main.cpp:446
+#: ../src/main.cpp:448
msgid "List the IDs of all the verbs in Inkscape"
msgstr ""
-#: ../src/main.cpp:451
+#: ../src/main.cpp:453
msgid "Verb to call when Inkscape opens."
msgstr ""
-#: ../src/main.cpp:452
+#: ../src/main.cpp:454
msgid "VERB-ID"
msgstr ""
-#: ../src/main.cpp:456
+#: ../src/main.cpp:458
msgid "Object ID to select when Inkscape opens."
msgstr ""
-#: ../src/main.cpp:457
+#: ../src/main.cpp:459
msgid "OBJECT-ID"
msgstr ""
-#: ../src/main.cpp:461
+#: ../src/main.cpp:463
msgid "Start Inkscape in interactive shell mode."
msgstr ""
-#: ../src/main.cpp:774 ../src/main.cpp:1100
+#: ../src/main.cpp:797 ../src/main.cpp:1123
msgid ""
"[OPTIONS...] [FILE...]\n"
"\n"
msgid "Selected object is not a group. Cannot enter."
msgstr ""
-#: ../src/selection-chemistry.cpp:303
+#: ../src/selection-chemistry.cpp:304
msgid "Delete text"
msgstr ""
-#: ../src/selection-chemistry.cpp:311
+#: ../src/selection-chemistry.cpp:312
msgid "<b>Nothing</b> was deleted."
msgstr ""
-#: ../src/selection-chemistry.cpp:329 ../src/text-context.cpp:1002
+#: ../src/selection-chemistry.cpp:330 ../src/text-context.cpp:1002
#: ../src/ui/dialog/swatches.cpp:220 ../src/widgets/toolbox.cpp:1318
#: ../src/widgets/toolbox.cpp:6076
msgid "Delete"
msgstr ""
-#: ../src/selection-chemistry.cpp:357
+#: ../src/selection-chemistry.cpp:358
msgid "Select <b>object(s)</b> to duplicate."
msgstr ""
-#: ../src/selection-chemistry.cpp:449
+#: ../src/selection-chemistry.cpp:450
msgid "Delete all"
msgstr ""
msgid "Select <b>some objects</b> to group."
msgstr ""
-#: ../src/selection-chemistry.cpp:648 ../src/selection-describer.cpp:53
+#: ../src/selection-chemistry.cpp:651 ../src/selection-describer.cpp:53
msgid "Group"
msgstr ""
-#: ../src/selection-chemistry.cpp:663
+#: ../src/selection-chemistry.cpp:665
msgid "Select a <b>group</b> to ungroup."
msgstr ""
-#: ../src/selection-chemistry.cpp:704
+#: ../src/selection-chemistry.cpp:706
msgid "<b>No groups</b> to ungroup in the selection."
msgstr ""
-#: ../src/selection-chemistry.cpp:710 ../src/sp-item-group.cpp:500
+#: ../src/selection-chemistry.cpp:712 ../src/sp-item-group.cpp:500
msgid "Ungroup"
msgstr ""
-#: ../src/selection-chemistry.cpp:800
+#: ../src/selection-chemistry.cpp:802
msgid "Select <b>object(s)</b> to raise."
msgstr ""
-#: ../src/selection-chemistry.cpp:806 ../src/selection-chemistry.cpp:868
-#: ../src/selection-chemistry.cpp:902 ../src/selection-chemistry.cpp:966
+#: ../src/selection-chemistry.cpp:808 ../src/selection-chemistry.cpp:870
+#: ../src/selection-chemistry.cpp:904 ../src/selection-chemistry.cpp:968
msgid ""
"You cannot raise/lower objects from <b>different groups</b> or <b>layers</b>."
msgstr ""
@@ -11908,294 +11871,294 @@ msgstr ""
#. TRANSLATORS: only translate "string" in "context|string".
#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
#. "Raise" means "to raise an object" in the undo history
-#: ../src/selection-chemistry.cpp:848
+#: ../src/selection-chemistry.cpp:850
msgid "undo action|Raise"
msgstr ""
-#: ../src/selection-chemistry.cpp:860
+#: ../src/selection-chemistry.cpp:862
msgid "Select <b>object(s)</b> to raise to top."
msgstr ""
-#: ../src/selection-chemistry.cpp:883
+#: ../src/selection-chemistry.cpp:885
msgid "Raise to top"
msgstr ""
-#: ../src/selection-chemistry.cpp:896
+#: ../src/selection-chemistry.cpp:898
msgid "Select <b>object(s)</b> to lower."
msgstr ""
-#: ../src/selection-chemistry.cpp:946
+#: ../src/selection-chemistry.cpp:948
msgid "Lower"
msgstr ""
-#: ../src/selection-chemistry.cpp:958
+#: ../src/selection-chemistry.cpp:960
msgid "Select <b>object(s)</b> to lower to bottom."
msgstr ""
-#: ../src/selection-chemistry.cpp:993
+#: ../src/selection-chemistry.cpp:995
msgid "Lower to bottom"
msgstr ""
-#: ../src/selection-chemistry.cpp:1000
+#: ../src/selection-chemistry.cpp:1002
msgid "Nothing to undo."
msgstr ""
-#: ../src/selection-chemistry.cpp:1007
+#: ../src/selection-chemistry.cpp:1009
msgid "Nothing to redo."
msgstr ""
-#: ../src/selection-chemistry.cpp:1067
+#: ../src/selection-chemistry.cpp:1069
msgid "Paste"
msgstr ""
-#: ../src/selection-chemistry.cpp:1074
+#: ../src/selection-chemistry.cpp:1077
msgid "Paste style"
msgstr ""
-#: ../src/selection-chemistry.cpp:1083
+#: ../src/selection-chemistry.cpp:1087
msgid "Paste live path effect"
msgstr ""
-#: ../src/selection-chemistry.cpp:1103
+#: ../src/selection-chemistry.cpp:1108
msgid "Select <b>object(s)</b> to remove live path effects from."
msgstr ""
-#: ../src/selection-chemistry.cpp:1115
+#: ../src/selection-chemistry.cpp:1120
msgid "Remove live path effect"
msgstr ""
-#: ../src/selection-chemistry.cpp:1126
+#: ../src/selection-chemistry.cpp:1131
msgid "Select <b>object(s)</b> to remove filters from."
msgstr ""
-#: ../src/selection-chemistry.cpp:1136
+#: ../src/selection-chemistry.cpp:1141
#: ../src/ui/dialog/filter-effects-dialog.cpp:1336
msgid "Remove filter"
msgstr ""
-#: ../src/selection-chemistry.cpp:1145
+#: ../src/selection-chemistry.cpp:1150
msgid "Paste size"
msgstr ""
-#: ../src/selection-chemistry.cpp:1153
+#: ../src/selection-chemistry.cpp:1159
msgid "Paste size separately"
msgstr ""
-#: ../src/selection-chemistry.cpp:1162
+#: ../src/selection-chemistry.cpp:1169
msgid "Select <b>object(s)</b> to move to the layer above."
msgstr ""
-#: ../src/selection-chemistry.cpp:1188
+#: ../src/selection-chemistry.cpp:1195
msgid "Raise to next layer"
msgstr ""
-#: ../src/selection-chemistry.cpp:1195
+#: ../src/selection-chemistry.cpp:1202
msgid "No more layers above."
msgstr ""
-#: ../src/selection-chemistry.cpp:1207
+#: ../src/selection-chemistry.cpp:1214
msgid "Select <b>object(s)</b> to move to the layer below."
msgstr ""
-#: ../src/selection-chemistry.cpp:1233
+#: ../src/selection-chemistry.cpp:1240
msgid "Lower to previous layer"
msgstr ""
-#: ../src/selection-chemistry.cpp:1240
+#: ../src/selection-chemistry.cpp:1247
msgid "No more layers below."
msgstr ""
-#: ../src/selection-chemistry.cpp:1449
+#: ../src/selection-chemistry.cpp:1456
msgid "Remove transform"
msgstr ""
-#: ../src/selection-chemistry.cpp:1552
+#: ../src/selection-chemistry.cpp:1559
msgid "Rotate 90° CCW"
msgstr ""
-#: ../src/selection-chemistry.cpp:1552
+#: ../src/selection-chemistry.cpp:1559
msgid "Rotate 90° CW"
msgstr ""
-#: ../src/selection-chemistry.cpp:1573 ../src/seltrans.cpp:534
+#: ../src/selection-chemistry.cpp:1580 ../src/seltrans.cpp:534
#: ../src/ui/dialog/transformation.cpp:760
msgid "Rotate"
msgstr ""
-#: ../src/selection-chemistry.cpp:1620
+#: ../src/selection-chemistry.cpp:1627
msgid "Rotate by pixels"
msgstr ""
-#: ../src/selection-chemistry.cpp:1675
+#: ../src/selection-chemistry.cpp:1682
msgid "Scale by whole factor"
msgstr ""
-#: ../src/selection-chemistry.cpp:1690
+#: ../src/selection-chemistry.cpp:1697
msgid "Move vertically"
msgstr ""
-#: ../src/selection-chemistry.cpp:1693
+#: ../src/selection-chemistry.cpp:1700
msgid "Move horizontally"
msgstr ""
-#: ../src/selection-chemistry.cpp:1696 ../src/selection-chemistry.cpp:1722
+#: ../src/selection-chemistry.cpp:1703 ../src/selection-chemistry.cpp:1729
#: ../src/seltrans.cpp:528 ../src/ui/dialog/transformation.cpp:681
msgid "Move"
msgstr ""
-#: ../src/selection-chemistry.cpp:1716
+#: ../src/selection-chemistry.cpp:1723
msgid "Move vertically by pixels"
msgstr ""
-#: ../src/selection-chemistry.cpp:1719
+#: ../src/selection-chemistry.cpp:1726
msgid "Move horizontally by pixels"
msgstr ""
-#: ../src/selection-chemistry.cpp:1847
+#: ../src/selection-chemistry.cpp:1854
msgid "The selection has no applied path effect."
msgstr ""
-#: ../src/selection-chemistry.cpp:2052
+#: ../src/selection-chemistry.cpp:2059
msgid "action|Clone"
msgstr ""
-#: ../src/selection-chemistry.cpp:2068
+#: ../src/selection-chemistry.cpp:2075
msgid "Select <b>clones</b> to relink."
msgstr ""
-#: ../src/selection-chemistry.cpp:2075
+#: ../src/selection-chemistry.cpp:2082
msgid "Copy an <b>object</b> to clipboard to relink clones to."
msgstr ""
-#: ../src/selection-chemistry.cpp:2099
+#: ../src/selection-chemistry.cpp:2106
msgid "<b>No clones to relink</b> in the selection."
msgstr ""
-#: ../src/selection-chemistry.cpp:2102
+#: ../src/selection-chemistry.cpp:2109
msgid "Relink clone"
msgstr ""
-#: ../src/selection-chemistry.cpp:2116
+#: ../src/selection-chemistry.cpp:2123
msgid "Select <b>clones</b> to unlink."
msgstr ""
-#: ../src/selection-chemistry.cpp:2165
+#: ../src/selection-chemistry.cpp:2172
msgid "<b>No clones to unlink</b> in the selection."
msgstr ""
-#: ../src/selection-chemistry.cpp:2169
+#: ../src/selection-chemistry.cpp:2176
msgid "Unlink clone"
msgstr ""
-#: ../src/selection-chemistry.cpp:2182
+#: ../src/selection-chemistry.cpp:2189
msgid ""
"Select a <b>clone</b> to go to its original. Select a <b>linked offset</b> "
"to go to its source. Select a <b>text on path</b> to go to the path. Select "
"a <b>flowed text</b> to go to its frame."
msgstr ""
-#: ../src/selection-chemistry.cpp:2205
+#: ../src/selection-chemistry.cpp:2212
msgid ""
"<b>Cannot find</b> the object to select (orphaned clone, offset, textpath, "
"flowed text?)"
msgstr ""
-#: ../src/selection-chemistry.cpp:2211
+#: ../src/selection-chemistry.cpp:2218
msgid ""
"The object you're trying to select is <b>not visible</b> (it is in <"
"defs>)"
msgstr ""
-#: ../src/selection-chemistry.cpp:2257
+#: ../src/selection-chemistry.cpp:2264
msgid "Select <b>object(s)</b> to convert to marker."
msgstr ""
-#: ../src/selection-chemistry.cpp:2325
+#: ../src/selection-chemistry.cpp:2332
msgid "Objects to marker"
msgstr ""
-#: ../src/selection-chemistry.cpp:2353
+#: ../src/selection-chemistry.cpp:2360
msgid "Select <b>object(s)</b> to convert to guides."
msgstr ""
-#: ../src/selection-chemistry.cpp:2365
+#: ../src/selection-chemistry.cpp:2372
msgid "Objects to guides"
msgstr ""
-#: ../src/selection-chemistry.cpp:2381
+#: ../src/selection-chemistry.cpp:2388
msgid "Select <b>object(s)</b> to convert to pattern."
msgstr ""
-#: ../src/selection-chemistry.cpp:2469
+#: ../src/selection-chemistry.cpp:2476
msgid "Objects to pattern"
msgstr ""
-#: ../src/selection-chemistry.cpp:2485
+#: ../src/selection-chemistry.cpp:2492
msgid "Select an <b>object with pattern fill</b> to extract objects from."
msgstr ""
-#: ../src/selection-chemistry.cpp:2538
+#: ../src/selection-chemistry.cpp:2545
msgid "<b>No pattern fills</b> in the selection."
msgstr ""
-#: ../src/selection-chemistry.cpp:2541
+#: ../src/selection-chemistry.cpp:2548
msgid "Pattern to objects"
msgstr ""
-#: ../src/selection-chemistry.cpp:2626
+#: ../src/selection-chemistry.cpp:2633
msgid "Select <b>object(s)</b> to make a bitmap copy."
msgstr ""
-#: ../src/selection-chemistry.cpp:2630
+#: ../src/selection-chemistry.cpp:2637
msgid "Rendering bitmap..."
msgstr ""
-#: ../src/selection-chemistry.cpp:2804
+#: ../src/selection-chemistry.cpp:2811
msgid "Create bitmap"
msgstr ""
-#: ../src/selection-chemistry.cpp:2836
+#: ../src/selection-chemistry.cpp:2843
msgid "Select <b>object(s)</b> to create clippath or mask from."
msgstr ""
-#: ../src/selection-chemistry.cpp:2839
+#: ../src/selection-chemistry.cpp:2846
msgid "Select mask object and <b>object(s)</b> to apply clippath or mask to."
msgstr ""
-#: ../src/selection-chemistry.cpp:3004
+#: ../src/selection-chemistry.cpp:3027
msgid "Set clipping path"
msgstr ""
-#: ../src/selection-chemistry.cpp:3006
+#: ../src/selection-chemistry.cpp:3029
msgid "Set mask"
msgstr ""
-#: ../src/selection-chemistry.cpp:3019
+#: ../src/selection-chemistry.cpp:3042
msgid "Select <b>object(s)</b> to remove clippath or mask from."
msgstr ""
-#: ../src/selection-chemistry.cpp:3119
+#: ../src/selection-chemistry.cpp:3153
msgid "Release clipping path"
msgstr ""
-#: ../src/selection-chemistry.cpp:3121
+#: ../src/selection-chemistry.cpp:3155
msgid "Release mask"
msgstr ""
-#: ../src/selection-chemistry.cpp:3139
+#: ../src/selection-chemistry.cpp:3173
msgid "Select <b>object(s)</b> to fit canvas to."
msgstr ""
#. Fit Page
-#: ../src/selection-chemistry.cpp:3159 ../src/verbs.cpp:2688
+#: ../src/selection-chemistry.cpp:3193 ../src/verbs.cpp:2688
msgid "Fit Page to Selection"
msgstr ""
-#: ../src/selection-chemistry.cpp:3188 ../src/verbs.cpp:2690
+#: ../src/selection-chemistry.cpp:3222 ../src/verbs.cpp:2690
msgid "Fit Page to Drawing"
msgstr ""
-#: ../src/selection-chemistry.cpp:3209 ../src/verbs.cpp:2692
+#: ../src/selection-chemistry.cpp:3243 ../src/verbs.cpp:2692
msgid "Fit Page to Selection or Drawing"
msgstr ""
msgstr ""
#. check whether something is selected
-#: ../src/ui/clipboard.cpp:257
+#: ../src/ui/clipboard.cpp:261
msgid "Nothing was copied."
msgstr ""
-#: ../src/ui/clipboard.cpp:318 ../src/ui/clipboard.cpp:521
-#: ../src/ui/clipboard.cpp:545
+#: ../src/ui/clipboard.cpp:333 ../src/ui/clipboard.cpp:544
+#: ../src/ui/clipboard.cpp:568
msgid "Nothing on the clipboard."
msgstr ""
-#: ../src/ui/clipboard.cpp:374
+#: ../src/ui/clipboard.cpp:392
msgid "Select <b>object(s)</b> to paste style to."
msgstr ""
-#: ../src/ui/clipboard.cpp:385 ../src/ui/clipboard.cpp:403
+#: ../src/ui/clipboard.cpp:403 ../src/ui/clipboard.cpp:421
msgid "No style on the clipboard."
msgstr ""
-#: ../src/ui/clipboard.cpp:425
+#: ../src/ui/clipboard.cpp:446
msgid "Select <b>object(s)</b> to paste size to."
msgstr ""
-#: ../src/ui/clipboard.cpp:432
+#: ../src/ui/clipboard.cpp:453
msgid "No size on the clipboard."
msgstr ""
-#: ../src/ui/clipboard.cpp:483
+#: ../src/ui/clipboard.cpp:506
msgid "Select <b>object(s)</b> to paste live path effect to."
msgstr ""
#. no_effect:
-#: ../src/ui/clipboard.cpp:508
+#: ../src/ui/clipboard.cpp:531
msgid "No effect on the clipboard."
msgstr ""
-#: ../src/ui/clipboard.cpp:528 ../src/ui/clipboard.cpp:555
+#: ../src/ui/clipboard.cpp:551 ../src/ui/clipboard.cpp:579
msgid "Clipboard does not contain a path."
msgstr ""
msgid "Smallest object"
msgstr ""
-#: ../src/ui/dialog/align-and-distribute.cpp:927
-#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1414
-#: ../src/ui/dialog/icon-preview.cpp:178
-#: ../src/widgets/desktop-widget.cpp:1651
-msgid "Selection"
-msgstr ""
-
#: ../src/ui/dialog/calligraphic-profile-rename.cpp:38
msgid "Profile name:"
msgstr ""
msgid "No file selected"
msgstr ""
-#: ../src/ui/dialog/fill-and-stroke.cpp:49
+#: ../src/ui/dialog/fill-and-stroke.cpp:58
msgid "Stroke _paint"
msgstr ""
-#: ../src/ui/dialog/fill-and-stroke.cpp:50
+#: ../src/ui/dialog/fill-and-stroke.cpp:59
msgid "Stroke st_yle"
msgstr ""
msgstr ""
#: ../src/ui/widget/selected-style.cpp:166
-#: ../src/ui/widget/style-swatch.cpp:277 ../src/widgets/paint-selector.cpp:227
+#: ../src/ui/widget/style-swatch.cpp:277 ../src/widgets/paint-selector.cpp:239
msgid "Pattern"
msgstr ""
#: ../src/ui/widget/selected-style.cpp:169
#: ../src/ui/widget/style-swatch.cpp:279
-#: ../src/widgets/paint-selector.cpp:1052
+#: ../src/widgets/paint-selector.cpp:1027
msgid "Pattern fill"
msgstr ""
#: ../src/ui/widget/selected-style.cpp:199
#: ../src/ui/widget/selected-style.cpp:257
#: ../src/ui/widget/selected-style.cpp:499
-#: ../src/ui/widget/style-swatch.cpp:303 ../src/widgets/fill-style.cpp:532
+#: ../src/ui/widget/style-swatch.cpp:303 ../src/widgets/fill-style.cpp:636
msgid "Unset fill"
msgstr ""
#: ../src/ui/widget/selected-style.cpp:199
#: ../src/ui/widget/selected-style.cpp:257
#: ../src/ui/widget/selected-style.cpp:515
-#: ../src/ui/widget/style-swatch.cpp:303 ../src/widgets/stroke-style.cpp:469
+#: ../src/ui/widget/style-swatch.cpp:303 ../src/widgets/fill-style.cpp:636
msgid "Unset stroke"
msgstr ""
msgstr ""
#: ../src/ui/widget/selected-style.cpp:261
-#: ../src/ui/widget/selected-style.cpp:481 ../src/widgets/fill-style.cpp:388
+#: ../src/ui/widget/selected-style.cpp:481 ../src/widgets/fill-style.cpp:446
msgid "Remove fill"
msgstr ""
#: ../src/ui/widget/selected-style.cpp:261
-#: ../src/ui/widget/selected-style.cpp:490 ../src/widgets/stroke-style.cpp:339
+#: ../src/ui/widget/selected-style.cpp:490 ../src/widgets/fill-style.cpp:446
msgid "Remove stroke"
msgstr ""
msgid "remove"
msgstr ""
-#: ../src/widgets/fill-style.cpp:286
+#: ../src/widgets/fill-style.cpp:327
msgid "Change fill rule"
msgstr ""
-#: ../src/widgets/fill-style.cpp:326 ../src/widgets/fill-style.cpp:400
+#: ../src/widgets/fill-style.cpp:380 ../src/widgets/fill-style.cpp:462
msgid "Set fill color"
msgstr ""
-#: ../src/widgets/fill-style.cpp:470
+#: ../src/widgets/fill-style.cpp:380 ../src/widgets/fill-style.cpp:462
+msgid "Set stroke color"
+msgstr ""
+
+#: ../src/widgets/fill-style.cpp:549
msgid "Set gradient on fill"
msgstr ""
-#: ../src/widgets/fill-style.cpp:517
+#: ../src/widgets/fill-style.cpp:549
+msgid "Set gradient on stroke"
+msgstr ""
+
+#: ../src/widgets/fill-style.cpp:609
msgid "Set pattern on fill"
msgstr ""
+#: ../src/widgets/fill-style.cpp:610
+msgid "Set pattern on stroke"
+msgstr ""
+
#. Family frame
#: ../src/widgets/font-selector.cpp:157
msgid "Font family"
msgstr ""
#: ../src/widgets/gradient-vector.cpp:267
-#: ../src/widgets/paint-selector.cpp:940 ../src/widgets/stroke-style.cpp:827
+#: ../src/widgets/paint-selector.cpp:914 ../src/widgets/stroke-style.cpp:417
msgid "No document selected"
msgstr ""
msgid "Change gradient stop color"
msgstr ""
-#: ../src/widgets/paint-selector.cpp:219 ../src/widgets/paint-selector.cpp:617
+#: ../src/widgets/paint-selector.cpp:231 ../src/widgets/paint-selector.cpp:614
msgid "No paint"
msgstr ""
-#: ../src/widgets/paint-selector.cpp:221 ../src/widgets/paint-selector.cpp:689
+#: ../src/widgets/paint-selector.cpp:233 ../src/widgets/paint-selector.cpp:678
msgid "Flat color"
msgstr ""
#. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR);
-#: ../src/widgets/paint-selector.cpp:223 ../src/widgets/paint-selector.cpp:761
+#: ../src/widgets/paint-selector.cpp:235 ../src/widgets/paint-selector.cpp:741
msgid "Linear gradient"
msgstr ""
-#: ../src/widgets/paint-selector.cpp:225 ../src/widgets/paint-selector.cpp:764
+#: ../src/widgets/paint-selector.cpp:237 ../src/widgets/paint-selector.cpp:744
msgid "Radial gradient"
msgstr ""
-#: ../src/widgets/paint-selector.cpp:229
+#: ../src/widgets/paint-selector.cpp:241
msgid "Swatch"
msgstr ""
-#: ../src/widgets/paint-selector.cpp:231
+#: ../src/widgets/paint-selector.cpp:243
msgid "Unset paint (make it undefined so it can be inherited)"
msgstr ""
#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
-#: ../src/widgets/paint-selector.cpp:243
+#: ../src/widgets/paint-selector.cpp:255
msgid ""
"Any path self-intersections or subpaths create holes in the fill (fill-rule: "
"evenodd)"
msgstr ""
#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty
-#: ../src/widgets/paint-selector.cpp:254
+#: ../src/widgets/paint-selector.cpp:266
msgid ""
"Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)"
msgstr ""
-#: ../src/widgets/paint-selector.cpp:584
+#: ../src/widgets/paint-selector.cpp:581
msgid "No objects"
msgstr ""
-#: ../src/widgets/paint-selector.cpp:595
+#: ../src/widgets/paint-selector.cpp:592
msgid "Multiple styles"
msgstr ""
-#: ../src/widgets/paint-selector.cpp:606
+#: ../src/widgets/paint-selector.cpp:603
msgid "Paint is undefined"
msgstr ""
-#: ../src/widgets/paint-selector.cpp:1039
+#: ../src/widgets/paint-selector.cpp:1014
msgid ""
"Use the <b>Node tool</b> to adjust position, scale, and rotation of the "
"pattern on canvas. Use <b>Object > Pattern > Objects to Pattern</b> to "
"create a new pattern from selection."
msgstr ""
-#: ../src/widgets/paint-selector.cpp:1125
+#: ../src/widgets/paint-selector.cpp:1103
msgid "Swatch fill"
msgstr ""
msgid "Type text in a text node"
msgstr ""
-#: ../src/widgets/stroke-style.cpp:289 ../src/widgets/stroke-style.cpp:348
-msgid "Set stroke color"
-msgstr ""
-
-#: ../src/widgets/stroke-style.cpp:400
-msgid "Set gradient on stroke"
-msgstr ""
-
-#: ../src/widgets/stroke-style.cpp:444
-msgid "Set pattern on stroke"
-msgstr ""
-
-#: ../src/widgets/stroke-style.cpp:911
+#: ../src/widgets/stroke-style.cpp:502
msgid "Set markers"
msgstr ""
#. TRANSLATORS: only translate "string" in "context|string".
#. For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
#. Stroke width
-#: ../src/widgets/stroke-style.cpp:1086
+#: ../src/widgets/stroke-style.cpp:677
msgid "StrokeWidth|Width:"
msgstr ""
#. Join type
#. TRANSLATORS: The line join style specifies the shape to be used at the
#. corners of paths. It can be "miter", "round" or "bevel".
-#: ../src/widgets/stroke-style.cpp:1124
+#: ../src/widgets/stroke-style.cpp:715
msgid "Join:"
msgstr ""
#. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner.
#. For an example, draw a triangle with a large stroke width and modify the
#. "Join" option (in the Fill and Stroke dialog).
-#: ../src/widgets/stroke-style.cpp:1136
+#: ../src/widgets/stroke-style.cpp:727
msgid "Miter join"
msgstr ""
#. TRANSLATORS: Round join: joining lines with a rounded corner.
#. For an example, draw a triangle with a large stroke width and modify the
#. "Join" option (in the Fill and Stroke dialog).
-#: ../src/widgets/stroke-style.cpp:1146
+#: ../src/widgets/stroke-style.cpp:737
msgid "Round join"
msgstr ""
#. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner.
#. For an example, draw a triangle with a large stroke width and modify the
#. "Join" option (in the Fill and Stroke dialog).
-#: ../src/widgets/stroke-style.cpp:1156
+#: ../src/widgets/stroke-style.cpp:747
msgid "Bevel join"
msgstr ""
#. spike that extends well beyond the connection point. The purpose of the
#. miter limit is to cut off such spikes (i.e. convert them into bevels)
#. when they become too long.
-#: ../src/widgets/stroke-style.cpp:1168
+#: ../src/widgets/stroke-style.cpp:759
msgid "Miter limit:"
msgstr ""
-#: ../src/widgets/stroke-style.cpp:1176
+#: ../src/widgets/stroke-style.cpp:767
msgid "Maximum length of the miter (in units of stroke width)"
msgstr ""
#. Cap type
#. TRANSLATORS: cap type specifies the shape for the ends of lines
-#: ../src/widgets/stroke-style.cpp:1188
+#: ../src/widgets/stroke-style.cpp:779
msgid "Cap:"
msgstr ""
#. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point
#. of the line; the ends of the line are square
-#: ../src/widgets/stroke-style.cpp:1200
+#: ../src/widgets/stroke-style.cpp:791
msgid "Butt cap"
msgstr ""
#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the
#. line; the ends of the line are rounded
-#: ../src/widgets/stroke-style.cpp:1208
+#: ../src/widgets/stroke-style.cpp:799
msgid "Round cap"
msgstr ""
#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the
#. line; the ends of the line are square
-#: ../src/widgets/stroke-style.cpp:1216
+#: ../src/widgets/stroke-style.cpp:807
msgid "Square cap"
msgstr ""
#. Dash
-#: ../src/widgets/stroke-style.cpp:1222
+#: ../src/widgets/stroke-style.cpp:813
msgid "Dashes:"
msgstr ""
#. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes
#. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path.
-#: ../src/widgets/stroke-style.cpp:1239
+#: ../src/widgets/stroke-style.cpp:830
msgid "Start Markers:"
msgstr ""
-#: ../src/widgets/stroke-style.cpp:1241
+#: ../src/widgets/stroke-style.cpp:832
msgid "Start Markers are drawn on the first node of a path or shape"
msgstr ""
-#: ../src/widgets/stroke-style.cpp:1250
+#: ../src/widgets/stroke-style.cpp:841
msgid "Mid Markers:"
msgstr ""
-#: ../src/widgets/stroke-style.cpp:1252
+#: ../src/widgets/stroke-style.cpp:843
msgid ""
"Mid Markers are drawn on every node of a path or shape except the first and "
"last nodes"
msgstr ""
-#: ../src/widgets/stroke-style.cpp:1261
+#: ../src/widgets/stroke-style.cpp:852
msgid "End Markers:"
msgstr ""
-#: ../src/widgets/stroke-style.cpp:1263
+#: ../src/widgets/stroke-style.cpp:854
msgid "End Markers are drawn on the last node of a path or shape"
msgstr ""
-#: ../src/widgets/stroke-style.cpp:1612 ../src/widgets/stroke-style.cpp:1708
+#: ../src/widgets/stroke-style.cpp:1207 ../src/widgets/stroke-style.cpp:1304
msgid "Set stroke style"
msgstr ""
diff --git a/share/extensions/webslicer-create-group.inx b/share/extensions/webslicer-create-group.inx
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Set a layout group</_name>
- <id>org.inkscape.web.slicer.create-group</id>
- <dependency type="executable" location="extensions">webslicer-create-group.py</dependency>
- <dependency type="executable" location="extensions">inkex.py</dependency>
- <_param name="about" type="description">Layout Group is only about to help a better code generation (if you need it). To use this, first you must to select some "Slicer rectangles".</_param>
- <param name="html-id" type="string" _gui-text="HTML id atribute"></param>
- <param name="html-class" type="string" _gui-text="HTML class atribute"></param>
- <param name="width-unity" type="enum" _gui-text="Width Unity">
- <_item value="px">Pixel (fixed)</_item>
- <_item value="percent">Percent (relative to parent size)</_item>
- <_item value="undefined">Undefined (relative to non-floating content size)</_item>
- </param>
- <param name="height-unity" type="enum" _gui-text="Height Unity">
- <_item value="px">Pixel (fixed)</_item>
- <_item value="percent">Percent (relative to parent size)</_item>
- <_item value="undefined">Undefined (relative to non-floating content size)</_item>
- </param>
- <effect needs-live-preview="false">
- <object-type>all</object-type>
- <effects-menu>
- <submenu _name="Web">
- <submenu name="Slicer"/>
- </submenu>
- </effects-menu>
- </effect>
- <script>
- <command reldir="extensions" interpreter="python">webslicer-create-group.py</command>
- </script>
-</inkscape-extension>
diff --git a/share/extensions/webslicer-create-group.py b/share/extensions/webslicer-create-group.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python
-'''
-Copyright (C) 2010 Aurelio A. Heckert, aurium (a) gmail dot com
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-'''
-
-import inkex
-import gettext
-
-_ = gettext.gettext
-
-def is_empty(val):
- if val is None:
- return True
- else:
- return len(str(val)) == 0
-
-class WebSlicer_CreateGroup(inkex.Effect):
-
- def __init__(self):
- inkex.Effect.__init__(self)
- self.OptionParser.add_option("--html-id",
- action="store", type="string",
- dest="html_id",
- help="")
- self.OptionParser.add_option("--html-class",
- action="store", type="string",
- dest="html_class",
- help="")
- self.OptionParser.add_option("--width-unity",
- action="store", type="string",
- dest="width_unity",
- help="")
- self.OptionParser.add_option("--height-unity",
- action="store", type="string",
- dest="height_unity",
- help="")
-
-
- def get_base_elements(self):
- layerArr = self.document.xpath(
- '//*[@id="webslicer-layer" and @inkscape:groupmode="layer"]',
- namespaces=inkex.NSS)
- if len(layerArr) > 0:
- self.layer = layerArr[0]
- else:
- inkex.errormsg(_('You must to create and select some "Slicer rectangles" before try to group.'))
- exit(3)
- self.layer_descendants = self.get_descendants_in_array(self.layer)
-
-
- def get_descendants_in_array(self, el):
- descendants = el.getchildren()
- for e in descendants:
- descendants.extend( self.get_descendants_in_array(e) )
- return descendants
-
-
- def effect(self):
- self.get_base_elements()
- if len(self.selected) == 0:
- inkex.errormsg(_('You must to select some "Slicer rectangles" or other "Layout groups".'))
- exit(1)
- for id,node in self.selected.iteritems():
- if node not in self.layer_descendants:
- inkex.errormsg(_('Opss... The element "%s" is not in the Web Slicer layer') % id)
- exit(2)
- g_parent = self.getParentNode(node)
- group = inkex.etree.SubElement(g_parent, 'g')
- desc = inkex.etree.SubElement(group, 'desc')
- conf_txt = ''
- if not is_empty(self.options.html_id):
- conf_txt += 'html-id:' + self.options.html_id +'\n'
- if not is_empty(self.options.html_class):
- conf_txt += 'html-class:' + self.options.html_class +'\n'
- conf_txt += 'width-unity:' + self.options.width_unity +'\n'
- conf_txt += 'height-unity:' + self.options.height_unity
- desc.text = conf_txt
- for id,node in self.selected.iteritems():
- group.insert( 1, node )
-
-
-if __name__ == '__main__':
- e = WebSlicer_CreateGroup()
- e.affect()
diff --git a/share/extensions/webslicer-create-rect.inx b/share/extensions/webslicer-create-rect.inx
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Create a slicer rectangle</_name>
- <id>org.inkscape.web.slicer.create-rect</id>
- <dependency type="executable" location="extensions">webslicer-create-rect.py</dependency>
- <dependency type="executable" location="extensions">inkex.py</dependency>
- <param name="name" type="string" _gui-text="Name"></param>
- <param name="format" type="enum" _gui-text="Format">
- <item value="png">PNG</item>
- <item value="jpg">JPG</item>
- <item value="gif">GIF</item>
- </param>
- <param name="dpi" type="float" min="1" max="9999" _gui-text="DPI">90</param>
- <param name="dimension" type="string" _gui-text="Force Dimension"></param>
- <_param name="help-dimension1" type="description">Force Dimension must be set as "<width>x<height>"</_param>
- <_param name="help-dimension2" type="description">If had set, this will replace DPI.</_param>
- <param name="bg-color" type="string" _gui-text="Background color"></param>
- <param name="tab" type="notebook">
- <page name="tabJPG" gui-text="JPG">
- <_param name="help-jpg" type="description">JPG specific options</_param>
- <param name="quality" type="int" min="0" max="100" _gui-text="Quality">85</param>
- <_param name="help-quality" type="description">0 is the lowest image quality and highest compression, and 100 is the best quality but least effective compression</_param>
- </page>
- <page name="tabGIF" gui-text="GIF">
- <_param name="help-gif" type="description">GIF specific options</_param>
- <param name="gif-type" type="enum" _gui-text="Type">
- <_item value="grayscale">Grayscale</_item>
- <_item value="palette">Palette</_item>
- </param>
- <param name="palette-size" type="int" min="2" max="256" _gui-text="Palette size">256</param>
- </page>
- <page name="tabHTML" gui-text="HTML">
- <param name="html-id" type="string" _gui-text="HTML id atribute"></param>
- <param name="html-class" type="string" _gui-text="HTML class atribute"></param>
- <_param name="help-gif" type="description">Options for HTML export</_param>
- <param name="layout-disposition" type="enum" _gui-text="Layout disposition">
- <_item value="bg-parent-repeat">Tiled Background (on parent group)</_item>
- <_item value="bg-parent-repeat-x">Background — repeat horizontally (on parent group)</_item>
- <_item value="bg-parent-repeat-y">Background — repeat vertically (on parent group)</_item>
- <_item value="bg-parent-norepeat">Background — no repeat (on parent group)</_item>
- <_item value="bg-div-norepeat">Positioned <div> width the image as Background</_item>
- <_item value="img-pos">Positioned Image</_item>
- <_item value="img-nonpos">Non Positioned Image</_item>
- <_item value="img-float-left">Left Floated Image</_item>
- <_item value="img-float-right">Right Floated Image</_item>
- </param>
- <param name="layout-position-anchor" type="enum" _gui-text="Position anchor">
- <_item value="tl">Top and Left</_item>
- <_item value="tr">Top and right</_item>
- <_item value="bl">Bottom and Left</_item>
- <_item value="br">Bottom and Right</_item>
- </param>
- </page>
- </param>
- <effect needs-live-preview="false">
- <object-type>all</object-type>
- <effects-menu>
- <submenu _name="Web">
- <submenu name="Slicer"/>
- </submenu>
- </effects-menu>
- </effect>
- <script>
- <command reldir="extensions" interpreter="python">webslicer-create-rect.py</command>
- </script>
-</inkscape-extension>
diff --git a/share/extensions/webslicer-create-rect.py b/share/extensions/webslicer-create-rect.py
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/usr/bin/env python
-'''
-Copyright (C) 2010 Aurelio A. Heckert, aurium (a) gmail dot com
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-'''
-
-import inkex
-import gettext
-
-_ = gettext.gettext
-
-def is_empty(val):
- if val is None:
- return True
- else:
- return len(str(val)) == 0
-
-class WebSlicer_CreateRect(inkex.Effect):
-
- def __init__(self):
- inkex.Effect.__init__(self)
- self.OptionParser.add_option("--name",
- action="store", type="string",
- dest="name",
- help="")
- self.OptionParser.add_option("--format",
- action="store", type="string",
- dest="format",
- help="")
- self.OptionParser.add_option("--dpi",
- action="store", type="int",
- dest="dpi",
- help="")
- self.OptionParser.add_option("--dimension",
- action="store", type="string",
- dest="dimension",
- help="")
- self.OptionParser.add_option("--bg-color",
- action="store", type="string",
- dest="bg_color",
- help="")
- self.OptionParser.add_option("--quality",
- action="store", type="int",
- dest="quality",
- help="")
- self.OptionParser.add_option("--gif-type",
- action="store", type="string",
- dest="gif_type",
- help="")
- self.OptionParser.add_option("--palette-size",
- action="store", type="int",
- dest="palette_size",
- help="")
- self.OptionParser.add_option("--html-id",
- action="store", type="string",
- dest="html_id",
- help="")
- self.OptionParser.add_option("--html-class",
- action="store", type="string",
- dest="html_class",
- help="")
- self.OptionParser.add_option("--layout-disposition",
- action="store", type="string",
- dest="layout_disposition",
- help="")
- self.OptionParser.add_option("--layout-position-anchor",
- action="store", type="string",
- dest="layout_position_anchor",
- help="")
- # inkscape param workarround
- self.OptionParser.add_option("--tab")
-
-
- def unique_slice_name(self):
- name = self.options.name
- el = self.document.xpath( '//*[@id="'+name+'"]', namespaces=inkex.NSS )
- if len(el) > 0:
- if name[-3:] == '-00': name = name[:-3]
- num = 0
- num_s = '00'
- while len(el) > 0:
- num += 1
- num_s = str(num)
- if len(num_s)==1 : num_s = '0'+num_s
- el = self.document.xpath( '//*[@id="'+name+'-'+num_s+'"]',
- namespaces=inkex.NSS )
- self.options.name = name+'-'+num_s
-
-
- def validate_options(self):
- self.options.format = self.options.ensure_value('format', 'png').lower()
- if not is_empty( self.options.dimension ):
- self.options.dimension
-
- def effect(self):
- self.validate_options()
- layer = self.get_slicer_layer()
- #TODO: get selected elements to define location and size
- rect = inkex.etree.SubElement(layer, 'rect')
- if is_empty(self.options.name):
- self.options.name = 'slice-00'
- self.unique_slice_name()
- rect.set('id', self.options.name)
- rect.set('fill', 'red')
- rect.set('opacity', '0.5')
- rect.set('x', '-100')
- rect.set('y', '-100')
- rect.set('width', '200')
- rect.set('height', '200')
- desc = inkex.etree.SubElement(rect, 'desc')
- conf_txt = "format:"+ self.options.format +"\n"
- if not is_empty(self.options.dpi):
- conf_txt += "dpi:" + str(self.options.dpi) +"\n"
- if not is_empty(self.options.html_id):
- conf_txt += "html-id:" + self.options.html_id
- desc.text = "\n".join( self.get_full_conf_list() )
-
-
-
- def get_conf_from_list(self, conf_atts):
- conf_list = []
- for att in conf_atts:
- if not is_empty(getattr(self.options, att)):
- conf_list.append( att +':'+ str(getattr(self.options, att)) )
- return conf_list
-
-
- def get_full_conf_list(self):
- conf_list = [ 'format:'+self.options.format ]
- if self.options.format == 'gif':
- conf_list.extend( get_conf_from_list([ 'gif_type', 'palette_size' ]) )
- if self.options.format == 'jpg':
- conf_list.extend( get_conf_from_list([ 'quality' ]) )
- conf_general_atts = [
- 'dpi', 'dimension',
- 'bg_color', 'html_id', 'html_class',
- 'layout_disposition', 'layout_position_anchor'
- ]
- conf_list.extend( get_conf_from_list(conf_general_atts) )
- return conf_list
-
-
- def get_slicer_layer(self):
- # Test if webslicer-layer layer existis
- layer = self.document.xpath(
- '//*[@id="webslicer-layer" and @inkscape:groupmode="layer"]',
- namespaces=inkex.NSS)
- if len(layer) is 0:
- # Create a new layer
- layer = inkex.etree.SubElement(self.document.getroot(), 'g')
- layer.set('id', 'webslicer-layer')
- layer.set(inkex.addNS('label', 'inkscape'), 'Web Slicer')
- layer.set(inkex.addNS('groupmode', 'inkscape'), 'layer')
- else:
- layer = layer[0]
- return layer
-
-
-if __name__ == '__main__':
- e = WebSlicer_CreateRect()
- e.affect()
diff --git a/share/extensions/webslicer-export.inx b/share/extensions/webslicer-export.inx
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
- <_name>Export layout pieces and HTML+CSS code</_name>
- <id>org.inkscape.web.slicer.export</id>
- <dependency type="executable" location="extensions">webslicer-export.py</dependency>
- <dependency type="executable" location="extensions">inkex.py</dependency>
- <_param name="about" type="description">All sliced images, and optionaly code, will be generated as you had configured and saved to one directory.</_param>
- <param name="dir" type="string" _gui-text="Directory path to export"></param>
- <param name="with-code" type="boolean" _gui-text="With HTML and CSS">true</param>
- <effect needs-live-preview="false">
- <object-type>all</object-type>
- <effects-menu>
- <submenu _name="Web">
- <submenu name="Slicer"/>
- </submenu>
- </effects-menu>
- </effect>
- <script>
- <command reldir="extensions" interpreter="python">webslicer-export.py</command>
- </script>
-</inkscape-extension>
diff --git a/share/extensions/webslicer-export.py b/share/extensions/webslicer-export.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-'''
-Copyright (C) 2010 Aurelio A. Heckert, aurium (a) gmail dot com
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-'''
-
-import inkex
-import gettext
-import os.path
-import commands
-
-_ = gettext.gettext
-
-def is_empty(val):
- if val is None:
- return True
- else:
- return len(str(val)) == 0
-
-class WebSlicer_Export(inkex.Effect):
-
- def __init__(self):
- inkex.Effect.__init__(self)
- self.OptionParser.add_option("--with-code",
- action="store", type="string",
- dest="with_code",
- help="")
- self.OptionParser.add_option("--dir",
- action="store", type="string",
- dest="dir",
- help="")
-
- def effect(self):
- if is_empty( self.options.dir ):
- inkex.errormsg(_('You must to give a directory to export the slices.'))
- return
- if not os.path.exists( self.options.dir ):
- inkex.errormsg(_('The directory "%s" does not exists.') % self.options.dir)
- return
- (status, output) = commands.getstatusoutput("inkscape -e ...")
-
-
-if __name__ == '__main__':
- e = WebSlicer_Export()
- e.affect()
diff --git a/share/extensions/webslicer_create_group.inx b/share/extensions/webslicer_create_group.inx
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <_name>Set a layout group</_name>
+ <id>org.inkscape.web.slicer.create-group</id>
+ <dependency type="executable" location="extensions">webslicer_effect.py</dependency>
+ <dependency type="executable" location="extensions">webslicer_create_group.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <_param name="about" type="description">Layout Group is only about to help a better code generation (if you need it). To use this, first you must to select some "Slicer rectangles".</_param>
+ <param name="html-id" type="string" _gui-text="HTML id atribute"></param>
+ <param name="html-class" type="string" _gui-text="HTML class atribute"></param>
+ <param name="width-unity" type="enum" _gui-text="Width Unity">
+ <_item value="px">Pixel (fixed)</_item>
+ <_item value="percent">Percent (relative to parent size)</_item>
+ <_item value="undefined">Undefined (relative to non-floating content size)</_item>
+ </param>
+ <param name="height-unity" type="enum" _gui-text="Height Unity">
+ <_item value="px">Pixel (fixed)</_item>
+ <_item value="percent">Percent (relative to parent size)</_item>
+ <_item value="undefined">Undefined (relative to non-floating content size)</_item>
+ </param>
+ <effect needs-live-preview="false">
+ <object-type>all</object-type>
+ <effects-menu>
+ <submenu _name="Web">
+ <submenu name="Slicer"/>
+ </submenu>
+ </effects-menu>
+ </effect>
+ <script>
+ <command reldir="extensions" interpreter="python">webslicer_create_group.py</command>
+ </script>
+</inkscape-extension>
diff --git a/share/extensions/webslicer_create_group.py b/share/extensions/webslicer_create_group.py
--- /dev/null
@@ -0,0 +1,98 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2010 Aurelio A. Heckert, aurium (a) gmail dot com
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+'''
+
+import inkex
+import gettext
+
+_ = gettext.gettext
+
+def is_empty(val):
+ if val is None:
+ return True
+ else:
+ return len(str(val)) == 0
+
+class WebSlicer_CreateGroup(inkex.Effect):
+
+ def __init__(self):
+ inkex.Effect.__init__(self)
+ self.OptionParser.add_option("--html-id",
+ action="store", type="string",
+ dest="html_id",
+ help="")
+ self.OptionParser.add_option("--html-class",
+ action="store", type="string",
+ dest="html_class",
+ help="")
+ self.OptionParser.add_option("--width-unity",
+ action="store", type="string",
+ dest="width_unity",
+ help="")
+ self.OptionParser.add_option("--height-unity",
+ action="store", type="string",
+ dest="height_unity",
+ help="")
+
+
+ def get_base_elements(self):
+ layerArr = self.document.xpath(
+ '//*[@id="webslicer-layer" and @inkscape:groupmode="layer"]',
+ namespaces=inkex.NSS)
+ if len(layerArr) > 0:
+ self.layer = layerArr[0]
+ else:
+ inkex.errormsg(_('You must to create and select some "Slicer rectangles" before try to group.'))
+ exit(3)
+ self.layer_descendants = self.get_descendants_in_array(self.layer)
+
+
+ def get_descendants_in_array(self, el):
+ descendants = el.getchildren()
+ for e in descendants:
+ descendants.extend( self.get_descendants_in_array(e) )
+ return descendants
+
+
+ def effect(self):
+ self.get_base_elements()
+ if len(self.selected) == 0:
+ inkex.errormsg(_('You must to select some "Slicer rectangles" or other "Layout groups".'))
+ exit(1)
+ for id,node in self.selected.iteritems():
+ if node not in self.layer_descendants:
+ inkex.errormsg(_('Opss... The element "%s" is not in the Web Slicer layer') % id)
+ exit(2)
+ g_parent = self.getParentNode(node)
+ group = inkex.etree.SubElement(g_parent, 'g')
+ desc = inkex.etree.SubElement(group, 'desc')
+ conf_txt = ''
+ if not is_empty(self.options.html_id):
+ conf_txt += 'html-id:' + self.options.html_id +'\n'
+ if not is_empty(self.options.html_class):
+ conf_txt += 'html-class:' + self.options.html_class +'\n'
+ conf_txt += 'width-unity:' + self.options.width_unity +'\n'
+ conf_txt += 'height-unity:' + self.options.height_unity
+ desc.text = conf_txt
+ for id,node in self.selected.iteritems():
+ group.insert( 1, node )
+
+
+if __name__ == '__main__':
+ e = WebSlicer_CreateGroup()
+ e.affect()
diff --git a/share/extensions/webslicer_create_rect.inx b/share/extensions/webslicer_create_rect.inx
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <_name>Create a slicer rectangle</_name>
+ <id>org.inkscape.web.slicer.create-rect</id>
+ <dependency type="executable" location="extensions">webslicer_effect.py</dependency>
+ <dependency type="executable" location="extensions">webslicer_create_rect.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <param name="name" type="string" _gui-text="Name"></param>
+ <param name="format" type="enum" _gui-text="Format">
+ <item value="png">PNG</item>
+ <item value="jpg">JPG</item>
+ <item value="gif">GIF</item>
+ </param>
+ <param name="dpi" type="float" min="1" max="9999" _gui-text="DPI">90</param>
+ <param name="dimension" type="string" _gui-text="Force Dimension"></param>
+ <_param name="help-dimension1" type="description">Force Dimension must be set as "<width>x<height>"</_param>
+ <_param name="help-dimension2" type="description">If had set, this will replace DPI.</_param>
+ <param name="bg-color" type="string" _gui-text="Background color"></param>
+ <param name="tab" type="notebook">
+ <page name="tabJPG" gui-text="JPG">
+ <_param name="help-jpg" type="description">JPG specific options</_param>
+ <param name="quality" type="int" min="0" max="100" _gui-text="Quality">85</param>
+ <_param name="help-quality" type="description">0 is the lowest image quality and highest compression, and 100 is the best quality but least effective compression</_param>
+ </page>
+ <page name="tabGIF" gui-text="GIF">
+ <_param name="help-gif" type="description">GIF specific options</_param>
+ <param name="gif-type" type="enum" _gui-text="Type">
+ <_item value="grayscale">Grayscale</_item>
+ <_item value="palette">Palette</_item>
+ </param>
+ <param name="palette-size" type="int" min="2" max="256" _gui-text="Palette size">256</param>
+ </page>
+ <page name="tabHTML" gui-text="HTML">
+ <param name="html-id" type="string" _gui-text="HTML id atribute"></param>
+ <param name="html-class" type="string" _gui-text="HTML class atribute"></param>
+ <_param name="help-gif" type="description">Options for HTML export</_param>
+ <param name="layout-disposition" type="enum" _gui-text="Layout disposition">
+ <_item value="bg-parent-repeat">Tiled Background (on parent group)</_item>
+ <_item value="bg-parent-repeat-x">Background — repeat horizontally (on parent group)</_item>
+ <_item value="bg-parent-repeat-y">Background — repeat vertically (on parent group)</_item>
+ <_item value="bg-parent-norepeat">Background — no repeat (on parent group)</_item>
+ <_item value="bg-div-norepeat">Positioned <div> width the image as Background</_item>
+ <_item value="img-pos">Positioned Image</_item>
+ <_item value="img-nonpos">Non Positioned Image</_item>
+ <_item value="img-float-left">Left Floated Image</_item>
+ <_item value="img-float-right">Right Floated Image</_item>
+ </param>
+ <param name="layout-position-anchor" type="enum" _gui-text="Position anchor">
+ <_item value="tl">Top and Left</_item>
+ <_item value="tr">Top and right</_item>
+ <_item value="bl">Bottom and Left</_item>
+ <_item value="br">Bottom and Right</_item>
+ </param>
+ </page>
+ </param>
+ <effect needs-live-preview="false">
+ <object-type>all</object-type>
+ <effects-menu>
+ <submenu _name="Web">
+ <submenu name="Slicer"/>
+ </submenu>
+ </effects-menu>
+ </effect>
+ <script>
+ <command reldir="extensions" interpreter="python">webslicer_create_rect.py</command>
+ </script>
+</inkscape-extension>
diff --git a/share/extensions/webslicer_create_rect.py b/share/extensions/webslicer_create_rect.py
--- /dev/null
@@ -0,0 +1,160 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2010 Aurelio A. Heckert, aurium (a) gmail dot com
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+'''
+
+import webslicer_effect
+import inkex
+import gettext
+
+_ = gettext.gettext
+
+def is_empty(val):
+ if val is None:
+ return True
+ else:
+ return len(str(val)) == 0
+
+class WebSlicer_CreateRect(webslicer_effect.WebSlicer_Effect):
+
+ def __init__(self):
+ webslicer_effect.WebSlicer_Effect.__init__(self)
+ self.OptionParser.add_option("--name",
+ action="store", type="string",
+ dest="name",
+ help="")
+ self.OptionParser.add_option("--format",
+ action="store", type="string",
+ dest="format",
+ help="")
+ self.OptionParser.add_option("--dpi",
+ action="store", type="int",
+ dest="dpi",
+ help="")
+ self.OptionParser.add_option("--dimension",
+ action="store", type="string",
+ dest="dimension",
+ help="")
+ self.OptionParser.add_option("--bg-color",
+ action="store", type="string",
+ dest="bg_color",
+ help="")
+ self.OptionParser.add_option("--quality",
+ action="store", type="int",
+ dest="quality",
+ help="")
+ self.OptionParser.add_option("--gif-type",
+ action="store", type="string",
+ dest="gif_type",
+ help="")
+ self.OptionParser.add_option("--palette-size",
+ action="store", type="int",
+ dest="palette_size",
+ help="")
+ self.OptionParser.add_option("--html-id",
+ action="store", type="string",
+ dest="html_id",
+ help="")
+ self.OptionParser.add_option("--html-class",
+ action="store", type="string",
+ dest="html_class",
+ help="")
+ self.OptionParser.add_option("--layout-disposition",
+ action="store", type="string",
+ dest="layout_disposition",
+ help="")
+ self.OptionParser.add_option("--layout-position-anchor",
+ action="store", type="string",
+ dest="layout_position_anchor",
+ help="")
+ # inkscape param workarround
+ self.OptionParser.add_option("--tab")
+
+
+ def unique_slice_name(self):
+ name = self.options.name
+ el = self.document.xpath( '//*[@id="'+name+'"]', namespaces=inkex.NSS )
+ if len(el) > 0:
+ if name[-3:] == '-00': name = name[:-3]
+ num = 0
+ num_s = '00'
+ while len(el) > 0:
+ num += 1
+ num_s = str(num)
+ if len(num_s)==1 : num_s = '0'+num_s
+ el = self.document.xpath( '//*[@id="'+name+'-'+num_s+'"]',
+ namespaces=inkex.NSS )
+ self.options.name = name+'-'+num_s
+
+
+ def validate_options(self):
+ self.options.format = self.options.ensure_value('format', 'png').lower()
+ if not is_empty( self.options.dimension ):
+ self.options.dimension
+
+ def effect(self):
+ self.validate_options()
+ layer = self.get_slicer_layer(True)
+ #TODO: get selected elements to define location and size
+ rect = inkex.etree.SubElement(layer, 'rect')
+ if is_empty(self.options.name):
+ self.options.name = 'slice-00'
+ self.unique_slice_name()
+ rect.set('id', self.options.name)
+ rect.set('fill', 'red')
+ rect.set('opacity', '0.5')
+ rect.set('x', '-100')
+ rect.set('y', '-100')
+ rect.set('width', '200')
+ rect.set('height', '200')
+ desc = inkex.etree.SubElement(rect, 'desc')
+ conf_txt = "format:"+ self.options.format +"\n"
+ if not is_empty(self.options.dpi):
+ conf_txt += "dpi:" + str(self.options.dpi) +"\n"
+ if not is_empty(self.options.html_id):
+ conf_txt += "html-id:" + self.options.html_id
+ desc.text = "\n".join( self.get_full_conf_list() )
+
+
+
+ def get_conf_from_list(self, conf_atts):
+ conf_list = []
+ for att in conf_atts:
+ if not is_empty(getattr(self.options, att)):
+ conf_list.append( att +':'+ str(getattr(self.options, att)) )
+ return conf_list
+
+
+ def get_full_conf_list(self):
+ conf_list = [ 'format:'+self.options.format ]
+ if self.options.format == 'gif':
+ conf_list.extend( self.get_conf_from_list([ 'gif_type', 'palette_size' ]) )
+ if self.options.format == 'jpg':
+ conf_list.extend( self.get_conf_from_list([ 'quality' ]) )
+ conf_general_atts = [
+ 'dpi', 'dimension',
+ 'bg_color', 'html_id', 'html_class',
+ 'layout_disposition', 'layout_position_anchor'
+ ]
+ conf_list.extend( self.get_conf_from_list(conf_general_atts) )
+ return conf_list
+
+
+
+if __name__ == '__main__':
+ e = WebSlicer_CreateRect()
+ e.affect()
diff --git a/share/extensions/webslicer_effect.py b/share/extensions/webslicer_effect.py
--- /dev/null
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2010 Aurelio A. Heckert, aurium (a) gmail dot com
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+'''
+
+import inkex
+
+
+def is_empty(val):
+ if val is None:
+ return True
+ else:
+ return len(str(val)) == 0
+
+
+class WebSlicer_Effect(inkex.Effect):
+
+ def __init__(self):
+ inkex.Effect.__init__(self)
+
+ def get_slicer_layer(self, force_creation=False):
+ # Test if webslicer-layer layer existis
+ layer = self.document.xpath(
+ '//*[@id="webslicer-layer" and @inkscape:groupmode="layer"]',
+ namespaces=inkex.NSS)
+ if len(layer) is 0:
+ if force_creation:
+ # Create a new layer
+ layer = inkex.etree.SubElement(self.document.getroot(), 'g')
+ layer.set('id', 'webslicer-layer')
+ layer.set(inkex.addNS('label', 'inkscape'), 'Web Slicer')
+ layer.set(inkex.addNS('groupmode', 'inkscape'), 'layer')
+ else:
+ layer = None
+ else:
+ layer = layer[0]
+ return layer
+
diff --git a/share/extensions/webslicer_export.inx b/share/extensions/webslicer_export.inx
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
+ <_name>Export layout pieces and HTML+CSS code</_name>
+ <id>org.inkscape.web.slicer.export</id>
+ <dependency type="executable" location="extensions">webslicer_effect.py</dependency>
+ <dependency type="executable" location="extensions">webslicer_export.py</dependency>
+ <dependency type="executable" location="extensions">inkex.py</dependency>
+ <_param name="about" type="description">All sliced images, and optionaly code, will be generated as you had configured and saved to one directory.</_param>
+ <param name="dir" type="string" _gui-text="Directory path to export"></param>
+ <param name="with-code" type="boolean" _gui-text="With HTML and CSS">true</param>
+ <effect needs-live-preview="false">
+ <object-type>all</object-type>
+ <effects-menu>
+ <submenu _name="Web">
+ <submenu name="Slicer"/>
+ </submenu>
+ </effects-menu>
+ </effect>
+ <script>
+ <command reldir="extensions" interpreter="python">webslicer_export.py</command>
+ </script>
+</inkscape-extension>
diff --git a/share/extensions/webslicer_export.py b/share/extensions/webslicer_export.py
--- /dev/null
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2010 Aurelio A. Heckert, aurium (a) gmail dot com
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+'''
+
+import webslicer_effect
+import inkex
+import gettext
+import os.path
+import commands
+
+_ = gettext.gettext
+
+class WebSlicer_Export(webslicer_effect.WebSlicer_Effect):
+
+ def __init__(self):
+ webslicer_effect.WebSlicer_Effect.__init__(self)
+ self.OptionParser.add_option("--with-code",
+ action="store", type="string",
+ dest="with_code",
+ help="")
+ self.OptionParser.add_option("--dir",
+ action="store", type="string",
+ dest="dir",
+ help="")
+
+ def effect(self):
+ if is_empty( self.options.dir ):
+ inkex.errormsg(_('You must to give a directory to export the slices.'))
+ return
+ if not os.path.exists( self.options.dir ):
+ inkex.errormsg(_('The directory "%s" does not exists.') % self.options.dir)
+ return
+ (status, output) = commands.getstatusoutput("inkscape -e ...")
+ inkex.errormsg( status )
+ inkex.errormsg( output )
+
+
+if __name__ == '__main__':
+ e = WebSlicer_Export()
+ e.affect()