LibreOffice UNO Component
Jump to navigation
Jump to search
A LibreOffice UNO Component is a UNO component that is an office suite extension component for extending LibreOffice functionality.
- Context:
- It can (typically) be implemented as shared library (.so, .dll) or Jar file that integrates with the UNO environment.<grok-card data-id="66f0d2" data-type="citation_card"></grok-card>
- It can (typically) implement core interfaces such as XInterface, XTypeProvider, and XServiceInfo.<grok-card data-id="ecb4c8" data-type="citation_card"></grok-card>
- It can (typically) support instantiation via XInitialization for passing arguments and context.<grok-card data-id="8d83ee" data-type="citation_card"></grok-card>
- ...
- It can (often) be deployed as part of LibreOffice extension (.oxt) using unopkg tool.<grok-card data-id="795ece" data-type="citation_card"></grok-card>
- It can (often) use configuration files like .xcu file for registration and UI definitions.<grok-card data-id="9ec6ff" data-type="citation_card"></grok-card>
- ...
- It can range from being a Simple LibreOffice UNO Component to being a Complex LibreOffice UNO Component, depending on its implementation scope.
- It can range from being a Java-Based LibreOffice UNO Component to being a C++-Based LibreOffice UNO Component, depending on its programming language.
- ...
- It can extend features like protocol handlers, job executors, add-ons, and context menu interceptors.<grok-card data-id="40319a" data-type="citation_card"></grok-card>
- It can be registered in UNO registry under keys like /IMPLEMENTATIONS and /SERVICES.<grok-card data-id="c5c01d" data-type="citation_card"></grok-card>
- It can use helper classes like WeakBase in Java or WeakImplHelper in C++.<grok-card data-id="e0cf8d" data-type="citation_card"></grok-card>
- ...
- Example(s):
- LibreOffice UNO Component (ImageShrink), implementing XImageShrinkFilter for image processing.
- LibreOffice UNO Component (SyncJob), executed on events like onFirstVisibleTask.
- Protocol Handler LibreOffice UNO Components, such as:
- Function1 Protocol Handler for handling custom URLs.
- Addon Protocol Handler for UI integrations.
- Add-On LibreOffice UNO Components, such as:
- Menu Item Add-On for extending toolbars.
- Context Menu Add-On for dynamic menu modifications.
- ...
- Counter-Example(s):
- Non-UNO LibreOffice Extensions, which use scripts without component registration.
- Microsoft Office Add-Ins, which use VBA or COM instead of UNO.
- Google Docs Add-Ons, which are JavaScript-based and cloud-hosted.
- See: UNO Component Model, LibreOffice SDK, LibreOffice Extension, The Document Foundation.