Add property url from command buttons forms
This commit is contained in:
parent
87c8ead015
commit
19e211ce0a
|
@ -225,6 +225,11 @@ class CellDeleteMode():
|
|||
CDM = CellDeleteMode
|
||||
|
||||
|
||||
class FormButtonType():
|
||||
from com.sun.star.form.FormButtonType import PUSH, SUBMIT, RESET, URL
|
||||
FBT = FormButtonType
|
||||
|
||||
|
||||
OS = platform.system()
|
||||
IS_WIN = OS == 'Windows'
|
||||
IS_MAC = OS == 'Darwin'
|
||||
|
@ -1750,7 +1755,8 @@ class LOSheetTables(object):
|
|||
return
|
||||
|
||||
|
||||
class LOFormControl(LOBaseObject):
|
||||
# ~ class LOFormControl(LOBaseObject):
|
||||
class LOFormControl():
|
||||
EVENTS = {
|
||||
'action': 'actionPerformed',
|
||||
'click': 'mousePressed',
|
||||
|
@ -1761,21 +1767,25 @@ class LOFormControl(LOBaseObject):
|
|||
}
|
||||
|
||||
def __init__(self, obj, view, form):
|
||||
super().__init__(obj)
|
||||
self._obj = obj
|
||||
self._view = view
|
||||
self._form = form
|
||||
self._m = view.Model
|
||||
self._index = -1
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
if name in ('_form', '_view', '_m', '_index'):
|
||||
self.__dict__[name] = value
|
||||
else:
|
||||
super().__setattr__(name, value)
|
||||
# ~ def __setattr__(self, name, value):
|
||||
# ~ if name in ('_form', '_view', '_m', '_index'):
|
||||
# ~ self.__dict__[name] = value
|
||||
# ~ else:
|
||||
# ~ super().__setattr__(name, value)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name} ({self.type}) {[self.index]}'
|
||||
|
||||
@property
|
||||
def obj(self):
|
||||
return self._obj
|
||||
|
||||
@property
|
||||
def form(self):
|
||||
return self._form
|
||||
|
@ -1812,6 +1822,30 @@ class LOFormControl(LOBaseObject):
|
|||
def enabled(self, value):
|
||||
self._m.Enabled = value
|
||||
|
||||
@property
|
||||
def anchor(self):
|
||||
return self.obj.Anchor
|
||||
@anchor.setter
|
||||
def anchor(self, value):
|
||||
size = None
|
||||
if hasattr(value, 'obj'):
|
||||
size = getattr(value, 'size', None)
|
||||
value = value.obj
|
||||
self.obj.Anchor = value
|
||||
if not size is None:
|
||||
self.size = size
|
||||
try:
|
||||
self.obj.ResizeWithCell = True
|
||||
except:
|
||||
pass
|
||||
|
||||
@property
|
||||
def size(self):
|
||||
return self.obj.Size
|
||||
@size.setter
|
||||
def size(self, value):
|
||||
self.obj.Size = value
|
||||
|
||||
@property
|
||||
def events(self):
|
||||
return self.form.getScriptEvents(self.index)
|
||||
|
@ -1891,6 +1925,14 @@ class LOFormControlButton(LOFormControl):
|
|||
def value(self, value):
|
||||
self._m.Text = Label
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
return self._m.TargetURL
|
||||
@url.setter
|
||||
def url(self, value):
|
||||
self._m.TargetURL = value
|
||||
self._m.ButtonType = FormButtonType.URL
|
||||
|
||||
|
||||
FORM_CONTROL_CLASS = {
|
||||
'label': LOFormControlLabel,
|
||||
|
@ -1941,7 +1983,7 @@ class LOForm(object):
|
|||
name = control.Name
|
||||
tipo = types[control.ImplementationName]
|
||||
view = self.doc.CurrentController.getControl(control)
|
||||
control = FORM_CONTROL_CLASS[tipo](control, view)
|
||||
control = FORM_CONTROL_CLASS[tipo](control, view, self._obj)
|
||||
control.index = i
|
||||
setattr(self, name, control)
|
||||
self._controls[name] = control
|
||||
|
@ -1994,8 +2036,8 @@ class LOForm(object):
|
|||
def add(self, args):
|
||||
name = args['Name']
|
||||
tipo = args.pop('Type').lower()
|
||||
w = args.pop('Width')
|
||||
h = args.pop('Height')
|
||||
w = args.pop('Width', 1000)
|
||||
h = args.pop('Height', 200)
|
||||
x = args.pop('X', 0)
|
||||
y = args.pop('Y', 0)
|
||||
control = self.doc.createInstance('com.sun.star.drawing.ControlShape')
|
||||
|
@ -2053,7 +2095,9 @@ class LOSheetForms(object):
|
|||
def names(self):
|
||||
return self.obj.ElementNames
|
||||
|
||||
def insert(self, name):
|
||||
def insert(self, name=''):
|
||||
if not name:
|
||||
name = f'form{self.count + 1}'
|
||||
form = self.doc.createInstance('com.sun.star.form.component.Form')
|
||||
self.obj.insertByName(name, form)
|
||||
return LOForm(form, self._dp)
|
||||
|
|
Loading…
Reference in New Issue