Add propery properties to shapes

This commit is contained in:
Mauricio Baeza 2021-06-26 21:39:47 -05:00
parent fa781d3da1
commit 33c2b18c33
1 changed files with 21 additions and 8 deletions

View File

@ -3350,6 +3350,13 @@ class LOShape(LOBaseObject):
def shape_type(self):
return self.obj.ShapeType
@property
def properties(self):
return {}
@properties.setter
def properties(self, values):
_set_properties(self.obj, values)
@property
def is_image(self):
return self.shape_type == self.IMAGE
@ -3527,19 +3534,21 @@ class LODrawPage(LOBaseObject):
def create_instance(self, name):
return self.doc.createInstance(name)
def add(self, type_shape, args={}):
def add(self, type_shape, options={}):
args = options.copy()
"""Insert a shape in page, type shapes:
Line
Rectangle
Ellipse
Text
Connector
"""
index = self.count
w = args.get('Width', 3000)
h = args.get('Height', 3000)
x = args.get('X', 1000)
y = args.get('Y', 1000)
name = args.get('Name', f'{type_shape.lower()}{index}')
w = args.pop('Width', 3000)
h = args.pop('Height', 3000)
x = args.pop('X', 1000)
y = args.pop('Y', 1000)
name = args.pop('Name', f'{type_shape.lower()}{index}')
service = f'com.sun.star.drawing.{type_shape}Shape'
shape = self.create_instance(service)
@ -3547,6 +3556,10 @@ class LODrawPage(LOBaseObject):
shape.Position = Point(x, y)
shape.Name = name
self.obj.add(shape)
if args:
_set_properties(shape, args)
return LOShape(self.obj[index], index)
def remove(self, shape):
@ -6100,7 +6113,7 @@ class LODBServer(object):
def __init__(self):
self._conn = None
self._error = ''
self._error = 'Not connected'
self._type = ''
def __str__(self):
@ -6114,7 +6127,7 @@ class LODBServer(object):
@property
def is_connected(self):
return not bool(self._error)
return not self._conn is None
@property
def error(self):