-
Notifications
You must be signed in to change notification settings - Fork 175
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: add dev doc for
dfmext::DFMExtMenuPlugin
as title Log: dev doc
- Loading branch information
1 parent
6747db2
commit bda8089
Showing
5 changed files
with
82 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/*! | ||
@~chinese | ||
@ingroup dfm-extension | ||
@file dfmextmenuplugin.h | ||
|
||
|
||
@class dfmext::DFMExtMenuPlugin dfmextmenuplugin.h | ||
@brief 第三方开发者应该继承并实现的接口类,并且在元接口 dfm_extension_menu 中返回派生的类对象 | ||
|
||
@fn DFMExtMenuPlugin::DFMExtMenuPlugin() | ||
@brief 构造函数 | ||
|
||
@fn void DFMExtMenuPlugin::initialize(DFMEXT::DFMExtMenuProxy *proxy) | ||
@brief 插件初始化接口。文管主动调用,在其他所有接口被文管调用前调用,文管将 proxy 传入给扩展插件 | ||
@param[in] proxy 可认为是文管主程序的进程 | ||
|
||
@fn bool DFMExtMenuPlugin::buildNormalMenu(DFMExtMenu *main, | ||
const std::string ¤tUrl, | ||
const std::string &focusUrl, | ||
const std::list<std::string> &urlList, | ||
bool onDesktop) | ||
@brief 文管主动调用,右键菜单在文件上触发时调用 | ||
@param[in] main 当前的右键菜单 | ||
@param[in] urlList 选中的所有文件列表的文件路径/ | ||
@param[in] currentUrl 右键点击的文件路径所在目录的路径 | ||
@param[in] focusUrl 当前右键选中文件的路径 | ||
@param[in] onDesktop true 代表操作是在桌面触发的 | ||
@return 如果没有注册该接口的回调则返回 false,反之则返回回调函数的结果 | ||
|
||
@fn bool DFMExtMenuPlugin::buildEmptyAreaMenu(DFMExtMenu *main, const std::string ¤tUrl, bool onDesktop) | ||
@brief 文管主动调用,右键菜单在空白区域触发时调用 | ||
@param[in] main 当前的右键菜单 | ||
@param[in] currentUrl 右键点击的文件路径所在目录的路径 | ||
@param[in] onDesktop true 代表操作是在桌面触发的 | ||
@return 如果没有注册该接口的回调则返回 false,反之则返回回调函数的结果 | ||
|
||
@fn void DFMExtMenuPlugin::registerInitialize(const DFMExtMenuPlugin::InitializeFunc &func) | ||
@brief `initialize` 接口的注册函数,第三方开发者主动注册 | ||
@param[in] func 回调函数 | ||
|
||
@fn void DFMExtMenuPlugin::registerBuildNormalMenu(const DFMExtMenuPlugin::BuildNormalMenuFunc &func) | ||
@brief `buildNormalMenu` 接口的注册函数,第三方开发者主动注册 | ||
@param[in] func 回调函数 | ||
|
||
@fn void DFMExtMenuPlugin::registerBuildEmptyAreaMenu(const DFMExtMenuPlugin::BuildEmptyAreaMenuFunc &func) | ||
@brief `buildEmptyAreaMenu` 接口的注册函数,第三方开发者主动注册 | ||
@param[in] func 回调函数 | ||
|
||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,33 @@ | ||
@page dfm-extension dfm-extension | ||
@brief 文件管理器扩展开发库 | ||
@brief 文件管理器扩展开发库 | ||
|
||
# 模块介绍 | ||
|
||
文件管理器(以下简称文管,dde-file-manager)提供一套插件开发接口来支持**右键菜单**和 **文件角标**两个需求的开发接口。 | ||
|
||
插件是一种在不需要改动并重新编译主程序本身的情况下去扩展主程序功能的一种机制。 | ||
|
||
文件管理器的插件机制是由文件管理器提供一个扩展库 `libdfm-extension.so` 来提供接口,这是一个纯 C/C++ 接口的库。第三方开发者通过加载该扩展库,按照文管提供的标准来调用和实现相应接口,共同完成定制需求的功能扩展。 | ||
|
||
在文件管理器启动时,会去检测目录 `/usr/lib/[arch]/dde-file-manager/plugins/extensions` 下的所有文件(其中 [arch] 代表平台架构,如 ARM64 下为 aarch64-linux-gnu,AMD 64下为 x86_64-linux-gnu), 并检测是否是一个正常的动态库文件,如果是则尝试加载,因此第三方开发者应该将扩展插件**安装到此目录下**。如果加载成功,文管将会检查扩展插件是否实现了相应的**元接口**,如果通过了检查,文管将与第三方扩展插件开始正常业务交互。 | ||
|
||
@ref group_dfm-extension "接口文档" | ||
|
||
# 如何使用模块 | ||
|
||
|
||
|
||
# 使用示例 | ||
|
||
|
||
|
||
@defgroup dfm-extension | ||
|
||
@brief 文件管理器扩展开发库 | ||
|
||
@details 示例文档: | ||
|
||
@subpage dfm-extension | ||
|
||
@anchor group_dfm-extension | ||
|