borders around editor nodes
This commit is contained in:
parent
5e5e598cab
commit
8a95025036
|
@ -6,11 +6,18 @@ compute_layout = function(node, x,y, nodes_to_render, preserve_screen_top_of_cur
|
|||
node.x = x
|
||||
node.y = y
|
||||
-- render background if necessary
|
||||
local node_to_render
|
||||
local pending_nodes = {}
|
||||
if node.bg then
|
||||
node_to_render = {type='rectangle', r=node.bg.r, g=node.bg.g, b=node.bg.b, x=node.x, y=node.y}
|
||||
table.insert(nodes_to_render, node_to_render)
|
||||
local n = {type='rectangle', drawmode='fill', r=node.bg.r, g=node.bg.g, b=node.bg.b, x=node.x, y=node.y, rx=node.rx, ry=node.ry}
|
||||
table.insert(pending_nodes, n)
|
||||
table.insert(nodes_to_render, n)
|
||||
end
|
||||
-- render border if necessary
|
||||
if node.border then
|
||||
local n = {type='rectangle', drawmode='line', r=node.border.r, g=node.border.g, b=node.border.b, x=node.x, y=node.y, rx=node.rx, ry=node.ry}
|
||||
table.insert(pending_nodes, n)
|
||||
table.insert(nodes_to_render, n)
|
||||
end
|
||||
-- render contents
|
||||
if node.width then
|
||||
node.w = node.width
|
||||
|
@ -28,9 +35,9 @@ compute_layout = function(node, x,y, nodes_to_render, preserve_screen_top_of_cur
|
|||
end
|
||||
node.h = box_height(node)
|
||||
table.insert(nodes_to_render, node)
|
||||
if node_to_render then
|
||||
node_to_render.w = node.w
|
||||
node_to_render.h = node.h
|
||||
for _,n in ipairs(pending_nodes) do
|
||||
n.w = node.w
|
||||
n.h = node.h
|
||||
end
|
||||
elseif node.type == 'rows' then
|
||||
node.x = x
|
||||
|
@ -94,4 +101,4 @@ compute_layout = function(node, x,y, nodes_to_render, preserve_screen_top_of_cur
|
|||
end
|
||||
end
|
||||
return x+node.w,y+node.h
|
||||
end
|
||||
end
|
|
@ -3,7 +3,7 @@ on.draw = function()
|
|||
for _,obj in ipairs(Surface) do
|
||||
love.graphics.setColor(obj.r or 0, obj.g or 0, obj.b or 0)
|
||||
if obj.type == 'rectangle' then
|
||||
love.graphics.rectangle(obj.drawmode or 'fill', vx(obj.x),vy(obj.y), scale(obj.w),scale(obj.h))
|
||||
love.graphics.rectangle(obj.drawmode or 'fill', vx(obj.x),vy(obj.y), scale(obj.w),scale(obj.h), scale(obj.rx or 0),scale(obj.ry or obj.rx or 0))
|
||||
elseif obj.type == 'line' then
|
||||
love.graphics.line(unpack(obj.zdata))
|
||||
elseif obj.type == 'circle' then
|
||||
|
@ -22,4 +22,4 @@ on.draw = function()
|
|||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
14
README.md
14
README.md
|
@ -40,6 +40,20 @@ Adjust foreground/background color (akin to a `div` with inline `style`):
|
|||
}
|
||||
```
|
||||
|
||||
Adjust border color:
|
||||
```
|
||||
{ type='text', border={r=1,g=0,b=0},
|
||||
data={'hello, world!'}
|
||||
}
|
||||
```
|
||||
|
||||
Rounded corners:
|
||||
```
|
||||
{ type='text', border={r=1,g=0,b=0}, rx=5,ry=5,
|
||||
data={'hello, world!'}
|
||||
}
|
||||
```
|
||||
|
||||
Two-column text:
|
||||
```
|
||||
{ type='cols', data={
|
||||
|
|
Loading…
Reference in New Issue