From e18383b3ae2e644cabdcccbbdaf3da850a62e814 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Fri, 10 Oct 2014 20:56:07 +0200 Subject: New procedural templates. (bzr r13341.1.267) --- share/extensions/empty_business_card.inx | 32 +++++++++++++ share/extensions/empty_business_card.py | 45 ++++++++++++++++++ share/extensions/empty_desktop.inx | 39 +++++++++++++++ share/extensions/empty_desktop.py | 46 ++++++++++++++++++ share/extensions/empty_dvd_cover.inx | 31 ++++++++++++ share/extensions/empty_dvd_cover.py | 64 +++++++++++++++++++++++++ share/extensions/empty_generic.inx | 47 ++++++++++++++++++ share/extensions/empty_generic.py | 82 ++++++++++++++++++++++++++++++++ share/extensions/empty_icon.inx | 24 ++++++++++ share/extensions/empty_icon.py | 36 ++++++++++++++ share/extensions/empty_video.inx | 35 ++++++++++++++ share/extensions/empty_video.py | 46 ++++++++++++++++++ 12 files changed, 527 insertions(+) create mode 100644 share/extensions/empty_business_card.inx create mode 100644 share/extensions/empty_business_card.py create mode 100644 share/extensions/empty_desktop.inx create mode 100644 share/extensions/empty_desktop.py create mode 100644 share/extensions/empty_dvd_cover.inx create mode 100644 share/extensions/empty_dvd_cover.py create mode 100644 share/extensions/empty_generic.inx create mode 100644 share/extensions/empty_generic.py create mode 100644 share/extensions/empty_icon.inx create mode 100644 share/extensions/empty_icon.py create mode 100644 share/extensions/empty_video.inx create mode 100644 share/extensions/empty_video.py diff --git a/share/extensions/empty_business_card.inx b/share/extensions/empty_business_card.inx new file mode 100644 index 000000000..1513ebf26 --- /dev/null +++ b/share/extensions/empty_business_card.inx @@ -0,0 +1,32 @@ + + + <_name>Business Card + org.inkscape.render.empty_business_card + business_card.py + inkex.py + + + 74mm x 52mm (A8) + 85mm x 55mm (Europe) + 90mm x 55mm (Australia, India, ...) + 91mm x 55mm (Japan) + 90mm x 54mm (China, ...) + 90mm x 50mm (India, Russia, ...) + 3.5in x 2in (United States, Canada) + + + + all + + + Business Card... + Tavmjong Bah + Business card of chosen size. + 2014-10-09 + business card + + + diff --git a/share/extensions/empty_business_card.py b/share/extensions/empty_business_card.py new file mode 100644 index 000000000..586c37abc --- /dev/null +++ b/share/extensions/empty_business_card.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python + +# Written by Tavmjong Bah + +import inkex +import re + +class C(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-s", "--size", action="store", type="string", dest="card_size", default="90mmx55mm", help="Business card size") + + def effect(self): + + size = self.options.card_size + + p = re.compile('([0-9.]*)([a-z][a-z])x([0-9.]*)([a-z][a-z])') + m = p.match( size ) + width = m.group(1) + width_unit = m.group(2) + height = m.group(3) + height_unit = m.group(4) + + root = self.document.getroot() + root.set("id", "SVGRoot") + root.set("width", width + width_unit) + root.set("height", height + height_unit) + root.set("viewBox", "0 0 " + width + " " + height ) + + namedview = root.find(inkex.addNS('namedview', 'sodipodi')) + if namedview is None: + namedview = inkex.etree.SubElement( root, inkex.addNS('namedview', 'sodipodi') ); + + namedview.set(inkex.addNS('document-units', 'inkscape'), width_unit) + + width_int = int(self.uutounit(float(width), 'px')) + height_int = int(self.uutounit(float(height), 'px')) + + namedview.set(inkex.addNS('zoom', 'inkscape'), str(2) ) + namedview.set(inkex.addNS('cx', 'inkscape'), str(width_int/2.0) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(height_int/2.0) ) + + +c = C() +c.affect() diff --git a/share/extensions/empty_desktop.inx b/share/extensions/empty_desktop.inx new file mode 100644 index 000000000..75762b660 --- /dev/null +++ b/share/extensions/empty_desktop.inx @@ -0,0 +1,39 @@ + + + <_name>Desktop + org.inkscape.render.empty_desktop + empty_desktop.py + inkex.py + + + Custom + 640x480 (VGA) + 800x600 (SVGA) + 1024x768 (XGA) + 1366x768 (HD) + 1600x900 (HD+) + 1600x1200 (UXGA) + 1920x1080 (FHD) + 1920x1200 (WUXGA) + 2560x1600 (WQXGA) + + + + 1920 + 1080 + + + all + + + Desktop... + Tavmjong Bah + Empty desktop of chosen size. + 2014-10-09 + empty desktop + + + diff --git a/share/extensions/empty_desktop.py b/share/extensions/empty_desktop.py new file mode 100644 index 000000000..31cb35f9d --- /dev/null +++ b/share/extensions/empty_desktop.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python + +# Written by Tavmjong Bah + +import inkex +import re + +class C(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-s", "--size", action="store", type="string", dest="desktop_size", default="16", help="Desktop size") + + self.OptionParser.add_option("-w", "--width", action="store", type="int", dest="desktop_width", default="1920", help="Custom width") + self.OptionParser.add_option("-z", "--height", action="store", type="int", dest="desktop_height", default="1080", help="Custom height") + + def effect(self): + + size = self.options.desktop_size + width = self.options.desktop_width + height = self.options.desktop_height + + if size != "Custom": + p = re.compile('([0-9]*)x([0-9]*)') + m = p.match( size ) + width = int(m.group(1)) + height = int(m.group(2)) + + + root = self.document.getroot() + root.set("id", "SVGRoot") + root.set("width", str(width) + 'px') + root.set("height", str(height) + 'px') + root.set("viewBox", "0 0 " + str(width) + " " + str(height) ) + + namedview = root.find(inkex.addNS('namedview', 'sodipodi')) + if namedview is None: + namedview = inkex.etree.SubElement( root, inkex.addNS('namedview', 'sodipodi') ); + + namedview.set(inkex.addNS('document-units', 'inkscape'), 'px') + + namedview.set(inkex.addNS('cx', 'inkscape'), str(width/2.0) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(height/2.0) ) + + +c = C() +c.affect() diff --git a/share/extensions/empty_dvd_cover.inx b/share/extensions/empty_dvd_cover.inx new file mode 100644 index 000000000..facb523d1 --- /dev/null +++ b/share/extensions/empty_dvd_cover.inx @@ -0,0 +1,31 @@ + + + <_name>DVD Cover + org.inkscape.render.empty_dvd_cover + empty_dvd_cover.py + inkex.py + + + Normal (14mm) + Slim (9mm) + Super Slim (7mm) + Ultra Slim (5mm) + + + 3 + + + all + + + DVD Cover... + Tavmjong Bah + DVD cover of chosen size. + 2014-10-10 + dvd cover + + + diff --git a/share/extensions/empty_dvd_cover.py b/share/extensions/empty_dvd_cover.py new file mode 100644 index 000000000..1456de51d --- /dev/null +++ b/share/extensions/empty_dvd_cover.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +# Written by Tavmjong Bah + +import inkex + +class C(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-s", "--spine", action="store", type="string", dest="dvd_cover_spine", default="normal", help="Dvd spine width") + self.OptionParser.add_option("-b", "--bleed", action="store", type="float", dest="dvd_cover_bleed", default="3", help="Bleed (extra area around image") + + def create_horizontal_guideline(self, name, position): + self.create_guideline(name, "0,1", 0, position) + + def create_vertical_guideline(self, name, position): + self.create_guideline(name, "1,0", position, 0) + + def create_guideline(self, label, orientation, x,y): + namedview = self.root.find(inkex.addNS('namedview', 'sodipodi')) + guide = inkex.etree.SubElement(namedview, inkex.addNS('guide', 'sodipodi')) + guide.set("orientation", orientation) + guide.set("position", str(x)+","+str(y)) + # No need to set label (causes translation problems, etc.) + # guide.set(inkex.addNS('label', 'inkscape'), label) + + def effect(self): + + # Dimensions in mm + width = 259.0 # Before adding spine width or bleed + height = 183.0 # Before adding bleed + + bleed = self.options.dvd_cover_bleed + spine = float( self.options.dvd_cover_spine ) + + width += spine + width += 2.0 * bleed + height += 2.0 * bleed + + self.root = self.document.getroot() + self.root.set("id", "SVGRoot") + self.root.set("width", str(width) + 'mm') + self.root.set("height", str(height) + 'mm') + self.root.set("viewBox", "0 0 " + str(width) + " " + str(height) ) + + namedview = self.root.find(inkex.addNS('namedview', 'sodipodi')) + if namedview is None: + namedview = inkex.etree.SubElement( self.root, inkex.addNS('namedview', 'sodipodi') ); + + namedview.set(inkex.addNS('document-units', 'inkscape'), "mm") + + # Until units are supported in 'cx', etc. + namedview.set(inkex.addNS('cx', 'inkscape'), str(self.uutounit( width, 'px' )/2.0 ) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(self.uutounit( height, 'px' )/2.0 ) ) + + self.create_horizontal_guideline("bottom", str(self.uutounit( bleed, 'px' )) ) + self.create_horizontal_guideline("top", str(self.uutounit( height-bleed, 'px' )) ) + self.create_vertical_guideline("left edge", str(self.uutounit( bleed, 'px' )) ) + self.create_vertical_guideline("left spline", str(self.uutounit( (width-spine)/2.0,'px' )) ) + self.create_vertical_guideline("right spline", str(self.uutounit( (width+spine)/2.0,'px' )) ) + self.create_vertical_guideline("left edge", str(self.uutounit( width-bleed, 'px' )) ) + +c = C() +c.affect() diff --git a/share/extensions/empty_generic.inx b/share/extensions/empty_generic.inx new file mode 100644 index 000000000..b430cfba5 --- /dev/null +++ b/share/extensions/empty_generic.inx @@ -0,0 +1,47 @@ + + + <_name>Generic Canvas + org.inkscape.render.empty_generic_canvas + empty_generic.py + inkex.py + + 800 + 600 + + + 'px' + 'in' + 'mm' + 'cm' + 'pc' + 'pt' + + + + Normal + Black Opaque + Gray Opaque + White Opaque + + + false + + + + + all + + + Generic canvas... + Tavmjong Bah + Genric canvas of choosen size. + 2014-10-09 + empty generic canvas + + + diff --git a/share/extensions/empty_generic.py b/share/extensions/empty_generic.py new file mode 100644 index 000000000..62e27d220 --- /dev/null +++ b/share/extensions/empty_generic.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python + +# Written by Tavmjong Bah + +import inkex +import re + +class C(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-w", "--width", action="store", type="int", dest="generic_width", default="1920", help="Custom width") + self.OptionParser.add_option("-z", "--height", action="store", type="int", dest="generic_height", default="1080", help="Custom height") + self.OptionParser.add_option("-u", "--unit", action="store", type="string", dest="generic_unit", default="px", help="SVG Unit") + self.OptionParser.add_option("-b", "--background", action="store", type="string", dest="generic_background", default="normal", help="Canvas background") + self.OptionParser.add_option("-n", "--noborder", action="store", type="inkbool", dest="generic_noborder", default=False) + # self.OptionParser.add_option("-l", "--layer", action="store", type="inkbool", dest="generic_layer", default=True) + + def effect(self): + + width = self.options.generic_width + height = self.options.generic_height + unit = self.options.generic_unit + + root = self.document.getroot() + root.set("id", "SVGRoot") + root.set("width", str(width) + unit) + root.set("height", str(height) + unit) + root.set("viewBox", "0 0 " + str(width) + " " + str(height) ) + + namedview = root.find(inkex.addNS('namedview', 'sodipodi')) + if namedview is None: + namedview = inkex.etree.SubElement( root, inkex.addNS('namedview', 'sodipodi') ); + + namedview.set(inkex.addNS('document-units', 'inkscape'), unit) + + # Until units are supported in 'cx', etc. + namedview.set(inkex.addNS('zoom', 'inkscape'), str(512.0/self.uutounit( width, 'px' )) ) + namedview.set(inkex.addNS('cx', 'inkscape'), str(self.uutounit( width, 'px' )/2.0 ) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(self.uutounit( height, 'px' )/2.0 ) ) + + if self.options.generic_background == "white": + namedview.set( 'pagecolor', "#ffffff" ) + namedview.set( 'bordercolor', "#666666" ) + namedview.set(inkex.addNS('pageopacity', 'inkscape'), "1.0" ) + namedview.set(inkex.addNS('pageshadow', 'inkscape'), "0" ) + + if self.options.generic_background == "gray": + namedview.set( 'pagecolor', "#808080" ) + namedview.set( 'bordercolor', "#444444" ) + namedview.set(inkex.addNS('pageopacity', 'inkscape'), "1.0" ) + namedview.set(inkex.addNS('pageshadow', 'inkscape'), "0" ) + + if self.options.generic_background == "black": + namedview.set( 'pagecolor', "#000000" ) + namedview.set( 'bordercolor', "#999999" ) + namedview.set(inkex.addNS('pageopacity', 'inkscape'), "1.0" ) + namedview.set(inkex.addNS('pageshadow', 'inkscape'), "0" ) + + if self.options.generic_noborder: + pagecolor = namedview.get( 'pagecolor' ) + namedview.set( 'bordercolor', pagecolor ) + namedview.set( 'borderopacity', "0" ) + + # This nees more thought... we need to set "Current layer" to (root), how? + # if self.options.generic_layer: + # # Add layer + # inkex.debug( "We want a layer" ) + # else: + # # Remove layer id default document (assuming only one) + # inkex.debug( "We don't want a layer" ) + # layer_node = self.current_layer + # if layer_node is not None: + # inkex.debug( "We have layer" ) + # root.remove(layer_node) + # try: + # del namedview.attrib[ inkex.addNS('current-layer', 'inkscape') ] + # except: + # pass + + +c = C() +c.affect() diff --git a/share/extensions/empty_icon.inx b/share/extensions/empty_icon.inx new file mode 100644 index 000000000..9e36b9d20 --- /dev/null +++ b/share/extensions/empty_icon.inx @@ -0,0 +1,24 @@ + + + <_name>Icon + org.inkscape.render.empty_icon + empty_icon.py + inkex.py + + 16 + + + all + + + Icon... + Tavmjong Bah + Empty icon of chosen size. + 2014-10-09 + empty icon + + + diff --git a/share/extensions/empty_icon.py b/share/extensions/empty_icon.py new file mode 100644 index 000000000..979edbae4 --- /dev/null +++ b/share/extensions/empty_icon.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python + +# Written by Tavmjong Bah + +import inkex + +class C(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-s", "--size", action="store", type="int", dest="icon_size", default="16", help="Icon size") + + def effect(self): + + size = self.options.icon_size + + root = self.document.getroot() + root.set("id", "SVGRoot") + root.set("width", str(size) + 'px') + root.set("height", str(size) + 'px') + root.set("viewBox", "0 0 " + str(size) + " " + str(size) ) + + namedview = root.find(inkex.addNS('namedview', 'sodipodi')) + if namedview is None: + namedview = inkex.etree.SubElement( root, inkex.addNS('namedview', 'sodipodi') ); + + namedview.set(inkex.addNS('document-units', 'inkscape'), 'px') + + namedview.set(inkex.addNS('zoom', 'inkscape'), str(256.0/size) ) + namedview.set(inkex.addNS('cx', 'inkscape'), str(size/2.0) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(size/2.0) ) + namedview.set(inkex.addNS('grid-bbox', 'inkscape'), "true" ) + + + +c = C() +c.affect() diff --git a/share/extensions/empty_video.inx b/share/extensions/empty_video.inx new file mode 100644 index 000000000..8ca148cfc --- /dev/null +++ b/share/extensions/empty_video.inx @@ -0,0 +1,35 @@ + + + <_name>Video Screen + org.inkscape.render.empty_video + empty_video.py + inkex.py + + + Custom + 720x486 (NTSC) + 720x576 (PAL) + 1920x1080 (HDTV) + 3840x2160 (4K) + 7680x4320 (8K) + + + + 1920 + 1080 + + + all + + + Video... + Tavmjong Bah + Video screen of chosen size. + 2014-10-09 + empty video + + + diff --git a/share/extensions/empty_video.py b/share/extensions/empty_video.py new file mode 100644 index 000000000..4b440704c --- /dev/null +++ b/share/extensions/empty_video.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python + +# Written by Tavmjong Bah + +import inkex +import re + +class C(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-s", "--size", action="store", type="string", dest="video_size", default="16", help="Video size") + + self.OptionParser.add_option("-w", "--width", action="store", type="int", dest="video_width", default="1920", help="Custom width") + self.OptionParser.add_option("-z", "--height", action="store", type="int", dest="video_height", default="1080", help="Custom height") + + def effect(self): + + size = self.options.video_size + width = self.options.video_width + height = self.options.video_height + + if size != "Custom": + p = re.compile('([0-9]*)x([0-9]*)') + m = p.match( size ) + width = int(m.group(1)) + height = int(m.group(2)) + + + root = self.document.getroot() + root.set("id", "SVGRoot") + root.set("width", str(width) + 'px') + root.set("height", str(height) + 'px') + root.set("viewBox", "0 0 " + str(width) + " " + str(height) ) + + namedview = root.find(inkex.addNS('namedview', 'sodipodi')) + if namedview is None: + namedview = inkex.etree.SubElement( root, inkex.addNS('namedview', 'sodipodi') ); + + namedview.set(inkex.addNS('document-units', 'inkscape'), 'px') + + namedview.set(inkex.addNS('cx', 'inkscape'), str(width/2.0) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(height/2.0) ) + + +c = C() +c.affect() -- cgit v1.2.3