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