Configuration

  • Create new extension:

./zaz.py -new -t ~/projects -n MyGreatExtension

  • Move to new folder:

cd ~/projects/MyGreatExtension

  • Edit file conf.py

vim conf.py

Parameters

Configure correctly this options, before you start code your extension.

Only modify this options.

Type extension

TYPE_EXTENSION

The type extension that you want develop.

  • Integer
    • 1 = Normal extension

    • 2 = New components

    • 3 = Calc addin

Example:

TYPE_EXTENSION = 1

Version

VERSION

Example:

VERSION = '0.1.0'

Name

NAME

  • String
    • Your extension name, not used spaces.

Example:

NAME = 'MyGreatExtension'

ID extension

The internal name for extension.

ID

  • String
    • Should be unique, used URL inverse

Example:

ID = 'org.yourname.extensionname'

Locales

If your extension will be multi-language (recommended)

USE_LOCALES

  • Bool

Example:

USE_LOCALES = True

Domain for locales

The base name for generate files POT

DOMAIN

  • String

Example:

DOMAIN = 'base'

Path pyGetText

Absolute path for tool pygettext.py for generate POT.

PATH_PYGETTEXT

  • String

Example:

PATH_PYGETTEXT = '/usr/lib/python3.9/Tools/i18n/pygettext.py'

Author

Your information like author, one or more languages. This information is displayed in the extension manager.

PUBLISHER

  • Dictionary

Example:

PUBLISHER = {
    'en': {'text': 'Your name', 'link': 'https://your.page'},
    'es': {'text': 'Tu nombre', 'link': 'https://elmau.net'},
}

Extension icon

Path relative or absolute to extension logo. Show in extension manager.

ICON

  • String

Example:

ICON='images/logo.png'

License

The license for your extension, please, used free license.

LICENSE

  • String

Example:

LICENSE_EN = f"""This file is part of {NAME}.

    {NAME} is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    {NAME} is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with {NAME}.  If not, see <https://www.gnu.org/licenses/>.
"""
LICENSE_ES = LICENSE_EN

Information

Information of extension: Display name, description and license to displayed when install.

INFO

  • Dictionary

Example:

INFO = {
    'en': {
        'display_name': 'Test Macro',
        'description': 'My great extension',
        'license': LICENSE_EN,
    },
    'es': {
        'display_name': 'Macro de Prueba',
        'description': 'Mi gran extensión',
        'license': LICENSE_ES,
    },
}

Parent menu

Only for normal extension (TYPE_EXTENSION = 1), where add extension menu, only two possible values: AddonMenu or OfficeMenuBar

PARENT

  • String
    • AddonMenu: Show in menu Tools->Add-Ons

    • OfficeMenuBar: Show in LibreOffice menu

Example:

PARENT = 'OfficeMenuBar'

Functions

Only for Add-in extension (TYPE_EXTENSION = 2). Can be multi language.

The key of dictionary, is the same name of your function. Used exactly you used in your code.

FUNCTIONS

  • Dictionary of dictionaries
    • displayname = Show in function wizard, multi language.

    • description = Show in function wizard, multi language.

    • parameters = Each parameters in your function.
      • key = Is the exactly name for parameter in your code function.
        • displayname = Show in function wizard, multi language.

        • description = Show in function wizard, multi language.

Example:

FUNCTIONS = {
    'test': {
        'displayname': {'en': 'test', 'es': 'prueba'},
        'description': {'en': 'My test', 'es': 'Mi prueba'},
        'parameters': {
            'value': {
                'displayname': {'en': 'value', 'es': 'valor'},
                'description': {'en': 'The value', 'es': 'El valor'},
            },
        },
    },
}

Default program

Optional. Open automatically when install and test.

PROGRAM

  • String
    • –calc

    • –writer

    • –draw

    • –impress

Example:

PROGRAM = '--calc'

File test

Optional. Open automatically when install and test.

  • String

Example:

FILE_TEST = '/home/mau/example.ods'

Paths

Paths for install and test. idlc, include and remerge only used en TYPE_EXTENSION 2 or 3. idlc and path include is installed with LibreOffice SDK.

PATHS

  • Dictionary
    • idlc for generate files urd.

    • include path with files idl.

    • remerge for generate files rdb.

    • soffice for open LibreOffice.

    • install for install extension.

Example:

PATHS = {
    'idlc': '/usr/lib/libreoffice/sdk/bin/idlc',
    'include': '/usr/share/idl/libreoffice',
    'regmerge': '/usr/lib/libreoffice/program/regmerge',
    'soffice': ('soffice', PROGRAM, FILE_TEST),
    'install': ('unopkg', 'add', '-v', '-f', '-s'),
}