From: Thomas Bläsius Date: Wed, 26 Aug 2015 10:50:16 +0000 (+0200) Subject: presentation ipelet should now also work with ipe versions 7.1.7 and 7.1.8 X-Git-Url: https://i11git.iti.kit.edu/anon-gitweb/?p=Misc%2Fipe.git;a=commitdiff_plain;h=cda948be29efb5ff0de0b422704c969e3f7faac9;ds=sidebyside presentation ipelet should now also work with ipe versions 7.1.7 and 7.1.8 --- diff --git a/ipelets/presentation/presentation.lua b/ipelets/presentation/presentation.lua index 93516be..5b8906d 100644 --- a/ipelets/presentation/presentation.lua +++ b/ipelets/presentation/presentation.lua @@ -90,6 +90,12 @@ local PREFERRED_BOX_MODE="strokedfilled" -- or stroked or filled local BOX_DIALOG_SIZE={400,140} +-- "spline" is recommended here, as it should work with most +-- ipe-versions +local SPLINE_TYPE_NAME="spline" +-- local SPLINE_TYPE_NAME="oldspline" +-- local SPLINE_TYPE_NAME="bezier" + -- initialize the Height table local function init_spacing(model) local p=model:page() @@ -122,6 +128,7 @@ local function path(model, shape, props) model.attributes[k]=v end local obj = ipe.Path(model.attributes, shape) + -- print(obj) for k,v in pairs(props) do model.attributes[k]=oldvalues[k] end @@ -159,7 +166,7 @@ local function boxshape_roundTR(v1, v2) return { type="curve", closed=true; { type="segment"; v1, V(v1.x, v2.y) }, { type="segment"; V(v1.x, v2.y), V(v2.x-c, v2.y) }, - { type="bezier"; V(v2.x-c, v2.y), V(v2.x-c/2, v2.y), + { type=SPLINE_TYPE_NAME; V(v2.x-c, v2.y), V(v2.x-c/2, v2.y), V(v2.x, v2.y-c/2), V(v2.x, v2.y-c) }, { type="segment"; V(v2.x, v2.y-c), V(v2.x, v1.y) } } end @@ -169,7 +176,7 @@ local function boxshape_roundLL(v1, v2) return { type="curve", closed=true; { type="segment"; v2, V(v2.x, v1.y) }, { type="segment"; V(v2.x, v1.y), V(v1.x+c, v1.y) }, - { type="bezier"; V(v1.x+c, v1.y), V(v1.x+c/2,v1.y), + { type=SPLINE_TYPE_NAME; V(v1.x+c, v1.y), V(v1.x+c/2,v1.y), V(v1.x, v1.y+c/2), V(v1.x, v1.y+c) }, { type="segment"; V(v1.x, v1.y+c), V(v1.x, v2.y) } } end @@ -178,16 +185,16 @@ end local function boxshape_round(v1, v2) return { type="curve", closed=true; { type="segment"; V(v2.x, v2.y-c), V(v2.x, v1.y+c) }, -- R - { type="bezier"; V(v2.x,v1.y+c), V(v2.x, v1.y+c/2), + { type=SPLINE_TYPE_NAME; V(v2.x,v1.y+c), V(v2.x, v1.y+c/2), V(v2.x-c/2,v1.y), V(v2.x-c,v1.y)}, -- BR { type="segment"; V(v2.x-c, v1.y), V(v1.x+c, v1.y) }, -- B - { type="bezier"; V(v1.x+c, v1.y), V(v1.x+c/2,v1.y), + { type=SPLINE_TYPE_NAME; V(v1.x+c, v1.y), V(v1.x+c/2,v1.y), V(v1.x, v1.y+c/2), V(v1.x, v1.y+c) }, -- BL { type="segment"; V(v1.x, v1.y+c), V(v1.x, v2.y-c) }, -- L - { type="bezier"; V(v1.x, v2.y-c), V(v1.x,v2.y-c/2), + { type=SPLINE_TYPE_NAME; V(v1.x, v2.y-c), V(v1.x,v2.y-c/2), V(v1.x+c/2, v2.y), V(v1.x+c, v2.y) }, -- TL { type="segment"; V(v1.x+c, v2.y), V(v2.x-c, v2.y) }, -- T - { type="bezier"; V(v2.x-c, v2.y), V(v2.x-c/2,v2.y), + { type=SPLINE_TYPE_NAME; V(v2.x-c, v2.y), V(v2.x-c/2,v2.y), V(v2.x, v2.y-c/2), V(v2.x, v2.y-c) }, -- TR } end @@ -201,19 +208,19 @@ local function boxshape_round_pointer(v1, v2, v3, v4, v5) local v5=v5 or V(v1.x+.5*dx,v2.y) return { type="curve", closed=true; { type="segment"; V(v2.x, v2.y-c), V(v2.x, v1.y+c) }, -- R - { type="bezier"; V(v2.x,v1.y+c), V(v2.x, v1.y+c/2), + { type=SPLINE_TYPE_NAME; V(v2.x,v1.y+c), V(v2.x, v1.y+c/2), V(v2.x-c/2,v1.y), V(v2.x-c,v1.y)}, -- BR { type="segment"; V(v2.x-c, v1.y), V(v1.x+c, v1.y) }, -- B - { type="bezier"; V(v1.x+c, v1.y), V(v1.x+c/2,v1.y), + { type=SPLINE_TYPE_NAME; V(v1.x+c, v1.y), V(v1.x+c/2,v1.y), V(v1.x, v1.y+c/2), V(v1.x, v1.y+c) }, -- BL { type="segment"; V(v1.x, v1.y+c), V(v1.x, v2.y-c) }, -- L - { type="bezier"; V(v1.x, v2.y-c), V(v1.x,v2.y-c/2), + { type=SPLINE_TYPE_NAME; V(v1.x, v2.y-c), V(v1.x,v2.y-c/2), V(v1.x+c/2, v2.y), V(v1.x+c, v2.y) }, -- TL { type="segment"; V(v1.x+c, v2.y), v3}, -- T { type="segment"; v3, v4}, -- P { type="segment"; v4, v5}, --P { type="segment"; v5, V(v2.x-c, v2.y)}, -- T - { type="bezier"; V(v2.x-c, v2.y), V(v2.x-c/2,v2.y), + { type=SPLINE_TYPE_NAME; V(v2.x-c, v2.y), V(v2.x-c/2,v2.y), V(v2.x, v2.y-c/2), V(v2.x, v2.y-c) }, -- TR } end @@ -489,8 +496,8 @@ local function create_tabbed(model,values, pos, prim) -- header box local shape1 = { boxshape_roundTR(V(x1,y2-h-2*s), V(x2,y2)) } local hb = path(model, shape1, - {pathmode='filled', fill=values.hcolor, stroke="white"}) - hb:set('pathmode', 'filled', "white", values.hcolor) + {pathmode='filled', fill=values.hcolor, stroke="white"}) + hb:set('pathmode', 'filled', "white", values.hcolor) -- body box local shape2 = { boxshape_roundLL(V(x1,y1), V(x2,y2-h-2*s)) }