Thunar外掛程式的寫法

2021-05-04 06:39:31 字數 1709 閱讀 9759

檢視thunar的source包,發現其提供了用於寫外掛程式的可擴充套件類。

位置位於./thunarx內,我們可以通過其寫些小外掛程式,包括在右鍵選單新增命令,增加檔案屬性卡等等。

有興趣的可以看看./docs/reference/thunarx/html/index.html裡面提供了可提供的擴充套件類和乙個say-hello例子。

那麼,下面我們就來看看它是如何實現的。

example 5. menu provider example

static void   hello_menu_provider_init (thunarxmenuprovideriface *iface);

static glist *hello_get_file_actions   (thunarxmenuprovider      *provider,

gtkwidget                *window,

glist                    *files);

thunarx_define_type_with_code (hello, hello, g_type_object,

thunarx_implement_inte***ce (thunarx_type_menu_provider,

hello_menu_provider_init));//這段相當於註冊外掛程式,是我們寫外掛程式類必須包括的

static void

hello_menu_provider_init (thunarxmenuprovideriface *iface)

static void

hello_activated (gtkwidget *window)

static glist*

hello_get_file_actions (thunarxmenuprovider *provider,

gtkwidget           *window,

glist               *files)

{gtkaction *action;

gclosure  *closure;

action = gtk_action_new ("hello::say-hello", "say hello", "say hello", null);

//上面第乙個引數應該是獨一無二的key,由我們隨便定。第二個引數就是顯示的label。第三個引數就是滑鼠放上去顯示提示。最後為圖示id。

// closure = g_cclosure_object_new_swap (g_callback (hello_activated), g_object (window));

// g_signal_connect_closure (g_object (action), "activate", closure, true);

// 這兩句我編譯沒問題,執行的時候就報錯,所以改為:

類似的例子在./examples/tex-open-terminal裡也有,實現的是右鍵選單增加開啟終端的專案。搜尋關鍵字:thunarx_define_type_with_code

thunar擴充套件類的api:

nautilus擴充套件類的api:

jQuery外掛程式寫法

jquery實際上就是乙個封裝操作dom的物件。jquery外掛程式實際上就是擴充套件jquery這個物件 例項或者本身 增加使用者自己的方法。toc jquery提供.extend 方法來對自身進行擴充套件。extend 使用 console.log say 輸出 roddy 對jquery自身擴...

jq 外掛程式寫法

1.一次宣告乙個函式 fn.函式名 function options fn.red function options var settings extend defaults,options this.css settings return this 2.一次宣告多個函式 fn.extend fn....

jq的外掛程式的寫法

兩種方式 方法一 extend extend src 將src合併到全域性物件中去 使用方式 var i add 3,2 方法二 fn.extend jquery.fn jquery.prototype 也就是jquery物件的原型 fn.extend src 方法將src合併到jquery的例項物...