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