275 lines
4.6 KiB
ReStructuredText
275 lines
4.6 KiB
ReStructuredText
|
|
Application
|
|
===========
|
|
|
|
Remember, always import library.
|
|
|
|
.. code-block:: python
|
|
|
|
import easymacro as app
|
|
|
|
|
|
Create instances
|
|
----------------
|
|
|
|
* Instances without context
|
|
|
|
.. code-block:: python
|
|
|
|
toolkit = app.create_instance('com.sun.star.awt.Toolkit')
|
|
|
|
* Instances with context
|
|
|
|
.. code-block:: python
|
|
|
|
service = 'com.sun.star.awt.DialogProvider2'
|
|
dialog = app.create_instance(service, True)
|
|
|
|
|
|
* Get desktop
|
|
|
|
.. code-block:: python
|
|
|
|
desktop = app.create_instance('com.sun.star.frame.Desktop', True)
|
|
|
|
Or
|
|
|
|
.. code-block:: python
|
|
|
|
desktop = app.lo.desktop
|
|
|
|
|
|
Fonst
|
|
-----
|
|
|
|
* Get all fonts
|
|
|
|
.. code-block:: python
|
|
|
|
fonts = app.lo.fonts()
|
|
for f in fonts:
|
|
print(f'Name: {f.Name} - StyleName: {f.StyleName}')
|
|
|
|
|
|
Filters
|
|
-------
|
|
|
|
* Get all `support filters`_
|
|
|
|
.. code-block:: python
|
|
|
|
filters = app.lo.filters()
|
|
ds = []
|
|
for f in filters:
|
|
data = f"UI Name: {f['UIName']} - Name: {f['Name']} - Type: {f['Type']}"
|
|
app.debug(data)
|
|
|
|
|
|
Call dispatch
|
|
-------------
|
|
|
|
You can call any `dispatch command`_ used only if property or method no exists in original object or in `easymacro.py`
|
|
|
|
.. code-block:: python
|
|
|
|
doc = app.docs.active
|
|
command = 'Gallery'
|
|
app.lo.dispatch(doc, command)
|
|
|
|
Method automatically add `.uno:`
|
|
|
|
|
|
ClipBoard
|
|
---------
|
|
|
|
* Set text in clipboard
|
|
|
|
.. code-block:: python
|
|
|
|
app.clipboard.set('My Text')
|
|
|
|
|
|
* Get content of clipboard
|
|
|
|
.. code-block:: python
|
|
|
|
content = app.clipboard.content
|
|
app.debug(content)
|
|
|
|
|
|
Disable or enabled commands
|
|
---------------------------
|
|
|
|
You can disable any command.
|
|
|
|
.. code-block:: python
|
|
|
|
cmd = 'OpenFromCalc'
|
|
result = app.command.disable(cmd)
|
|
app.debug(result)
|
|
|
|
And enabled.
|
|
|
|
.. code-block:: python
|
|
|
|
result = app.command.enabled(cmd)
|
|
app.debug(result)
|
|
|
|
`OpenFromCalc` is options for open documents in calc, disable or enabled menu entry and icon toolbar.
|
|
|
|
|
|
LibreOffice configuration
|
|
-------------------------
|
|
|
|
Get value
|
|
^^^^^^^^^
|
|
|
|
Some values are read only.
|
|
|
|
.. code-block:: python
|
|
|
|
node_name = '/org.openoffice.Office.Common/Help'
|
|
key = 'System'
|
|
value = app.get_app_config(node_name, key)
|
|
app.debug(value)
|
|
|
|
node_name = '/org.openoffice.Office.Common/Misc/'
|
|
key = 'FirstRun'
|
|
value = app.get_app_config(node_name, key)
|
|
app.debug(value)
|
|
|
|
key = 'UseSystemFileDialog'
|
|
value = app.get_app_config(node_name, key)
|
|
app.debug(value)
|
|
|
|
|
|
Set value
|
|
^^^^^^^^^
|
|
|
|
.. code-block:: python
|
|
|
|
node_name = '/org.openoffice.Office.UI/ColorScheme'
|
|
key = 'CurrentColorScheme'
|
|
new_value = 'LibreOffice Dark'
|
|
result = app.set_app_config(node_name, key, new_value)
|
|
app.debug(result)
|
|
|
|
.. warning::
|
|
|
|
Caution with modify registry, not all nodes we can change.
|
|
|
|
|
|
Shortcuts
|
|
---------
|
|
|
|
Global
|
|
^^^^^^
|
|
|
|
Iter in all shortcuts. Shortcuts for all applications.
|
|
|
|
.. code-block:: python
|
|
|
|
for shortcut, command in app.shortcuts:
|
|
app.debug(shortcut, command)
|
|
|
|
|
|
If you want all info.
|
|
|
|
.. code-block:: python
|
|
|
|
sc = app.shortcuts
|
|
data = sc.get_all()
|
|
app.debug(data)
|
|
|
|
|
|
Verify if exists shortcut.
|
|
|
|
.. code-block:: python
|
|
|
|
sc = app.shortcuts
|
|
shortcut = 'Shift+Ctrl+Alt+T'
|
|
app.debug(shortcut in sc)
|
|
|
|
|
|
Add new shortcut for execute uno command.
|
|
|
|
.. code-block:: python
|
|
|
|
sc = app.shortcuts
|
|
shortcut = 'Shift+Ctrl+Alt+T'
|
|
command = 'MacroDialog'
|
|
sc.set(shortcut, command)
|
|
|
|
|
|
Add new shortcut for execute macro.
|
|
|
|
.. code-block:: python
|
|
|
|
sc = app.shortcuts
|
|
shortcut = 'Shift+Ctrl+Alt+M'
|
|
macro = {'library': 'test', 'name': 'main'}
|
|
sc.set(shortcut, macro)
|
|
|
|
|
|
Get `command` by `shortcut`.
|
|
|
|
.. code-block:: python
|
|
|
|
sc = app.shortcuts
|
|
shortcut = 'Shift+Ctrl+Alt+M'
|
|
command = sc.get_by_shortcut(shortcut)
|
|
app.debug(command)
|
|
|
|
|
|
Get `shortcut` by `command`. Could be more than one.
|
|
|
|
.. code-block:: python
|
|
|
|
sc = app.shortcuts
|
|
command = 'MacroDialog'
|
|
shortcuts = sc.get_by_command(command)
|
|
app.debug(shortcuts)
|
|
|
|
|
|
Remove by shortcut.
|
|
|
|
.. code-block:: python
|
|
|
|
sc = app.shortcuts
|
|
shortcut = 'Shift+Ctrl+Alt+M'
|
|
sc.remove_by_shortcut(shortcut)
|
|
|
|
|
|
Remove by command.
|
|
|
|
.. code-block:: python
|
|
|
|
sc = app.shortcuts
|
|
macro = {'library': 'test', 'name': 'main'}
|
|
sc.remove_by_command(macro)
|
|
|
|
|
|
Reset all editions.
|
|
|
|
.. code-block:: python
|
|
|
|
app.shortcuts.reset()
|
|
|
|
|
|
For applications
|
|
----------------
|
|
|
|
Get shortcuts for application. For Calc.
|
|
|
|
.. code-block:: python
|
|
|
|
sc = app.shortcuts['calc']
|
|
|
|
All methods some the same.
|
|
|
|
For other applications: `writer`, `draw`, `impress`, `math`
|
|
|
|
|
|
.. _dispatch command: https://wiki.documentfoundation.org/Development/DispatchCommands
|
|
.. _support filters: https://help.libreoffice.org/latest/en-US/text/shared/guide/convertfilters.html
|